@agent-native/core 0.77.24 → 0.78.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +20 -0
- package/corpus/core/docs/content/template-analytics.md +5 -0
- package/corpus/core/docs/content/tracking.md +45 -0
- package/corpus/core/package.json +3 -1
- package/corpus/core/src/agent/types.ts +22 -0
- package/corpus/core/src/client/AgentPanel.tsx +34 -18
- package/corpus/core/src/client/AssistantChat.tsx +40 -0
- package/corpus/core/src/client/agent-chat.ts +173 -0
- package/corpus/core/src/client/analytics.ts +141 -5
- package/corpus/core/src/client/composer/TiptapComposer.tsx +316 -60
- package/corpus/core/src/client/composer/extensions/MentionReference.tsx +3 -0
- package/corpus/core/src/client/composer/types.ts +22 -0
- package/corpus/core/src/client/index.ts +14 -0
- package/corpus/core/src/client/session-replay.ts +800 -0
- package/corpus/core/src/db/schema.ts +12 -0
- package/corpus/core/src/deploy/build.ts +75 -0
- package/corpus/core/src/private-blob/index.ts +18 -0
- package/corpus/core/src/private-blob/registry.ts +241 -0
- package/corpus/core/src/private-blob/types.ts +55 -0
- package/corpus/core/src/scripts/utils.ts +34 -6
- package/corpus/core/src/server/agent-chat-plugin.ts +10 -0
- package/corpus/core/src/server/email.ts +5 -0
- package/corpus/core/src/server/index.ts +1 -0
- package/corpus/core/src/styles/agent-native.css +24 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +1 -1
- package/corpus/templates/analytics/.agents/skills/session-replay/SKILL.md +43 -0
- package/corpus/templates/analytics/AGENTS.md +32 -1
- package/corpus/templates/analytics/DEVELOPING.md +9 -1
- package/corpus/templates/analytics/actions/delete-dashboard-report-subscription.ts +24 -0
- package/corpus/templates/analytics/actions/get-session-replay-events.ts +50 -0
- package/corpus/templates/analytics/actions/get-session-replay-summary.ts +27 -0
- package/corpus/templates/analytics/actions/list-dashboard-report-subscriptions.ts +24 -0
- package/corpus/templates/analytics/actions/list-session-recordings.ts +59 -0
- package/corpus/templates/analytics/actions/navigate.ts +15 -5
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +2 -2
- package/corpus/templates/analytics/actions/save-dashboard-report-subscription.ts +36 -0
- package/corpus/templates/analytics/actions/send-dashboard-report-now.ts +60 -0
- package/corpus/templates/analytics/actions/view-screen.ts +50 -2
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +51 -2
- package/corpus/templates/analytics/app/components/layout/Header.tsx +4 -1
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +14 -2
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +6 -6
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +35 -6
- package/corpus/templates/analytics/app/i18n-data.ts +1119 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/EmailReportDialog.tsx +437 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +11 -12
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +43 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +136 -43
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/report-filters.ts +26 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +450 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +419 -0
- package/corpus/templates/analytics/app/routes/overview.tsx +13 -6
- package/corpus/templates/analytics/app/routes/sessions.$recordingId.tsx +10 -0
- package/corpus/templates/analytics/app/routes/sessions._index.tsx +10 -0
- package/corpus/templates/analytics/changelog/2026-06-25-analytics-now-opens-directly-to-ask-instead-of-the-old-overv.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-25-dashboard-charts-now-show-reliable-blue-placement-lines-whil.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-26-dashboards-can-now-send-scheduled-daily-email-reports-from-t.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-26-session-replay-browser-sessions-can-now-be-reviewed-from.md +6 -0
- package/corpus/templates/analytics/package.json +5 -2
- package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +131 -0
- package/corpus/templates/analytics/scripts/seed-session-replay.ts +198 -0
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +140 -27
- package/corpus/templates/analytics/server/db/index.ts +12 -0
- package/corpus/templates/analytics/server/db/schema.ts +131 -0
- package/corpus/templates/analytics/server/handlers/session-replay.ts +281 -0
- package/corpus/templates/analytics/server/handlers/sql-query.ts +8 -348
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +66 -0
- package/corpus/templates/analytics/server/jobs/session-replay-retention.ts +29 -0
- package/corpus/templates/analytics/server/lib/dashboard-panel-query.ts +365 -0
- package/corpus/templates/analytics/server/lib/dashboard-report-subscriptions.ts +473 -0
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +405 -0
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +63 -18
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +98 -26
- package/corpus/templates/analytics/server/lib/session-replay.ts +1645 -0
- package/corpus/templates/analytics/server/plugins/auth.ts +1 -1
- package/corpus/templates/analytics/server/plugins/dashboard-report-jobs.ts +47 -0
- package/corpus/templates/analytics/server/plugins/db.ts +200 -0
- package/corpus/templates/analytics/server/plugins/session-replay-retention-jobs.ts +41 -0
- package/corpus/templates/analytics/server/routes/api/analytics/replay.options.ts +1 -0
- package/corpus/templates/analytics/server/routes/api/analytics/replay.post.ts +1 -0
- package/corpus/templates/analytics/server/routes/api/dashboard-reports/run.post.ts +61 -0
- package/corpus/templates/analytics/server/routes/api/session-replay/recordings/[recordingId]/chunks/[seq].get.ts +1 -0
- package/corpus/templates/analytics/server/routes/api/session-replay/recordings/[recordingId]/events.get.ts +1 -0
- package/corpus/templates/analytics/server/routes/api/session-replay/recordings/[recordingId]/manifest.get.ts +1 -0
- package/corpus/templates/analytics/server/routes/api/session-replay/recordings/[recordingId].get.ts +1 -0
- package/corpus/templates/analytics/server/routes/api/session-replay/recordings.get.ts +1 -0
- package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +10 -2
- package/corpus/templates/assets/.agents/skills/image-generation/SKILL.md +14 -7
- package/corpus/templates/assets/.agents/skills/library-management/SKILL.md +12 -0
- package/corpus/templates/assets/AGENTS.md +18 -3
- package/corpus/templates/assets/actions/_image-model-default.ts +24 -0
- package/corpus/templates/assets/actions/dismiss-variant-slots.ts +15 -22
- package/corpus/templates/assets/actions/generate-asset.ts +30 -23
- package/corpus/templates/assets/actions/generate-image-batch.ts +76 -29
- package/corpus/templates/assets/actions/generate-image.ts +46 -30
- package/corpus/templates/assets/actions/generate-video.ts +18 -3
- package/corpus/templates/assets/actions/list-assets.ts +39 -8
- package/corpus/templates/assets/actions/list-libraries.ts +24 -2
- package/corpus/templates/assets/actions/navigate.ts +1 -1
- package/corpus/templates/assets/actions/open-asset-picker.ts +38 -1
- package/corpus/templates/assets/actions/refresh-generation-run.ts +10 -0
- package/corpus/templates/assets/actions/save-generated-image.ts +21 -19
- package/corpus/templates/assets/actions/variant-slots.ts +131 -28
- package/corpus/templates/assets/actions/view-screen.ts +9 -0
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +425 -0
- package/corpus/templates/assets/app/components/layout/Header.tsx +3 -1
- package/corpus/templates/assets/app/components/layout/Layout.tsx +5 -0
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -6
- package/corpus/templates/assets/app/hooks/use-navigation-state.ts +47 -21
- package/corpus/templates/assets/app/i18n-data.ts +1815 -0
- package/corpus/templates/assets/app/lib/libraries.ts +6 -0
- package/corpus/templates/assets/app/lib/picker-chat-handoff.ts +71 -0
- package/corpus/templates/assets/app/routes/_index.tsx +4 -0
- package/corpus/templates/assets/app/routes/asset.$id.tsx +2 -2
- package/corpus/templates/assets/app/routes/audit.tsx +1 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +1557 -2164
- package/corpus/templates/assets/app/routes/brand-kits._index.tsx +7 -191
- package/corpus/templates/assets/app/routes/brand-kits.tsx +1 -5
- package/corpus/templates/assets/app/routes/libraries.tsx +4 -4
- package/corpus/templates/assets/app/routes/library.$id.tsx +9 -7
- package/corpus/templates/assets/app/routes/library.tsx +1454 -175
- package/corpus/templates/assets/server/db/index.ts +1 -1
- package/corpus/templates/assets/server/lib/generation.ts +86 -15
- package/corpus/templates/assets/server/plugins/agent-chat.ts +196 -0
- package/corpus/templates/assets/server/plugins/db.ts +5 -0
- package/corpus/templates/assets/shared/api.ts +6 -3
- package/dist/agent/types.d.ts +21 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +6 -2
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +10 -4
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +6 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +15 -3
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +32 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +113 -0
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/analytics.d.ts +22 -3
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +96 -4
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +2 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +228 -56
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/extensions/MentionReference.d.ts.map +1 -1
- package/dist/client/composer/extensions/MentionReference.js +3 -0
- package/dist/client/composer/extensions/MentionReference.js.map +1 -1
- package/dist/client/composer/types.d.ts +21 -0
- package/dist/client/composer/types.d.ts.map +1 -1
- package/dist/client/composer/types.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/session-replay.d.ts +41 -0
- package/dist/client/session-replay.d.ts.map +1 -0
- package/dist/client/session-replay.js +595 -0
- package/dist/client/session-replay.js.map +1 -0
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/db/schema.d.ts +3 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +6 -2
- package/dist/db/schema.js.map +1 -1
- package/dist/deploy/build.d.ts +8 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +66 -0
- package/dist/deploy/build.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +8 -8
- package/dist/private-blob/index.d.ts +3 -0
- package/dist/private-blob/index.d.ts.map +1 -0
- package/dist/private-blob/index.js +2 -0
- package/dist/private-blob/index.js.map +1 -0
- package/dist/private-blob/registry.d.ts +10 -0
- package/dist/private-blob/registry.d.ts.map +1 -0
- package/dist/private-blob/registry.js +152 -0
- package/dist/private-blob/registry.js.map +1 -0
- package/dist/private-blob/types.d.ts +51 -0
- package/dist/private-blob/types.d.ts.map +1 -0
- package/dist/private-blob/types.js +2 -0
- package/dist/private-blob/types.js.map +1 -0
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/scripts/utils.d.ts +4 -4
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +30 -6
- package/dist/scripts/utils.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +5 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +2 -2
- package/dist/server/email.d.ts +2 -0
- package/dist/server/email.d.ts.map +1 -1
- package/dist/server/email.js +3 -0
- package/dist/server/email.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-native.css +24 -0
- package/docs/content/template-analytics.md +5 -0
- package/docs/content/tracking.md +45 -0
- package/package.json +3 -1
- package/corpus/templates/analytics/app/pages/overview/OverviewPage.tsx +0 -209
|
@@ -6,8 +6,17 @@ import {
|
|
|
6
6
|
type LlmConnectionStatus,
|
|
7
7
|
} from "../shared/llm-connection.js";
|
|
8
8
|
import { agentNativePath } from "./api-path.js";
|
|
9
|
+
import type {
|
|
10
|
+
SessionReplayOptions,
|
|
11
|
+
SessionReplayStartResult,
|
|
12
|
+
} from "./session-replay.js";
|
|
9
13
|
import { scrubUrl } from "./url-scrub.js";
|
|
10
14
|
export { scrubUrl } from "./url-scrub.js";
|
|
15
|
+
export type {
|
|
16
|
+
SessionReplayOptions,
|
|
17
|
+
SessionReplayStartResult,
|
|
18
|
+
SessionReplayUrlMatcher,
|
|
19
|
+
} from "./session-replay.js";
|
|
11
20
|
|
|
12
21
|
declare global {
|
|
13
22
|
interface Window {
|
|
@@ -29,6 +38,21 @@ type PageviewTrackingState = {
|
|
|
29
38
|
lastPageviewKey: string | null;
|
|
30
39
|
};
|
|
31
40
|
|
|
41
|
+
export type ConfigureTrackingOptions = {
|
|
42
|
+
/**
|
|
43
|
+
* Agent Native first-party analytics public key. This mirrors hosted
|
|
44
|
+
* analytics SDKs where consumers pass the key at setup time instead of
|
|
45
|
+
* relying on build-time environment variables.
|
|
46
|
+
*/
|
|
47
|
+
key?: string;
|
|
48
|
+
/** Alias for `key`, matching the replay ingest payload name. */
|
|
49
|
+
publicKey?: string;
|
|
50
|
+
/** First-party analytics track endpoint. */
|
|
51
|
+
endpoint?: string;
|
|
52
|
+
getDefaultProps?: GetDefaultProps;
|
|
53
|
+
sessionReplay?: boolean | SessionReplayOptions;
|
|
54
|
+
};
|
|
55
|
+
|
|
32
56
|
type SentryUser = {
|
|
33
57
|
id?: string;
|
|
34
58
|
email?: string;
|
|
@@ -36,6 +60,8 @@ type SentryUser = {
|
|
|
36
60
|
};
|
|
37
61
|
|
|
38
62
|
let _getDefaultProps: GetDefaultProps | null = null;
|
|
63
|
+
let _agentNativeAnalyticsPublicKey: string | null = null;
|
|
64
|
+
let _agentNativeAnalyticsEndpoint: string | null = null;
|
|
39
65
|
let _amplitudeInitialized = false;
|
|
40
66
|
let _sentryInitialized = false;
|
|
41
67
|
let _llmConnectionStatus: LlmConnectionStatus | null = null;
|
|
@@ -233,6 +259,10 @@ function getOrCreateAnonymousId(): string | undefined {
|
|
|
233
259
|
return id;
|
|
234
260
|
}
|
|
235
261
|
|
|
262
|
+
export function getAnalyticsAnonymousId(): string | undefined {
|
|
263
|
+
return getOrCreateAnonymousId();
|
|
264
|
+
}
|
|
265
|
+
|
|
236
266
|
function getOrCreateSessionId(): string | undefined {
|
|
237
267
|
if (typeof window === "undefined") return undefined;
|
|
238
268
|
const now = Date.now();
|
|
@@ -253,6 +283,10 @@ function getOrCreateSessionId(): string | undefined {
|
|
|
253
283
|
return id;
|
|
254
284
|
}
|
|
255
285
|
|
|
286
|
+
export function getAnalyticsSessionId(): string | undefined {
|
|
287
|
+
return getOrCreateSessionId();
|
|
288
|
+
}
|
|
289
|
+
|
|
256
290
|
function truncateFirstTouchField(value: string | null | undefined): string {
|
|
257
291
|
if (!value) return "";
|
|
258
292
|
const trimmed = value.trim();
|
|
@@ -725,9 +759,14 @@ function getPageviewTrackingState(): PageviewTrackingState {
|
|
|
725
759
|
return g[PAGEVIEW_TRACKING_STATE_KEY];
|
|
726
760
|
}
|
|
727
761
|
|
|
728
|
-
export function configureTracking(options: {
|
|
729
|
-
|
|
730
|
-
|
|
762
|
+
export function configureTracking(options: ConfigureTrackingOptions): void {
|
|
763
|
+
const publicKey = options.key || options.publicKey;
|
|
764
|
+
if (publicKey) {
|
|
765
|
+
_agentNativeAnalyticsPublicKey = publicKey;
|
|
766
|
+
}
|
|
767
|
+
if (options.endpoint) {
|
|
768
|
+
_agentNativeAnalyticsEndpoint = options.endpoint;
|
|
769
|
+
}
|
|
731
770
|
if (options.getDefaultProps) {
|
|
732
771
|
_getDefaultProps = options.getDefaultProps;
|
|
733
772
|
}
|
|
@@ -737,7 +776,101 @@ export function configureTracking(options: {
|
|
|
737
776
|
captureFirstTouchAttribution();
|
|
738
777
|
installLlmConnectionRefresh();
|
|
739
778
|
installPageviewTracking();
|
|
779
|
+
maybeInstallSessionReplay(options.sessionReplay, {
|
|
780
|
+
endpoint: options.endpoint,
|
|
781
|
+
publicKey,
|
|
782
|
+
});
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
function sessionReplayEnabledFromEnv(): boolean {
|
|
787
|
+
const env = (import.meta.env as Record<string, string | undefined>) ?? {};
|
|
788
|
+
const value =
|
|
789
|
+
env.VITE_AGENT_NATIVE_SESSION_REPLAY_ENABLED ||
|
|
790
|
+
env.VITE_SESSION_REPLAY_ENABLED;
|
|
791
|
+
return /^(1|true|yes|on)$/i.test((value ?? "").trim());
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
function configuredSessionReplayOptions(
|
|
795
|
+
config: boolean | SessionReplayOptions | undefined,
|
|
796
|
+
tracking: { endpoint?: string; publicKey?: string } = {},
|
|
797
|
+
): SessionReplayOptions | null {
|
|
798
|
+
const publicKey = tracking.publicKey || _agentNativeAnalyticsPublicKey;
|
|
799
|
+
const trackingEndpoint = tracking.endpoint || _agentNativeAnalyticsEndpoint;
|
|
800
|
+
const endpoint = trackingEndpoint
|
|
801
|
+
? replayEndpointFromTrackingEndpoint(trackingEndpoint)
|
|
802
|
+
: undefined;
|
|
803
|
+
const withTrackingDefaults = (
|
|
804
|
+
options: SessionReplayOptions,
|
|
805
|
+
): SessionReplayOptions => ({
|
|
806
|
+
...(publicKey && !options.publicKey ? { publicKey } : {}),
|
|
807
|
+
...(endpoint && !options.endpoint ? { endpoint } : {}),
|
|
808
|
+
...options,
|
|
809
|
+
});
|
|
810
|
+
|
|
811
|
+
if (config === true) return withTrackingDefaults({});
|
|
812
|
+
if (config && typeof config === "object") {
|
|
813
|
+
if (config.enabled === false) return null;
|
|
814
|
+
return withTrackingDefaults(config);
|
|
740
815
|
}
|
|
816
|
+
return sessionReplayEnabledFromEnv() ? withTrackingDefaults({}) : null;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
function replayEndpointFromTrackingEndpoint(value: string): string | undefined {
|
|
820
|
+
try {
|
|
821
|
+
const url = new URL(value);
|
|
822
|
+
if (url.pathname.endsWith("/api/analytics/track")) {
|
|
823
|
+
url.pathname = url.pathname.replace(
|
|
824
|
+
/\/api\/analytics\/track$/,
|
|
825
|
+
"/api/analytics/replay",
|
|
826
|
+
);
|
|
827
|
+
return url.toString();
|
|
828
|
+
}
|
|
829
|
+
if (url.pathname.endsWith("/track")) {
|
|
830
|
+
url.pathname = url.pathname.replace(/\/track$/, "/api/analytics/replay");
|
|
831
|
+
return url.toString();
|
|
832
|
+
}
|
|
833
|
+
} catch {
|
|
834
|
+
// Fall through to relative-path handling below.
|
|
835
|
+
}
|
|
836
|
+
if (value.endsWith("/api/analytics/track")) {
|
|
837
|
+
return value.replace(/\/api\/analytics\/track$/, "/api/analytics/replay");
|
|
838
|
+
}
|
|
839
|
+
if (value.endsWith("/track")) {
|
|
840
|
+
return value.replace(/\/track$/, "/api/analytics/replay");
|
|
841
|
+
}
|
|
842
|
+
return undefined;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
function maybeInstallSessionReplay(
|
|
846
|
+
config: boolean | SessionReplayOptions | undefined,
|
|
847
|
+
tracking?: { endpoint?: string; publicKey?: string },
|
|
848
|
+
): void {
|
|
849
|
+
if (typeof window === "undefined") return;
|
|
850
|
+
const options = configuredSessionReplayOptions(config, tracking);
|
|
851
|
+
if (!options) return;
|
|
852
|
+
import("./session-replay.js")
|
|
853
|
+
.then((mod) => mod.startSessionReplay(options))
|
|
854
|
+
.catch(() => {});
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
export async function startSessionReplay(
|
|
858
|
+
options: SessionReplayOptions = {},
|
|
859
|
+
): Promise<SessionReplayStartResult> {
|
|
860
|
+
const mod = await import("./session-replay.js");
|
|
861
|
+
return mod.startSessionReplay(options);
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
export async function maybeStartSessionReplay(
|
|
865
|
+
options: SessionReplayOptions = {},
|
|
866
|
+
): Promise<SessionReplayStartResult> {
|
|
867
|
+
const mod = await import("./session-replay.js");
|
|
868
|
+
return mod.maybeStartSessionReplay(options);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
export async function stopSessionReplay(reason = "manual"): Promise<void> {
|
|
872
|
+
const mod = await import("./session-replay.js");
|
|
873
|
+
mod.stopSessionReplay(reason);
|
|
741
874
|
}
|
|
742
875
|
|
|
743
876
|
function inferTemplateName(properties: Record<string, unknown>): string | null {
|
|
@@ -862,11 +995,14 @@ function sendAgentNativeAnalytics(
|
|
|
862
995
|
): void {
|
|
863
996
|
if (isLocalAnalyticsHostname(window.location.hostname)) return;
|
|
864
997
|
|
|
865
|
-
const publicKey =
|
|
866
|
-
|
|
998
|
+
const publicKey =
|
|
999
|
+
_agentNativeAnalyticsPublicKey ||
|
|
1000
|
+
(import.meta.env as Record<string, string | undefined>)
|
|
1001
|
+
?.VITE_AGENT_NATIVE_ANALYTICS_PUBLIC_KEY;
|
|
867
1002
|
if (!publicKey) return;
|
|
868
1003
|
|
|
869
1004
|
const endpoint =
|
|
1005
|
+
_agentNativeAnalyticsEndpoint ||
|
|
870
1006
|
(import.meta.env as Record<string, string | undefined>)
|
|
871
1007
|
?.VITE_AGENT_NATIVE_ANALYTICS_ENDPOINT ||
|
|
872
1008
|
AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT;
|