@agent-native/core 0.7.17 → 0.7.19

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 (493) hide show
  1. package/dist/a2a/agent-card.js.map +1 -1
  2. package/dist/a2a/client.js.map +1 -1
  3. package/dist/a2a/handlers.js.map +1 -1
  4. package/dist/a2a/index.js.map +1 -1
  5. package/dist/a2a/server.js.map +1 -1
  6. package/dist/a2a/task-store.js.map +1 -1
  7. package/dist/a2a/types.js.map +1 -1
  8. package/dist/action.js.map +1 -1
  9. package/dist/adapters/cli/index.js.map +1 -1
  10. package/dist/adapters/cli/registry.js.map +1 -1
  11. package/dist/adapters/cli/shell-adapter.js.map +1 -1
  12. package/dist/adapters/cli/types.js.map +1 -1
  13. package/dist/agent/default-model.js.map +1 -1
  14. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  15. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  16. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  17. package/dist/agent/engine/builder-engine.js +15 -3
  18. package/dist/agent/engine/builder-engine.js.map +1 -1
  19. package/dist/agent/engine/builtin.js.map +1 -1
  20. package/dist/agent/engine/index.js.map +1 -1
  21. package/dist/agent/engine/provider-env-vars.js.map +1 -1
  22. package/dist/agent/engine/registry.d.ts +5 -3
  23. package/dist/agent/engine/registry.d.ts.map +1 -1
  24. package/dist/agent/engine/registry.js +6 -5
  25. package/dist/agent/engine/registry.js.map +1 -1
  26. package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
  27. package/dist/agent/engine/translate-anthropic.js.map +1 -1
  28. package/dist/agent/engine/types.js.map +1 -1
  29. package/dist/agent/index.js.map +1 -1
  30. package/dist/agent/production-agent.js +1 -1
  31. package/dist/agent/production-agent.js.map +1 -1
  32. package/dist/agent/run-manager.js.map +1 -1
  33. package/dist/agent/run-store.js.map +1 -1
  34. package/dist/agent/thread-data-builder.js.map +1 -1
  35. package/dist/agent/types.js.map +1 -1
  36. package/dist/application-state/emitter.js.map +1 -1
  37. package/dist/application-state/handlers.js.map +1 -1
  38. package/dist/application-state/index.js.map +1 -1
  39. package/dist/application-state/script-helpers.js.map +1 -1
  40. package/dist/application-state/store.js.map +1 -1
  41. package/dist/chat-threads/emitter.js.map +1 -1
  42. package/dist/chat-threads/store.js.map +1 -1
  43. package/dist/checkpoints/index.js.map +1 -1
  44. package/dist/checkpoints/service.js.map +1 -1
  45. package/dist/checkpoints/store.js.map +1 -1
  46. package/dist/cli/create-workspace.js.map +1 -1
  47. package/dist/cli/create.d.ts.map +1 -1
  48. package/dist/cli/create.js +24 -2
  49. package/dist/cli/create.js.map +1 -1
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/cli/info.js.map +1 -1
  52. package/dist/cli/setup-agents.js.map +1 -1
  53. package/dist/cli/templates-meta.js.map +1 -1
  54. package/dist/cli/workspacify.js.map +1 -1
  55. package/dist/client/AgentPanel.js.map +1 -1
  56. package/dist/client/AgentTaskCard.js.map +1 -1
  57. package/dist/client/AssistantChat.d.ts.map +1 -1
  58. package/dist/client/AssistantChat.js +34 -4
  59. package/dist/client/AssistantChat.js.map +1 -1
  60. package/dist/client/ClientOnly.js.map +1 -1
  61. package/dist/client/CommandMenu.js.map +1 -1
  62. package/dist/client/ConnectBuilderCard.js.map +1 -1
  63. package/dist/client/DefaultSpinner.js.map +1 -1
  64. package/dist/client/ErrorBoundary.js.map +1 -1
  65. package/dist/client/FeedbackButton.js.map +1 -1
  66. package/dist/client/IframeEmbed.js.map +1 -1
  67. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  68. package/dist/client/MultiTabAssistantChat.js +5 -21
  69. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  70. package/dist/client/PoweredByBadge.js.map +1 -1
  71. package/dist/client/ProductionAgentPanel.js.map +1 -1
  72. package/dist/client/Turnstile.js.map +1 -1
  73. package/dist/client/active-run-state.js.map +1 -1
  74. package/dist/client/agent-chat-adapter.d.ts +10 -0
  75. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  76. package/dist/client/agent-chat-adapter.js +23 -3
  77. package/dist/client/agent-chat-adapter.js.map +1 -1
  78. package/dist/client/agent-chat.js.map +1 -1
  79. package/dist/client/analytics.js.map +1 -1
  80. package/dist/client/api-path.js.map +1 -1
  81. package/dist/client/builder-mark.js.map +1 -1
  82. package/dist/client/components/AgentPresenceChip.js.map +1 -1
  83. package/dist/client/components/ApiKeySettings.js.map +1 -1
  84. package/dist/client/components/CodeAgentIndicator.js.map +1 -1
  85. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  86. package/dist/client/components/MissingKeyCard.js.map +1 -1
  87. package/dist/client/components/PresenceBar.js.map +1 -1
  88. package/dist/client/components/ui/popover.js.map +1 -1
  89. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  90. package/dist/client/composer/MentionPopover.js.map +1 -1
  91. package/dist/client/composer/TiptapComposer.js.map +1 -1
  92. package/dist/client/composer/VoiceButton.js.map +1 -1
  93. package/dist/client/composer/draft-key.js.map +1 -1
  94. package/dist/client/composer/extensions/FileReference.js.map +1 -1
  95. package/dist/client/composer/extensions/MentionReference.js.map +1 -1
  96. package/dist/client/composer/extensions/SkillReference.js.map +1 -1
  97. package/dist/client/composer/index.js.map +1 -1
  98. package/dist/client/composer/types.js.map +1 -1
  99. package/dist/client/composer/use-file-search.js.map +1 -1
  100. package/dist/client/composer/use-mention-search.js.map +1 -1
  101. package/dist/client/composer/use-skills.js.map +1 -1
  102. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  103. package/dist/client/dev-mode.js.map +1 -1
  104. package/dist/client/dev-overlay/DevOverlay.js.map +1 -1
  105. package/dist/client/dev-overlay/builtins.js.map +1 -1
  106. package/dist/client/dev-overlay/index.js.map +1 -1
  107. package/dist/client/dev-overlay/registry.js.map +1 -1
  108. package/dist/client/dev-overlay/types.js.map +1 -1
  109. package/dist/client/dev-overlay/use-dev-option.js.map +1 -1
  110. package/dist/client/dev-overlay/use-dev-overlay-shortcut.js.map +1 -1
  111. package/dist/client/embed.js.map +1 -1
  112. package/dist/client/error-format.js.map +1 -1
  113. package/dist/client/frame-protocol.js.map +1 -1
  114. package/dist/client/frame.js.map +1 -1
  115. package/dist/client/index.d.ts +0 -1
  116. package/dist/client/index.d.ts.map +1 -1
  117. package/dist/client/index.js +0 -1
  118. package/dist/client/index.js.map +1 -1
  119. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  120. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  121. package/dist/client/integrations/index.js.map +1 -1
  122. package/dist/client/integrations/useIntegrationStatus.js.map +1 -1
  123. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  124. package/dist/client/notifications/index.js.map +1 -1
  125. package/dist/client/observability/ObservabilityDashboard.js.map +1 -1
  126. package/dist/client/observability/ThumbsFeedback.js.map +1 -1
  127. package/dist/client/observability/index.js.map +1 -1
  128. package/dist/client/observability/useObservability.js.map +1 -1
  129. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  130. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  131. package/dist/client/onboarding/OnboardingPanel.js +6 -27
  132. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  133. package/dist/client/onboarding/SetupButton.js.map +1 -1
  134. package/dist/client/onboarding/index.js.map +1 -1
  135. package/dist/client/onboarding/use-onboarding.js.map +1 -1
  136. package/dist/client/onboarding/use-preview-mode.js.map +1 -1
  137. package/dist/client/org/InvitationBanner.js.map +1 -1
  138. package/dist/client/org/OrgSwitcher.js.map +1 -1
  139. package/dist/client/org/RequireActiveOrg.js.map +1 -1
  140. package/dist/client/org/TeamPage.d.ts.map +1 -1
  141. package/dist/client/org/TeamPage.js +14 -2
  142. package/dist/client/org/TeamPage.js.map +1 -1
  143. package/dist/client/org/hooks.js.map +1 -1
  144. package/dist/client/org/index.js.map +1 -1
  145. package/dist/client/progress/RunsTray.js.map +1 -1
  146. package/dist/client/progress/index.js.map +1 -1
  147. package/dist/client/resources/McpServerDetail.js.map +1 -1
  148. package/dist/client/resources/ResourceEditor.js.map +1 -1
  149. package/dist/client/resources/ResourceTree.js.map +1 -1
  150. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  151. package/dist/client/resources/index.js.map +1 -1
  152. package/dist/client/resources/use-mcp-servers.js.map +1 -1
  153. package/dist/client/resources/use-resources.js.map +1 -1
  154. package/dist/client/settings/AgentsSection.js.map +1 -1
  155. package/dist/client/settings/AutomationsSection.js.map +1 -1
  156. package/dist/client/settings/BackgroundAgentSection.js.map +1 -1
  157. package/dist/client/settings/BrowserSection.js.map +1 -1
  158. package/dist/client/settings/SecretsSection.js.map +1 -1
  159. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  160. package/dist/client/settings/SettingsPanel.js +3 -19
  161. package/dist/client/settings/SettingsPanel.js.map +1 -1
  162. package/dist/client/settings/SettingsSection.js.map +1 -1
  163. package/dist/client/settings/UsageSection.js.map +1 -1
  164. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  165. package/dist/client/settings/index.js.map +1 -1
  166. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  167. package/dist/client/sharing/ShareButton.js.map +1 -1
  168. package/dist/client/sharing/ShareDialog.js.map +1 -1
  169. package/dist/client/sharing/VisibilityBadge.js.map +1 -1
  170. package/dist/client/sharing/index.js.map +1 -1
  171. package/dist/client/sse-event-processor.d.ts +6 -1
  172. package/dist/client/sse-event-processor.d.ts.map +1 -1
  173. package/dist/client/sse-event-processor.js +9 -3
  174. package/dist/client/sse-event-processor.js.map +1 -1
  175. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  176. package/dist/client/terminal/index.js.map +1 -1
  177. package/dist/client/tools/EmbeddedTool.js.map +1 -1
  178. package/dist/client/tools/ExtensionSlot.js.map +1 -1
  179. package/dist/client/tools/ToolEditor.js.map +1 -1
  180. package/dist/client/tools/ToolViewer.js.map +1 -1
  181. package/dist/client/tools/ToolViewerPage.js.map +1 -1
  182. package/dist/client/tools/ToolsListPage.js.map +1 -1
  183. package/dist/client/tools/ToolsSidebarSection.js.map +1 -1
  184. package/dist/client/tools/iframe-bridge.js.map +1 -1
  185. package/dist/client/tools/index.js.map +1 -1
  186. package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -1
  187. package/dist/client/transcription/use-live-transcription.js.map +1 -1
  188. package/dist/client/use-action.js.map +1 -1
  189. package/dist/client/use-agent-chat.js.map +1 -1
  190. package/dist/client/use-avatar.js.map +1 -1
  191. package/dist/client/use-chat-threads.js.map +1 -1
  192. package/dist/client/use-db-sync.js.map +1 -1
  193. package/dist/client/use-dev-mode.js.map +1 -1
  194. package/dist/client/use-pausing-interval.js.map +1 -1
  195. package/dist/client/use-send-to-agent-chat.js.map +1 -1
  196. package/dist/client/use-session.js.map +1 -1
  197. package/dist/client/useProductionAgent.js.map +1 -1
  198. package/dist/client/utils.js.map +1 -1
  199. package/dist/collab/agent-identity.js.map +1 -1
  200. package/dist/collab/agent-presence.js.map +1 -1
  201. package/dist/collab/awareness.js.map +1 -1
  202. package/dist/collab/client-struct.js.map +1 -1
  203. package/dist/collab/client.js.map +1 -1
  204. package/dist/collab/emitter.js.map +1 -1
  205. package/dist/collab/index.js.map +1 -1
  206. package/dist/collab/json-to-yjs.js.map +1 -1
  207. package/dist/collab/routes.js.map +1 -1
  208. package/dist/collab/storage.js.map +1 -1
  209. package/dist/collab/struct-routes.js.map +1 -1
  210. package/dist/collab/text-to-yjs.js.map +1 -1
  211. package/dist/collab/xml-ops.js.map +1 -1
  212. package/dist/collab/ydoc-manager.js.map +1 -1
  213. package/dist/credentials/index.js.map +1 -1
  214. package/dist/db/client.js.map +1 -1
  215. package/dist/db/create-get-db.js.map +1 -1
  216. package/dist/db/drizzle-config.js.map +1 -1
  217. package/dist/db/index.js.map +1 -1
  218. package/dist/db/migrations.js.map +1 -1
  219. package/dist/db/schema.js.map +1 -1
  220. package/dist/deploy/build.js.map +1 -1
  221. package/dist/deploy/route-discovery.js.map +1 -1
  222. package/dist/deploy/workspace-core.js.map +1 -1
  223. package/dist/deploy/workspace-deploy.js.map +1 -1
  224. package/dist/event-bus/bus.js.map +1 -1
  225. package/dist/event-bus/index.js.map +1 -1
  226. package/dist/event-bus/registry.js.map +1 -1
  227. package/dist/event-bus/types.js.map +1 -1
  228. package/dist/file-upload/builder.js.map +1 -1
  229. package/dist/file-upload/index.js.map +1 -1
  230. package/dist/file-upload/registry.js.map +1 -1
  231. package/dist/file-upload/types.js.map +1 -1
  232. package/dist/index.browser.js.map +1 -1
  233. package/dist/index.js.map +1 -1
  234. package/dist/integrations/adapters/email.js.map +1 -1
  235. package/dist/integrations/adapters/google-docs.js.map +1 -1
  236. package/dist/integrations/adapters/slack.js.map +1 -1
  237. package/dist/integrations/adapters/telegram.js.map +1 -1
  238. package/dist/integrations/adapters/whatsapp.js.map +1 -1
  239. package/dist/integrations/config-store.js.map +1 -1
  240. package/dist/integrations/google-docs-poller.js.map +1 -1
  241. package/dist/integrations/index.js.map +1 -1
  242. package/dist/integrations/internal-token.js.map +1 -1
  243. package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -1
  244. package/dist/integrations/pending-tasks-retry-job.js +1 -1
  245. package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
  246. package/dist/integrations/pending-tasks-store.js.map +1 -1
  247. package/dist/integrations/plugin.js.map +1 -1
  248. package/dist/integrations/task-queue-stats.js.map +1 -1
  249. package/dist/integrations/thread-mapping-store.js.map +1 -1
  250. package/dist/integrations/types.js.map +1 -1
  251. package/dist/integrations/webhook-handler.js.map +1 -1
  252. package/dist/jobs/cron.js.map +1 -1
  253. package/dist/jobs/index.js.map +1 -1
  254. package/dist/jobs/scheduler.js.map +1 -1
  255. package/dist/jobs/tools.js.map +1 -1
  256. package/dist/mcp/index.js.map +1 -1
  257. package/dist/mcp/server.js.map +1 -1
  258. package/dist/mcp-client/config.js.map +1 -1
  259. package/dist/mcp-client/hub-client.js.map +1 -1
  260. package/dist/mcp-client/hub-routes.js.map +1 -1
  261. package/dist/mcp-client/index.js.map +1 -1
  262. package/dist/mcp-client/manager.js.map +1 -1
  263. package/dist/mcp-client/remote-store.js.map +1 -1
  264. package/dist/mcp-client/routes.js.map +1 -1
  265. package/dist/mcp-client/visibility.js.map +1 -1
  266. package/dist/notifications/actions.js.map +1 -1
  267. package/dist/notifications/channels.js.map +1 -1
  268. package/dist/notifications/index.js.map +1 -1
  269. package/dist/notifications/registry.js.map +1 -1
  270. package/dist/notifications/routes.js.map +1 -1
  271. package/dist/notifications/store.js.map +1 -1
  272. package/dist/notifications/types.js.map +1 -1
  273. package/dist/oauth-tokens/google-refresh.js.map +1 -1
  274. package/dist/oauth-tokens/index.js.map +1 -1
  275. package/dist/oauth-tokens/store.js.map +1 -1
  276. package/dist/observability/cleanup-job.js.map +1 -1
  277. package/dist/observability/evals.js.map +1 -1
  278. package/dist/observability/experiments.js.map +1 -1
  279. package/dist/observability/feedback.js.map +1 -1
  280. package/dist/observability/index.js.map +1 -1
  281. package/dist/observability/plugin.js.map +1 -1
  282. package/dist/observability/routes.js.map +1 -1
  283. package/dist/observability/store.js.map +1 -1
  284. package/dist/observability/traces.js.map +1 -1
  285. package/dist/observability/types.js.map +1 -1
  286. package/dist/onboarding/default-steps.d.ts.map +1 -1
  287. package/dist/onboarding/default-steps.js +0 -1
  288. package/dist/onboarding/default-steps.js.map +1 -1
  289. package/dist/onboarding/index.js.map +1 -1
  290. package/dist/onboarding/plugin.js.map +1 -1
  291. package/dist/onboarding/registry.js.map +1 -1
  292. package/dist/onboarding/types.d.ts +0 -9
  293. package/dist/onboarding/types.d.ts.map +1 -1
  294. package/dist/onboarding/types.js.map +1 -1
  295. package/dist/org/accept-pending.js.map +1 -1
  296. package/dist/org/context.js.map +1 -1
  297. package/dist/org/handlers.js.map +1 -1
  298. package/dist/org/index.js.map +1 -1
  299. package/dist/org/migrations.js.map +1 -1
  300. package/dist/org/plugin.js.map +1 -1
  301. package/dist/org/schema.js.map +1 -1
  302. package/dist/org/types.js.map +1 -1
  303. package/dist/progress/actions.js.map +1 -1
  304. package/dist/progress/index.js.map +1 -1
  305. package/dist/progress/registry.js.map +1 -1
  306. package/dist/progress/routes.js.map +1 -1
  307. package/dist/progress/store.js.map +1 -1
  308. package/dist/progress/types.js.map +1 -1
  309. package/dist/resources/agents.js.map +1 -1
  310. package/dist/resources/emitter.js.map +1 -1
  311. package/dist/resources/handlers.js.map +1 -1
  312. package/dist/resources/index.js.map +1 -1
  313. package/dist/resources/metadata.js.map +1 -1
  314. package/dist/resources/script-helpers.js.map +1 -1
  315. package/dist/resources/store.js.map +1 -1
  316. package/dist/router/index.js.map +1 -1
  317. package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
  318. package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
  319. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
  320. package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -1
  321. package/dist/scripts/call-agent.js.map +1 -1
  322. package/dist/scripts/chat/index.js.map +1 -1
  323. package/dist/scripts/chat/open-chat.js.map +1 -1
  324. package/dist/scripts/chat/search-chats.js.map +1 -1
  325. package/dist/scripts/core-scripts.js.map +1 -1
  326. package/dist/scripts/db/check-scoping.js.map +1 -1
  327. package/dist/scripts/db/exec.js.map +1 -1
  328. package/dist/scripts/db/index.js.map +1 -1
  329. package/dist/scripts/db/migrate-user-api-keys.js.map +1 -1
  330. package/dist/scripts/db/patch.js.map +1 -1
  331. package/dist/scripts/db/query.js.map +1 -1
  332. package/dist/scripts/db/schema.js.map +1 -1
  333. package/dist/scripts/db/scoping.js.map +1 -1
  334. package/dist/scripts/db/wipe-leaked-builder-keys.js.map +1 -1
  335. package/dist/scripts/dev/index.js.map +1 -1
  336. package/dist/scripts/dev/list-files.js.map +1 -1
  337. package/dist/scripts/dev/read-file.js.map +1 -1
  338. package/dist/scripts/dev/search-files.js.map +1 -1
  339. package/dist/scripts/dev/shell.js.map +1 -1
  340. package/dist/scripts/dev/write-file.js.map +1 -1
  341. package/dist/scripts/docs/index.js.map +1 -1
  342. package/dist/scripts/docs/search.js.map +1 -1
  343. package/dist/scripts/index.js.map +1 -1
  344. package/dist/scripts/parse-args.js.map +1 -1
  345. package/dist/scripts/resources/delete-memory.js.map +1 -1
  346. package/dist/scripts/resources/delete.js.map +1 -1
  347. package/dist/scripts/resources/index.js.map +1 -1
  348. package/dist/scripts/resources/list.js.map +1 -1
  349. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  350. package/dist/scripts/resources/read.js.map +1 -1
  351. package/dist/scripts/resources/save-memory.js.map +1 -1
  352. package/dist/scripts/resources/write.js.map +1 -1
  353. package/dist/scripts/runner.js.map +1 -1
  354. package/dist/scripts/utils.d.ts.map +1 -1
  355. package/dist/scripts/utils.js +3 -2
  356. package/dist/scripts/utils.js.map +1 -1
  357. package/dist/secrets/index.js.map +1 -1
  358. package/dist/secrets/onboarding.js.map +1 -1
  359. package/dist/secrets/register-framework-secrets.js.map +1 -1
  360. package/dist/secrets/register.js.map +1 -1
  361. package/dist/secrets/routes.js.map +1 -1
  362. package/dist/secrets/schema.js.map +1 -1
  363. package/dist/secrets/storage.js.map +1 -1
  364. package/dist/secrets/substitution.js.map +1 -1
  365. package/dist/server/action-discovery.js.map +1 -1
  366. package/dist/server/action-routes.js.map +1 -1
  367. package/dist/server/agent-chat-plugin.js +1 -1
  368. package/dist/server/agent-chat-plugin.js.map +1 -1
  369. package/dist/server/agent-discovery.js.map +1 -1
  370. package/dist/server/agent-teams.js.map +1 -1
  371. package/dist/server/agents-bundle.js.map +1 -1
  372. package/dist/server/analytics.js.map +1 -1
  373. package/dist/server/app-base-path.js.map +1 -1
  374. package/dist/server/app-name.js.map +1 -1
  375. package/dist/server/app-url.js.map +1 -1
  376. package/dist/server/auth-plugin.js.map +1 -1
  377. package/dist/server/auth.d.ts +29 -0
  378. package/dist/server/auth.d.ts.map +1 -1
  379. package/dist/server/auth.js +32 -6
  380. package/dist/server/auth.js.map +1 -1
  381. package/dist/server/better-auth-instance.d.ts +15 -0
  382. package/dist/server/better-auth-instance.d.ts.map +1 -1
  383. package/dist/server/better-auth-instance.js +115 -0
  384. package/dist/server/better-auth-instance.js.map +1 -1
  385. package/dist/server/builder-browser.js.map +1 -1
  386. package/dist/server/captcha.js.map +1 -1
  387. package/dist/server/cli-capture.js.map +1 -1
  388. package/dist/server/collab-plugin.js.map +1 -1
  389. package/dist/server/core-routes-plugin.js.map +1 -1
  390. package/dist/server/create-server.js.map +1 -1
  391. package/dist/server/credential-provider.js.map +1 -1
  392. package/dist/server/csrf.js.map +1 -1
  393. package/dist/server/date-utils.js.map +1 -1
  394. package/dist/server/design-token-utils.js.map +1 -1
  395. package/dist/server/desktop-sso.js.map +1 -1
  396. package/dist/server/email-template.js.map +1 -1
  397. package/dist/server/email-templates.js.map +1 -1
  398. package/dist/server/email.js.map +1 -1
  399. package/dist/server/framework-request-handler.js.map +1 -1
  400. package/dist/server/google-auth-plugin.js.map +1 -1
  401. package/dist/server/google-oauth.d.ts +1 -1
  402. package/dist/server/google-oauth.d.ts.map +1 -1
  403. package/dist/server/google-oauth.js +4 -3
  404. package/dist/server/google-oauth.js.map +1 -1
  405. package/dist/server/h3-helpers.js.map +1 -1
  406. package/dist/server/index.js.map +1 -1
  407. package/dist/server/local-migration.js.map +1 -1
  408. package/dist/server/missing-key.js.map +1 -1
  409. package/dist/server/oauth-helpers.js.map +1 -1
  410. package/dist/server/onboarding-html.js.map +1 -1
  411. package/dist/server/poll.js.map +1 -1
  412. package/dist/server/request-context.js.map +1 -1
  413. package/dist/server/resources-plugin.js.map +1 -1
  414. package/dist/server/schema-prompt.js.map +1 -1
  415. package/dist/server/script-discovery.js.map +1 -1
  416. package/dist/server/security-headers.js.map +1 -1
  417. package/dist/server/short-lived-token.js.map +1 -1
  418. package/dist/server/sse.js.map +1 -1
  419. package/dist/server/ssr-handler.js.map +1 -1
  420. package/dist/server/transcribe-voice.js.map +1 -1
  421. package/dist/server/voice-providers-status.d.ts +7 -0
  422. package/dist/server/voice-providers-status.d.ts.map +1 -1
  423. package/dist/server/voice-providers-status.js +1 -0
  424. package/dist/server/voice-providers-status.js.map +1 -1
  425. package/dist/settings/handlers.js.map +1 -1
  426. package/dist/settings/index.js.map +1 -1
  427. package/dist/settings/org-settings.js.map +1 -1
  428. package/dist/settings/script-helpers.js.map +1 -1
  429. package/dist/settings/store.js.map +1 -1
  430. package/dist/settings/user-settings.js.map +1 -1
  431. package/dist/shared/agent-chat.js.map +1 -1
  432. package/dist/shared/agent-env.js.map +1 -1
  433. package/dist/shared/index.js.map +1 -1
  434. package/dist/shared/runtime.js.map +1 -1
  435. package/dist/shared/truncate.js.map +1 -1
  436. package/dist/sharing/access.d.ts +9 -1
  437. package/dist/sharing/access.d.ts.map +1 -1
  438. package/dist/sharing/access.js +11 -2
  439. package/dist/sharing/access.js.map +1 -1
  440. package/dist/sharing/actions/list-resource-shares.js.map +1 -1
  441. package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
  442. package/dist/sharing/actions/share-resource.js.map +1 -1
  443. package/dist/sharing/actions/unshare-resource.js.map +1 -1
  444. package/dist/sharing/index.js.map +1 -1
  445. package/dist/sharing/registry.js.map +1 -1
  446. package/dist/sharing/schema.js.map +1 -1
  447. package/dist/tailwind.preset.js.map +1 -1
  448. package/dist/terminal/cli-registry.js.map +1 -1
  449. package/dist/terminal/index.js.map +1 -1
  450. package/dist/terminal/pty-server.js.map +1 -1
  451. package/dist/terminal/terminal-plugin.d.ts.map +1 -1
  452. package/dist/terminal/terminal-plugin.js +19 -4
  453. package/dist/terminal/terminal-plugin.js.map +1 -1
  454. package/dist/tools/actions.js.map +1 -1
  455. package/dist/tools/fetch-tool.js.map +1 -1
  456. package/dist/tools/html-shell.js.map +1 -1
  457. package/dist/tools/proxy-security.js.map +1 -1
  458. package/dist/tools/routes.js.map +1 -1
  459. package/dist/tools/schema.js.map +1 -1
  460. package/dist/tools/slots/routes.js.map +1 -1
  461. package/dist/tools/slots/schema.js.map +1 -1
  462. package/dist/tools/slots/store.js.map +1 -1
  463. package/dist/tools/store.d.ts.map +1 -1
  464. package/dist/tools/store.js +6 -1
  465. package/dist/tools/store.js.map +1 -1
  466. package/dist/tools/theme.js.map +1 -1
  467. package/dist/tools/url-safety.js.map +1 -1
  468. package/dist/tracking/index.js.map +1 -1
  469. package/dist/tracking/providers.js.map +1 -1
  470. package/dist/tracking/registry.js.map +1 -1
  471. package/dist/tracking/types.js.map +1 -1
  472. package/dist/transcription/builder-transcription.js.map +1 -1
  473. package/dist/triggers/actions.js.map +1 -1
  474. package/dist/triggers/condition-evaluator.js.map +1 -1
  475. package/dist/triggers/dispatcher.js.map +1 -1
  476. package/dist/triggers/index.js.map +1 -1
  477. package/dist/triggers/types.js.map +1 -1
  478. package/dist/usage/store.js.map +1 -1
  479. package/dist/vite/action-types-plugin.js.map +1 -1
  480. package/dist/vite/agents-bundle-plugin.js.map +1 -1
  481. package/dist/vite/client.d.ts.map +1 -1
  482. package/dist/vite/client.js +4 -0
  483. package/dist/vite/client.js.map +1 -1
  484. package/dist/vite/index.js.map +1 -1
  485. package/package.json +1 -1
  486. package/dist/client/settings/ComingSoonSection.d.ts +0 -13
  487. package/dist/client/settings/ComingSoonSection.d.ts.map +0 -1
  488. package/dist/client/settings/ComingSoonSection.js +0 -10
  489. package/dist/client/settings/ComingSoonSection.js.map +0 -1
  490. package/dist/client/use-builder-enabled.d.ts +0 -17
  491. package/dist/client/use-builder-enabled.d.ts.map +0 -1
  492. package/dist/client/use-builder-enabled.js +0 -37
  493. package/dist/client/use-builder-enabled.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/oauth-tokens/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/oauth-tokens/store.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDbExec, isPostgres, intType, type DbExec } from \"../db/client.js\";\n\nlet _initPromise: Promise<void> | undefined;\n\nasync function ensureTable(): Promise<void> {\n if (!_initPromise) {\n _initPromise = (async () => {\n const client = getDbExec();\n await client.execute(`\n CREATE TABLE IF NOT EXISTS oauth_tokens (\n provider TEXT NOT NULL,\n account_id TEXT NOT NULL,\n owner TEXT,\n tokens TEXT NOT NULL,\n updated_at ${intType()} NOT NULL,\n PRIMARY KEY (provider, account_id)\n )\n `);\n // Migration: add owner column to existing tables\n try {\n await client.execute(`ALTER TABLE oauth_tokens ADD COLUMN owner TEXT`);\n } catch {\n // Column already exists\n }\n // Migration: add display_name column\n try {\n await client.execute(\n `ALTER TABLE oauth_tokens ADD COLUMN display_name TEXT`,\n );\n } catch {\n // Column already exists\n }\n // Backfill: set owner = account_id for existing rows without an owner\n await client.execute(\n `UPDATE oauth_tokens SET owner = account_id WHERE owner IS NULL`,\n );\n })();\n }\n return _initPromise;\n}\n\nexport async function getOAuthTokens(\n provider: string,\n accountId: string,\n): Promise<Record<string, unknown> | null> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT tokens FROM oauth_tokens WHERE provider = ? AND account_id = ?`,\n args: [provider, accountId],\n });\n if (rows.length === 0) return null;\n return JSON.parse(rows[0].tokens as string);\n}\n\n/**\n * Thrown when an OAuth save would re-bind an `(provider, account_id)` row\n * to a different owner than already holds it. Callers should catch this and\n * surface a clean \"this account is already linked to another user\" message\n * to the requester rather than letting it propagate as a 500.\n *\n * Carries `statusCode = 409` so route handlers using h3's `createError` can\n * pass it straight through.\n */\nexport class OAuthAccountOwnedByOtherUserError extends Error {\n readonly statusCode = 409;\n readonly provider: string;\n readonly accountId: string;\n readonly existingOwner: string;\n readonly attemptedOwner: string;\n constructor(opts: {\n provider: string;\n accountId: string;\n existingOwner: string;\n attemptedOwner: string;\n }) {\n super(\n `OAuth account ${opts.provider}:${opts.accountId} is already linked to another user — refusing to overwrite the owner.`,\n );\n this.name = \"OAuthAccountOwnedByOtherUserError\";\n this.provider = opts.provider;\n this.accountId = opts.accountId;\n this.existingOwner = opts.existingOwner;\n this.attemptedOwner = opts.attemptedOwner;\n }\n}\n\n/**\n * Save OAuth tokens. The `owner` parameter specifies which user owns this\n * account — defaults to `accountId` (the account itself is the owner).\n * For multi-account support, pass the logged-in user's email as owner.\n *\n * If the account already exists and is owned by a different user, throws\n * `OAuthAccountOwnedByOtherUserError` (statusCode 409) to prevent silently\n * stealing another user's linked account.\n *\n * Read + write happen as a single linearised batch (Postgres) or paired\n * statements (SQLite). On both backends the per-row PK serialises concurrent\n * writes for the same `(provider, account_id)` so the owner check cannot be\n * raced by an attacker calling saveOAuthTokens twice in flight — the second\n * caller sees the first caller's owner row and raises 409.\n */\nexport async function saveOAuthTokens(\n provider: string,\n accountId: string,\n tokens: Record<string, unknown>,\n owner?: string,\n): Promise<void> {\n await ensureTable();\n const client = getDbExec();\n\n // Never store \"local@localhost\" as owner — it creates shared-ownership bugs\n const sanitizedOwner = owner === \"local@localhost\" ? accountId : owner;\n\n // Read the current row before deciding what to write. We use this to\n // (a) preserve owner / display_name when this is a token refresh (no\n // owner argument), and (b) reject the write when the caller is trying\n // to overwrite a row owned by someone else.\n let resolvedOwner = sanitizedOwner ?? accountId;\n let existingDisplayName: string | null = null;\n let existingOwner: string | null = null;\n const { rows: existing } = await client.execute({\n sql: `SELECT owner, display_name FROM oauth_tokens WHERE provider = ? AND account_id = ?`,\n args: [provider, accountId],\n });\n if (existing.length > 0) {\n existingOwner = (existing[0].owner as string) ?? null;\n existingDisplayName = (existing[0].display_name as string) ?? null;\n }\n\n if (!owner) {\n // Token-refresh path: keep the existing owner/displayName unchanged.\n if (existingOwner) resolvedOwner = existingOwner;\n } else if (\n existingOwner &&\n sanitizedOwner &&\n existingOwner !== sanitizedOwner\n ) {\n // Refuse to silently re-bind an account from one user to another.\n // This is the case the docstring promised but the previous\n // implementation didn't enforce — `ON CONFLICT DO UPDATE SET\n // owner=EXCLUDED.owner` would have overwritten the prior owner.\n throw new OAuthAccountOwnedByOtherUserError({\n provider,\n accountId,\n existingOwner,\n attemptedOwner: sanitizedOwner,\n });\n }\n\n await client.execute({\n sql: isPostgres()\n ? `INSERT INTO oauth_tokens (provider, account_id, owner, display_name, tokens, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT (provider, account_id) DO UPDATE SET owner=EXCLUDED.owner, display_name=COALESCE(EXCLUDED.display_name, oauth_tokens.display_name), tokens=EXCLUDED.tokens, updated_at=EXCLUDED.updated_at`\n : `INSERT OR REPLACE INTO oauth_tokens (provider, account_id, owner, display_name, tokens, updated_at) VALUES (?, ?, ?, ?, ?, ?)`,\n args: [\n provider,\n accountId,\n resolvedOwner,\n existingDisplayName,\n JSON.stringify(tokens),\n Date.now(),\n ],\n });\n}\n\nexport async function deleteOAuthTokens(\n provider: string,\n accountId?: string,\n): Promise<number> {\n await ensureTable();\n const client = getDbExec();\n if (accountId) {\n const result = await client.execute({\n sql: `DELETE FROM oauth_tokens WHERE provider = ? AND account_id = ?`,\n args: [provider, accountId],\n });\n return result.rowsAffected;\n }\n const result = await client.execute({\n sql: `DELETE FROM oauth_tokens WHERE provider = ?`,\n args: [provider],\n });\n return result.rowsAffected;\n}\n\nexport async function listOAuthAccounts(provider: string): Promise<\n Array<{\n accountId: string;\n owner: string | null;\n tokens: Record<string, unknown>;\n }>\n> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT account_id, owner, tokens FROM oauth_tokens WHERE provider = ?`,\n args: [provider],\n });\n return rows.map((row) => ({\n accountId: row.account_id as string,\n owner: (row.owner as string) ?? null,\n tokens: JSON.parse(row.tokens as string),\n }));\n}\n\n/**\n * List all OAuth accounts owned by a specific user.\n * In multi-account mode, a user may have connected multiple Google accounts.\n */\nexport async function listOAuthAccountsByOwner(\n provider: string,\n owner: string,\n): Promise<\n Array<{\n accountId: string;\n displayName: string | null;\n tokens: Record<string, unknown>;\n }>\n> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT account_id, display_name, tokens FROM oauth_tokens WHERE provider = ? AND owner = ?`,\n args: [provider, owner],\n });\n return rows.map((row) => ({\n accountId: row.account_id as string,\n displayName: (row.display_name as string) ?? null,\n tokens: JSON.parse(row.tokens as string),\n }));\n}\n\n/**\n * Set the display name for an OAuth account (e.g. Google profile name).\n */\nexport async function setOAuthDisplayName(\n provider: string,\n accountId: string,\n displayName: string,\n): Promise<void> {\n await ensureTable();\n const client = getDbExec();\n await client.execute({\n sql: `UPDATE oauth_tokens SET display_name = ? WHERE provider = ? AND account_id = ?`,\n args: [displayName, provider, accountId],\n });\n}\n\n/**\n * Check whether a specific user has tokens for a provider.\n *\n * `owner` is REQUIRED. The previous unscoped form leaked information\n * across users — the onboarding banner would mark the OAuth secret as\n * \"set\" for user B as soon as ANY user in the deployment connected the\n * provider, and user B would never see the prompt to connect.\n *\n * For the local-dev / single-tenant case, callers pass the dev sentinel\n * (`DEV_MODE_USER_EMAIL`) and we degrade to \"any row exists\" — preserving\n * the original behaviour for that single-user surface.\n */\nexport async function hasOAuthTokens(\n provider: string,\n owner: string,\n): Promise<boolean> {\n await ensureTable();\n const client = getDbExec();\n if (owner === \"local@localhost\") {\n const { rows } = await client.execute({\n sql: `SELECT 1 FROM oauth_tokens WHERE provider = ? LIMIT 1`,\n args: [provider],\n });\n return rows.length > 0;\n }\n const { rows } = await client.execute({\n sql: `SELECT 1 FROM oauth_tokens WHERE provider = ? AND owner = ? LIMIT 1`,\n args: [provider, owner],\n });\n return rows.length > 0;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup-job.js","sourceRoot":"","sources":["../../src/observability/cleanup-job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanup-job.js","sourceRoot":"","sources":["../../src/observability/cleanup-job.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Observability span retention job.\n *\n * Periodically purges old `agent_trace_spans`, `agent_trace_summaries`, and\n * `agent_evals` rows so trace storage doesn't grow unbounded. Trace\n * metadata can include tool inputs that may contain sensitive values\n * (API keys, email content, file paths) when `captureToolArgs` is\n * enabled — see /tmp/security-audit/12-mcp-a2a-agent.md (MEDIUM #14).\n * Capping the storage horizon limits the blast radius of a misconfigured\n * deployment.\n *\n * Retention is configurable via the env var\n * `AGENT_NATIVE_TRACE_RETENTION_DAYS` (default: 30 days). Setting it to\n * `0` disables the cleanup (useful for dev / debugging only).\n *\n * The job runs once on startup (after a small delay so it doesn't compete\n * with bootstrap) and then on a 24-hour interval. Operators who need\n * tighter retention can shorten the env var; one daily sweep is enough\n * to keep storage bounded with day-grain granularity.\n */\n\nimport { deleteOldTraceData } from \"./store.js\";\n\nconst DEFAULT_RETENTION_DAYS = 30;\nconst ONE_DAY_MS = 24 * 60 * 60 * 1000;\n// Wait a few minutes after process start before the first purge so the\n// initial bootstrap (table creation, migrations) settles. Operators\n// running an immediate-purge tool can call `runTraceCleanupOnce` directly.\nconst STARTUP_DELAY_MS = 5 * 60 * 1000;\n\nlet _cleanupTimer: NodeJS.Timeout | null = null;\nlet _intervalTimer: NodeJS.Timeout | null = null;\n\nfunction resolveRetentionDays(): number {\n const raw = process.env.AGENT_NATIVE_TRACE_RETENTION_DAYS;\n if (raw === undefined || raw === null || raw === \"\") {\n return DEFAULT_RETENTION_DAYS;\n }\n const parsed = Number.parseInt(raw, 10);\n if (!Number.isFinite(parsed) || parsed < 0) return DEFAULT_RETENTION_DAYS;\n return parsed;\n}\n\n/**\n * Run the trace cleanup once. Returns the per-table deletion counts.\n * Returns null if retention is disabled (`AGENT_NATIVE_TRACE_RETENTION_DAYS=0`).\n */\nexport async function runTraceCleanupOnce(): Promise<{\n spans: number;\n summaries: number;\n evals: number;\n} | null> {\n const days = resolveRetentionDays();\n if (days === 0) return null;\n const cutoff = Date.now() - days * ONE_DAY_MS;\n return deleteOldTraceData(cutoff);\n}\n\n/**\n * Start the recurring trace-cleanup job. Idempotent — calling more than\n * once is a no-op while a previous schedule is still active.\n *\n * Returns a stop function for tests / shutdown handlers.\n */\nexport function startTraceCleanupJob(): () => void {\n if (_cleanupTimer || _intervalTimer) return stopTraceCleanupJob;\n const days = resolveRetentionDays();\n if (days === 0) {\n if (process.env.DEBUG)\n // eslint-disable-next-line no-console\n console.log(\n \"[observability] Trace cleanup disabled (AGENT_NATIVE_TRACE_RETENTION_DAYS=0)\",\n );\n return () => {};\n }\n\n const tick = () => {\n runTraceCleanupOnce()\n .then((result) => {\n if (!result) return;\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(\n `[observability] Trace cleanup purged spans=${result.spans} summaries=${result.summaries} evals=${result.evals} (retention=${days}d)`,\n );\n }\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.error(\n \"[observability] Trace cleanup failed:\",\n err?.message ?? err,\n );\n });\n };\n\n _cleanupTimer = setTimeout(() => {\n _cleanupTimer = null;\n tick();\n _intervalTimer = setInterval(tick, ONE_DAY_MS);\n // Don't keep the Node process alive solely for the cleanup interval.\n if (typeof _intervalTimer.unref === \"function\") _intervalTimer.unref();\n }, STARTUP_DELAY_MS);\n if (typeof _cleanupTimer.unref === \"function\") _cleanupTimer.unref();\n\n if (process.env.DEBUG)\n // eslint-disable-next-line no-console\n console.log(\n `[observability] Trace cleanup scheduled (retention=${days}d, daily)`,\n );\n\n return stopTraceCleanupJob;\n}\n\nexport function stopTraceCleanupJob(): void {\n if (_cleanupTimer) {\n clearTimeout(_cleanupTimer);\n _cleanupTimer = null;\n }\n if (_intervalTimer) {\n clearInterval(_intervalTimer);\n _intervalTimer = null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"evals.js","sourceRoot":"","sources":["../../src/observability/evals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evals.js","sourceRoot":"","sources":["../../src/observability/evals.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n EvalResult,\n EvalCriteria,\n TraceSummary,\n EvalTestCase,\n} from \"./types.js\";\nimport { getTraceSummary, insertEvalResult, getEvalDataset } from \"./store.js\";\nimport { getRunById, getRunEventsSince } from \"../agent/run-store.js\";\nimport type { AgentEngine } from \"../agent/engine/types.js\";\nimport {\n resolveEngine,\n getStoredModelForEngine,\n} from \"../agent/engine/index.js\";\n\nconst LATENCY_BASELINE_PER_TOOL_MS = 10_000;\nconst COST_BASELINE_PER_TOOL_CX100 = 50;\nconst LLM_JUDGE_TIMEOUT_MS = 30_000;\n\ninterface MakeEvalResultOpts {\n runId: string;\n threadId: string | null;\n userId: string | null;\n evalType: EvalResult[\"evalType\"];\n criteria: string;\n score: number;\n reasoning?: string | null;\n metadata?: Record<string, unknown> | null;\n}\n\nfunction makeEvalResult(opts: MakeEvalResultOpts): EvalResult {\n return {\n id: crypto.randomUUID(),\n runId: opts.runId,\n threadId: opts.threadId,\n userId: opts.userId,\n evalType: opts.evalType,\n criteria: opts.criteria,\n score: Math.max(0, Math.min(1, opts.score)),\n reasoning: opts.reasoning ?? null,\n metadata: opts.metadata ?? null,\n createdAt: Date.now(),\n };\n}\n\n/** Lift the (runId, threadId, userId) triple off a TraceSummary —\n * every automated scorer pulls these together. */\nfunction fromSummary(summary: TraceSummary): {\n runId: string;\n threadId: string | null;\n userId: string | null;\n} {\n return {\n runId: summary.runId,\n threadId: summary.threadId,\n userId: summary.userId,\n };\n}\n\n// ─── Layer 1: Automated deterministic scorers ────────────────────────\n\nfunction scoreToolSuccessRate(summary: TraceSummary): EvalResult {\n const total = summary.toolCalls;\n const score = total > 0 ? summary.successfulTools / total : 1.0;\n return makeEvalResult({\n ...fromSummary(summary),\n evalType: \"automated\",\n criteria: \"tool_success_rate\",\n score,\n metadata: {\n totalTools: total,\n successfulTools: summary.successfulTools,\n failedTools: summary.failedTools,\n },\n });\n}\n\nfunction scoreStepEfficiency(summary: TraceSummary): EvalResult {\n // No tool calls = simple Q&A, maximally efficient.\n // With tools: penalize excessive LLM iterations relative to tool calls.\n const score =\n summary.toolCalls === 0\n ? 1.0\n : summary.llmCalls > 0\n ? Math.min(1, summary.toolCalls / summary.llmCalls)\n : 1.0;\n return makeEvalResult({\n ...fromSummary(summary),\n evalType: \"automated\",\n criteria: \"step_efficiency\",\n score,\n metadata: { llmCalls: summary.llmCalls, toolCalls: summary.toolCalls },\n });\n}\n\nfunction scoreLatency(summary: TraceSummary): EvalResult {\n const expectedMs = Math.max(\n LATENCY_BASELINE_PER_TOOL_MS,\n summary.toolCalls * LATENCY_BASELINE_PER_TOOL_MS,\n );\n const score = Math.max(0, 1 - summary.totalDurationMs / expectedMs);\n return makeEvalResult({\n ...fromSummary(summary),\n evalType: \"automated\",\n criteria: \"latency_score\",\n score,\n metadata: { actualMs: summary.totalDurationMs, expectedMs },\n });\n}\n\nfunction scoreCostEfficiency(summary: TraceSummary): EvalResult {\n const expectedCx100 = Math.max(\n COST_BASELINE_PER_TOOL_CX100,\n summary.toolCalls * COST_BASELINE_PER_TOOL_CX100,\n );\n const score = Math.max(0, 1 - summary.totalCostCentsX100 / expectedCx100);\n return makeEvalResult({\n ...fromSummary(summary),\n evalType: \"automated\",\n criteria: \"cost_efficiency\",\n score,\n metadata: { actualCx100: summary.totalCostCentsX100, expectedCx100 },\n });\n}\n\nfunction scoreErrorRecovery(\n summary: TraceSummary,\n runStatus: string,\n): EvalResult {\n const hadErrors = summary.failedTools > 0;\n let score: number;\n if (!hadErrors) {\n score = 1.0;\n } else if (runStatus === \"completed\") {\n score = 1.0;\n } else {\n score = 0;\n }\n return makeEvalResult({\n ...fromSummary(summary),\n evalType: \"automated\",\n criteria: \"error_recovery\",\n score,\n metadata: { hadErrors, runStatus },\n });\n}\n\nexport async function runAutomatedEvals(runId: string): Promise<EvalResult[]> {\n const [summary, run] = await Promise.all([\n getTraceSummary(runId),\n getRunById(runId),\n ]);\n\n if (!summary) return [];\n\n const runStatus = run?.status ?? \"unknown\";\n const results = [\n scoreToolSuccessRate(summary),\n scoreStepEfficiency(summary),\n scoreLatency(summary),\n scoreCostEfficiency(summary),\n scoreErrorRecovery(summary, runStatus),\n ];\n\n for (const result of results) {\n insertEvalResult(result).catch(() => {});\n }\n\n return results;\n}\n\n// ─── Layer 2: LLM-as-Judge ───────────────────────────────────────────\n\nfunction buildConversationTranscript(\n events: Array<{ seq: number; eventData: string }>,\n): string {\n const lines: string[] = [];\n for (const { eventData } of events) {\n try {\n const event = JSON.parse(eventData);\n if (event.type === \"user-message\") {\n lines.push(`[User]: ${event.text ?? JSON.stringify(event.content)}`);\n } else if (event.type === \"text-delta\" || event.type === \"text\") {\n lines.push(`[Agent]: ${event.text}`);\n } else if (event.type === \"tool-call\") {\n lines.push(`[Tool Call: ${event.name}] ${JSON.stringify(event.input)}`);\n } else if (event.type === \"tool-result\") {\n const snippet =\n typeof event.content === \"string\"\n ? event.content.slice(0, 500)\n : JSON.stringify(event.content).slice(0, 500);\n lines.push(\n `[Tool Result${event.isError ? \" (ERROR)\" : \"\"}]: ${snippet}`,\n );\n }\n } catch {\n // Skip unparseable events\n }\n }\n return lines.join(\"\\n\");\n}\n\nfunction buildJudgePrompt(transcript: string, criteria: EvalCriteria): string {\n let prompt = `You are an expert evaluator. Assess the following agent conversation against the given criteria.\n\n## Criteria\nName: ${criteria.name}\nDescription: ${criteria.description}`;\n\n if (criteria.rubric) {\n prompt += `\\nRubric: ${criteria.rubric}`;\n }\n\n const min = criteria.scoreRange?.min ?? 0;\n const max = criteria.scoreRange?.max ?? 1;\n\n prompt += `\n\n## Conversation Transcript\n${transcript}\n\n## Instructions\nEvaluate the conversation and respond with ONLY a JSON object (no markdown, no explanation outside the JSON):\n{\"score\": <number between ${min} and ${max}>, \"reasoning\": \"<brief explanation>\"}`;\n\n return prompt;\n}\n\nexport async function runLlmJudgeEval(\n runId: string,\n criteria: EvalCriteria,\n opts?: { engine?: AgentEngine; model?: string; userId?: string | null },\n): Promise<EvalResult | null> {\n try {\n const [events, run] = await Promise.all([\n getRunEventsSince(runId, 0),\n getRunById(runId),\n ]);\n\n if (events.length === 0) return null;\n\n const transcript = buildConversationTranscript(events);\n if (!transcript.trim()) return null;\n\n const engine =\n opts?.engine ?? (await resolveEngine({ engineOption: undefined }));\n const model =\n opts?.model ??\n (await getStoredModelForEngine(engine)) ??\n engine.defaultModel;\n\n const judgePrompt = buildJudgePrompt(transcript, criteria);\n\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), LLM_JUDGE_TIMEOUT_MS);\n\n let responseText = \"\";\n try {\n const stream = engine.stream({\n model,\n systemPrompt:\n \"You are an evaluation judge. Respond only with valid JSON.\",\n messages: [\n { role: \"user\", content: [{ type: \"text\", text: judgePrompt }] },\n ],\n tools: [],\n abortSignal: controller.signal,\n maxOutputTokens: 512,\n temperature: 0,\n });\n\n for await (const event of stream) {\n if (event.type === \"text-delta\") {\n responseText += event.text;\n }\n }\n } finally {\n clearTimeout(timeout);\n }\n\n const jsonMatch = responseText.match(/\\{[\\s\\S]*\\}/);\n if (!jsonMatch) return null;\n\n const parsed = JSON.parse(jsonMatch[0]) as {\n score: number;\n reasoning: string;\n };\n\n const min = criteria.scoreRange?.min ?? 0;\n const max = criteria.scoreRange?.max ?? 1;\n const normalizedScore =\n max > min ? (parsed.score - min) / (max - min) : parsed.score;\n\n const result = makeEvalResult({\n runId,\n threadId: run?.threadId ?? null,\n userId: opts?.userId ?? null,\n evalType: \"llm_judge\",\n criteria: criteria.name,\n score: normalizedScore,\n reasoning: parsed.reasoning,\n metadata: { model, rawScore: parsed.score, scoreRange: { min, max } },\n });\n\n insertEvalResult(result).catch(() => {});\n return result;\n } catch {\n return null;\n }\n}\n\n// ─── Layer 3: Dataset evaluation ─────────────────────────────────────\n\nexport async function runDatasetEval(\n datasetId: string,\n opts?: { criteria?: EvalCriteria[]; engine?: AgentEngine; model?: string },\n): Promise<{\n datasetId: string;\n totalCases: number;\n avgScore: number;\n results: EvalResult[];\n}> {\n const dataset = await getEvalDataset(datasetId);\n if (!dataset) {\n return { datasetId, totalCases: 0, avgScore: 0, results: [] };\n }\n\n const engine =\n opts?.engine ?? (await resolveEngine({ engineOption: undefined }));\n const model =\n opts?.model ??\n (await getStoredModelForEngine(engine)) ??\n engine.defaultModel;\n\n const criteria = opts?.criteria ?? [\n {\n name: \"response_quality\",\n description:\n \"How well the agent's response addresses the user's input, considering accuracy, completeness, and helpfulness.\",\n },\n ];\n\n const allResults: EvalResult[] = [];\n\n for (const testCase of dataset.entries) {\n const transcript = buildTestCaseTranscript(testCase, engine, model);\n\n for (const c of criteria) {\n const result = await evaluateTestCase(\n datasetId,\n testCase,\n transcript,\n c,\n engine,\n model,\n );\n if (result) allResults.push(result);\n }\n }\n\n const avgScore =\n allResults.length > 0\n ? allResults.reduce((sum, r) => sum + r.score, 0) / allResults.length\n : 0;\n\n return {\n datasetId,\n totalCases: dataset.entries.length,\n avgScore,\n results: allResults,\n };\n}\n\nfunction buildTestCaseTranscript(\n testCase: EvalTestCase,\n _engine: AgentEngine,\n _model: string,\n): string {\n let transcript = `[User]: ${testCase.input}`;\n if (testCase.expectedOutput) {\n transcript += `\\n[Expected Output]: ${testCase.expectedOutput}`;\n }\n if (testCase.context) {\n transcript += `\\n[Context]: ${JSON.stringify(testCase.context)}`;\n }\n return transcript;\n}\n\nasync function evaluateTestCase(\n datasetId: string,\n testCase: EvalTestCase,\n transcript: string,\n criteria: EvalCriteria,\n engine: AgentEngine,\n model: string,\n): Promise<EvalResult | null> {\n try {\n const judgePrompt = buildJudgePrompt(transcript, criteria);\n\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), LLM_JUDGE_TIMEOUT_MS);\n\n let responseText = \"\";\n try {\n const stream = engine.stream({\n model,\n systemPrompt:\n \"You are an evaluation judge. Respond only with valid JSON.\",\n messages: [\n { role: \"user\", content: [{ type: \"text\", text: judgePrompt }] },\n ],\n tools: [],\n abortSignal: controller.signal,\n maxOutputTokens: 512,\n temperature: 0,\n });\n\n for await (const event of stream) {\n if (event.type === \"text-delta\") {\n responseText += event.text;\n }\n }\n } finally {\n clearTimeout(timeout);\n }\n\n const jsonMatch = responseText.match(/\\{[\\s\\S]*\\}/);\n if (!jsonMatch) return null;\n\n const parsed = JSON.parse(jsonMatch[0]) as {\n score: number;\n reasoning: string;\n };\n\n const min = criteria.scoreRange?.min ?? 0;\n const max = criteria.scoreRange?.max ?? 1;\n const normalizedScore =\n max > min ? (parsed.score - min) / (max - min) : parsed.score;\n\n // Dataset evals use a synthetic runId since there's no real run\n const syntheticRunId = `dataset:${datasetId}:${crypto.randomUUID()}`;\n\n // Dataset evals are administrative — there's no per-user runId, so\n // we leave userId null. Per-user reads filter null rows out, which\n // is the right default; admins can fetch dataset evals via the\n // unfiltered call path.\n const result = makeEvalResult({\n runId: syntheticRunId,\n threadId: null,\n userId: null,\n evalType: \"llm_judge\",\n criteria: criteria.name,\n score: normalizedScore,\n reasoning: parsed.reasoning,\n metadata: {\n datasetId,\n model,\n testCaseInput: testCase.input,\n expectedOutput: testCase.expectedOutput ?? null,\n tags: testCase.tags ?? [],\n rawScore: parsed.score,\n scoreRange: { min, max },\n },\n });\n\n insertEvalResult(result).catch(() => {});\n return result;\n } catch {\n return null;\n }\n}\n\n// ─── Orchestrator ────────────────────────────────────────────────────\n\nexport async function evaluateRun(\n runId: string,\n opts?: { sampleRate?: number },\n): Promise<EvalResult[]> {\n const results = await runAutomatedEvals(runId);\n const userId = results[0]?.userId ?? null;\n\n const sampleRate = opts?.sampleRate ?? 0;\n if (sampleRate > 0 && Math.random() < sampleRate) {\n const defaultCriteria: EvalCriteria[] = [\n {\n name: \"overall_quality\",\n description:\n \"Overall quality of the agent's response, considering helpfulness, accuracy, and appropriate tool usage.\",\n },\n {\n name: \"task_completion\",\n description:\n \"Whether the agent successfully completed the user's requested task.\",\n },\n ];\n\n const judgeResults = await Promise.all(\n defaultCriteria.map((c) => runLlmJudgeEval(runId, c, { userId })),\n );\n\n for (const r of judgeResults) {\n if (r) results.push(r);\n }\n }\n\n return results;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/observability/experiments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/observability/experiments.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDbExec } from \"../db/client.js\";\nimport type {\n Experiment,\n ExperimentVariant,\n ExperimentMetricResult,\n} from \"./types.js\";\nimport {\n insertExperiment,\n updateExperiment,\n listExperiments,\n getExperiment,\n upsertAssignment,\n getAssignment,\n insertExperimentResult,\n ensureObservabilityTables,\n} from \"./store.js\";\n\n// ─── Hashing ────────────────────────────────────────────────────────\n\nfunction simpleHash(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n }\n return Math.abs(hash);\n}\n\nfunction generateId(prefix: string): string {\n return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n}\n\n// ─── Active experiments cache (short TTL for hot path) ──────────────\n\nlet _cachedActive: Experiment[] | null = null;\nlet _cachedActiveAt = 0;\nconst CACHE_TTL_MS = 5_000;\n\nasync function getActiveExperiments(): Promise<Experiment[]> {\n const now = Date.now();\n if (_cachedActive && now - _cachedActiveAt < CACHE_TTL_MS) {\n return _cachedActive;\n }\n const all = await listExperiments();\n _cachedActive = all.filter((e) => e.status === \"running\");\n _cachedActiveAt = now;\n return _cachedActive;\n}\n\nfunction invalidateCache(): void {\n _cachedActive = null;\n _cachedActiveAt = 0;\n}\n\n// ─── Experiment lifecycle ───────────────────────────────────────────\n\nexport async function createExperiment(opts: {\n name: string;\n variants: Array<{\n id: string;\n weight: number;\n config: Record<string, unknown>;\n }>;\n metrics: string[];\n assignmentLevel?: \"user\" | \"session\";\n}): Promise<Experiment> {\n const experiment: Experiment = {\n id: generateId(\"exp\"),\n name: opts.name,\n status: \"draft\",\n variants: opts.variants,\n metrics: opts.metrics,\n assignmentLevel: opts.assignmentLevel ?? \"user\",\n startedAt: null,\n endedAt: null,\n createdAt: Date.now(),\n };\n await insertExperiment(experiment);\n return experiment;\n}\n\nexport async function startExperiment(id: string): Promise<void> {\n await updateExperiment(id, { status: \"running\" });\n invalidateCache();\n}\n\nexport async function pauseExperiment(id: string): Promise<void> {\n await updateExperiment(id, { status: \"paused\" });\n invalidateCache();\n}\n\nexport async function completeExperiment(id: string): Promise<void> {\n await updateExperiment(id, { status: \"completed\", endedAt: Date.now() });\n invalidateCache();\n}\n\n// ─── Variant assignment ─────────────────────────────────────────────\n\nexport async function resolveVariant(\n experimentId: string,\n userId: string,\n): Promise<ExperimentVariant> {\n const existing = await getAssignment(experimentId, userId);\n if (existing) {\n const experiment = await getExperiment(experimentId);\n if (!experiment) throw new Error(`Experiment ${experimentId} not found`);\n const variant = experiment.variants.find(\n (v) => v.id === existing.variantId,\n );\n if (!variant)\n throw new Error(\n `Variant ${existing.variantId} not found in experiment ${experimentId}`,\n );\n return variant;\n }\n\n const experiment = await getExperiment(experimentId);\n if (!experiment) throw new Error(`Experiment ${experimentId} not found`);\n\n if (experiment.variants.length === 0)\n throw new Error(\"Experiment has no variants\");\n const totalWeight = experiment.variants.reduce((sum, v) => sum + v.weight, 0);\n if (totalWeight <= 0)\n throw new Error(\"Experiment has no valid variant weights\");\n const hashValue = simpleHash(experimentId + userId) % totalWeight;\n\n let cumulative = 0;\n let chosen: ExperimentVariant | undefined;\n for (const variant of experiment.variants) {\n cumulative += variant.weight;\n if (hashValue < cumulative) {\n chosen = variant;\n break;\n }\n }\n // Fallback to last variant if rounding causes no match\n if (!chosen) chosen = experiment.variants[experiment.variants.length - 1];\n\n // Fire-and-forget persistence\n upsertAssignment({\n experimentId,\n userId,\n variantId: chosen.id,\n assignedAt: Date.now(),\n }).catch(() => {});\n\n return chosen;\n}\n\nexport async function resolveActiveExperimentConfig(userId: string): Promise<{\n configs: Record<string, unknown>;\n assignments: Array<{ experimentId: string; variantId: string }>;\n} | null> {\n const active = await getActiveExperiments();\n if (active.length === 0) return null;\n\n const assignments: Array<{ experimentId: string; variantId: string }> = [];\n const merged: Record<string, unknown> = {};\n\n const variants = await Promise.all(\n active.map((exp) => resolveVariant(exp.id, userId)),\n );\n\n for (let i = 0; i < active.length; i++) {\n const exp = active[i];\n const variant = variants[i];\n assignments.push({ experimentId: exp.id, variantId: variant.id });\n Object.assign(merged, variant.config);\n }\n\n return { configs: merged, assignments };\n}\n\n// ─── Results computation ────────────────────────────────────────────\n\nexport async function computeExperimentResults(\n experimentId: string,\n): Promise<ExperimentMetricResult[]> {\n const experiment = await getExperiment(experimentId);\n if (!experiment) throw new Error(`Experiment ${experimentId} not found`);\n\n await ensureObservabilityTables();\n const client = getDbExec();\n\n const results: ExperimentMetricResult[] = [];\n const now = Date.now();\n\n for (const variant of experiment.variants) {\n const { rows: assignmentRows } = await client.execute({\n sql: `SELECT user_id FROM agent_experiment_assignments WHERE experiment_id = ? AND variant_id = ?`,\n args: [experimentId, variant.id],\n });\n\n if (assignmentRows.length === 0) {\n const emptyMetrics = [\n \"avg_cost\",\n \"avg_latency\",\n \"avg_eval_score\",\n \"tool_success_rate\",\n \"satisfaction\",\n \"sample_size\",\n ];\n for (const metric of emptyMetrics) {\n const result: ExperimentMetricResult = {\n id: generateId(\"expres\"),\n experimentId,\n variantId: variant.id,\n metric,\n value: 0,\n sampleSize: 0,\n confidenceLow: 0,\n confidenceHigh: 0,\n computedAt: now,\n };\n results.push(result);\n insertExperimentResult(result).catch(() => {});\n }\n continue;\n }\n\n const userIds = assignmentRows.map((r: any) => String(r.user_id));\n const placeholders = userIds.map(() => \"?\").join(\", \");\n\n // Scope runs to this variant's assigned users via user_id on the summary.\n // Previously used INNER JOIN agent_feedback which excluded runs without\n // any feedback — silently underreporting cost/latency/tool metrics.\n const { rows: userTraceRows } = await client.execute({\n sql: `SELECT s.total_cost_cents_x100, s.total_duration_ms, s.successful_tools, s.tool_calls, s.run_id\n FROM agent_trace_summaries s\n WHERE s.user_id IN (${placeholders})\n ${experiment.startedAt ? \"AND s.created_at >= ?\" : \"\"}`,\n args: experiment.startedAt ? [...userIds, experiment.startedAt] : userIds,\n });\n\n const costs: number[] = [];\n const latencies: number[] = [];\n const toolRates: number[] = [];\n\n for (const row of userTraceRows as any[]) {\n costs.push(Number(row.total_cost_cents_x100) / 100);\n latencies.push(Number(row.total_duration_ms));\n const totalTools = Number(row.tool_calls);\n const successTools = Number(row.successful_tools);\n toolRates.push(totalTools > 0 ? successTools / totalTools : 1);\n }\n\n // Eval scores for these runs\n const runIds = (userTraceRows as any[]).map((r) => String(r.run_id));\n let evalScores: number[] = [];\n if (runIds.length > 0) {\n const runPlaceholders = runIds.map(() => \"?\").join(\", \");\n const { rows: evalRows } = await client.execute({\n sql: `SELECT score FROM agent_evals WHERE run_id IN (${runPlaceholders})`,\n args: runIds,\n });\n evalScores = (evalRows as any[]).map((r) => Number(r.score));\n }\n\n // Satisfaction scores (inverse of frustration) for these users' threads\n const { rows: satRows } = await client.execute({\n sql: `SELECT frustration_score FROM agent_satisfaction_scores\n WHERE thread_id IN (\n SELECT DISTINCT f.thread_id FROM agent_feedback f\n WHERE f.user_id IN (${placeholders}) AND f.thread_id IS NOT NULL\n )\n ${experiment.startedAt ? \"AND computed_at >= ?\" : \"\"}`,\n args: experiment.startedAt ? [...userIds, experiment.startedAt] : userIds,\n });\n const satisfactionScores = (satRows as any[]).map(\n (r) => 1 - Number(r.frustration_score) / 100,\n );\n\n const sampleSize = userTraceRows.length;\n\n const metricEntries: Array<{\n metric: string;\n value: number;\n std: number;\n n: number;\n }> = [\n {\n metric: \"avg_cost\",\n value: mean(costs),\n std: stddev(costs),\n n: costs.length,\n },\n {\n metric: \"avg_latency\",\n value: mean(latencies),\n std: stddev(latencies),\n n: latencies.length,\n },\n {\n metric: \"avg_eval_score\",\n value: mean(evalScores),\n std: stddev(evalScores),\n n: evalScores.length,\n },\n {\n metric: \"tool_success_rate\",\n value: mean(toolRates),\n std: stddev(toolRates),\n n: toolRates.length,\n },\n {\n metric: \"satisfaction\",\n value: mean(satisfactionScores),\n std: stddev(satisfactionScores),\n n: satisfactionScores.length,\n },\n { metric: \"sample_size\", value: sampleSize, std: 0, n: sampleSize },\n ];\n\n for (const entry of metricEntries) {\n const [low, high] = confidenceInterval(entry.value, entry.std, entry.n);\n const result: ExperimentMetricResult = {\n id: generateId(\"expres\"),\n experimentId,\n variantId: variant.id,\n metric: entry.metric,\n value: entry.value,\n sampleSize,\n confidenceLow: low,\n confidenceHigh: high,\n computedAt: now,\n };\n results.push(result);\n insertExperimentResult(result).catch(() => {});\n }\n }\n\n return results;\n}\n\n// ─── Stats helpers ──────────────────────────────────────────────────\n\nfunction mean(values: number[]): number {\n if (values.length === 0) return 0;\n return values.reduce((a, b) => a + b, 0) / values.length;\n}\n\nfunction stddev(values: number[]): number {\n if (values.length < 2) return 0;\n const avg = mean(values);\n const squaredDiffs = values.map((v) => (v - avg) ** 2);\n return Math.sqrt(\n squaredDiffs.reduce((a, b) => a + b, 0) / (values.length - 1),\n );\n}\n\nfunction confidenceInterval(\n avg: number,\n std: number,\n n: number,\n): [low: number, high: number] {\n if (n < 2) return [avg, avg];\n const se = std / Math.sqrt(n);\n const margin = 1.96 * se;\n return [avg - margin, avg + margin];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/observability/feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/observability/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,SAAS,UAAU;IACjB,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAwB;IAExB,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAmB;QACjC,WAAW;QACX,aAAa;QACb,UAAU;QACV,MAAM;KACP,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,KAAK,GAAkB;QAC3B,EAAE,EAAE,UAAU,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QACnC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;IAEF,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IAC/C,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACpC,GAAG,EAAE,mDAAmD;QACxD,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,GAAG,GAAI,IAAI,CAAC,CAAC,CAA6B,CAAC,WAAW,CAAC;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAc,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,OAAO,QAAQ;aACZ,MAAM,CACL,CAAC,CAAM,EAAE,EAAE,CACT,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAC1B,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;oBACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACtD;aACA,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAChB,IAAI,EAAE,CAAC,CAAC,IAA4B;YACpC,OAAO,EACL,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAC3B,CAAC,CAAC,CAAC,CAAC,OAAO;gBACX,CAAC,CAAE,CAAC,CAAC,OAAiB;qBACjB,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qBACrC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;qBAC7B,IAAI,CAAC,EAAE,CAAC;YACjB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;SACzD,CAAC,CAAC,CAAC;IACR,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,GAAG,CACZ,IAAI;SACD,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAc,EAAE,CAAc;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,YAAY,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC;IAC7C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC;AAChD,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAsB;IACpD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,GAAG,GAAG,wBAAwB;YAAE,wBAAwB,GAAG,GAAG,CAAC;QACnE,IAAI,GAAG,IAAI,GAAG;YAAE,mBAAmB,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,0DAA0D;IAC1D,OAAO,IAAI,CAAC,GAAG,CACb,GAAG,EACH,CAAC,CAAC,wBAAwB,GAAG,EAAE,GAAG,eAAe,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAyB;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEpC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE3C,wDAAwD;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAEpC,kEAAkE;IAClE,qEAAqE;IACrE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5C,yDAAyD;YACzD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,iBAAiB,GAAG;IACxB,SAAS;IACT,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,aAAa;CACd,CAAC;AAEF,SAAS,qBAAqB,CAAC,YAAsB;IACnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAExC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAE3B,4CAA4C;QAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5D,UAAU,EAAE,CAAC;QACf,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,aAAa,EAAE,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;IAC1D,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;IAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,aAAa,GAAG,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,uBAAuB,CAAC,YAAsB;IACrD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAErD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,SAAS,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1C,WAAW,IAAI,KAAK,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC;IAEtC,qEAAqE;IACrE,oDAAoD;IACpD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;IAEtC,sEAAsE;IACtE,IAAI,eAAe,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAEnC,iEAAiE;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,qCAAqC;IACrC,WAAW;IACX,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;IACjB,yBAAyB;IACzB,8BAA8B;IAC9B,2BAA2B;IAC3B,8CAA8C;CAC/C,CAAC;AAEF,SAAS,iBAAiB,CAAC,YAAsB;IAC/C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAExC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,UAAU,EAAE,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,OAAmC,EAAE;IAErC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,QAAQ;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,eAAe,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnD,6FAA6F;IAC7F,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,GAAG,EACH,eAAe,GAAG,GAAG;QACnB,gBAAgB,GAAG,GAAG;QACtB,cAAc,GAAG,IAAI;QACrB,gBAAgB,GAAG,IAAI;QACvB,UAAU,GAAG,GAAG,CACnB,CAAC;IAEF,MAAM,KAAK,GAAsB;QAC/B,EAAE,EAAE,OAAO,QAAQ,EAAE;QACrB,QAAQ;QACR,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;QAC1D,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,GAAG;QACxD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;QAC1D,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,GAAG;QACtD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;QAC1D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;KACvB,CAAC;IAEF,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { getDbExec } from \"../db/client.js\";\nimport type {\n FeedbackEntry,\n FeedbackType,\n SatisfactionScore,\n} from \"./types.js\";\nimport {\n insertFeedback,\n upsertSatisfactionScore,\n ensureObservabilityTables,\n} from \"./store.js\";\n\nfunction generateId(): string {\n return `fb-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n}\n\n// ─── Feedback submission ────────────────────────────────────────────\n\nexport interface SubmitFeedbackOpts {\n threadId: string;\n runId?: string;\n messageSeq?: number;\n feedbackType: FeedbackType;\n value?: string;\n userId?: string;\n}\n\nexport async function submitFeedback(\n opts: SubmitFeedbackOpts,\n): Promise<FeedbackEntry> {\n if (!opts.threadId) throw new Error(\"threadId is required\");\n if (!opts.feedbackType) throw new Error(\"feedbackType is required\");\n\n const validTypes: FeedbackType[] = [\n \"thumbs_up\",\n \"thumbs_down\",\n \"category\",\n \"text\",\n ];\n if (!validTypes.includes(opts.feedbackType)) {\n throw new Error(`Invalid feedbackType: ${opts.feedbackType}`);\n }\n\n const entry: FeedbackEntry = {\n id: generateId(),\n runId: opts.runId ?? null,\n threadId: opts.threadId,\n messageSeq: opts.messageSeq ?? null,\n feedbackType: opts.feedbackType,\n value: opts.value ?? \"\",\n userId: opts.userId ?? null,\n createdAt: Date.now(),\n };\n\n await insertFeedback(entry);\n return entry;\n}\n\n// ─── Satisfaction scoring ───────────────────────────────────────────\n\ninterface ThreadMessage {\n role: \"user\" | \"assistant\";\n content: string;\n createdAt?: number;\n}\n\nasync function getThreadMessages(threadId: string): Promise<ThreadMessage[]> {\n await ensureObservabilityTables();\n const client = getDbExec();\n\n const { rows } = await client.execute({\n sql: `SELECT thread_data FROM chat_threads WHERE id = ?`,\n args: [threadId],\n });\n\n if (rows.length === 0) return [];\n\n const raw = (rows[0] as Record<string, unknown>).thread_data;\n if (!raw) return [];\n\n try {\n const data = JSON.parse(String(raw));\n const messages: unknown[] = data.messages ?? data;\n if (!Array.isArray(messages)) return [];\n\n return messages\n .filter(\n (m: any) =>\n m &&\n typeof m.role === \"string\" &&\n (typeof m.content === \"string\" ||\n (Array.isArray(m.content) &&\n m.content.some((p: any) => p.type === \"text\"))),\n )\n .map((m: any) => ({\n role: m.role as \"user\" | \"assistant\",\n content:\n typeof m.content === \"string\"\n ? m.content\n : (m.content as any[])\n .filter((p: any) => p.type === \"text\")\n .map((p: any) => p.text ?? \"\")\n .join(\"\"),\n createdAt: m.createdAt ? Number(m.createdAt) : undefined,\n }));\n } catch {\n return [];\n }\n}\n\nfunction tokenize(text: string): Set<string> {\n return new Set(\n text\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \"\")\n .split(/\\s+/)\n .filter((w) => w.length > 1),\n );\n}\n\nfunction jaccardSimilarity(a: Set<string>, b: Set<string>): number {\n if (a.size === 0 && b.size === 0) return 0;\n let intersection = 0;\n for (const word of a) {\n if (b.has(word)) intersection++;\n }\n const union = a.size + b.size - intersection;\n return union === 0 ? 0 : intersection / union;\n}\n\nfunction computeRephrasingScore(userMessages: string[]): number {\n if (userMessages.length < 2) return 0;\n\n const tokenSets = userMessages.map(tokenize);\n let maxConsecutiveSimilarity = 0;\n let highSimilarityCount = 0;\n\n for (let i = 1; i < tokenSets.length; i++) {\n const sim = jaccardSimilarity(tokenSets[i - 1], tokenSets[i]);\n if (sim > maxConsecutiveSimilarity) maxConsecutiveSimilarity = sim;\n if (sim >= 0.4) highSimilarityCount++;\n }\n\n const pairCount = tokenSets.length - 1;\n const rephrasingRatio = pairCount > 0 ? highSimilarityCount / pairCount : 0;\n\n // Blend peak similarity with overall rephrasing frequency\n return Math.min(\n 100,\n ((maxConsecutiveSimilarity * 60 + rephrasingRatio * 40) * 100) / 100,\n );\n}\n\nfunction computeAbandonmentScore(messages: ThreadMessage[]): number {\n if (messages.length === 0) return 0;\n\n const last = messages[messages.length - 1];\n\n // Thread ends with a user message and no agent response\n if (last.role === \"user\") return 80;\n\n // Thread ends with agent response, but check if last user message\n // was very close to it (agent responded but user never replied back)\n if (messages.length >= 3) {\n const secondToLast = messages[messages.length - 2];\n if (secondToLast.role === \"user\") {\n const userMsg = secondToLast.content.trim();\n // Short user messages right before end suggest giving up\n if (userMsg.length < 15) return 40;\n }\n }\n\n return 0;\n}\n\nconst NEGATIVE_PATTERNS = [\n /\\bno\\b/i,\n /\\bwrong\\b/i,\n /\\bnot what i/i,\n /\\btry again\\b/i,\n /\\bnever mind\\b/i,\n /\\bnevermind\\b/i,\n /\\bthat's not\\b/i,\n /\\bthats not\\b/i,\n /\\bincorrect\\b/i,\n /\\bdoesn't work\\b/i,\n /\\bdoesnt work\\b/i,\n /\\bstill wrong\\b/i,\n /\\bnope\\b/i,\n /\\bstop\\b/i,\n /\\bforget it\\b/i,\n /\\buseless\\b/i,\n /\\bbroken\\b/i,\n];\n\nfunction computeSentimentScore(userMessages: string[]): number {\n if (userMessages.length === 0) return 0;\n\n let negativeCount = 0;\n let terseCount = 0;\n\n for (const msg of userMessages) {\n const trimmed = msg.trim();\n\n // Terse single-word or very short responses\n if (trimmed.split(/\\s+/).length <= 2 && trimmed.length < 20) {\n terseCount++;\n }\n\n for (const pattern of NEGATIVE_PATTERNS) {\n if (pattern.test(trimmed)) {\n negativeCount++;\n break;\n }\n }\n }\n\n const negativeRatio = negativeCount / userMessages.length;\n const terseRatio = terseCount / userMessages.length;\n\n return Math.min(100, (negativeRatio * 70 + terseRatio * 30) * 100);\n}\n\nfunction computeLengthTrendScore(userMessages: string[]): number {\n if (userMessages.length < 3) return 0;\n\n const lengths = userMessages.map((m) => m.trim().length);\n const n = lengths.length;\n\n // Simple linear regression: y = mx + b, we care about slope m\n const xMean = (n - 1) / 2;\n const yMean = lengths.reduce((a, b) => a + b, 0) / n;\n\n let numerator = 0;\n let denominator = 0;\n for (let i = 0; i < n; i++) {\n const xDiff = i - xMean;\n numerator += xDiff * (lengths[i] - yMean);\n denominator += xDiff * xDiff;\n }\n\n if (denominator === 0) return 0;\n\n const slope = numerator / denominator;\n\n // Normalize: negative slope = messages getting shorter = frustration\n // Scale by average length to get a relative measure\n if (yMean === 0) return 0;\n const normalizedSlope = slope / yMean;\n\n // Only negative slopes (shrinking messages) contribute to frustration\n if (normalizedSlope >= 0) return 0;\n\n // Map normalized slope to 0-100; -1 (halving each message) = 100\n return Math.min(100, Math.abs(normalizedSlope) * 100);\n}\n\nconst RETRY_PATTERNS = [\n /\\btry again\\b/i,\n /\\bthat's wrong\\b/i,\n /\\bthats wrong\\b/i,\n /\\bno,?\\s*(that's|thats|it's|its)\\b/i,\n /\\bredo\\b/i,\n /\\bdo it again\\b/i,\n /\\bone more time\\b/i,\n /\\bregenerate\\b/i,\n /\\bfix (it|this|that)\\b/i,\n /\\btry (this|that) instead\\b/i,\n /\\bi (said|meant|asked)\\b/i,\n /\\bstill (not|wrong|broken|doesn't|doesnt)\\b/i,\n];\n\nfunction computeRetryScore(userMessages: string[]): number {\n if (userMessages.length === 0) return 0;\n\n let retryCount = 0;\n for (const msg of userMessages) {\n for (const pattern of RETRY_PATTERNS) {\n if (pattern.test(msg)) {\n retryCount++;\n break;\n }\n }\n }\n\n const retryRatio = retryCount / userMessages.length;\n return Math.min(100, retryRatio * 150);\n}\n\nexport async function computeSatisfactionScore(\n threadId: string,\n opts: { userId?: string | null } = {},\n): Promise<SatisfactionScore> {\n const messages = await getThreadMessages(threadId);\n const userMessages = messages\n .filter((m) => m.role === \"user\")\n .map((m) => m.content);\n\n const rephrasingScore = computeRephrasingScore(userMessages);\n const abandonmentScore = computeAbandonmentScore(messages);\n const sentimentScore = computeSentimentScore(userMessages);\n const lengthTrendScore = computeLengthTrendScore(userMessages);\n const retryScore = computeRetryScore(userMessages);\n\n // Weighted composite: rephrasing 30, abandonment 20, sentiment 15, length trend 15, retry 20\n const frustrationScore = Math.min(\n 100,\n rephrasingScore * 0.3 +\n abandonmentScore * 0.2 +\n sentimentScore * 0.15 +\n lengthTrendScore * 0.15 +\n retryScore * 0.2,\n );\n\n const score: SatisfactionScore = {\n id: `sat-${threadId}`,\n threadId,\n userId: opts.userId ?? null,\n frustrationScore: Math.round(frustrationScore * 100) / 100,\n rephrasingScore: Math.round(rephrasingScore * 100) / 100,\n abandonmentScore: Math.round(abandonmentScore * 100) / 100,\n sentimentScore: Math.round(sentimentScore * 100) / 100,\n lengthTrendScore: Math.round(lengthTrendScore * 100) / 100,\n computedAt: Date.now(),\n };\n\n await upsertSatisfactionScore(score);\n return score;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC","sourcesContent":["export type {\n SpanType,\n SpanStatus,\n TraceSpan,\n TraceSummary,\n FeedbackType,\n FeedbackEntry,\n SatisfactionScore,\n EvalType,\n EvalResult,\n EvalDataset,\n EvalTestCase,\n EvalCriteria,\n ExperimentStatus,\n ExperimentVariant,\n Experiment,\n ExperimentAssignment,\n ExperimentMetricResult,\n ObservabilityConfig,\n ObservabilityExporterConfig,\n} from \"./types.js\";\n\nexport { DEFAULT_OBSERVABILITY_CONFIG } from \"./types.js\";\n\nexport {\n ensureObservabilityTables,\n insertTraceSpan,\n upsertTraceSummary,\n getTraceSpansForRun,\n getTraceSummaries,\n getTraceSummary,\n deleteOldTraceData,\n insertFeedback,\n getFeedback,\n getFeedbackStats,\n upsertSatisfactionScore,\n getSatisfactionScores,\n insertEvalResult,\n getEvalsForRun,\n getEvalStats,\n insertEvalDataset,\n listEvalDatasets,\n getEvalDataset,\n updateEvalDataset,\n insertExperiment,\n updateExperiment,\n listExperiments,\n getExperiment,\n upsertAssignment,\n getAssignment,\n insertExperimentResult,\n getExperimentResults,\n getObservabilityOverview,\n} from \"./store.js\";\n\nexport { createObservabilityPlugin } from \"./plugin.js\";\nexport { createObservabilityHandler } from \"./routes.js\";\nexport {\n runTraceCleanupOnce,\n startTraceCleanupJob,\n stopTraceCleanupJob,\n} from \"./cleanup-job.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/observability/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,cAAc,GACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,UAAU,yBAAyB;IACvC,OAAO,KAAK,EAAE,QAAa,EAAE,EAAE;QAC7B,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,yBAAyB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CACpB,GAAG,sBAAsB,gBAAgB,EACzC,0BAA0B,EAAE,CAC7B,CAAC;QACF,iEAAiE;QACjE,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,CAAC;YACH,oBAAoB,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,oDAAoD,EACnD,GAAW,EAAE,OAAO,IAAI,GAAG,CAC7B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/observability/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,cAAc,GACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,UAAU,yBAAyB;IACvC,OAAO,KAAK,EAAE,QAAa,EAAE,EAAE;QAC7B,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,yBAAyB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CACpB,GAAG,sBAAsB,gBAAgB,EACzC,0BAA0B,EAAE,CAC7B,CAAC;QACF,iEAAiE;QACjE,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,CAAC;YACH,oBAAoB,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,oDAAoD,EACnD,GAAW,EAAE,OAAO,IAAI,GAAG,CAC7B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import {\n getH3App,\n awaitBootstrap,\n} from \"../server/framework-request-handler.js\";\nimport { FRAMEWORK_ROUTE_PREFIX } from \"../server/core-routes-plugin.js\";\nimport { createObservabilityHandler } from \"./routes.js\";\nimport { ensureObservabilityTables } from \"./store.js\";\nimport { startTraceCleanupJob } from \"./cleanup-job.js\";\n\nexport function createObservabilityPlugin() {\n return async (nitroApp: any) => {\n await awaitBootstrap(nitroApp);\n await ensureObservabilityTables().catch(() => {});\n getH3App(nitroApp).use(\n `${FRAMEWORK_ROUTE_PREFIX}/observability`,\n createObservabilityHandler(),\n );\n // Start the daily trace-retention cleanup. Idempotent — repeated\n // plugin loads (Vite HMR) reuse the same schedule. See cleanup-job.ts\n // for the AGENT_NATIVE_TRACE_RETENTION_DAYS env-var contract.\n try {\n startTraceCleanupJob();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[observability] Failed to start trace cleanup job:\",\n (err as any)?.message ?? err,\n );\n }\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/observability/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/observability/routes.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * H3 event handlers for the agent observability system.\n *\n * Mounted under `/_agent-native/observability/*` by the observability plugin.\n *\n * GET / — overview stats\n * GET /traces?since=N&limit=N — list trace summaries\n * GET /traces/:runId — get trace detail (spans + summary)\n * GET /traces/:runId/evals — get evals for a run\n * POST /feedback — submit feedback\n * GET /feedback?since=N&limit=N — list feedback entries\n * GET /feedback/stats?since=N — feedback aggregation stats\n * GET /satisfaction?since=N — satisfaction scores\n * GET /evals/stats?since=N — eval stats\n * GET /experiments — list experiments\n * POST /experiments — create experiment\n * GET /experiments/:id — get experiment detail\n * PUT /experiments/:id — update experiment\n * POST /experiments/:id/results — compute experiment results\n * GET /experiments/:id/results — get experiment results\n */\n\nimport {\n defineEventHandler,\n getMethod,\n getQuery,\n setResponseStatus,\n type H3Event,\n} from \"h3\";\nimport { getSession, DEV_MODE_USER_EMAIL } from \"../server/auth.js\";\nimport { readBody } from \"../server/h3-helpers.js\";\nimport {\n getObservabilityOverview,\n getTraceSummaries,\n getTraceSummary,\n getTraceSpansForRun,\n getEvalsForRun,\n insertFeedback,\n getFeedback,\n getFeedbackStats,\n getSatisfactionScores,\n getEvalStats,\n listExperiments,\n insertExperiment,\n getExperiment,\n updateExperiment,\n getExperimentResults,\n} from \"./store.js\";\nimport type { FeedbackType, ExperimentStatus } from \"./types.js\";\n\nfunction nanoid(size = 21): string {\n const alphabet =\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n let id = \"\";\n const bytes = crypto.getRandomValues(new Uint8Array(size));\n for (let i = 0; i < size; i++) {\n id += alphabet[bytes[i] % alphabet.length];\n }\n return id;\n}\n\nasync function resolveOwner(event: H3Event): Promise<string> {\n const session = await getSession(event).catch(() => null);\n if (!session?.email) {\n const { createError } = await import(\"h3\");\n throw createError({ statusCode: 401, statusMessage: \"Unauthenticated\" });\n }\n return session.email;\n}\n\nfunction parseSince(q: Record<string, any>): number {\n const raw = q.since;\n if (typeof raw === \"string\" && raw.length > 0) {\n const n = Number(raw);\n if (!isNaN(n) && n >= 0) return n;\n }\n return Date.now() - 7 * 86_400_000;\n}\n\nfunction parseLimit(q: Record<string, any>, fallback = 100): number {\n const raw = q.limit;\n if (typeof raw === \"string\") {\n const n = Number(raw);\n if (!isNaN(n) && n > 0) return Math.min(n, 500);\n }\n return fallback;\n}\n\nexport function createObservabilityHandler() {\n return defineEventHandler(async (event: H3Event) => {\n const rawMethod = getMethod(event);\n const method = rawMethod === \"HEAD\" ? \"GET\" : rawMethod;\n const pathname = (event.url?.pathname || \"\")\n .replace(/^\\/+/, \"\")\n .replace(/\\/+$/, \"\");\n const parts = pathname ? pathname.split(\"/\") : [];\n\n const owner = await resolveOwner(event);\n if (!owner || owner === DEV_MODE_USER_EMAIL) {\n const isLocal =\n process.env.NODE_ENV !== \"production\" ||\n process.env.AUTH_MODE === \"local\";\n if (!isLocal) {\n setResponseStatus(event, 401);\n return { error: \"Authentication required\" };\n }\n }\n\n // Every read endpoint passes `userId: owner` to the store. Omitting\n // it returns rows from every user — load-bearing.\n\n // GET / — overview stats\n if (method === \"GET\" && parts.length === 0) {\n const q = getQuery(event);\n const sinceMs = parseSince(q);\n return getObservabilityOverview(sinceMs, { userId: owner });\n }\n\n // GET /traces — list trace summaries\n if (method === \"GET\" && parts.length === 1 && parts[0] === \"traces\") {\n const q = getQuery(event);\n return getTraceSummaries({\n sinceMs: parseSince(q),\n limit: parseLimit(q),\n userId: owner,\n });\n }\n\n // GET /traces/:runId/evals — evals for a specific run\n if (\n method === \"GET\" &&\n parts.length === 3 &&\n parts[0] === \"traces\" &&\n parts[2] === \"evals\"\n ) {\n return getEvalsForRun(decodeURIComponent(parts[1]), { userId: owner });\n }\n\n // GET /traces/:runId — trace detail (summary + spans). Looking up by\n // runId opens an IDOR vector if we don't ALSO scope to the owner —\n // a user who knows or guesses another user's runId would otherwise\n // get back the trace. The `userId: owner` filter on both lookups\n // returns 404 instead.\n if (method === \"GET\" && parts.length === 2 && parts[0] === \"traces\") {\n const runId = decodeURIComponent(parts[1]);\n const [summary, spans] = await Promise.all([\n getTraceSummary(runId, { userId: owner }),\n getTraceSpansForRun(runId, { userId: owner }),\n ]);\n if (!summary) {\n setResponseStatus(event, 404);\n return { error: \"Trace not found\" };\n }\n return { summary, spans };\n }\n\n // GET /feedback/stats — feedback aggregation stats\n if (\n method === \"GET\" &&\n parts.length === 2 &&\n parts[0] === \"feedback\" &&\n parts[1] === \"stats\"\n ) {\n const q = getQuery(event);\n return getFeedbackStats(parseSince(q), { userId: owner });\n }\n\n // POST /feedback — submit feedback\n if (method === \"POST\" && parts.length === 1 && parts[0] === \"feedback\") {\n let body: any;\n try {\n body = await readBody(event);\n } catch {\n setResponseStatus(event, 400);\n return { error: \"Invalid JSON body\" };\n }\n const feedbackType = body?.feedbackType as FeedbackType | undefined;\n if (\n !feedbackType ||\n ![\"thumbs_up\", \"thumbs_down\", \"category\", \"text\"].includes(feedbackType)\n ) {\n setResponseStatus(event, 400);\n return { error: \"feedbackType is required\" };\n }\n const rawValue = body.value;\n const value =\n rawValue == null\n ? \"\"\n : typeof rawValue === \"object\"\n ? JSON.stringify(rawValue)\n : String(rawValue);\n const id = nanoid();\n await insertFeedback({\n id,\n runId: body.runId ? String(body.runId) : null,\n threadId: body.threadId ? String(body.threadId) : null,\n messageSeq:\n typeof body.messageSeq === \"number\" ? body.messageSeq : null,\n feedbackType,\n value,\n userId: owner,\n createdAt: Date.now(),\n });\n // Fire-and-forget: recompute satisfaction score for the thread.\n if (body.threadId) {\n import(\"./feedback.js\")\n .then(({ computeSatisfactionScore }) =>\n computeSatisfactionScore(String(body.threadId), {\n userId: owner,\n }).catch(() => {}),\n )\n .catch(() => {});\n }\n return { id };\n }\n\n // GET /feedback — list feedback entries\n if (method === \"GET\" && parts.length === 1 && parts[0] === \"feedback\") {\n const q = getQuery(event);\n return getFeedback({\n sinceMs: parseSince(q),\n limit: parseLimit(q),\n userId: owner,\n });\n }\n\n // GET /satisfaction — satisfaction scores\n if (method === \"GET\" && parts.length === 1 && parts[0] === \"satisfaction\") {\n const q = getQuery(event);\n return getSatisfactionScores({\n sinceMs: parseSince(q),\n userId: owner,\n });\n }\n\n // GET /evals/stats — eval stats\n if (\n method === \"GET\" &&\n parts.length === 2 &&\n parts[0] === \"evals\" &&\n parts[1] === \"stats\"\n ) {\n const q = getQuery(event);\n return getEvalStats(parseSince(q), { userId: owner });\n }\n\n // POST /experiments — create experiment. Records the calling user as\n // the owner so subsequent PUT / POST results require the same caller.\n if (method === \"POST\" && parts.length === 1 && parts[0] === \"experiments\") {\n let body: any;\n try {\n body = await readBody(event);\n } catch {\n setResponseStatus(event, 400);\n return { error: \"Invalid JSON body\" };\n }\n if (!body?.name) {\n setResponseStatus(event, 400);\n return { error: \"name is required\" };\n }\n if (body.variants !== undefined && !Array.isArray(body.variants)) {\n setResponseStatus(event, 400);\n return { error: \"variants must be an array\" };\n }\n const id = nanoid();\n await insertExperiment({\n id,\n name: String(body.name),\n status: \"draft\",\n variants: Array.isArray(body.variants) ? body.variants : [],\n metrics: Array.isArray(body.metrics) ? body.metrics : [],\n assignmentLevel:\n body.assignmentLevel === \"session\" ? \"session\" : \"user\",\n startedAt: null,\n endedAt: null,\n createdAt: Date.now(),\n ownerEmail: owner,\n });\n return { id };\n }\n\n // Experiments are platform-wide A/B test configurations — they assign\n // variants across all users, so reads are NOT per-user scoped. Writes\n // are gated by authentication above (only authenticated users or\n // local-dev can reach this point).\n\n // GET /experiments — list experiments\n if (method === \"GET\" && parts.length === 1 && parts[0] === \"experiments\") {\n return listExperiments();\n }\n\n // POST /experiments/:id/results — compute experiment results. Only\n // the experiment's owner may trigger a recomputation in a multi-tenant\n // deployment; legacy rows (no owner) fall through to the\n // authenticated-only gate above.\n if (\n method === \"POST\" &&\n parts.length === 3 &&\n parts[0] === \"experiments\" &&\n parts[2] === \"results\"\n ) {\n const id = decodeURIComponent(parts[1]);\n const existing = await getExperiment(id);\n if (!existing) {\n setResponseStatus(event, 404);\n return { error: \"Experiment not found\" };\n }\n if (existing.ownerEmail && existing.ownerEmail !== owner) {\n setResponseStatus(event, 404);\n return { error: \"Experiment not found\" };\n }\n try {\n const { computeExperimentResults } = await import(\"./experiments.js\");\n const results = await computeExperimentResults(id);\n return results;\n } catch (err: any) {\n setResponseStatus(event, 500);\n return { error: err?.message ?? \"Failed to compute results\" };\n }\n }\n\n // GET /experiments/:id/results — experiment results\n if (\n method === \"GET\" &&\n parts.length === 3 &&\n parts[0] === \"experiments\" &&\n parts[2] === \"results\"\n ) {\n return getExperimentResults(decodeURIComponent(parts[1]));\n }\n\n // PUT /experiments/:id — update experiment. Restricted to the\n // experiment owner; cross-user mutation would let one signed-in user\n // silently end / reshape another user's experiment (variant\n // assignments, status, metrics). Legacy rows without an owner remain\n // updatable by any authenticated user — they're treated as\n // platform-wide and operators should re-save them to lock down ownership.\n if (method === \"PUT\" && parts.length === 2 && parts[0] === \"experiments\") {\n const id = decodeURIComponent(parts[1]);\n const existing = await getExperiment(id);\n if (!existing) {\n setResponseStatus(event, 404);\n return { error: \"Experiment not found\" };\n }\n if (existing.ownerEmail && existing.ownerEmail !== owner) {\n setResponseStatus(event, 404);\n return { error: \"Experiment not found\" };\n }\n let body: any;\n try {\n body = await readBody(event);\n } catch {\n setResponseStatus(event, 400);\n return { error: \"Invalid JSON body\" };\n }\n const updates: Record<string, any> = {};\n if (typeof body.name === \"string\") updates.name = body.name;\n if (typeof body.status === \"string\") {\n const s = body.status as ExperimentStatus;\n if (![\"draft\", \"running\", \"paused\", \"completed\"].includes(s)) {\n setResponseStatus(event, 400);\n return { error: \"Invalid status\" };\n }\n updates.status = s;\n if (s === \"completed\") updates.endedAt = Date.now();\n }\n if (Array.isArray(body.variants)) updates.variants = body.variants;\n if (Array.isArray(body.metrics)) updates.metrics = body.metrics;\n await updateExperiment(id, updates);\n return { ok: true };\n }\n\n // GET /experiments/:id — experiment detail\n if (method === \"GET\" && parts.length === 2 && parts[0] === \"experiments\") {\n const exp = await getExperiment(decodeURIComponent(parts[1]));\n if (!exp) {\n setResponseStatus(event, 404);\n return { error: \"Experiment not found\" };\n }\n return exp;\n }\n\n setResponseStatus(event, 404);\n return { error: \"Not found\" };\n });\n}\n"]}