@agent-native/core 0.90.9 → 0.90.11

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.
Files changed (132) hide show
  1. package/README.md +7 -28
  2. package/corpus/README.md +1 -1
  3. package/corpus/core/CHANGELOG.md +18 -0
  4. package/corpus/core/docs/content/agent-native-toolkit.mdx +1 -1
  5. package/corpus/core/docs/content/locales/ar-SA/agent-native-toolkit.mdx +1 -1
  6. package/corpus/core/docs/content/locales/ar-SA/tracking.mdx +3 -3
  7. package/corpus/core/docs/content/locales/de-DE/agent-native-toolkit.mdx +1 -1
  8. package/corpus/core/docs/content/locales/de-DE/tracking.mdx +3 -3
  9. package/corpus/core/docs/content/locales/es-ES/agent-native-toolkit.mdx +1 -1
  10. package/corpus/core/docs/content/locales/es-ES/tracking.mdx +3 -3
  11. package/corpus/core/docs/content/locales/fr-FR/agent-native-toolkit.mdx +1 -1
  12. package/corpus/core/docs/content/locales/fr-FR/tracking.mdx +3 -3
  13. package/corpus/core/docs/content/locales/hi-IN/agent-native-toolkit.mdx +1 -1
  14. package/corpus/core/docs/content/locales/hi-IN/tracking.mdx +3 -3
  15. package/corpus/core/docs/content/locales/ja-JP/agent-native-toolkit.mdx +1 -1
  16. package/corpus/core/docs/content/locales/ja-JP/tracking.mdx +3 -3
  17. package/corpus/core/docs/content/locales/ko-KR/agent-native-toolkit.mdx +1 -1
  18. package/corpus/core/docs/content/locales/ko-KR/tracking.mdx +3 -3
  19. package/corpus/core/docs/content/locales/pt-BR/agent-native-toolkit.mdx +1 -1
  20. package/corpus/core/docs/content/locales/pt-BR/tracking.mdx +3 -3
  21. package/corpus/core/docs/content/locales/zh-CN/agent-native-toolkit.mdx +1 -1
  22. package/corpus/core/docs/content/locales/zh-CN/tracking.mdx +3 -3
  23. package/corpus/core/docs/content/locales/zh-TW/agent-native-toolkit.mdx +1 -1
  24. package/corpus/core/docs/content/locales/zh-TW/tracking.mdx +3 -3
  25. package/corpus/core/docs/content/tracking.mdx +3 -3
  26. package/corpus/core/package.json +1 -1
  27. package/corpus/core/src/agent/durable-background.ts +5 -5
  28. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +40 -8
  29. package/corpus/core/src/agent/engine/anthropic-engine.ts +25 -7
  30. package/corpus/core/src/agent/engine/output-tokens.ts +94 -0
  31. package/corpus/core/src/agent/production-agent.ts +46 -7
  32. package/corpus/core/src/agent/types.ts +3 -2
  33. package/corpus/core/src/client/analytics.ts +17 -3
  34. package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +3 -1
  35. package/corpus/core/src/client/blocks/library/wireframe.tsx +6 -1
  36. package/corpus/core/src/db/client.ts +12 -9
  37. package/corpus/core/src/file-upload/builder.ts +10 -23
  38. package/corpus/core/src/file-upload/types.ts +3 -3
  39. package/corpus/core/src/shared/reasoning-effort.ts +23 -0
  40. package/corpus/core/src/styles/blocks.css +7 -0
  41. package/corpus/templates/analytics/.agents/skills/session-replay/SKILL.md +9 -4
  42. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +21 -7
  43. package/corpus/templates/analytics/app/entry.client.tsx +6 -1
  44. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +1 -1
  45. package/corpus/templates/analytics/changelog/2026-07-07-analytics-now-recovers-from-stale-route-chunks-after-deploys.md +6 -0
  46. package/corpus/templates/analytics/changelog/2026-07-07-metric-dashboard-cards-now-show-warehouse-backed-numeric-val.md +6 -0
  47. package/corpus/templates/clips/actions/create-recording.ts +1 -1
  48. package/corpus/templates/clips/actions/finalize-recording.ts +2 -2
  49. package/corpus/templates/clips/actions/import-loom-recording.ts +1 -1
  50. package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +1 -1
  51. package/corpus/templates/clips/actions/regenerate-chapters.ts +7 -0
  52. package/corpus/templates/clips/app/hooks/use-auto-title.ts +15 -5
  53. package/corpus/templates/clips/app/routes/download.tsx +12 -4
  54. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +1 -0
  55. package/corpus/templates/clips/changelog/2026-07-07-auto-generated-chapter-requests-now-open-the-matching-agent-.md +6 -0
  56. package/corpus/templates/clips/changelog/2026-07-07-clip-video-uploads-now-compress-in-the-background-while-keeping.md +6 -0
  57. package/corpus/templates/clips/changelog/2026-07-07-desktop-settings-and-fn-dictation-are-more-reliable.md +6 -0
  58. package/corpus/templates/clips/changelog/2026-07-07-desktop-settings-now-includes-a-manual-update-check-with-res.md +6 -0
  59. package/corpus/templates/clips/changelog/2026-07-07-the-clips-desktop-download-page-now-uses-the-agent-native-ap.md +6 -0
  60. package/corpus/templates/clips/desktop/src/app.tsx +95 -8
  61. package/corpus/templates/clips/desktop/src/lib/updater.ts +60 -43
  62. package/corpus/templates/clips/desktop/src/styles.css +5 -0
  63. package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +93 -23
  64. package/corpus/templates/dispatch/changelog/2026-07-07-overview-is-now-just-ask-dispatch-and-a-list-of-apps.md +6 -0
  65. package/dist/agent/durable-background.d.ts +1 -1
  66. package/dist/agent/durable-background.d.ts.map +1 -1
  67. package/dist/agent/durable-background.js +5 -3
  68. package/dist/agent/durable-background.js.map +1 -1
  69. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  70. package/dist/agent/engine/ai-sdk-engine.js +24 -4
  71. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  72. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  73. package/dist/agent/engine/anthropic-engine.js +13 -3
  74. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  75. package/dist/agent/engine/output-tokens.d.ts +27 -0
  76. package/dist/agent/engine/output-tokens.d.ts.map +1 -1
  77. package/dist/agent/engine/output-tokens.js +70 -0
  78. package/dist/agent/engine/output-tokens.js.map +1 -1
  79. package/dist/agent/production-agent.d.ts.map +1 -1
  80. package/dist/agent/production-agent.js +41 -7
  81. package/dist/agent/production-agent.js.map +1 -1
  82. package/dist/agent/types.d.ts +3 -2
  83. package/dist/agent/types.d.ts.map +1 -1
  84. package/dist/agent/types.js.map +1 -1
  85. package/dist/client/analytics.d.ts.map +1 -1
  86. package/dist/client/analytics.js +14 -3
  87. package/dist/client/analytics.js.map +1 -1
  88. package/dist/client/blocks/library/wireframe-kit.d.ts +1 -0
  89. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  90. package/dist/client/blocks/library/wireframe-kit.js +2 -1
  91. package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
  92. package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
  93. package/dist/client/blocks/library/wireframe.js +6 -1
  94. package/dist/client/blocks/library/wireframe.js.map +1 -1
  95. package/dist/db/client.d.ts.map +1 -1
  96. package/dist/db/client.js +12 -7
  97. package/dist/db/client.js.map +1 -1
  98. package/dist/file-upload/builder.d.ts.map +1 -1
  99. package/dist/file-upload/builder.js +9 -19
  100. package/dist/file-upload/builder.js.map +1 -1
  101. package/dist/file-upload/types.d.ts +3 -3
  102. package/dist/file-upload/types.d.ts.map +1 -1
  103. package/dist/file-upload/types.js.map +1 -1
  104. package/dist/secrets/routes.d.ts +6 -6
  105. package/dist/shared/reasoning-effort.d.ts +1 -0
  106. package/dist/shared/reasoning-effort.d.ts.map +1 -1
  107. package/dist/shared/reasoning-effort.js +18 -0
  108. package/dist/shared/reasoning-effort.js.map +1 -1
  109. package/dist/styles/blocks.css +7 -0
  110. package/docs/content/agent-native-toolkit.mdx +1 -1
  111. package/docs/content/locales/ar-SA/agent-native-toolkit.mdx +1 -1
  112. package/docs/content/locales/ar-SA/tracking.mdx +3 -3
  113. package/docs/content/locales/de-DE/agent-native-toolkit.mdx +1 -1
  114. package/docs/content/locales/de-DE/tracking.mdx +3 -3
  115. package/docs/content/locales/es-ES/agent-native-toolkit.mdx +1 -1
  116. package/docs/content/locales/es-ES/tracking.mdx +3 -3
  117. package/docs/content/locales/fr-FR/agent-native-toolkit.mdx +1 -1
  118. package/docs/content/locales/fr-FR/tracking.mdx +3 -3
  119. package/docs/content/locales/hi-IN/agent-native-toolkit.mdx +1 -1
  120. package/docs/content/locales/hi-IN/tracking.mdx +3 -3
  121. package/docs/content/locales/ja-JP/agent-native-toolkit.mdx +1 -1
  122. package/docs/content/locales/ja-JP/tracking.mdx +3 -3
  123. package/docs/content/locales/ko-KR/agent-native-toolkit.mdx +1 -1
  124. package/docs/content/locales/ko-KR/tracking.mdx +3 -3
  125. package/docs/content/locales/pt-BR/agent-native-toolkit.mdx +1 -1
  126. package/docs/content/locales/pt-BR/tracking.mdx +3 -3
  127. package/docs/content/locales/zh-CN/agent-native-toolkit.mdx +1 -1
  128. package/docs/content/locales/zh-CN/tracking.mdx +3 -3
  129. package/docs/content/locales/zh-TW/agent-native-toolkit.mdx +1 -1
  130. package/docs/content/locales/zh-TW/tracking.mdx +3 -3
  131. package/docs/content/tracking.mdx +3 -3
  132. package/package.json +1 -1
@@ -159,8 +159,9 @@ export interface AgentChatRequest {
159
159
  continuationCount?: number;
160
160
  /**
161
161
  * True when the dispatcher expects the self-POST to land in a real
162
- * Netlify `-background` function (15-min budget) rather than the ~60s
163
- * synchronous function. See `shouldUseBackgroundFunctionTimeoutForWorker`.
162
+ * Netlify `-background` function rather than the ~60s synchronous function.
163
+ * This is diagnostic only; the 15-minute budget is unlocked by the worker's
164
+ * actual runtime marker.
164
165
  */
165
166
  backgroundFunctionRuntimeExpected?: boolean;
166
167
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ActionChatUIConfig } from \"../action-ui.js\";\nimport type { AgentMcpAppPayload } from \"../mcp-client/app-result.js\";\nimport type { ReasoningEffort } from \"../shared/reasoning-effort.js\";\n\nexport interface AgentNativeJsonSchema {\n type?: string | string[];\n description?: string;\n enum?: unknown[];\n const?: unknown;\n properties?: Record<string, AgentNativeJsonSchema>;\n required?: string[];\n additionalProperties?: boolean | AgentNativeJsonSchema;\n items?: AgentNativeJsonSchema;\n oneOf?: AgentNativeJsonSchema[];\n anyOf?: AgentNativeJsonSchema[];\n allOf?: AgentNativeJsonSchema[];\n not?: AgentNativeJsonSchema;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n minimum?: number;\n maximum?: number;\n minItems?: number;\n maxItems?: number;\n}\n\nexport interface ActionTool {\n description: string;\n parameters?: AgentNativeJsonSchema & {\n type: \"object\";\n properties: Record<string, AgentNativeJsonSchema>;\n required?: string[];\n };\n}\n\n/** @deprecated Use `ActionTool` instead */\nexport type ScriptTool = ActionTool;\n\nexport interface AgentMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport type AgentChatStructuredContentPart =\n | { type: \"text\"; text: string }\n | {\n type: \"tool-call\";\n id?: string;\n toolCallId?: string;\n name?: string;\n toolName?: string;\n input?: unknown;\n args?: unknown;\n }\n | {\n type: \"tool-result\";\n toolCallId: string;\n /** Persisted for replay; omitted in older rows is backfilled server-side. */\n toolName?: string;\n toolInput?: string;\n content: string;\n isError?: boolean;\n };\n\nexport interface AgentChatStructuredMessage {\n role: \"user\" | \"assistant\";\n content: AgentChatStructuredContentPart[];\n}\n\nexport interface AgentChatReference {\n type: \"file\" | \"skill\" | \"mention\" | \"agent\" | \"custom-agent\";\n path: string;\n name: string;\n source: string;\n refType?: string;\n refId?: string;\n slotKey?: string;\n slotLabel?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface MentionProviderItem {\n id: string;\n label: string;\n description?: string;\n icon?: string;\n refType: string;\n refId?: string;\n refPath?: string;\n slotKey?: string;\n slotLabel?: string;\n metadata?: Record<string, unknown>;\n clearsSlots?: string[];\n relatedReferences?: MentionProviderReference[];\n}\n\nexport interface MentionProviderReference {\n label: string;\n icon?: string;\n source?: string;\n refType: string;\n refId?: string | null;\n refPath?: string | null;\n slotKey?: string;\n slotLabel?: string;\n metadata?: Record<string, unknown>;\n clearsSlots?: string[];\n relatedReferences?: MentionProviderReference[];\n}\n\nexport interface MentionProvider {\n label: string;\n icon?: string;\n search: (\n query: string,\n /** The H3 event for the current request — use to make internal API calls */\n event?: any,\n ) => MentionProviderItem[] | Promise<MentionProviderItem[]>;\n}\n\nexport interface AgentChatAttachment {\n type: string;\n name: string;\n data?: string;\n contentType?: string;\n text?: string;\n}\n\nexport interface AgentChatScope {\n type: string;\n id: string;\n label?: string;\n}\n\nexport interface AgentChatRequest {\n message: string;\n /**\n * User-visible text to persist in chat history. `message` may be normalized\n * for the model (for example mention markup or internal continuation text).\n */\n displayMessage?: string;\n history?: AgentMessage[];\n /**\n * Provider-neutral transcript used for run recovery. Unlike `history`,\n * this preserves assistant tool calls and matching tool results so\n * continuation turns do not re-run completed read-only tools.\n */\n structuredHistory?: AgentChatStructuredMessage[];\n references?: AgentChatReference[];\n threadId?: string;\n attachments?: AgentChatAttachment[];\n /** Internal retry/continuation requests should not create visible user turns. */\n internalContinuation?: boolean;\n /**\n * Internal marker set ONLY by the durable-background self-dispatch (see\n * `AGENT_CHAT_BACKGROUND_RUN_FIELD`). Present when the agent-chat handler is\n * re-entered as the background worker: it carries the pre-claimed `runId` and\n * logical `turnId` so the worker runs the loop inline with the background\n * soft-timeout instead of re-claiming the slot or re-dispatching. Untrusted\n * on its own — the `_process-run` route HMAC-verifies the dispatch before\n * invoking the handler. Absent on every normal client request.\n */\n __backgroundRun?: {\n runId: string;\n turnId?: string;\n continuationReason?:\n | \"run_timeout\"\n | \"loop_limit\"\n | \"no_progress\"\n | \"stream_ended\"\n | \"gateway_timeout\"\n | \"network_interrupted\";\n actionPreparationTool?: string;\n /**\n * Number of server-driven background→background continuations already\n * chained into this logical turn (0 on the first chunk). The worker\n * increments this when it re-fires `_process-run` at a soft-timeout\n * boundary and refuses to chain past `MAX_BACKGROUND_RUN_CONTINUATIONS`.\n */\n continuationCount?: number;\n /**\n * True when the dispatcher expects the self-POST to land in a real\n * Netlify `-background` function (15-min budget) rather than the ~60s\n * synchronous function. See `shouldUseBackgroundFunctionTimeoutForWorker`.\n */\n backgroundFunctionRuntimeExpected?: boolean;\n /**\n * True when the dispatch body carries ONLY this marker and the worker\n * must rehydrate the full request body from the run row's\n * `dispatch_payload` column (`readRunDispatchPayload`). Keeps the\n * self-POST under Netlify's 256KB background-function body cap.\n */\n payloadRef?: boolean;\n };\n /**\n * Stable identity for the logical assistant turn this request belongs to.\n * The client sends the SAME turnId for the initial POST and every\n * auto-continuation re-POST of one turn, so the server can fold each\n * continuation run's output onto a single durable assistant message instead\n * of dropping the earlier chunks. Defaults to the run id when absent.\n */\n turnId?: string;\n /** Execution mode for this turn. Plan mode is read-only and proposes before acting. */\n mode?: \"act\" | \"plan\";\n /** Per-request model override (ephemeral, from the composer model picker). */\n model?: string;\n /** Per-request engine override (sent alongside model for cross-provider switches). */\n engine?: string;\n /** Per-request reasoning effort override (ephemeral, from the composer picker). */\n effort?: ReasoningEffort;\n /** Usage-tracking label for this call (e.g. \"chat\", \"summarize\"). Default: \"chat\". */\n usageLabel?: string;\n /** Stable browser tab id so screen/url context and navigation commands are tab-scoped. */\n browserTabId?: string;\n /** Resource scope for this chat thread, e.g. the deck currently bound to the tab. */\n scope?: AgentChatScope | null;\n /** When true, expose this chat turn as a user-visible run in RunsTray. */\n trackInRunsTray?: boolean;\n /**\n * Approval grants for human-in-the-loop actions. Each entry is a stable\n * approval key (see the `approval_required` event's `approvalKey`). When the\n * agent calls an action declared `needsApproval`, the loop pauses and emits\n * `approval_required`; the client re-issues the turn (typically an empty\n * continuation) with the approved call's key here so the gate lets it run.\n * Keys not present here keep the action paused. The model never sees or sets\n * this — it is supplied by the human's approve affordance.\n */\n approvedToolCalls?: string[];\n}\n\nexport type AgentToolInput = Record<string, unknown>;\n\nexport type AgentChatEvent =\n | { type: \"text\"; text: string }\n | { type: \"thinking\"; text: string }\n | {\n type: \"activity\";\n label: string;\n tool?: string;\n id?: string;\n progressBytes?: number;\n }\n | { type: \"stream_keepalive\" }\n | { type: \"tool_start\"; tool: string; id?: string; input: AgentToolInput }\n | {\n type: \"tool_done\";\n tool: string;\n id?: string;\n input?: AgentToolInput;\n result: string;\n isError?: boolean;\n completedSideEffect?: boolean;\n mcpApp?: AgentMcpAppPayload;\n chatUI?: ActionChatUIConfig;\n }\n | {\n /**\n * The agent tried to call an action declared `needsApproval` and the loop\n * paused instead of executing it. The client should surface an\n * approve/deny affordance; on approve, re-issue the turn with\n * `approvedToolCalls: [approvalKey]` so the gate lets this call run.\n */\n type: \"approval_required\";\n tool: string;\n input: Record<string, string>;\n /** Stable key the client echoes back in `approvedToolCalls` to approve. */\n approvalKey: string;\n /** The model-side tool-call id for this paused call, when available. */\n toolCallId?: string;\n }\n | {\n type: \"agent_call\";\n agent: string;\n status: \"start\" | \"done\" | \"error\";\n }\n | { type: \"agent_call_text\"; agent: string; text: string }\n | {\n type: \"agent_task\";\n taskId: string;\n threadId: string;\n description: string;\n status: \"running\" | \"completed\" | \"errored\";\n }\n | {\n type: \"agent_task_update\";\n taskId: string;\n preview: string;\n currentStep?: string;\n }\n | {\n type: \"agent_task_complete\";\n taskId: string;\n summary: string;\n }\n | { type: \"done\" }\n | {\n type: \"error\";\n error: string;\n /**\n * Optional machine-readable error code. Builder gateway uses codes\n * like \"credits-limit-monthly\" / \"unauthorized\" / \"gateway_not_enabled\"\n * so the chat UI can render a structured CTA (e.g. upgrade button).\n */\n errorCode?: string;\n /** Optional link paired with errorCode — e.g. Builder billing page. */\n upgradeUrl?: string;\n /** Optional details for expandable UI/debugging. */\n details?: string;\n /** True when the user can reasonably continue/retry from partial work. */\n recoverable?: boolean;\n }\n /**\n * Legacy SSE terminal event. New streams emit\n * `{ type: \"error\", errorCode: \"missing_credentials\" }` instead.\n */\n | { type: \"missing_api_key\" }\n | { type: \"loop_limit\"; maxIterations?: number }\n | {\n /**\n * An in-loop `Processor` aborted the run via `abort()` (which throws a\n * `TripWire`). The loop catches it, emits this event, stops cleanly, and\n * surfaces the reason as a final assistant message. Structural hook for\n * real-time guardrails and a proof-of-done / coverage gate.\n */\n type: \"tripwire\";\n reason: string;\n /** Name of the processor that aborted, when it declared one. */\n processor?: string;\n }\n | {\n type: \"auto_continue\";\n reason:\n | \"run_timeout\"\n | \"loop_limit\"\n | \"no_progress\"\n | \"stream_ended\"\n | \"gateway_timeout\"\n | \"network_interrupted\";\n maxIterations?: number;\n }\n | { type: \"clear\" };\n\nexport interface RunEvent {\n seq: number;\n event: AgentChatEvent;\n}\n\nexport type RunStatus = \"running\" | \"completed\" | \"errored\" | \"aborted\";\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ActionChatUIConfig } from \"../action-ui.js\";\nimport type { AgentMcpAppPayload } from \"../mcp-client/app-result.js\";\nimport type { ReasoningEffort } from \"../shared/reasoning-effort.js\";\n\nexport interface AgentNativeJsonSchema {\n type?: string | string[];\n description?: string;\n enum?: unknown[];\n const?: unknown;\n properties?: Record<string, AgentNativeJsonSchema>;\n required?: string[];\n additionalProperties?: boolean | AgentNativeJsonSchema;\n items?: AgentNativeJsonSchema;\n oneOf?: AgentNativeJsonSchema[];\n anyOf?: AgentNativeJsonSchema[];\n allOf?: AgentNativeJsonSchema[];\n not?: AgentNativeJsonSchema;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n minimum?: number;\n maximum?: number;\n minItems?: number;\n maxItems?: number;\n}\n\nexport interface ActionTool {\n description: string;\n parameters?: AgentNativeJsonSchema & {\n type: \"object\";\n properties: Record<string, AgentNativeJsonSchema>;\n required?: string[];\n };\n}\n\n/** @deprecated Use `ActionTool` instead */\nexport type ScriptTool = ActionTool;\n\nexport interface AgentMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport type AgentChatStructuredContentPart =\n | { type: \"text\"; text: string }\n | {\n type: \"tool-call\";\n id?: string;\n toolCallId?: string;\n name?: string;\n toolName?: string;\n input?: unknown;\n args?: unknown;\n }\n | {\n type: \"tool-result\";\n toolCallId: string;\n /** Persisted for replay; omitted in older rows is backfilled server-side. */\n toolName?: string;\n toolInput?: string;\n content: string;\n isError?: boolean;\n };\n\nexport interface AgentChatStructuredMessage {\n role: \"user\" | \"assistant\";\n content: AgentChatStructuredContentPart[];\n}\n\nexport interface AgentChatReference {\n type: \"file\" | \"skill\" | \"mention\" | \"agent\" | \"custom-agent\";\n path: string;\n name: string;\n source: string;\n refType?: string;\n refId?: string;\n slotKey?: string;\n slotLabel?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface MentionProviderItem {\n id: string;\n label: string;\n description?: string;\n icon?: string;\n refType: string;\n refId?: string;\n refPath?: string;\n slotKey?: string;\n slotLabel?: string;\n metadata?: Record<string, unknown>;\n clearsSlots?: string[];\n relatedReferences?: MentionProviderReference[];\n}\n\nexport interface MentionProviderReference {\n label: string;\n icon?: string;\n source?: string;\n refType: string;\n refId?: string | null;\n refPath?: string | null;\n slotKey?: string;\n slotLabel?: string;\n metadata?: Record<string, unknown>;\n clearsSlots?: string[];\n relatedReferences?: MentionProviderReference[];\n}\n\nexport interface MentionProvider {\n label: string;\n icon?: string;\n search: (\n query: string,\n /** The H3 event for the current request — use to make internal API calls */\n event?: any,\n ) => MentionProviderItem[] | Promise<MentionProviderItem[]>;\n}\n\nexport interface AgentChatAttachment {\n type: string;\n name: string;\n data?: string;\n contentType?: string;\n text?: string;\n}\n\nexport interface AgentChatScope {\n type: string;\n id: string;\n label?: string;\n}\n\nexport interface AgentChatRequest {\n message: string;\n /**\n * User-visible text to persist in chat history. `message` may be normalized\n * for the model (for example mention markup or internal continuation text).\n */\n displayMessage?: string;\n history?: AgentMessage[];\n /**\n * Provider-neutral transcript used for run recovery. Unlike `history`,\n * this preserves assistant tool calls and matching tool results so\n * continuation turns do not re-run completed read-only tools.\n */\n structuredHistory?: AgentChatStructuredMessage[];\n references?: AgentChatReference[];\n threadId?: string;\n attachments?: AgentChatAttachment[];\n /** Internal retry/continuation requests should not create visible user turns. */\n internalContinuation?: boolean;\n /**\n * Internal marker set ONLY by the durable-background self-dispatch (see\n * `AGENT_CHAT_BACKGROUND_RUN_FIELD`). Present when the agent-chat handler is\n * re-entered as the background worker: it carries the pre-claimed `runId` and\n * logical `turnId` so the worker runs the loop inline with the background\n * soft-timeout instead of re-claiming the slot or re-dispatching. Untrusted\n * on its own — the `_process-run` route HMAC-verifies the dispatch before\n * invoking the handler. Absent on every normal client request.\n */\n __backgroundRun?: {\n runId: string;\n turnId?: string;\n continuationReason?:\n | \"run_timeout\"\n | \"loop_limit\"\n | \"no_progress\"\n | \"stream_ended\"\n | \"gateway_timeout\"\n | \"network_interrupted\";\n actionPreparationTool?: string;\n /**\n * Number of server-driven background→background continuations already\n * chained into this logical turn (0 on the first chunk). The worker\n * increments this when it re-fires `_process-run` at a soft-timeout\n * boundary and refuses to chain past `MAX_BACKGROUND_RUN_CONTINUATIONS`.\n */\n continuationCount?: number;\n /**\n * True when the dispatcher expects the self-POST to land in a real\n * Netlify `-background` function rather than the ~60s synchronous function.\n * This is diagnostic only; the 15-minute budget is unlocked by the worker's\n * actual runtime marker.\n */\n backgroundFunctionRuntimeExpected?: boolean;\n /**\n * True when the dispatch body carries ONLY this marker and the worker\n * must rehydrate the full request body from the run row's\n * `dispatch_payload` column (`readRunDispatchPayload`). Keeps the\n * self-POST under Netlify's 256KB background-function body cap.\n */\n payloadRef?: boolean;\n };\n /**\n * Stable identity for the logical assistant turn this request belongs to.\n * The client sends the SAME turnId for the initial POST and every\n * auto-continuation re-POST of one turn, so the server can fold each\n * continuation run's output onto a single durable assistant message instead\n * of dropping the earlier chunks. Defaults to the run id when absent.\n */\n turnId?: string;\n /** Execution mode for this turn. Plan mode is read-only and proposes before acting. */\n mode?: \"act\" | \"plan\";\n /** Per-request model override (ephemeral, from the composer model picker). */\n model?: string;\n /** Per-request engine override (sent alongside model for cross-provider switches). */\n engine?: string;\n /** Per-request reasoning effort override (ephemeral, from the composer picker). */\n effort?: ReasoningEffort;\n /** Usage-tracking label for this call (e.g. \"chat\", \"summarize\"). Default: \"chat\". */\n usageLabel?: string;\n /** Stable browser tab id so screen/url context and navigation commands are tab-scoped. */\n browserTabId?: string;\n /** Resource scope for this chat thread, e.g. the deck currently bound to the tab. */\n scope?: AgentChatScope | null;\n /** When true, expose this chat turn as a user-visible run in RunsTray. */\n trackInRunsTray?: boolean;\n /**\n * Approval grants for human-in-the-loop actions. Each entry is a stable\n * approval key (see the `approval_required` event's `approvalKey`). When the\n * agent calls an action declared `needsApproval`, the loop pauses and emits\n * `approval_required`; the client re-issues the turn (typically an empty\n * continuation) with the approved call's key here so the gate lets it run.\n * Keys not present here keep the action paused. The model never sees or sets\n * this — it is supplied by the human's approve affordance.\n */\n approvedToolCalls?: string[];\n}\n\nexport type AgentToolInput = Record<string, unknown>;\n\nexport type AgentChatEvent =\n | { type: \"text\"; text: string }\n | { type: \"thinking\"; text: string }\n | {\n type: \"activity\";\n label: string;\n tool?: string;\n id?: string;\n progressBytes?: number;\n }\n | { type: \"stream_keepalive\" }\n | { type: \"tool_start\"; tool: string; id?: string; input: AgentToolInput }\n | {\n type: \"tool_done\";\n tool: string;\n id?: string;\n input?: AgentToolInput;\n result: string;\n isError?: boolean;\n completedSideEffect?: boolean;\n mcpApp?: AgentMcpAppPayload;\n chatUI?: ActionChatUIConfig;\n }\n | {\n /**\n * The agent tried to call an action declared `needsApproval` and the loop\n * paused instead of executing it. The client should surface an\n * approve/deny affordance; on approve, re-issue the turn with\n * `approvedToolCalls: [approvalKey]` so the gate lets this call run.\n */\n type: \"approval_required\";\n tool: string;\n input: Record<string, string>;\n /** Stable key the client echoes back in `approvedToolCalls` to approve. */\n approvalKey: string;\n /** The model-side tool-call id for this paused call, when available. */\n toolCallId?: string;\n }\n | {\n type: \"agent_call\";\n agent: string;\n status: \"start\" | \"done\" | \"error\";\n }\n | { type: \"agent_call_text\"; agent: string; text: string }\n | {\n type: \"agent_task\";\n taskId: string;\n threadId: string;\n description: string;\n status: \"running\" | \"completed\" | \"errored\";\n }\n | {\n type: \"agent_task_update\";\n taskId: string;\n preview: string;\n currentStep?: string;\n }\n | {\n type: \"agent_task_complete\";\n taskId: string;\n summary: string;\n }\n | { type: \"done\" }\n | {\n type: \"error\";\n error: string;\n /**\n * Optional machine-readable error code. Builder gateway uses codes\n * like \"credits-limit-monthly\" / \"unauthorized\" / \"gateway_not_enabled\"\n * so the chat UI can render a structured CTA (e.g. upgrade button).\n */\n errorCode?: string;\n /** Optional link paired with errorCode — e.g. Builder billing page. */\n upgradeUrl?: string;\n /** Optional details for expandable UI/debugging. */\n details?: string;\n /** True when the user can reasonably continue/retry from partial work. */\n recoverable?: boolean;\n }\n /**\n * Legacy SSE terminal event. New streams emit\n * `{ type: \"error\", errorCode: \"missing_credentials\" }` instead.\n */\n | { type: \"missing_api_key\" }\n | { type: \"loop_limit\"; maxIterations?: number }\n | {\n /**\n * An in-loop `Processor` aborted the run via `abort()` (which throws a\n * `TripWire`). The loop catches it, emits this event, stops cleanly, and\n * surfaces the reason as a final assistant message. Structural hook for\n * real-time guardrails and a proof-of-done / coverage gate.\n */\n type: \"tripwire\";\n reason: string;\n /** Name of the processor that aborted, when it declared one. */\n processor?: string;\n }\n | {\n type: \"auto_continue\";\n reason:\n | \"run_timeout\"\n | \"loop_limit\"\n | \"no_progress\"\n | \"stream_ended\"\n | \"gateway_timeout\"\n | \"network_interrupted\";\n maxIterations?: number;\n }\n | { type: \"clear\" };\n\nexport interface RunEvent {\n seq: number;\n event: AgentChatEvent;\n}\n\nexport type RunStatus = \"running\" | \"completed\" | \"errored\" | \"aborted\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/client/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/client/analytics.ts"],"names":[],"mappings":"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"}
@@ -833,8 +833,14 @@ function sessionReplayRequiresSignedInUserFromEnv() {
833
833
  return undefined;
834
834
  }
835
835
  function configuredSessionReplayOptions(config, tracking = {}) {
836
- const publicKey = tracking.publicKey || _agentNativeAnalyticsPublicKey;
837
- const trackingEndpoint = tracking.endpoint || _agentNativeAnalyticsEndpoint;
836
+ const env = import.meta.env ?? {};
837
+ const publicKey = tracking.publicKey ||
838
+ _agentNativeAnalyticsPublicKey ||
839
+ env.VITE_AGENT_NATIVE_ANALYTICS_PUBLIC_KEY;
840
+ const trackingEndpoint = tracking.endpoint ||
841
+ _agentNativeAnalyticsEndpoint ||
842
+ env.VITE_AGENT_NATIVE_ANALYTICS_ENDPOINT ||
843
+ (publicKey ? AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT : undefined);
838
844
  const endpoint = trackingEndpoint
839
845
  ? replayEndpointFromTrackingEndpoint(trackingEndpoint)
840
846
  : undefined;
@@ -859,7 +865,12 @@ function configuredSessionReplayOptions(config, tracking = {}) {
859
865
  return null;
860
866
  return withTrackingDefaults(config);
861
867
  }
862
- return sessionReplayEnabledFromEnv() ? withTrackingDefaults({}) : null;
868
+ const autoEnabledByAnalyticsKey = !!publicKey &&
869
+ (typeof window === "undefined" ||
870
+ !isLocalAnalyticsHostname(window.location.hostname));
871
+ return sessionReplayEnabledFromEnv() || autoEnabledByAnalyticsKey
872
+ ? withTrackingDefaults({})
873
+ : null;
863
874
  }
864
875
  function replayExtraPropertiesWithDefaults(source) {
865
876
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/client/analytics.ts"],"names":[],"mappings":"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","sourcesContent":["import * as amplitude from \"@amplitude/analytics-browser\";\nimport * as Sentry from \"@sentry/browser\";\n\nimport {\n llmConnectionTrackingProperties,\n type LlmConnectionStatus,\n} from \"../shared/llm-connection.js\";\nimport { agentNativePath } from \"./api-path.js\";\nimport type {\n SessionReplayOptions,\n SessionReplayStartResult,\n} from \"./session-replay.js\";\nimport { scrubUrl } from \"./url-scrub.js\";\nexport { scrubUrl } from \"./url-scrub.js\";\nexport type {\n SessionReplayConsoleOptions,\n SessionReplayNetworkOptions,\n SessionReplayOptions,\n SessionReplayStartResult,\n SessionReplayUrlMatcher,\n} from \"./session-replay.js\";\n\ndeclare global {\n interface Window {\n gtag?: (...args: any[]) => void;\n __AGENT_NATIVE_CONFIG__?: {\n sentryDsn?: string;\n sentryEnvironment?: string;\n };\n }\n}\n\ntype GetDefaultProps = (\n name: string,\n properties: Record<string, unknown>,\n) => Record<string, unknown>;\n\ntype PageviewTrackingState = {\n installed: boolean;\n lastPageviewKey: string | null;\n};\n\nexport type ConfigureTrackingOptions = {\n /**\n * Agent Native first-party analytics public key. This mirrors hosted\n * analytics SDKs where consumers pass the key at setup time instead of\n * relying on build-time environment variables.\n */\n key?: string;\n /** Alias for `key`, matching the replay ingest payload name. */\n publicKey?: string;\n /** First-party analytics track endpoint. */\n endpoint?: string;\n getDefaultProps?: GetDefaultProps;\n sessionReplay?: boolean | SessionReplayOptions;\n};\n\ntype SentryUser = {\n id?: string;\n email?: string;\n username?: string;\n};\n\ntype TrackingIdentity = {\n userId?: string;\n userEmail?: string;\n userName?: string;\n orgId?: string | null;\n};\n\nlet _getDefaultProps: GetDefaultProps | null = null;\nlet _agentNativeAnalyticsPublicKey: string | null = null;\nlet _agentNativeAnalyticsEndpoint: string | null = null;\nlet _amplitudeInitialized = false;\nlet _sentryInitialized = false;\nlet _llmConnectionStatus: LlmConnectionStatus | null = null;\nlet _llmConnectionRefresh: Promise<void> | null = null;\nlet _llmConnectionRefreshInstalled = false;\nlet _trackingIdentity: TrackingIdentity | null = null;\nlet _trackingIdentityResolved = false;\nlet _trackingSessionRefresh: Promise<void> | null = null;\nlet _trackingSessionRefreshInstalled = false;\nlet _sessionReplayOptions: SessionReplayOptions | null = null;\nlet _sessionReplayIdentitySnapshot: TrackingIdentity | null = null;\nlet _sessionReplayStartPromise: Promise<SessionReplayStartResult | null> | null =\n null;\n// Buffer for setSentryUser calls made before Sentry has initialized.\n// `undefined` means \"no pending update\"; `null` means \"pending clear\".\nlet _pendingSentryUser: SentryUser | null | undefined = undefined;\nlet _pendingSentryOrgId: string | null | undefined = undefined;\n\nconst AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT =\n \"https://analytics.agent-native.com/track\";\nconst PAGEVIEW_TRACKING_STATE_KEY = Symbol.for(\n \"agent-native.client.pageviewTracking\",\n);\n\nconst ANONYMOUS_ID_STORAGE_KEY = \"agent-native.anonymous_id\";\nconst SESSION_ID_STORAGE_KEY = \"agent-native.session_id\";\nconst SESSION_LAST_ACTIVITY_STORAGE_KEY = \"agent-native.session_last_activity\";\nconst LLM_CONNECTION_STORAGE_KEY = \"agent-native.llm_connection_status\";\nconst LLM_CONNECTION_CACHE_TTL_MS = 5 * 60 * 1000;\n// 30-minute idle timeout matches GA4 / Mixpanel defaults — a tab left open\n// overnight starts a new session in the morning rather than stretching one\n// session over multiple visits.\nconst SESSION_IDLE_TIMEOUT_MS = 30 * 60 * 1000;\n\n// First-touch referral attribution (viral attribution). Captured once on the\n// visitor's first page load and persisted across the signup boundary so the\n// server-side `signup` event can record where the user came from. First-write\n// wins — an existing value is never overwritten.\nconst FIRST_TOUCH_STORAGE_KEY = \"an_attribution\";\nconst FIRST_TOUCH_COOKIE_NAME = \"an_ft\";\n// 30 days, matching the session cookie lifetime — long enough to bridge a\n// \"land today, sign up next week\" path without retaining attribution forever.\nconst FIRST_TOUCH_COOKIE_MAX_AGE_SECONDS = 2592000;\nconst FIRST_TOUCH_MAX_FIELD_LENGTH = 120;\n// Keep the serialized cookie well under the ~4KB browser cap; we bail rather\n// than write a runaway cookie if some field combination blows past this.\nconst FIRST_TOUCH_MAX_COOKIE_BYTES = 1500;\nconst FIRST_TOUCH_QUERY_FIELDS = [\n \"ref\",\n \"via\",\n \"utm_source\",\n \"utm_medium\",\n \"utm_campaign\",\n \"utm_content\",\n \"utm_term\",\n] as const;\n\nlet _firstTouchCaptured = false;\n\nexport interface FirstTouchAttribution {\n ref?: string;\n via?: string;\n utm_source?: string;\n utm_medium?: string;\n utm_campaign?: string;\n utm_content?: string;\n utm_term?: string;\n landing_path?: string;\n landing_referrer?: string;\n landed_at?: string;\n}\n\nfunction generateVisitorId(): string {\n try {\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n } catch {\n // fall through to Math.random\n }\n return (\n Date.now().toString(36) +\n Math.random().toString(36).slice(2) +\n Math.random().toString(36).slice(2)\n );\n}\n\nfunction safeStorageGet(key: string): string | null {\n try {\n return window.localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nfunction safeStorageSet(key: string, value: string): void {\n try {\n window.localStorage.setItem(key, value);\n } catch {\n // private browsing / storage disabled — best-effort\n }\n}\n\nfunction readCachedLlmConnectionStatus(): LlmConnectionStatus | null {\n if (typeof window === \"undefined\") return null;\n const raw = safeStorageGet(LLM_CONNECTION_STORAGE_KEY);\n if (!raw) return null;\n try {\n const parsed = JSON.parse(raw) as LlmConnectionStatus & {\n cachedAt?: number;\n };\n if (\n typeof parsed.cachedAt !== \"number\" ||\n Date.now() - parsed.cachedAt > LLM_CONNECTION_CACHE_TTL_MS\n ) {\n return null;\n }\n return {\n configured: parsed.configured,\n engine: parsed.engine,\n model: parsed.model,\n source: parsed.source,\n envVar: parsed.envVar,\n };\n } catch {\n return null;\n }\n}\n\nfunction cacheLlmConnectionStatus(status: LlmConnectionStatus): void {\n if (typeof window === \"undefined\") return;\n safeStorageSet(\n LLM_CONNECTION_STORAGE_KEY,\n JSON.stringify({ ...status, cachedAt: Date.now() }),\n );\n}\n\nfunction normalizeAgentEngineStatus(data: unknown): LlmConnectionStatus {\n const value = data as Record<string, unknown> | null;\n if (!value || value.configured !== true) {\n return { configured: false };\n }\n return {\n configured: true,\n engine: typeof value.engine === \"string\" ? value.engine : null,\n model: typeof value.model === \"string\" ? value.model : null,\n source: typeof value.source === \"string\" ? value.source : null,\n envVar: typeof value.envVar === \"string\" ? value.envVar : null,\n };\n}\n\nfunction refreshLlmConnectionStatus(): Promise<void> {\n if (typeof window === \"undefined\" || typeof fetch !== \"function\") {\n return Promise.resolve();\n }\n if (_llmConnectionRefresh) return _llmConnectionRefresh;\n let request: Promise<Response>;\n try {\n request = fetch(agentNativePath(\"/_agent-native/agent-engine/status\"));\n } catch {\n return Promise.resolve();\n }\n _llmConnectionRefresh = request\n .then((res) => (res.ok ? res.json() : null))\n .then((data) => {\n _llmConnectionStatus = normalizeAgentEngineStatus(data);\n cacheLlmConnectionStatus(_llmConnectionStatus);\n })\n .catch(() => {\n if (!_llmConnectionStatus) {\n _llmConnectionStatus = readCachedLlmConnectionStatus();\n }\n })\n .finally(() => {\n _llmConnectionRefresh = null;\n });\n return _llmConnectionRefresh;\n}\n\nfunction installLlmConnectionRefresh(): void {\n if (typeof window === \"undefined\" || _llmConnectionRefreshInstalled) return;\n _llmConnectionRefreshInstalled = true;\n _llmConnectionStatus = readCachedLlmConnectionStatus();\n void refreshLlmConnectionStatus();\n window.addEventListener(\"focus\", () => {\n void refreshLlmConnectionStatus();\n });\n window.addEventListener(\"agent-engine:configured-changed\", () => {\n void refreshLlmConnectionStatus();\n });\n}\n\nfunction readTrackingString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction stopSessionReplayForAuthClear(\n previousIdentity: TrackingIdentity | null,\n): void {\n if (!_sessionReplayOptions?.requireSignedInUser) {\n _sessionReplayIdentitySnapshot = null;\n return;\n }\n if (!previousIdentity?.userEmail) return;\n _sessionReplayIdentitySnapshot = previousIdentity;\n void import(\"./session-replay.js\")\n .then((mod) => mod.stopSessionReplay(\"auth-cleared\"))\n .catch(() => {\n // Auth clearing should never fail because replay cleanup failed.\n })\n .finally(() => {\n if (_sessionReplayIdentitySnapshot === previousIdentity) {\n _sessionReplayIdentitySnapshot = null;\n }\n });\n}\n\nfunction clearTrackingIdentity(): void {\n const previousIdentity = _trackingIdentity;\n stopSessionReplayForAuthClear(previousIdentity);\n _trackingIdentity = null;\n}\n\nfunction setTrackingIdentityFromSession(data: unknown): void {\n const session = data as Record<string, unknown> | null;\n if (!session || typeof session !== \"object\" || session.error) {\n clearTrackingIdentity();\n return;\n }\n const email = readTrackingString(session.email);\n const authUserId = readTrackingString(session.userId);\n const userId = email || authUserId;\n if (!userId) {\n clearTrackingIdentity();\n return;\n }\n const userName = readTrackingString(session.name);\n _trackingIdentity = {\n userId,\n ...(email ? { userEmail: email } : {}),\n ...(userName ? { userName } : {}),\n orgId: readTrackingString(session.orgId) ?? null,\n };\n}\n\nfunction refreshTrackingAuthSession(): Promise<void> {\n if (typeof window === \"undefined\" || typeof fetch !== \"function\") {\n _trackingIdentityResolved = true;\n return Promise.resolve();\n }\n if (_trackingSessionRefresh) return _trackingSessionRefresh;\n _trackingSessionRefresh = fetch(\n agentNativePath(\"/_agent-native/auth/session\"),\n )\n .then((res) => (res.ok ? res.json() : null))\n .then((data) => {\n setTrackingIdentityFromSession(data);\n })\n .catch(() => {\n clearTrackingIdentity();\n })\n .finally(() => {\n _trackingIdentityResolved = true;\n _trackingSessionRefresh = null;\n });\n return _trackingSessionRefresh;\n}\n\nfunction installTrackingAuthSessionRefresh(): void {\n if (typeof window === \"undefined\" || _trackingSessionRefreshInstalled) return;\n _trackingSessionRefreshInstalled = true;\n void refreshTrackingAuthSession();\n window.addEventListener(\"focus\", () => {\n void refreshTrackingAuthSession();\n });\n}\n\nfunction applyTrackingIdentity(\n properties: Record<string, unknown>,\n identity: TrackingIdentity | null = _trackingIdentity,\n): Record<string, unknown> {\n if (!identity) return properties;\n let next = properties;\n const assign = (key: string, value: unknown) => {\n if (value !== undefined && value !== null && next[key] === undefined) {\n if (next === properties) next = { ...properties };\n next[key] = value;\n }\n };\n assign(\"userId\", identity.userId);\n assign(\"userEmail\", identity.userEmail);\n assign(\"userName\", identity.userName);\n assign(\"orgId\", identity.orgId);\n return next;\n}\n\nfunction getOrCreateAnonymousId(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n let id = safeStorageGet(ANONYMOUS_ID_STORAGE_KEY);\n if (!id) {\n id = generateVisitorId();\n safeStorageSet(ANONYMOUS_ID_STORAGE_KEY, id);\n }\n return id;\n}\n\nexport function getAnalyticsAnonymousId(): string | undefined {\n return getOrCreateAnonymousId();\n}\n\nfunction getOrCreateSessionId(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n const now = Date.now();\n const lastActivityRaw = safeStorageGet(SESSION_LAST_ACTIVITY_STORAGE_KEY);\n const lastActivity = lastActivityRaw\n ? Number.parseInt(lastActivityRaw, 10)\n : 0;\n let id = safeStorageGet(SESSION_ID_STORAGE_KEY);\n const expired =\n !lastActivity ||\n Number.isNaN(lastActivity) ||\n now - lastActivity > SESSION_IDLE_TIMEOUT_MS;\n if (!id || expired) {\n id = generateVisitorId();\n safeStorageSet(SESSION_ID_STORAGE_KEY, id);\n }\n safeStorageSet(SESSION_LAST_ACTIVITY_STORAGE_KEY, String(now));\n return id;\n}\n\nexport function getAnalyticsSessionId(): string | undefined {\n return getOrCreateSessionId();\n}\n\nfunction truncateFirstTouchField(value: string | null | undefined): string {\n if (!value) return \"\";\n const trimmed = value.trim();\n if (!trimmed) return \"\";\n return trimmed.slice(0, FIRST_TOUCH_MAX_FIELD_LENGTH);\n}\n\n/**\n * Extract just the host of a referrer URL — never the full URL or query\n * string (those can carry tokens). Returns \"\" when there's no usable host or\n * the referrer is same-origin (a same-site navigation isn't a referral).\n */\nfunction scrubReferrerHost(referrer: string | undefined): string {\n if (!referrer) return \"\";\n try {\n const url = new URL(referrer);\n const host = url.host;\n if (!host) return \"\";\n if (\n typeof window !== \"undefined\" &&\n host.toLowerCase() === window.location.host.toLowerCase()\n ) {\n return \"\";\n }\n return truncateFirstTouchField(host);\n } catch {\n return \"\";\n }\n}\n\nfunction buildFirstTouchAttribution(): FirstTouchAttribution {\n const attribution: FirstTouchAttribution = {};\n let params: URLSearchParams | null = null;\n try {\n params = new URLSearchParams(window.location.search);\n } catch {\n params = null;\n }\n if (params) {\n for (const field of FIRST_TOUCH_QUERY_FIELDS) {\n const value = truncateFirstTouchField(params.get(field));\n if (value) attribution[field] = value;\n }\n }\n const landingPath = truncateFirstTouchField(window.location.pathname);\n if (landingPath) attribution.landing_path = landingPath;\n const landingReferrer =\n typeof document !== \"undefined\" ? scrubReferrerHost(document.referrer) : \"\";\n if (landingReferrer) attribution.landing_referrer = landingReferrer;\n attribution.landed_at = new Date().toISOString();\n return attribution;\n}\n\nfunction readFirstTouchCookie(): string | null {\n if (typeof document === \"undefined\") return null;\n try {\n const cookies = document.cookie ? document.cookie.split(\";\") : [];\n for (const part of cookies) {\n const eq = part.indexOf(\"=\");\n if (eq === -1) continue;\n const name = part.slice(0, eq).trim();\n if (name === FIRST_TOUCH_COOKIE_NAME) {\n return part.slice(eq + 1).trim();\n }\n }\n } catch {\n // document.cookie can throw in sandboxed iframes — best-effort.\n }\n return null;\n}\n\nfunction writeFirstTouchCookie(encodedValue: string): void {\n if (typeof document === \"undefined\") return;\n // Non-sensitive, written by client JS, so no HttpOnly. SameSite=Lax keeps it\n // on top-level navigations (which is how share links arrive) without leaking\n // it to cross-site subresource requests.\n const cookie =\n `${FIRST_TOUCH_COOKIE_NAME}=${encodedValue}; path=/; ` +\n `max-age=${FIRST_TOUCH_COOKIE_MAX_AGE_SECONDS}; SameSite=Lax`;\n if (cookie.length > FIRST_TOUCH_MAX_COOKIE_BYTES) return;\n try {\n document.cookie = cookie;\n } catch {\n // best-effort\n }\n}\n\n/**\n * Capture the visitor's first-touch referral attribution exactly once. Reads\n * the current URL query params + landing info and, IF no attribution is\n * already stored (first-write-wins), persists it to both `localStorage`\n * (`an_attribution`) and the first-party `an_ft` cookie. Fully defensive and\n * SSR-safe — any failure is swallowed so it can never break app boot.\n */\nfunction captureFirstTouchAttribution(): void {\n if (_firstTouchCaptured) return;\n _firstTouchCaptured = true;\n if (typeof window === \"undefined\") return;\n try {\n const existing = safeStorageGet(FIRST_TOUCH_STORAGE_KEY);\n if (existing) {\n // Already captured in a prior visit. Backfill the cookie if it expired\n // or was cleared so the signup boundary still sees first-touch data, but\n // never overwrite the stored value itself (first-write-wins).\n if (!readFirstTouchCookie()) {\n try {\n writeFirstTouchCookie(encodeURIComponent(existing));\n } catch {\n // ignore\n }\n }\n return;\n }\n const attribution = buildFirstTouchAttribution();\n const json = JSON.stringify(attribution);\n safeStorageSet(FIRST_TOUCH_STORAGE_KEY, json);\n writeFirstTouchCookie(encodeURIComponent(json));\n } catch {\n // Attribution is best-effort telemetry; never let it break boot.\n }\n}\n\n/**\n * Return the parsed first-touch referral attribution captured for this\n * visitor, or `null` when none is stored. Reads from `localStorage`\n * (`an_attribution`). SSR-safe and defensive.\n */\nexport function getFirstTouchAttribution(): FirstTouchAttribution | null {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = safeStorageGet(FIRST_TOUCH_STORAGE_KEY);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n return null;\n }\n return parsed as FirstTouchAttribution;\n } catch {\n return null;\n }\n}\n\nfunction isLocalAnalyticsHostname(hostname: string | undefined): boolean {\n const h = (hostname || \"\").toLowerCase();\n return (\n h === \"localhost\" ||\n h === \"127.0.0.1\" ||\n h === \"::1\" ||\n h === \"[::1]\" ||\n h.endsWith(\".localhost\") ||\n h.endsWith(\".local\")\n );\n}\n\nfunction ensureAmplitude(): boolean {\n if (_amplitudeInitialized) return true;\n const key = (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AMPLITUDE_API_KEY;\n if (!key) return false;\n amplitude.init(key, { autocapture: true });\n _amplitudeInitialized = true;\n return true;\n}\n\nfunction hasOnlySourcelessFrames(value: {\n stacktrace?: {\n frames?: Array<{\n filename?: unknown;\n abs_path?: unknown;\n function?: unknown;\n }>;\n };\n}): boolean {\n const frames = value.stacktrace?.frames ?? [];\n return (\n frames.length === 0 ||\n frames.every((frame) => {\n const filename = String(frame.filename ?? frame.abs_path ?? \"\")\n .trim()\n .toLowerCase();\n const functionName = String(frame.function ?? \"\").trim();\n return (\n !functionName &&\n (!filename || filename === \"undefined\" || filename === \"<anonymous>\")\n );\n })\n );\n}\n\nfunction isAgentNativeDocsUrl(url: string): boolean {\n if (!url) return false;\n try {\n const parsed = new URL(url);\n return (\n parsed.hostname === \"www.agent-native.com\" ||\n parsed.hostname === \"agent-native.com\"\n );\n } catch {\n return false;\n }\n}\n\nfunction shouldDropBrowserSentryNoise(event: Sentry.Event): boolean {\n const exceptionValues = event.exception?.values ?? [];\n const taggedUrl =\n typeof event.tags?.url === \"string\" ? event.tags.url : undefined;\n const requestUrl = (event.request?.url ?? taggedUrl ?? \"\").toLowerCase();\n const isDocsPage = isAgentNativeDocsUrl(requestUrl);\n // AgentAutoContinueSignal is a control-flow sentinel thrown to bubble\n // out of the SSE stream parser when the agent run needs to be\n // auto-continued. It's caught by the chat adapter and is never a real\n // error. Drop it unconditionally — capturing it as a Sentry exception\n // pollutes the issue list with sentinels that have no actionable stack.\n if (\n exceptionValues.some((value) => value.type === \"AgentAutoContinueSignal\")\n ) {\n return true;\n }\n // Browser-side access control rejections usually mean a tab outlived the\n // session or hit a protected route while signed out. The server Sentry setup\n // already drops these bare auth errors; mirror that here for client-captured\n // route/query failures.\n if (\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n return (\n exceptionType === \"unauthorizederror\" ||\n exceptionType === \"unauthenticatederror\" ||\n exceptionValue === \"unauthorized\" ||\n exceptionValue === \"unauthenticated\"\n );\n })\n ) {\n return true;\n }\n // Safari occasionally reports a source-less global `EmptyRanges` reference\n // error while browsing public pages. There is no script URL or function to\n // map back to our bundle, so keep the filter narrow and only drop it when\n // every frame is missing/undefined.\n if (\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n if (\n exceptionType !== \"referenceerror\" ||\n !exceptionValue.includes(\"emptyranges\")\n ) {\n return false;\n }\n return hasOnlySourcelessFrames(value);\n })\n ) {\n return true;\n }\n if (\n isDocsPage &&\n exceptionValues.some((value) => {\n const exceptionValue = String(value.value ?? \"\").toLowerCase();\n return exceptionValue.includes(\n \"window.webkit.messagehandlers.scrolleventhandler.postmessage\",\n );\n })\n ) {\n return true;\n }\n if (\n isDocsPage &&\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n return (\n exceptionType === \"rangeerror\" &&\n exceptionValue.includes(\"maximum call stack\") &&\n hasOnlySourcelessFrames(value)\n );\n })\n ) {\n return true;\n }\n // Exact user/navigation aborts are expected browser behavior. Keep other\n // AbortError shapes visible unless they match this common non-bug message.\n if (\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n return (\n exceptionValue === \"the user aborted a request.\" ||\n exceptionValue === \"signal is aborted without reason\" ||\n exceptionValue === \"aborterror: the user aborted a request.\" ||\n exceptionValue === \"aborterror: signal is aborted without reason\" ||\n (exceptionType === \"aborterror\" &&\n (exceptionValue.includes(\"the user aborted a request\") ||\n exceptionValue.includes(\"signal is aborted without reason\")))\n );\n })\n ) {\n return true;\n }\n const exceptionText = exceptionValues\n .map((value) => `${value.type ?? \"\"} ${value.value ?? \"\"}`)\n .join(\" \")\n .toLowerCase();\n const breadcrumbText = (event.breadcrumbs ?? [])\n .map((crumb) => {\n const data = crumb.data as Record<string, unknown> | undefined;\n return [\n crumb.category,\n crumb.message,\n typeof data?.url === \"string\" ? data.url : \"\",\n ].join(\" \");\n })\n .join(\" \")\n .toLowerCase();\n const combined = `${exceptionText} ${requestUrl} ${breadcrumbText}`;\n return (\n combined.includes(\"api2.amplitude.com\") &&\n (combined.includes(\"failed to fetch\") ||\n combined.includes(\"networkerror\") ||\n combined.includes(\"load failed\"))\n );\n}\n\nfunction firstNonEmpty(...values: Array<string | undefined>): string {\n for (const value of values) {\n const trimmed = value?.trim();\n if (trimmed) return trimmed;\n }\n return \"\";\n}\n\nfunction resolveClientSentryDsnFromKeyProject(\n env: Record<string, string | undefined>,\n): string | undefined {\n const key = firstNonEmpty(env.VITE_SENTRY_CLIENT_KEY);\n const projectId = firstNonEmpty(env.VITE_SENTRY_PROJECT_ID);\n const host = firstNonEmpty(env.VITE_SENTRY_INGEST_HOST);\n if (!key || !projectId || !host) return undefined;\n return `https://${key}@${host}/${projectId}`;\n}\n\nfunction getClientSentryDsn(): string | undefined {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n return (\n env.VITE_SENTRY_CLIENT_DSN ||\n env.VITE_SENTRY_DSN ||\n window.__AGENT_NATIVE_CONFIG__?.sentryDsn ||\n resolveClientSentryDsnFromKeyProject(env)\n );\n}\n\nfunction ensureSentry(): void {\n if (_sentryInitialized) return;\n const dsn = getClientSentryDsn();\n if (!dsn) return;\n Sentry.init({\n dsn,\n environment:\n window.__AGENT_NATIVE_CONFIG__?.sentryEnvironment ||\n (import.meta.env as Record<string, string | undefined>)?.MODE ||\n \"production\",\n beforeSend(event) {\n if (shouldDropBrowserSentryNoise(event)) {\n return null;\n }\n // Strip sensitive query params from the request URL. React Router\n // history can include share tokens, ?signin=1, password reset codes,\n // public-share password params (audit F-07), etc.\n if (event.request?.url) {\n event.request.url = scrubUrl(event.request.url);\n }\n // Clean the same params from breadcrumb URLs (Sentry captures\n // history.pushState breadcrumbs by default).\n if (Array.isArray(event.breadcrumbs)) {\n for (const crumb of event.breadcrumbs) {\n if (crumb && typeof crumb === \"object\" && \"data\" in crumb) {\n const data = crumb.data as Record<string, unknown> | undefined;\n if (data && typeof data.url === \"string\") {\n data.url = scrubUrl(data.url);\n }\n if (data && typeof data.from === \"string\") {\n data.from = scrubUrl(data.from);\n }\n if (data && typeof data.to === \"string\") {\n data.to = scrubUrl(data.to);\n }\n }\n }\n }\n return event;\n },\n });\n Sentry.setTag(\"runtime\", \"browser\");\n _sentryInitialized = true;\n // Flush any user/tag that was set before init.\n if (_pendingSentryUser !== undefined) {\n Sentry.setUser(_pendingSentryUser);\n _pendingSentryUser = undefined;\n }\n if (_pendingSentryOrgId !== undefined) {\n Sentry.setTag(\"orgId\", _pendingSentryOrgId);\n _pendingSentryOrgId = undefined;\n }\n}\n\n/**\n * Attach the current user to Sentry events from the browser. Pass `null` to\n * clear (e.g. on logout). If Sentry isn't initialized yet, the value is\n * buffered and applied once `ensureSentry()` runs.\n *\n * Pass `orgId` to also tag events with the active organization ID — useful\n * for filtering Sentry by tenant.\n */\nexport function setSentryUser(\n user: SentryUser | null,\n orgId?: string | null,\n): void {\n let shouldRetryReplay = false;\n if (user) {\n const userId = user.email || user.id;\n if (userId) {\n _trackingIdentity = {\n userId,\n ...(user.email ? { userEmail: user.email } : {}),\n ...(user.username ? { userName: user.username } : {}),\n orgId: orgId ?? null,\n };\n } else {\n clearTrackingIdentity();\n }\n shouldRetryReplay = Boolean(user.email);\n } else {\n clearTrackingIdentity();\n }\n _trackingIdentityResolved = true;\n if (shouldRetryReplay && _sessionReplayOptions?.requireSignedInUser) {\n void startConfiguredSessionReplay(_sessionReplayOptions);\n }\n if (_sentryInitialized) {\n Sentry.setUser(user);\n if (orgId !== undefined) {\n Sentry.setTag(\"orgId\", orgId ?? null);\n }\n return;\n }\n _pendingSentryUser = user;\n if (orgId !== undefined) {\n _pendingSentryOrgId = orgId ?? null;\n }\n}\n\nexport interface ClientCaptureContext {\n /** Searchable Sentry tags (low-cardinality strings only). */\n tags?: Record<string, string | undefined>;\n /**\n * High-cardinality / structured payload — not searchable but visible in\n * the Sentry event detail (file sizes, request URLs, response body\n * tails, etc.).\n */\n extra?: Record<string, unknown>;\n /**\n * Grouped contexts shown as separate cards in the Sentry event UI.\n */\n contexts?: Record<string, Record<string, unknown>>;\n}\n\n/**\n * Capture an exception to Sentry from browser code without forcing the\n * caller to depend on `@sentry/browser` directly.\n *\n * Templates can route a thrown Error through here on a known failure path\n * (chunk-upload 500, thumbnail upload, etc.) to attach searchable tags and\n * structured extra context. No-ops gracefully when Sentry isn't\n * initialized — never throws back into the caller, so a Sentry hiccup\n * can't mask the original error.\n */\nexport function captureClientException(\n error: unknown,\n context: ClientCaptureContext = {},\n): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n try {\n ensureSentry();\n return Sentry.withScope((scope) => {\n if (context.tags) {\n for (const [k, v] of Object.entries(context.tags)) {\n if (typeof v === \"string\") scope.setTag(k, v);\n }\n }\n if (context.extra) {\n for (const [k, v] of Object.entries(context.extra)) {\n if (v !== undefined) scope.setExtra(k, v);\n }\n }\n if (context.contexts) {\n for (const [k, v] of Object.entries(context.contexts)) {\n scope.setContext(k, v);\n }\n }\n return Sentry.captureException(error);\n });\n } catch {\n return undefined;\n }\n}\n\n/**\n * Public browser-side error capture utility, mirroring `trackEvent()`:\n * templates can call `captureError(err, { tags, extra, contexts })` without\n * depending on Sentry directly. Sentry receives the event when a browser DSN\n * is configured; otherwise this is a quiet no-op.\n */\nexport function captureError(\n error: unknown,\n context: ClientCaptureContext = {},\n): string | undefined {\n return captureClientException(error, context);\n}\n\nfunction getPageviewTrackingState(): PageviewTrackingState {\n const g = globalThis as typeof globalThis & {\n [PAGEVIEW_TRACKING_STATE_KEY]?: PageviewTrackingState;\n };\n if (!g[PAGEVIEW_TRACKING_STATE_KEY]) {\n g[PAGEVIEW_TRACKING_STATE_KEY] = {\n installed: false,\n lastPageviewKey: null,\n };\n }\n return g[PAGEVIEW_TRACKING_STATE_KEY];\n}\n\nexport function configureTracking(options: ConfigureTrackingOptions): void {\n const publicKey = options.key || options.publicKey;\n if (publicKey) {\n _agentNativeAnalyticsPublicKey = publicKey;\n }\n if (options.endpoint) {\n _agentNativeAnalyticsEndpoint = options.endpoint;\n }\n if (options.getDefaultProps) {\n _getDefaultProps = options.getDefaultProps;\n }\n if (typeof window !== \"undefined\") {\n ensureSentry();\n ensureAmplitude();\n captureFirstTouchAttribution();\n installLlmConnectionRefresh();\n installTrackingAuthSessionRefresh();\n installPageviewTracking();\n maybeInstallSessionReplay(options.sessionReplay, {\n endpoint: options.endpoint,\n publicKey,\n });\n }\n}\n\nfunction sessionReplayEnabledFromEnv(): boolean {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n const value =\n env.VITE_AGENT_NATIVE_SESSION_REPLAY_ENABLED ||\n env.VITE_SESSION_REPLAY_ENABLED;\n return /^(1|true|yes|on)$/i.test((value ?? \"\").trim());\n}\n\nfunction sessionReplayRequiresSignedInUserFromEnv(): boolean | undefined {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n const value =\n env.VITE_AGENT_NATIVE_SESSION_REPLAY_REQUIRE_AUTH ||\n env.VITE_SESSION_REPLAY_REQUIRE_AUTH;\n const normalized = (value ?? \"\").trim();\n if (!normalized) return undefined;\n if (/^(1|true|yes|on)$/i.test(normalized)) return true;\n if (/^(0|false|no|off)$/i.test(normalized)) return false;\n return undefined;\n}\n\nfunction configuredSessionReplayOptions(\n config: boolean | SessionReplayOptions | undefined,\n tracking: { endpoint?: string; publicKey?: string } = {},\n): SessionReplayOptions | null {\n const publicKey = tracking.publicKey || _agentNativeAnalyticsPublicKey;\n const trackingEndpoint = tracking.endpoint || _agentNativeAnalyticsEndpoint;\n const endpoint = trackingEndpoint\n ? replayEndpointFromTrackingEndpoint(trackingEndpoint)\n : undefined;\n const withTrackingDefaults = (\n options: SessionReplayOptions,\n ): SessionReplayOptions => {\n const extraProperties = replayExtraPropertiesWithDefaults(\n options.extraProperties,\n );\n return {\n ...(publicKey && !options.publicKey ? { publicKey } : {}),\n ...(endpoint && !options.endpoint ? { endpoint } : {}),\n ...options,\n requireSignedInUser:\n options.requireSignedInUser ??\n sessionReplayRequiresSignedInUserFromEnv() ??\n true,\n ...(extraProperties ? { extraProperties } : {}),\n };\n };\n\n if (config === false) return null;\n if (config === true) return withTrackingDefaults({});\n if (config && typeof config === \"object\") {\n if (config.enabled === false) return null;\n return withTrackingDefaults(config);\n }\n return sessionReplayEnabledFromEnv() ? withTrackingDefaults({}) : null;\n}\n\nfunction replayExtraPropertiesWithDefaults(\n source: SessionReplayOptions[\"extraProperties\"],\n): SessionReplayOptions[\"extraProperties\"] {\n return () => {\n const rawProps =\n typeof source === \"function\"\n ? source()\n : source && typeof source === \"object\"\n ? source\n : {};\n const props = rawProps && typeof rawProps === \"object\" ? rawProps : {};\n const withDefaults = _getDefaultProps?.(\"session_replay\", props) ?? props;\n return applyTrackingIdentity(\n withDefaults,\n _trackingIdentity ?? _sessionReplayIdentitySnapshot,\n );\n };\n}\n\nfunction replayEndpointFromTrackingEndpoint(value: string): string | undefined {\n try {\n const url = new URL(value);\n if (url.pathname.endsWith(\"/api/analytics/track\")) {\n url.pathname = url.pathname.replace(\n /\\/api\\/analytics\\/track$/,\n \"/api/analytics/replay\",\n );\n return url.toString();\n }\n if (url.pathname.endsWith(\"/track\")) {\n url.pathname = url.pathname.replace(/\\/track$/, \"/api/analytics/replay\");\n return url.toString();\n }\n } catch {\n // Fall through to relative-path handling below.\n }\n if (value.endsWith(\"/api/analytics/track\")) {\n return value.replace(/\\/api\\/analytics\\/track$/, \"/api/analytics/replay\");\n }\n if (value.endsWith(\"/track\")) {\n return value.replace(/\\/track$/, \"/api/analytics/replay\");\n }\n return undefined;\n}\n\nfunction maybeInstallSessionReplay(\n config: boolean | SessionReplayOptions | undefined,\n tracking?: { endpoint?: string; publicKey?: string },\n): void {\n if (typeof window === \"undefined\") return;\n const options = configuredSessionReplayOptions(config, tracking);\n if (!options) return;\n _sessionReplayOptions = options;\n void startConfiguredSessionReplay(options);\n}\n\nasync function waitForSessionReplayAuthIfRequired(\n options: SessionReplayOptions,\n): Promise<boolean> {\n if (!options.requireSignedInUser) return true;\n if (_trackingIdentity?.userEmail) return true;\n try {\n if (_trackingSessionRefresh) {\n await _trackingSessionRefresh;\n } else if (!_trackingIdentityResolved) {\n await refreshTrackingAuthSession();\n }\n } catch {\n // best-effort; missing identity below keeps replay off\n }\n return !!_trackingIdentity?.userEmail;\n}\n\nasync function startConfiguredSessionReplay(\n options: SessionReplayOptions,\n): Promise<SessionReplayStartResult | null> {\n if (_sessionReplayStartPromise) return _sessionReplayStartPromise;\n _sessionReplayStartPromise = (async () => {\n if (!(await waitForSessionReplayAuthIfRequired(options))) {\n return { started: false, reason: \"missing-user-id\" as const };\n }\n const mod = await import(\"./session-replay.js\");\n return mod.startSessionReplay(options);\n })()\n .catch(() => ({ started: false, reason: \"import-failed\" as const }))\n .finally(() => {\n _sessionReplayStartPromise = null;\n });\n return _sessionReplayStartPromise;\n}\n\nexport async function startSessionReplay(\n options: SessionReplayOptions = {},\n): Promise<SessionReplayStartResult> {\n const configured = configuredSessionReplayOptions(options) ?? options;\n if (!(await waitForSessionReplayAuthIfRequired(configured))) {\n return { started: false, reason: \"missing-user-id\" };\n }\n const mod = await import(\"./session-replay.js\");\n return mod.startSessionReplay(configured);\n}\n\nexport async function maybeStartSessionReplay(\n options: SessionReplayOptions = {},\n): Promise<SessionReplayStartResult> {\n const configured = configuredSessionReplayOptions(options) ?? options;\n if (!(await waitForSessionReplayAuthIfRequired(configured))) {\n return { started: false, reason: \"missing-user-id\" };\n }\n const mod = await import(\"./session-replay.js\");\n return mod.maybeStartSessionReplay(configured);\n}\n\nexport async function stopSessionReplay(reason = \"manual\"): Promise<void> {\n const mod = await import(\"./session-replay.js\");\n await mod.stopSessionReplay(reason);\n}\n\nfunction inferTemplateName(properties: Record<string, unknown>): string | null {\n const envTemplate =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AGENT_NATIVE_TEMPLATE ||\n (import.meta.env as Record<string, string | undefined>)?.VITE_APP_TEMPLATE;\n if (envTemplate) return envTemplate;\n\n const app = typeof properties.app === \"string\" ? properties.app.trim() : \"\";\n if (!app || app === \"localhost\") return null;\n if (app.startsWith(\"agent-native-\")) {\n return app.slice(\"agent-native-\".length);\n }\n return app;\n}\n\nfunction resolveProps(\n name: string,\n params?: Record<string, unknown>,\n): Record<string, unknown> {\n if (typeof window === \"undefined\") return { ...params };\n const base: Record<string, unknown> = {\n url: window.location.origin + window.location.pathname,\n app: window.location.hostname.split(\".\")[0] || \"localhost\",\n ...params,\n };\n const props = _getDefaultProps ? _getDefaultProps(name, base) : base;\n let withTemplate = props;\n if (withTemplate.template === undefined) {\n const template = inferTemplateName(props);\n if (template) {\n withTemplate = { ...props, template };\n }\n }\n const llmProps = llmConnectionTrackingProperties(_llmConnectionStatus);\n const enriched = { ...withTemplate };\n for (const [key, value] of Object.entries(llmProps)) {\n if (enriched[key] === undefined) enriched[key] = value;\n }\n return applyTrackingIdentity(enriched);\n}\n\nfunction pageviewKey(): string {\n return window.location.href;\n}\n\nfunction pageviewProperties(reason: string): Record<string, unknown> {\n const properties: Record<string, unknown> = {\n url: scrubUrl(window.location.href),\n path: window.location.pathname,\n hostname: window.location.hostname,\n navigation_type: reason,\n };\n if (window.location.search) {\n properties.search = scrubUrl(window.location.search);\n }\n if (typeof document !== \"undefined\") {\n if (document.referrer) {\n properties.referrer = scrubUrl(document.referrer);\n }\n if (document.title) {\n properties.title = document.title;\n }\n }\n return properties;\n}\n\nfunction emitPageview(reason: string): void {\n if (isLocalAnalyticsHostname(window.location.hostname)) return;\n const state = getPageviewTrackingState();\n const key = pageviewKey();\n if (state.lastPageviewKey === key) return;\n state.lastPageviewKey = key;\n trackEvent(\"pageview\", pageviewProperties(reason));\n}\n\nfunction schedulePageview(reason: string): void {\n const run = () => emitPageview(reason);\n const pendingStartupContext: Array<Promise<void>> = [];\n if (_llmConnectionRefresh && !_llmConnectionStatus) {\n pendingStartupContext.push(_llmConnectionRefresh);\n }\n if (_trackingSessionRefresh && !_trackingIdentityResolved) {\n pendingStartupContext.push(_trackingSessionRefresh);\n }\n if (pendingStartupContext.length > 0) {\n const timeout = new Promise<void>((resolve) =>\n window.setTimeout(resolve, 250),\n );\n Promise.race([Promise.allSettled(pendingStartupContext), timeout]).finally(\n run,\n );\n return;\n }\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(run);\n return;\n }\n window.setTimeout(run, 0);\n}\n\nfunction installPageviewTracking(): void {\n const state = getPageviewTrackingState();\n if (state.installed) return;\n state.installed = true;\n\n schedulePageview(\"load\");\n\n const originalPushState = window.history.pushState;\n const originalReplaceState = window.history.replaceState;\n\n window.history.pushState = function pushState(...args) {\n const result = originalPushState.apply(this, args);\n schedulePageview(\"pushState\");\n return result;\n };\n\n window.history.replaceState = function replaceState(...args) {\n const result = originalReplaceState.apply(this, args);\n schedulePageview(\"replaceState\");\n return result;\n };\n\n window.addEventListener(\"popstate\", () => schedulePageview(\"popstate\"));\n}\n\nfunction sendAgentNativeAnalytics(\n name: string,\n properties: Record<string, unknown>,\n): void {\n if (isLocalAnalyticsHostname(window.location.hostname)) return;\n\n const publicKey =\n _agentNativeAnalyticsPublicKey ||\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AGENT_NATIVE_ANALYTICS_PUBLIC_KEY;\n if (!publicKey) return;\n\n const endpoint =\n _agentNativeAnalyticsEndpoint ||\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AGENT_NATIVE_ANALYTICS_ENDPOINT ||\n AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT;\n const userId =\n typeof properties.userId === \"string\" ? properties.userId : undefined;\n const body = JSON.stringify({\n publicKey,\n event: name,\n properties,\n userId,\n anonymousId: getOrCreateAnonymousId(),\n sessionId: getOrCreateSessionId(),\n timestamp: new Date().toISOString(),\n });\n\n try {\n if (navigator.sendBeacon) {\n const sent = navigator.sendBeacon(endpoint, body);\n if (sent) return;\n }\n fetch(endpoint, {\n method: \"POST\",\n body,\n keepalive: true,\n headers: { \"Content-Type\": \"text/plain;charset=UTF-8\" },\n }).catch(() => {});\n } catch {\n // best-effort\n }\n}\n\nexport function trackEvent(\n name: string,\n params?: Record<string, unknown>,\n): void {\n if (typeof window === \"undefined\") return;\n ensureSentry();\n const props = resolveProps(name, params);\n window.gtag?.(\"event\", name.replace(/\\s+/g, \"_\"), props);\n if (ensureAmplitude()) {\n amplitude.track(name, props);\n }\n sendAgentNativeAnalytics(name, props);\n}\n\nexport function trackSessionStatus(signedIn: boolean): void {\n trackEvent(\"session status\", { signed_in: signedIn });\n}\n"]}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/client/analytics.ts"],"names":[],"mappings":"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","sourcesContent":["import * as amplitude from \"@amplitude/analytics-browser\";\nimport * as Sentry from \"@sentry/browser\";\n\nimport {\n llmConnectionTrackingProperties,\n type LlmConnectionStatus,\n} from \"../shared/llm-connection.js\";\nimport { agentNativePath } from \"./api-path.js\";\nimport type {\n SessionReplayOptions,\n SessionReplayStartResult,\n} from \"./session-replay.js\";\nimport { scrubUrl } from \"./url-scrub.js\";\nexport { scrubUrl } from \"./url-scrub.js\";\nexport type {\n SessionReplayConsoleOptions,\n SessionReplayNetworkOptions,\n SessionReplayOptions,\n SessionReplayStartResult,\n SessionReplayUrlMatcher,\n} from \"./session-replay.js\";\n\ndeclare global {\n interface Window {\n gtag?: (...args: any[]) => void;\n __AGENT_NATIVE_CONFIG__?: {\n sentryDsn?: string;\n sentryEnvironment?: string;\n };\n }\n}\n\ntype GetDefaultProps = (\n name: string,\n properties: Record<string, unknown>,\n) => Record<string, unknown>;\n\ntype PageviewTrackingState = {\n installed: boolean;\n lastPageviewKey: string | null;\n};\n\nexport type ConfigureTrackingOptions = {\n /**\n * Agent Native first-party analytics public key. This mirrors hosted\n * analytics SDKs where consumers pass the key at setup time instead of\n * relying on build-time environment variables.\n */\n key?: string;\n /** Alias for `key`, matching the replay ingest payload name. */\n publicKey?: string;\n /** First-party analytics track endpoint. */\n endpoint?: string;\n getDefaultProps?: GetDefaultProps;\n sessionReplay?: boolean | SessionReplayOptions;\n};\n\ntype SentryUser = {\n id?: string;\n email?: string;\n username?: string;\n};\n\ntype TrackingIdentity = {\n userId?: string;\n userEmail?: string;\n userName?: string;\n orgId?: string | null;\n};\n\nlet _getDefaultProps: GetDefaultProps | null = null;\nlet _agentNativeAnalyticsPublicKey: string | null = null;\nlet _agentNativeAnalyticsEndpoint: string | null = null;\nlet _amplitudeInitialized = false;\nlet _sentryInitialized = false;\nlet _llmConnectionStatus: LlmConnectionStatus | null = null;\nlet _llmConnectionRefresh: Promise<void> | null = null;\nlet _llmConnectionRefreshInstalled = false;\nlet _trackingIdentity: TrackingIdentity | null = null;\nlet _trackingIdentityResolved = false;\nlet _trackingSessionRefresh: Promise<void> | null = null;\nlet _trackingSessionRefreshInstalled = false;\nlet _sessionReplayOptions: SessionReplayOptions | null = null;\nlet _sessionReplayIdentitySnapshot: TrackingIdentity | null = null;\nlet _sessionReplayStartPromise: Promise<SessionReplayStartResult | null> | null =\n null;\n// Buffer for setSentryUser calls made before Sentry has initialized.\n// `undefined` means \"no pending update\"; `null` means \"pending clear\".\nlet _pendingSentryUser: SentryUser | null | undefined = undefined;\nlet _pendingSentryOrgId: string | null | undefined = undefined;\n\nconst AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT =\n \"https://analytics.agent-native.com/track\";\nconst PAGEVIEW_TRACKING_STATE_KEY = Symbol.for(\n \"agent-native.client.pageviewTracking\",\n);\n\nconst ANONYMOUS_ID_STORAGE_KEY = \"agent-native.anonymous_id\";\nconst SESSION_ID_STORAGE_KEY = \"agent-native.session_id\";\nconst SESSION_LAST_ACTIVITY_STORAGE_KEY = \"agent-native.session_last_activity\";\nconst LLM_CONNECTION_STORAGE_KEY = \"agent-native.llm_connection_status\";\nconst LLM_CONNECTION_CACHE_TTL_MS = 5 * 60 * 1000;\n// 30-minute idle timeout matches GA4 / Mixpanel defaults — a tab left open\n// overnight starts a new session in the morning rather than stretching one\n// session over multiple visits.\nconst SESSION_IDLE_TIMEOUT_MS = 30 * 60 * 1000;\n\n// First-touch referral attribution (viral attribution). Captured once on the\n// visitor's first page load and persisted across the signup boundary so the\n// server-side `signup` event can record where the user came from. First-write\n// wins — an existing value is never overwritten.\nconst FIRST_TOUCH_STORAGE_KEY = \"an_attribution\";\nconst FIRST_TOUCH_COOKIE_NAME = \"an_ft\";\n// 30 days, matching the session cookie lifetime — long enough to bridge a\n// \"land today, sign up next week\" path without retaining attribution forever.\nconst FIRST_TOUCH_COOKIE_MAX_AGE_SECONDS = 2592000;\nconst FIRST_TOUCH_MAX_FIELD_LENGTH = 120;\n// Keep the serialized cookie well under the ~4KB browser cap; we bail rather\n// than write a runaway cookie if some field combination blows past this.\nconst FIRST_TOUCH_MAX_COOKIE_BYTES = 1500;\nconst FIRST_TOUCH_QUERY_FIELDS = [\n \"ref\",\n \"via\",\n \"utm_source\",\n \"utm_medium\",\n \"utm_campaign\",\n \"utm_content\",\n \"utm_term\",\n] as const;\n\nlet _firstTouchCaptured = false;\n\nexport interface FirstTouchAttribution {\n ref?: string;\n via?: string;\n utm_source?: string;\n utm_medium?: string;\n utm_campaign?: string;\n utm_content?: string;\n utm_term?: string;\n landing_path?: string;\n landing_referrer?: string;\n landed_at?: string;\n}\n\nfunction generateVisitorId(): string {\n try {\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n } catch {\n // fall through to Math.random\n }\n return (\n Date.now().toString(36) +\n Math.random().toString(36).slice(2) +\n Math.random().toString(36).slice(2)\n );\n}\n\nfunction safeStorageGet(key: string): string | null {\n try {\n return window.localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nfunction safeStorageSet(key: string, value: string): void {\n try {\n window.localStorage.setItem(key, value);\n } catch {\n // private browsing / storage disabled — best-effort\n }\n}\n\nfunction readCachedLlmConnectionStatus(): LlmConnectionStatus | null {\n if (typeof window === \"undefined\") return null;\n const raw = safeStorageGet(LLM_CONNECTION_STORAGE_KEY);\n if (!raw) return null;\n try {\n const parsed = JSON.parse(raw) as LlmConnectionStatus & {\n cachedAt?: number;\n };\n if (\n typeof parsed.cachedAt !== \"number\" ||\n Date.now() - parsed.cachedAt > LLM_CONNECTION_CACHE_TTL_MS\n ) {\n return null;\n }\n return {\n configured: parsed.configured,\n engine: parsed.engine,\n model: parsed.model,\n source: parsed.source,\n envVar: parsed.envVar,\n };\n } catch {\n return null;\n }\n}\n\nfunction cacheLlmConnectionStatus(status: LlmConnectionStatus): void {\n if (typeof window === \"undefined\") return;\n safeStorageSet(\n LLM_CONNECTION_STORAGE_KEY,\n JSON.stringify({ ...status, cachedAt: Date.now() }),\n );\n}\n\nfunction normalizeAgentEngineStatus(data: unknown): LlmConnectionStatus {\n const value = data as Record<string, unknown> | null;\n if (!value || value.configured !== true) {\n return { configured: false };\n }\n return {\n configured: true,\n engine: typeof value.engine === \"string\" ? value.engine : null,\n model: typeof value.model === \"string\" ? value.model : null,\n source: typeof value.source === \"string\" ? value.source : null,\n envVar: typeof value.envVar === \"string\" ? value.envVar : null,\n };\n}\n\nfunction refreshLlmConnectionStatus(): Promise<void> {\n if (typeof window === \"undefined\" || typeof fetch !== \"function\") {\n return Promise.resolve();\n }\n if (_llmConnectionRefresh) return _llmConnectionRefresh;\n let request: Promise<Response>;\n try {\n request = fetch(agentNativePath(\"/_agent-native/agent-engine/status\"));\n } catch {\n return Promise.resolve();\n }\n _llmConnectionRefresh = request\n .then((res) => (res.ok ? res.json() : null))\n .then((data) => {\n _llmConnectionStatus = normalizeAgentEngineStatus(data);\n cacheLlmConnectionStatus(_llmConnectionStatus);\n })\n .catch(() => {\n if (!_llmConnectionStatus) {\n _llmConnectionStatus = readCachedLlmConnectionStatus();\n }\n })\n .finally(() => {\n _llmConnectionRefresh = null;\n });\n return _llmConnectionRefresh;\n}\n\nfunction installLlmConnectionRefresh(): void {\n if (typeof window === \"undefined\" || _llmConnectionRefreshInstalled) return;\n _llmConnectionRefreshInstalled = true;\n _llmConnectionStatus = readCachedLlmConnectionStatus();\n void refreshLlmConnectionStatus();\n window.addEventListener(\"focus\", () => {\n void refreshLlmConnectionStatus();\n });\n window.addEventListener(\"agent-engine:configured-changed\", () => {\n void refreshLlmConnectionStatus();\n });\n}\n\nfunction readTrackingString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction stopSessionReplayForAuthClear(\n previousIdentity: TrackingIdentity | null,\n): void {\n if (!_sessionReplayOptions?.requireSignedInUser) {\n _sessionReplayIdentitySnapshot = null;\n return;\n }\n if (!previousIdentity?.userEmail) return;\n _sessionReplayIdentitySnapshot = previousIdentity;\n void import(\"./session-replay.js\")\n .then((mod) => mod.stopSessionReplay(\"auth-cleared\"))\n .catch(() => {\n // Auth clearing should never fail because replay cleanup failed.\n })\n .finally(() => {\n if (_sessionReplayIdentitySnapshot === previousIdentity) {\n _sessionReplayIdentitySnapshot = null;\n }\n });\n}\n\nfunction clearTrackingIdentity(): void {\n const previousIdentity = _trackingIdentity;\n stopSessionReplayForAuthClear(previousIdentity);\n _trackingIdentity = null;\n}\n\nfunction setTrackingIdentityFromSession(data: unknown): void {\n const session = data as Record<string, unknown> | null;\n if (!session || typeof session !== \"object\" || session.error) {\n clearTrackingIdentity();\n return;\n }\n const email = readTrackingString(session.email);\n const authUserId = readTrackingString(session.userId);\n const userId = email || authUserId;\n if (!userId) {\n clearTrackingIdentity();\n return;\n }\n const userName = readTrackingString(session.name);\n _trackingIdentity = {\n userId,\n ...(email ? { userEmail: email } : {}),\n ...(userName ? { userName } : {}),\n orgId: readTrackingString(session.orgId) ?? null,\n };\n}\n\nfunction refreshTrackingAuthSession(): Promise<void> {\n if (typeof window === \"undefined\" || typeof fetch !== \"function\") {\n _trackingIdentityResolved = true;\n return Promise.resolve();\n }\n if (_trackingSessionRefresh) return _trackingSessionRefresh;\n _trackingSessionRefresh = fetch(\n agentNativePath(\"/_agent-native/auth/session\"),\n )\n .then((res) => (res.ok ? res.json() : null))\n .then((data) => {\n setTrackingIdentityFromSession(data);\n })\n .catch(() => {\n clearTrackingIdentity();\n })\n .finally(() => {\n _trackingIdentityResolved = true;\n _trackingSessionRefresh = null;\n });\n return _trackingSessionRefresh;\n}\n\nfunction installTrackingAuthSessionRefresh(): void {\n if (typeof window === \"undefined\" || _trackingSessionRefreshInstalled) return;\n _trackingSessionRefreshInstalled = true;\n void refreshTrackingAuthSession();\n window.addEventListener(\"focus\", () => {\n void refreshTrackingAuthSession();\n });\n}\n\nfunction applyTrackingIdentity(\n properties: Record<string, unknown>,\n identity: TrackingIdentity | null = _trackingIdentity,\n): Record<string, unknown> {\n if (!identity) return properties;\n let next = properties;\n const assign = (key: string, value: unknown) => {\n if (value !== undefined && value !== null && next[key] === undefined) {\n if (next === properties) next = { ...properties };\n next[key] = value;\n }\n };\n assign(\"userId\", identity.userId);\n assign(\"userEmail\", identity.userEmail);\n assign(\"userName\", identity.userName);\n assign(\"orgId\", identity.orgId);\n return next;\n}\n\nfunction getOrCreateAnonymousId(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n let id = safeStorageGet(ANONYMOUS_ID_STORAGE_KEY);\n if (!id) {\n id = generateVisitorId();\n safeStorageSet(ANONYMOUS_ID_STORAGE_KEY, id);\n }\n return id;\n}\n\nexport function getAnalyticsAnonymousId(): string | undefined {\n return getOrCreateAnonymousId();\n}\n\nfunction getOrCreateSessionId(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n const now = Date.now();\n const lastActivityRaw = safeStorageGet(SESSION_LAST_ACTIVITY_STORAGE_KEY);\n const lastActivity = lastActivityRaw\n ? Number.parseInt(lastActivityRaw, 10)\n : 0;\n let id = safeStorageGet(SESSION_ID_STORAGE_KEY);\n const expired =\n !lastActivity ||\n Number.isNaN(lastActivity) ||\n now - lastActivity > SESSION_IDLE_TIMEOUT_MS;\n if (!id || expired) {\n id = generateVisitorId();\n safeStorageSet(SESSION_ID_STORAGE_KEY, id);\n }\n safeStorageSet(SESSION_LAST_ACTIVITY_STORAGE_KEY, String(now));\n return id;\n}\n\nexport function getAnalyticsSessionId(): string | undefined {\n return getOrCreateSessionId();\n}\n\nfunction truncateFirstTouchField(value: string | null | undefined): string {\n if (!value) return \"\";\n const trimmed = value.trim();\n if (!trimmed) return \"\";\n return trimmed.slice(0, FIRST_TOUCH_MAX_FIELD_LENGTH);\n}\n\n/**\n * Extract just the host of a referrer URL — never the full URL or query\n * string (those can carry tokens). Returns \"\" when there's no usable host or\n * the referrer is same-origin (a same-site navigation isn't a referral).\n */\nfunction scrubReferrerHost(referrer: string | undefined): string {\n if (!referrer) return \"\";\n try {\n const url = new URL(referrer);\n const host = url.host;\n if (!host) return \"\";\n if (\n typeof window !== \"undefined\" &&\n host.toLowerCase() === window.location.host.toLowerCase()\n ) {\n return \"\";\n }\n return truncateFirstTouchField(host);\n } catch {\n return \"\";\n }\n}\n\nfunction buildFirstTouchAttribution(): FirstTouchAttribution {\n const attribution: FirstTouchAttribution = {};\n let params: URLSearchParams | null = null;\n try {\n params = new URLSearchParams(window.location.search);\n } catch {\n params = null;\n }\n if (params) {\n for (const field of FIRST_TOUCH_QUERY_FIELDS) {\n const value = truncateFirstTouchField(params.get(field));\n if (value) attribution[field] = value;\n }\n }\n const landingPath = truncateFirstTouchField(window.location.pathname);\n if (landingPath) attribution.landing_path = landingPath;\n const landingReferrer =\n typeof document !== \"undefined\" ? scrubReferrerHost(document.referrer) : \"\";\n if (landingReferrer) attribution.landing_referrer = landingReferrer;\n attribution.landed_at = new Date().toISOString();\n return attribution;\n}\n\nfunction readFirstTouchCookie(): string | null {\n if (typeof document === \"undefined\") return null;\n try {\n const cookies = document.cookie ? document.cookie.split(\";\") : [];\n for (const part of cookies) {\n const eq = part.indexOf(\"=\");\n if (eq === -1) continue;\n const name = part.slice(0, eq).trim();\n if (name === FIRST_TOUCH_COOKIE_NAME) {\n return part.slice(eq + 1).trim();\n }\n }\n } catch {\n // document.cookie can throw in sandboxed iframes — best-effort.\n }\n return null;\n}\n\nfunction writeFirstTouchCookie(encodedValue: string): void {\n if (typeof document === \"undefined\") return;\n // Non-sensitive, written by client JS, so no HttpOnly. SameSite=Lax keeps it\n // on top-level navigations (which is how share links arrive) without leaking\n // it to cross-site subresource requests.\n const cookie =\n `${FIRST_TOUCH_COOKIE_NAME}=${encodedValue}; path=/; ` +\n `max-age=${FIRST_TOUCH_COOKIE_MAX_AGE_SECONDS}; SameSite=Lax`;\n if (cookie.length > FIRST_TOUCH_MAX_COOKIE_BYTES) return;\n try {\n document.cookie = cookie;\n } catch {\n // best-effort\n }\n}\n\n/**\n * Capture the visitor's first-touch referral attribution exactly once. Reads\n * the current URL query params + landing info and, IF no attribution is\n * already stored (first-write-wins), persists it to both `localStorage`\n * (`an_attribution`) and the first-party `an_ft` cookie. Fully defensive and\n * SSR-safe — any failure is swallowed so it can never break app boot.\n */\nfunction captureFirstTouchAttribution(): void {\n if (_firstTouchCaptured) return;\n _firstTouchCaptured = true;\n if (typeof window === \"undefined\") return;\n try {\n const existing = safeStorageGet(FIRST_TOUCH_STORAGE_KEY);\n if (existing) {\n // Already captured in a prior visit. Backfill the cookie if it expired\n // or was cleared so the signup boundary still sees first-touch data, but\n // never overwrite the stored value itself (first-write-wins).\n if (!readFirstTouchCookie()) {\n try {\n writeFirstTouchCookie(encodeURIComponent(existing));\n } catch {\n // ignore\n }\n }\n return;\n }\n const attribution = buildFirstTouchAttribution();\n const json = JSON.stringify(attribution);\n safeStorageSet(FIRST_TOUCH_STORAGE_KEY, json);\n writeFirstTouchCookie(encodeURIComponent(json));\n } catch {\n // Attribution is best-effort telemetry; never let it break boot.\n }\n}\n\n/**\n * Return the parsed first-touch referral attribution captured for this\n * visitor, or `null` when none is stored. Reads from `localStorage`\n * (`an_attribution`). SSR-safe and defensive.\n */\nexport function getFirstTouchAttribution(): FirstTouchAttribution | null {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = safeStorageGet(FIRST_TOUCH_STORAGE_KEY);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n return null;\n }\n return parsed as FirstTouchAttribution;\n } catch {\n return null;\n }\n}\n\nfunction isLocalAnalyticsHostname(hostname: string | undefined): boolean {\n const h = (hostname || \"\").toLowerCase();\n return (\n h === \"localhost\" ||\n h === \"127.0.0.1\" ||\n h === \"::1\" ||\n h === \"[::1]\" ||\n h.endsWith(\".localhost\") ||\n h.endsWith(\".local\")\n );\n}\n\nfunction ensureAmplitude(): boolean {\n if (_amplitudeInitialized) return true;\n const key = (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AMPLITUDE_API_KEY;\n if (!key) return false;\n amplitude.init(key, { autocapture: true });\n _amplitudeInitialized = true;\n return true;\n}\n\nfunction hasOnlySourcelessFrames(value: {\n stacktrace?: {\n frames?: Array<{\n filename?: unknown;\n abs_path?: unknown;\n function?: unknown;\n }>;\n };\n}): boolean {\n const frames = value.stacktrace?.frames ?? [];\n return (\n frames.length === 0 ||\n frames.every((frame) => {\n const filename = String(frame.filename ?? frame.abs_path ?? \"\")\n .trim()\n .toLowerCase();\n const functionName = String(frame.function ?? \"\").trim();\n return (\n !functionName &&\n (!filename || filename === \"undefined\" || filename === \"<anonymous>\")\n );\n })\n );\n}\n\nfunction isAgentNativeDocsUrl(url: string): boolean {\n if (!url) return false;\n try {\n const parsed = new URL(url);\n return (\n parsed.hostname === \"www.agent-native.com\" ||\n parsed.hostname === \"agent-native.com\"\n );\n } catch {\n return false;\n }\n}\n\nfunction shouldDropBrowserSentryNoise(event: Sentry.Event): boolean {\n const exceptionValues = event.exception?.values ?? [];\n const taggedUrl =\n typeof event.tags?.url === \"string\" ? event.tags.url : undefined;\n const requestUrl = (event.request?.url ?? taggedUrl ?? \"\").toLowerCase();\n const isDocsPage = isAgentNativeDocsUrl(requestUrl);\n // AgentAutoContinueSignal is a control-flow sentinel thrown to bubble\n // out of the SSE stream parser when the agent run needs to be\n // auto-continued. It's caught by the chat adapter and is never a real\n // error. Drop it unconditionally — capturing it as a Sentry exception\n // pollutes the issue list with sentinels that have no actionable stack.\n if (\n exceptionValues.some((value) => value.type === \"AgentAutoContinueSignal\")\n ) {\n return true;\n }\n // Browser-side access control rejections usually mean a tab outlived the\n // session or hit a protected route while signed out. The server Sentry setup\n // already drops these bare auth errors; mirror that here for client-captured\n // route/query failures.\n if (\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n return (\n exceptionType === \"unauthorizederror\" ||\n exceptionType === \"unauthenticatederror\" ||\n exceptionValue === \"unauthorized\" ||\n exceptionValue === \"unauthenticated\"\n );\n })\n ) {\n return true;\n }\n // Safari occasionally reports a source-less global `EmptyRanges` reference\n // error while browsing public pages. There is no script URL or function to\n // map back to our bundle, so keep the filter narrow and only drop it when\n // every frame is missing/undefined.\n if (\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n if (\n exceptionType !== \"referenceerror\" ||\n !exceptionValue.includes(\"emptyranges\")\n ) {\n return false;\n }\n return hasOnlySourcelessFrames(value);\n })\n ) {\n return true;\n }\n if (\n isDocsPage &&\n exceptionValues.some((value) => {\n const exceptionValue = String(value.value ?? \"\").toLowerCase();\n return exceptionValue.includes(\n \"window.webkit.messagehandlers.scrolleventhandler.postmessage\",\n );\n })\n ) {\n return true;\n }\n if (\n isDocsPage &&\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n return (\n exceptionType === \"rangeerror\" &&\n exceptionValue.includes(\"maximum call stack\") &&\n hasOnlySourcelessFrames(value)\n );\n })\n ) {\n return true;\n }\n // Exact user/navigation aborts are expected browser behavior. Keep other\n // AbortError shapes visible unless they match this common non-bug message.\n if (\n exceptionValues.some((value) => {\n const exceptionType = String(value.type ?? \"\")\n .trim()\n .toLowerCase();\n const exceptionValue = String(value.value ?? \"\")\n .trim()\n .toLowerCase();\n return (\n exceptionValue === \"the user aborted a request.\" ||\n exceptionValue === \"signal is aborted without reason\" ||\n exceptionValue === \"aborterror: the user aborted a request.\" ||\n exceptionValue === \"aborterror: signal is aborted without reason\" ||\n (exceptionType === \"aborterror\" &&\n (exceptionValue.includes(\"the user aborted a request\") ||\n exceptionValue.includes(\"signal is aborted without reason\")))\n );\n })\n ) {\n return true;\n }\n const exceptionText = exceptionValues\n .map((value) => `${value.type ?? \"\"} ${value.value ?? \"\"}`)\n .join(\" \")\n .toLowerCase();\n const breadcrumbText = (event.breadcrumbs ?? [])\n .map((crumb) => {\n const data = crumb.data as Record<string, unknown> | undefined;\n return [\n crumb.category,\n crumb.message,\n typeof data?.url === \"string\" ? data.url : \"\",\n ].join(\" \");\n })\n .join(\" \")\n .toLowerCase();\n const combined = `${exceptionText} ${requestUrl} ${breadcrumbText}`;\n return (\n combined.includes(\"api2.amplitude.com\") &&\n (combined.includes(\"failed to fetch\") ||\n combined.includes(\"networkerror\") ||\n combined.includes(\"load failed\"))\n );\n}\n\nfunction firstNonEmpty(...values: Array<string | undefined>): string {\n for (const value of values) {\n const trimmed = value?.trim();\n if (trimmed) return trimmed;\n }\n return \"\";\n}\n\nfunction resolveClientSentryDsnFromKeyProject(\n env: Record<string, string | undefined>,\n): string | undefined {\n const key = firstNonEmpty(env.VITE_SENTRY_CLIENT_KEY);\n const projectId = firstNonEmpty(env.VITE_SENTRY_PROJECT_ID);\n const host = firstNonEmpty(env.VITE_SENTRY_INGEST_HOST);\n if (!key || !projectId || !host) return undefined;\n return `https://${key}@${host}/${projectId}`;\n}\n\nfunction getClientSentryDsn(): string | undefined {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n return (\n env.VITE_SENTRY_CLIENT_DSN ||\n env.VITE_SENTRY_DSN ||\n window.__AGENT_NATIVE_CONFIG__?.sentryDsn ||\n resolveClientSentryDsnFromKeyProject(env)\n );\n}\n\nfunction ensureSentry(): void {\n if (_sentryInitialized) return;\n const dsn = getClientSentryDsn();\n if (!dsn) return;\n Sentry.init({\n dsn,\n environment:\n window.__AGENT_NATIVE_CONFIG__?.sentryEnvironment ||\n (import.meta.env as Record<string, string | undefined>)?.MODE ||\n \"production\",\n beforeSend(event) {\n if (shouldDropBrowserSentryNoise(event)) {\n return null;\n }\n // Strip sensitive query params from the request URL. React Router\n // history can include share tokens, ?signin=1, password reset codes,\n // public-share password params (audit F-07), etc.\n if (event.request?.url) {\n event.request.url = scrubUrl(event.request.url);\n }\n // Clean the same params from breadcrumb URLs (Sentry captures\n // history.pushState breadcrumbs by default).\n if (Array.isArray(event.breadcrumbs)) {\n for (const crumb of event.breadcrumbs) {\n if (crumb && typeof crumb === \"object\" && \"data\" in crumb) {\n const data = crumb.data as Record<string, unknown> | undefined;\n if (data && typeof data.url === \"string\") {\n data.url = scrubUrl(data.url);\n }\n if (data && typeof data.from === \"string\") {\n data.from = scrubUrl(data.from);\n }\n if (data && typeof data.to === \"string\") {\n data.to = scrubUrl(data.to);\n }\n }\n }\n }\n return event;\n },\n });\n Sentry.setTag(\"runtime\", \"browser\");\n _sentryInitialized = true;\n // Flush any user/tag that was set before init.\n if (_pendingSentryUser !== undefined) {\n Sentry.setUser(_pendingSentryUser);\n _pendingSentryUser = undefined;\n }\n if (_pendingSentryOrgId !== undefined) {\n Sentry.setTag(\"orgId\", _pendingSentryOrgId);\n _pendingSentryOrgId = undefined;\n }\n}\n\n/**\n * Attach the current user to Sentry events from the browser. Pass `null` to\n * clear (e.g. on logout). If Sentry isn't initialized yet, the value is\n * buffered and applied once `ensureSentry()` runs.\n *\n * Pass `orgId` to also tag events with the active organization ID — useful\n * for filtering Sentry by tenant.\n */\nexport function setSentryUser(\n user: SentryUser | null,\n orgId?: string | null,\n): void {\n let shouldRetryReplay = false;\n if (user) {\n const userId = user.email || user.id;\n if (userId) {\n _trackingIdentity = {\n userId,\n ...(user.email ? { userEmail: user.email } : {}),\n ...(user.username ? { userName: user.username } : {}),\n orgId: orgId ?? null,\n };\n } else {\n clearTrackingIdentity();\n }\n shouldRetryReplay = Boolean(user.email);\n } else {\n clearTrackingIdentity();\n }\n _trackingIdentityResolved = true;\n if (shouldRetryReplay && _sessionReplayOptions?.requireSignedInUser) {\n void startConfiguredSessionReplay(_sessionReplayOptions);\n }\n if (_sentryInitialized) {\n Sentry.setUser(user);\n if (orgId !== undefined) {\n Sentry.setTag(\"orgId\", orgId ?? null);\n }\n return;\n }\n _pendingSentryUser = user;\n if (orgId !== undefined) {\n _pendingSentryOrgId = orgId ?? null;\n }\n}\n\nexport interface ClientCaptureContext {\n /** Searchable Sentry tags (low-cardinality strings only). */\n tags?: Record<string, string | undefined>;\n /**\n * High-cardinality / structured payload — not searchable but visible in\n * the Sentry event detail (file sizes, request URLs, response body\n * tails, etc.).\n */\n extra?: Record<string, unknown>;\n /**\n * Grouped contexts shown as separate cards in the Sentry event UI.\n */\n contexts?: Record<string, Record<string, unknown>>;\n}\n\n/**\n * Capture an exception to Sentry from browser code without forcing the\n * caller to depend on `@sentry/browser` directly.\n *\n * Templates can route a thrown Error through here on a known failure path\n * (chunk-upload 500, thumbnail upload, etc.) to attach searchable tags and\n * structured extra context. No-ops gracefully when Sentry isn't\n * initialized — never throws back into the caller, so a Sentry hiccup\n * can't mask the original error.\n */\nexport function captureClientException(\n error: unknown,\n context: ClientCaptureContext = {},\n): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n try {\n ensureSentry();\n return Sentry.withScope((scope) => {\n if (context.tags) {\n for (const [k, v] of Object.entries(context.tags)) {\n if (typeof v === \"string\") scope.setTag(k, v);\n }\n }\n if (context.extra) {\n for (const [k, v] of Object.entries(context.extra)) {\n if (v !== undefined) scope.setExtra(k, v);\n }\n }\n if (context.contexts) {\n for (const [k, v] of Object.entries(context.contexts)) {\n scope.setContext(k, v);\n }\n }\n return Sentry.captureException(error);\n });\n } catch {\n return undefined;\n }\n}\n\n/**\n * Public browser-side error capture utility, mirroring `trackEvent()`:\n * templates can call `captureError(err, { tags, extra, contexts })` without\n * depending on Sentry directly. Sentry receives the event when a browser DSN\n * is configured; otherwise this is a quiet no-op.\n */\nexport function captureError(\n error: unknown,\n context: ClientCaptureContext = {},\n): string | undefined {\n return captureClientException(error, context);\n}\n\nfunction getPageviewTrackingState(): PageviewTrackingState {\n const g = globalThis as typeof globalThis & {\n [PAGEVIEW_TRACKING_STATE_KEY]?: PageviewTrackingState;\n };\n if (!g[PAGEVIEW_TRACKING_STATE_KEY]) {\n g[PAGEVIEW_TRACKING_STATE_KEY] = {\n installed: false,\n lastPageviewKey: null,\n };\n }\n return g[PAGEVIEW_TRACKING_STATE_KEY];\n}\n\nexport function configureTracking(options: ConfigureTrackingOptions): void {\n const publicKey = options.key || options.publicKey;\n if (publicKey) {\n _agentNativeAnalyticsPublicKey = publicKey;\n }\n if (options.endpoint) {\n _agentNativeAnalyticsEndpoint = options.endpoint;\n }\n if (options.getDefaultProps) {\n _getDefaultProps = options.getDefaultProps;\n }\n if (typeof window !== \"undefined\") {\n ensureSentry();\n ensureAmplitude();\n captureFirstTouchAttribution();\n installLlmConnectionRefresh();\n installTrackingAuthSessionRefresh();\n installPageviewTracking();\n maybeInstallSessionReplay(options.sessionReplay, {\n endpoint: options.endpoint,\n publicKey,\n });\n }\n}\n\nfunction sessionReplayEnabledFromEnv(): boolean {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n const value =\n env.VITE_AGENT_NATIVE_SESSION_REPLAY_ENABLED ||\n env.VITE_SESSION_REPLAY_ENABLED;\n return /^(1|true|yes|on)$/i.test((value ?? \"\").trim());\n}\n\nfunction sessionReplayRequiresSignedInUserFromEnv(): boolean | undefined {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n const value =\n env.VITE_AGENT_NATIVE_SESSION_REPLAY_REQUIRE_AUTH ||\n env.VITE_SESSION_REPLAY_REQUIRE_AUTH;\n const normalized = (value ?? \"\").trim();\n if (!normalized) return undefined;\n if (/^(1|true|yes|on)$/i.test(normalized)) return true;\n if (/^(0|false|no|off)$/i.test(normalized)) return false;\n return undefined;\n}\n\nfunction configuredSessionReplayOptions(\n config: boolean | SessionReplayOptions | undefined,\n tracking: { endpoint?: string; publicKey?: string } = {},\n): SessionReplayOptions | null {\n const env = (import.meta.env as Record<string, string | undefined>) ?? {};\n const publicKey =\n tracking.publicKey ||\n _agentNativeAnalyticsPublicKey ||\n env.VITE_AGENT_NATIVE_ANALYTICS_PUBLIC_KEY;\n const trackingEndpoint =\n tracking.endpoint ||\n _agentNativeAnalyticsEndpoint ||\n env.VITE_AGENT_NATIVE_ANALYTICS_ENDPOINT ||\n (publicKey ? AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT : undefined);\n const endpoint = trackingEndpoint\n ? replayEndpointFromTrackingEndpoint(trackingEndpoint)\n : undefined;\n const withTrackingDefaults = (\n options: SessionReplayOptions,\n ): SessionReplayOptions => {\n const extraProperties = replayExtraPropertiesWithDefaults(\n options.extraProperties,\n );\n return {\n ...(publicKey && !options.publicKey ? { publicKey } : {}),\n ...(endpoint && !options.endpoint ? { endpoint } : {}),\n ...options,\n requireSignedInUser:\n options.requireSignedInUser ??\n sessionReplayRequiresSignedInUserFromEnv() ??\n true,\n ...(extraProperties ? { extraProperties } : {}),\n };\n };\n\n if (config === false) return null;\n if (config === true) return withTrackingDefaults({});\n if (config && typeof config === \"object\") {\n if (config.enabled === false) return null;\n return withTrackingDefaults(config);\n }\n const autoEnabledByAnalyticsKey =\n !!publicKey &&\n (typeof window === \"undefined\" ||\n !isLocalAnalyticsHostname(window.location.hostname));\n return sessionReplayEnabledFromEnv() || autoEnabledByAnalyticsKey\n ? withTrackingDefaults({})\n : null;\n}\n\nfunction replayExtraPropertiesWithDefaults(\n source: SessionReplayOptions[\"extraProperties\"],\n): SessionReplayOptions[\"extraProperties\"] {\n return () => {\n const rawProps =\n typeof source === \"function\"\n ? source()\n : source && typeof source === \"object\"\n ? source\n : {};\n const props = rawProps && typeof rawProps === \"object\" ? rawProps : {};\n const withDefaults = _getDefaultProps?.(\"session_replay\", props) ?? props;\n return applyTrackingIdentity(\n withDefaults,\n _trackingIdentity ?? _sessionReplayIdentitySnapshot,\n );\n };\n}\n\nfunction replayEndpointFromTrackingEndpoint(value: string): string | undefined {\n try {\n const url = new URL(value);\n if (url.pathname.endsWith(\"/api/analytics/track\")) {\n url.pathname = url.pathname.replace(\n /\\/api\\/analytics\\/track$/,\n \"/api/analytics/replay\",\n );\n return url.toString();\n }\n if (url.pathname.endsWith(\"/track\")) {\n url.pathname = url.pathname.replace(/\\/track$/, \"/api/analytics/replay\");\n return url.toString();\n }\n } catch {\n // Fall through to relative-path handling below.\n }\n if (value.endsWith(\"/api/analytics/track\")) {\n return value.replace(/\\/api\\/analytics\\/track$/, \"/api/analytics/replay\");\n }\n if (value.endsWith(\"/track\")) {\n return value.replace(/\\/track$/, \"/api/analytics/replay\");\n }\n return undefined;\n}\n\nfunction maybeInstallSessionReplay(\n config: boolean | SessionReplayOptions | undefined,\n tracking?: { endpoint?: string; publicKey?: string },\n): void {\n if (typeof window === \"undefined\") return;\n const options = configuredSessionReplayOptions(config, tracking);\n if (!options) return;\n _sessionReplayOptions = options;\n void startConfiguredSessionReplay(options);\n}\n\nasync function waitForSessionReplayAuthIfRequired(\n options: SessionReplayOptions,\n): Promise<boolean> {\n if (!options.requireSignedInUser) return true;\n if (_trackingIdentity?.userEmail) return true;\n try {\n if (_trackingSessionRefresh) {\n await _trackingSessionRefresh;\n } else if (!_trackingIdentityResolved) {\n await refreshTrackingAuthSession();\n }\n } catch {\n // best-effort; missing identity below keeps replay off\n }\n return !!_trackingIdentity?.userEmail;\n}\n\nasync function startConfiguredSessionReplay(\n options: SessionReplayOptions,\n): Promise<SessionReplayStartResult | null> {\n if (_sessionReplayStartPromise) return _sessionReplayStartPromise;\n _sessionReplayStartPromise = (async () => {\n if (!(await waitForSessionReplayAuthIfRequired(options))) {\n return { started: false, reason: \"missing-user-id\" as const };\n }\n const mod = await import(\"./session-replay.js\");\n return mod.startSessionReplay(options);\n })()\n .catch(() => ({ started: false, reason: \"import-failed\" as const }))\n .finally(() => {\n _sessionReplayStartPromise = null;\n });\n return _sessionReplayStartPromise;\n}\n\nexport async function startSessionReplay(\n options: SessionReplayOptions = {},\n): Promise<SessionReplayStartResult> {\n const configured = configuredSessionReplayOptions(options) ?? options;\n if (!(await waitForSessionReplayAuthIfRequired(configured))) {\n return { started: false, reason: \"missing-user-id\" };\n }\n const mod = await import(\"./session-replay.js\");\n return mod.startSessionReplay(configured);\n}\n\nexport async function maybeStartSessionReplay(\n options: SessionReplayOptions = {},\n): Promise<SessionReplayStartResult> {\n const configured = configuredSessionReplayOptions(options) ?? options;\n if (!(await waitForSessionReplayAuthIfRequired(configured))) {\n return { started: false, reason: \"missing-user-id\" };\n }\n const mod = await import(\"./session-replay.js\");\n return mod.maybeStartSessionReplay(configured);\n}\n\nexport async function stopSessionReplay(reason = \"manual\"): Promise<void> {\n const mod = await import(\"./session-replay.js\");\n await mod.stopSessionReplay(reason);\n}\n\nfunction inferTemplateName(properties: Record<string, unknown>): string | null {\n const envTemplate =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AGENT_NATIVE_TEMPLATE ||\n (import.meta.env as Record<string, string | undefined>)?.VITE_APP_TEMPLATE;\n if (envTemplate) return envTemplate;\n\n const app = typeof properties.app === \"string\" ? properties.app.trim() : \"\";\n if (!app || app === \"localhost\") return null;\n if (app.startsWith(\"agent-native-\")) {\n return app.slice(\"agent-native-\".length);\n }\n return app;\n}\n\nfunction resolveProps(\n name: string,\n params?: Record<string, unknown>,\n): Record<string, unknown> {\n if (typeof window === \"undefined\") return { ...params };\n const base: Record<string, unknown> = {\n url: window.location.origin + window.location.pathname,\n app: window.location.hostname.split(\".\")[0] || \"localhost\",\n ...params,\n };\n const props = _getDefaultProps ? _getDefaultProps(name, base) : base;\n let withTemplate = props;\n if (withTemplate.template === undefined) {\n const template = inferTemplateName(props);\n if (template) {\n withTemplate = { ...props, template };\n }\n }\n const llmProps = llmConnectionTrackingProperties(_llmConnectionStatus);\n const enriched = { ...withTemplate };\n for (const [key, value] of Object.entries(llmProps)) {\n if (enriched[key] === undefined) enriched[key] = value;\n }\n return applyTrackingIdentity(enriched);\n}\n\nfunction pageviewKey(): string {\n return window.location.href;\n}\n\nfunction pageviewProperties(reason: string): Record<string, unknown> {\n const properties: Record<string, unknown> = {\n url: scrubUrl(window.location.href),\n path: window.location.pathname,\n hostname: window.location.hostname,\n navigation_type: reason,\n };\n if (window.location.search) {\n properties.search = scrubUrl(window.location.search);\n }\n if (typeof document !== \"undefined\") {\n if (document.referrer) {\n properties.referrer = scrubUrl(document.referrer);\n }\n if (document.title) {\n properties.title = document.title;\n }\n }\n return properties;\n}\n\nfunction emitPageview(reason: string): void {\n if (isLocalAnalyticsHostname(window.location.hostname)) return;\n const state = getPageviewTrackingState();\n const key = pageviewKey();\n if (state.lastPageviewKey === key) return;\n state.lastPageviewKey = key;\n trackEvent(\"pageview\", pageviewProperties(reason));\n}\n\nfunction schedulePageview(reason: string): void {\n const run = () => emitPageview(reason);\n const pendingStartupContext: Array<Promise<void>> = [];\n if (_llmConnectionRefresh && !_llmConnectionStatus) {\n pendingStartupContext.push(_llmConnectionRefresh);\n }\n if (_trackingSessionRefresh && !_trackingIdentityResolved) {\n pendingStartupContext.push(_trackingSessionRefresh);\n }\n if (pendingStartupContext.length > 0) {\n const timeout = new Promise<void>((resolve) =>\n window.setTimeout(resolve, 250),\n );\n Promise.race([Promise.allSettled(pendingStartupContext), timeout]).finally(\n run,\n );\n return;\n }\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(run);\n return;\n }\n window.setTimeout(run, 0);\n}\n\nfunction installPageviewTracking(): void {\n const state = getPageviewTrackingState();\n if (state.installed) return;\n state.installed = true;\n\n schedulePageview(\"load\");\n\n const originalPushState = window.history.pushState;\n const originalReplaceState = window.history.replaceState;\n\n window.history.pushState = function pushState(...args) {\n const result = originalPushState.apply(this, args);\n schedulePageview(\"pushState\");\n return result;\n };\n\n window.history.replaceState = function replaceState(...args) {\n const result = originalReplaceState.apply(this, args);\n schedulePageview(\"replaceState\");\n return result;\n };\n\n window.addEventListener(\"popstate\", () => schedulePageview(\"popstate\"));\n}\n\nfunction sendAgentNativeAnalytics(\n name: string,\n properties: Record<string, unknown>,\n): void {\n if (isLocalAnalyticsHostname(window.location.hostname)) return;\n\n const publicKey =\n _agentNativeAnalyticsPublicKey ||\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AGENT_NATIVE_ANALYTICS_PUBLIC_KEY;\n if (!publicKey) return;\n\n const endpoint =\n _agentNativeAnalyticsEndpoint ||\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AGENT_NATIVE_ANALYTICS_ENDPOINT ||\n AGENT_NATIVE_ANALYTICS_DEFAULT_ENDPOINT;\n const userId =\n typeof properties.userId === \"string\" ? properties.userId : undefined;\n const body = JSON.stringify({\n publicKey,\n event: name,\n properties,\n userId,\n anonymousId: getOrCreateAnonymousId(),\n sessionId: getOrCreateSessionId(),\n timestamp: new Date().toISOString(),\n });\n\n try {\n if (navigator.sendBeacon) {\n const sent = navigator.sendBeacon(endpoint, body);\n if (sent) return;\n }\n fetch(endpoint, {\n method: \"POST\",\n body,\n keepalive: true,\n headers: { \"Content-Type\": \"text/plain;charset=UTF-8\" },\n }).catch(() => {});\n } catch {\n // best-effort\n }\n}\n\nexport function trackEvent(\n name: string,\n params?: Record<string, unknown>,\n): void {\n if (typeof window === \"undefined\") return;\n ensureSentry();\n const props = resolveProps(name, params);\n window.gtag?.(\"event\", name.replace(/\\s+/g, \"_\"), props);\n if (ensureAmplitude()) {\n amplitude.track(name, props);\n }\n sendAgentNativeAnalytics(name, props);\n}\n\nexport function trackSessionStatus(signedIn: boolean): void {\n trackEvent(\"session status\", { signed_in: signedIn });\n}\n"]}
@@ -26,6 +26,7 @@ export declare function useIsDark(): boolean;
26
26
  */
27
27
  export declare const KitConfigContext: import("react").Context<{
28
28
  skeleton?: boolean;
29
+ flushFrame?: boolean;
29
30
  sketch?: number;
30
31
  theme?: "light" | "dark";
31
32
  style?: "sketchy" | "clean";
@@ -1 +1 @@
1
- {"version":3,"file":"wireframe-kit.d.ts","sourceRoot":"","sources":["../../../../src/client/blocks/library/wireframe-kit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wireframe-kit.d.ts","sourceRoot":"","sources":["../../../../src/client/blocks/library/wireframe-kit.tsx"],"names":[],"mappings":"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"}