@agent-native/core 0.90.10 → 0.91.0

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 (360) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +30 -0
  3. package/corpus/core/docs/content/toolkit-settings.mdx +56 -3
  4. package/corpus/core/package.json +2 -1
  5. package/corpus/core/src/agent/durable-background.ts +5 -5
  6. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +40 -8
  7. package/corpus/core/src/agent/engine/anthropic-engine.ts +25 -7
  8. package/corpus/core/src/agent/engine/output-tokens.ts +94 -0
  9. package/corpus/core/src/agent/production-agent.ts +34 -6
  10. package/corpus/core/src/agent/run-ownership.ts +29 -1
  11. package/corpus/core/src/agent/types.ts +3 -2
  12. package/corpus/core/src/changelog/parse.ts +78 -0
  13. package/corpus/core/src/chat-threads/schema.ts +43 -0
  14. package/corpus/core/src/chat-threads/store.ts +144 -12
  15. package/corpus/core/src/cli/workspace-dev.ts +25 -5
  16. package/corpus/core/src/client/AgentPanel.tsx +79 -14
  17. package/corpus/core/src/client/AssistantChat.tsx +359 -425
  18. package/corpus/core/src/client/analytics-session.ts +70 -0
  19. package/corpus/core/src/client/analytics.ts +175 -49
  20. package/corpus/core/src/client/chat/message-components.tsx +22 -2
  21. package/corpus/core/src/client/components/ui/message-scroller.tsx +131 -0
  22. package/corpus/core/src/client/conversation/AgentConversation.tsx +63 -41
  23. package/corpus/core/src/client/error-capture.ts +616 -0
  24. package/corpus/core/src/client/index.ts +12 -0
  25. package/corpus/core/src/client/session-replay.ts +57 -7
  26. package/corpus/core/src/client/settings/SettingsPanel.tsx +123 -1
  27. package/corpus/core/src/client/settings/SettingsTabsPage.tsx +292 -45
  28. package/corpus/core/src/client/settings/index.ts +1 -0
  29. package/corpus/core/src/client/sharing/ShareButton.tsx +14 -11
  30. package/corpus/core/src/client/sharing/ShareDialog.tsx +13 -10
  31. package/corpus/core/src/db/client.ts +12 -9
  32. package/corpus/core/src/mcp/builtin-tools.ts +29 -2
  33. package/corpus/core/src/server/agent-chat-plugin.ts +174 -79
  34. package/corpus/core/src/server/onboarding-html.ts +28 -16
  35. package/corpus/core/src/shared/reasoning-effort.ts +23 -0
  36. package/corpus/core/src/sharing/actions/list-resource-shares.ts +45 -1
  37. package/corpus/core/src/sharing/actions/share-resource.ts +9 -0
  38. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +4 -2
  39. package/corpus/core/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +9 -6
  40. package/corpus/core/src/vite/client.ts +217 -35
  41. package/corpus/templates/analytics/.agents/skills/adhoc-analysis/SKILL.md +8 -7
  42. package/corpus/templates/analytics/.agents/skills/analysis-workspace/SKILL.md +14 -10
  43. package/corpus/templates/analytics/.agents/skills/bigquery/SKILL.md +15 -15
  44. package/corpus/templates/analytics/.agents/skills/cross-source-analysis/SKILL.md +1 -0
  45. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +38 -22
  46. package/corpus/templates/analytics/.agents/skills/data-programs/SKILL.md +114 -61
  47. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +1 -0
  48. package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +7 -7
  49. package/corpus/templates/analytics/.agents/skills/hubspot/SKILL.md +1 -0
  50. package/corpus/templates/analytics/.agents/skills/prometheus/SKILL.md +1 -1
  51. package/corpus/templates/analytics/.builder/skills/bigquery/SKILL.md +17 -17
  52. package/corpus/templates/analytics/.builder/skills/gcloud/SKILL.md +5 -5
  53. package/corpus/templates/analytics/.builder/skills/github/SKILL.md +7 -7
  54. package/corpus/templates/analytics/.builder/skills/gong/SKILL.md +12 -12
  55. package/corpus/templates/analytics/.builder/skills/grafana/SKILL.md +7 -7
  56. package/corpus/templates/analytics/.builder/skills/sentry/SKILL.md +7 -7
  57. package/corpus/templates/analytics/.builder/skills/slack/SKILL.md +6 -6
  58. package/corpus/templates/analytics/.builder/skills/stripe/SKILL.md +7 -7
  59. package/corpus/templates/analytics/AGENTS.md +47 -2
  60. package/corpus/templates/analytics/actions/add-status-page-monitor.ts +36 -0
  61. package/corpus/templates/analytics/actions/capture-test-error.ts +33 -0
  62. package/corpus/templates/analytics/actions/delete-monitor.ts +24 -0
  63. package/corpus/templates/analytics/actions/delete-status-page.ts +23 -0
  64. package/corpus/templates/analytics/actions/get-error-issue.ts +36 -0
  65. package/corpus/templates/analytics/actions/get-monitor-stats.ts +55 -0
  66. package/corpus/templates/analytics/actions/get-monitor.ts +27 -0
  67. package/corpus/templates/analytics/actions/get-public-status-page.ts +41 -0
  68. package/corpus/templates/analytics/actions/get-status-page.ts +29 -0
  69. package/corpus/templates/analytics/actions/list-error-issues.ts +40 -0
  70. package/corpus/templates/analytics/actions/list-monitors.ts +21 -0
  71. package/corpus/templates/analytics/actions/list-status-pages.ts +21 -0
  72. package/corpus/templates/analytics/actions/match-error-issues.ts +51 -0
  73. package/corpus/templates/analytics/actions/navigate.ts +58 -4
  74. package/corpus/templates/analytics/actions/remove-status-page-monitor.ts +22 -0
  75. package/corpus/templates/analytics/actions/reorder-status-page-monitors.ts +25 -0
  76. package/corpus/templates/analytics/actions/resolve-error-issue.ts +38 -0
  77. package/corpus/templates/analytics/actions/run-monitor-check.ts +23 -0
  78. package/corpus/templates/analytics/actions/save-analysis.ts +1 -0
  79. package/corpus/templates/analytics/actions/save-monitor.ts +145 -0
  80. package/corpus/templates/analytics/actions/save-status-page.ts +47 -0
  81. package/corpus/templates/analytics/actions/view-screen.ts +212 -0
  82. package/corpus/templates/analytics/app/components/layout/Header.tsx +1 -0
  83. package/corpus/templates/analytics/app/components/layout/Layout.tsx +10 -1
  84. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +134 -39
  85. package/corpus/templates/analytics/app/components/monitoring/PublicStatusView.tsx +351 -0
  86. package/corpus/templates/analytics/app/components/monitoring/ResponseTimeChart.tsx +174 -0
  87. package/corpus/templates/analytics/app/components/monitoring/UptimeStatCards.tsx +85 -0
  88. package/corpus/templates/analytics/app/components/monitoring/UptimeTimelineBars.tsx +106 -0
  89. package/corpus/templates/analytics/app/components/monitoring/chart-utils.ts +101 -0
  90. package/corpus/templates/analytics/app/components/monitoring/index.ts +28 -0
  91. package/corpus/templates/analytics/app/components/monitoring/types.ts +42 -0
  92. package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +34 -0
  93. package/corpus/templates/analytics/app/i18n/zh-TW.ts +6 -0
  94. package/corpus/templates/analytics/app/i18n-data.ts +33 -0
  95. package/corpus/templates/analytics/app/pages/DataSources.tsx +28 -0
  96. package/corpus/templates/analytics/app/pages/Settings.tsx +77 -9
  97. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +3 -3
  98. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +7 -0
  99. package/corpus/templates/analytics/app/pages/monitoring/ErrorsPanel.tsx +205 -0
  100. package/corpus/templates/analytics/app/pages/monitoring/MonitoringPage.tsx +100 -0
  101. package/corpus/templates/analytics/app/pages/monitoring/UptimePanel.tsx +475 -0
  102. package/corpus/templates/analytics/app/pages/monitoring/errors/IssueDetail.tsx +372 -0
  103. package/corpus/templates/analytics/app/pages/monitoring/errors/IssueList.tsx +360 -0
  104. package/corpus/templates/analytics/app/pages/monitoring/errors/Sparkline.tsx +55 -0
  105. package/corpus/templates/analytics/app/pages/monitoring/errors/i18n.ts +106 -0
  106. package/corpus/templates/analytics/app/pages/monitoring/errors/types.ts +75 -0
  107. package/corpus/templates/analytics/app/pages/monitoring/errors/utils.ts +132 -0
  108. package/corpus/templates/analytics/app/pages/monitoring/uptime/MonitorDetail.tsx +535 -0
  109. package/corpus/templates/analytics/app/pages/monitoring/uptime/MonitorFormPage.tsx +1026 -0
  110. package/corpus/templates/analytics/app/pages/monitoring/uptime/MonitorList.tsx +311 -0
  111. package/corpus/templates/analytics/app/pages/monitoring/uptime/i18n.ts +235 -0
  112. package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/StatusPageEditor.tsx +661 -0
  113. package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/StatusPagesView.tsx +355 -0
  114. package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/i18n.ts +106 -0
  115. package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/slug.ts +24 -0
  116. package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/types.ts +20 -0
  117. package/corpus/templates/analytics/app/pages/monitoring/uptime/status-summary.ts +87 -0
  118. package/corpus/templates/analytics/app/pages/monitoring/uptime/types.ts +161 -0
  119. package/corpus/templates/analytics/app/pages/monitoring/uptime/utils.ts +210 -0
  120. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +76 -1
  121. package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +74 -9
  122. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +197 -20
  123. package/corpus/templates/analytics/app/root.tsx +33 -1
  124. package/corpus/templates/analytics/app/routes/monitoring._index.tsx +10 -0
  125. package/corpus/templates/analytics/app/routes/status.$slug.tsx +118 -0
  126. package/corpus/templates/analytics/changelog/2026-07-08-add-uptime-monitors-that-ping-your-urls-and-alert-you-when-t.md +6 -0
  127. package/corpus/templates/analytics/changelog/2026-07-08-analytics-chats-keep-large-data-dictionaries-compact-so-prov.md +6 -0
  128. package/corpus/templates/analytics/changelog/2026-07-08-create-public-status-pages-that-share-the-live-health-of-cho.md +6 -0
  129. package/corpus/templates/analytics/changelog/2026-07-08-dashboard-extension-panels-use-clearer-open-copy.md +6 -0
  130. package/corpus/templates/analytics/changelog/2026-07-08-error-capture.md +6 -0
  131. package/corpus/templates/analytics/changelog/2026-07-08-fixed-single-panel-dashboard-drags-so-they-no-longer-rewrite.md +6 -0
  132. package/corpus/templates/analytics/changelog/2026-07-08-jump-straight-from-an-error-in-a-session-recording-to-its-fu.md +6 -0
  133. package/corpus/templates/analytics/changelog/2026-07-08-monitor-detail-and-list-now-show-colorful-uptime-timelines-r.md +6 -0
  134. package/corpus/templates/analytics/changelog/2026-07-08-pinned-ask-chats-now-show-a-pin-icon-in-the-sidebar.md +6 -0
  135. package/corpus/templates/analytics/changelog/2026-07-08-publish-a-public-uptime-status-page-with-colorful-uptime-tim.md +6 -0
  136. package/corpus/templates/analytics/changelog/2026-07-08-sessions-now-hide-visitor-emails-in-demo-mode-and-show-clean.md +6 -0
  137. package/corpus/templates/analytics/changelog/2026-07-08-settings-are-cleaner-searchable-and-alerts-have-their-own-tab.md +5 -0
  138. package/corpus/templates/analytics/changelog/2026-07-08-sidebar-sections-stay-collapsed-until-opened.md +5 -0
  139. package/corpus/templates/analytics/changelog/2026-07-08-the-uptime-monitor-list-now-has-a-current-status-overview-wi.md +6 -0
  140. package/corpus/templates/analytics/docs/error-capture.md +172 -0
  141. package/corpus/templates/analytics/docs/uptime-monitoring.md +150 -0
  142. package/corpus/templates/analytics/server/db/schema-errors.ts +150 -0
  143. package/corpus/templates/analytics/server/db/schema-monitoring.ts +177 -0
  144. package/corpus/templates/analytics/server/db/schema.ts +6 -0
  145. package/corpus/templates/analytics/server/jobs/uptime-monitors.ts +123 -0
  146. package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +41 -0
  147. package/corpus/templates/analytics/server/lib/data-dictionary-context.ts +55 -12
  148. package/corpus/templates/analytics/server/lib/error-capture.ts +1331 -0
  149. package/corpus/templates/analytics/server/lib/first-party-analytics.ts +47 -1
  150. package/corpus/templates/analytics/server/lib/monitor-stats.ts +494 -0
  151. package/corpus/templates/analytics/server/lib/status-pages.ts +798 -0
  152. package/corpus/templates/analytics/server/lib/uptime-monitors.ts +1665 -0
  153. package/corpus/templates/analytics/server/plugins/agent-chat.ts +7 -37
  154. package/corpus/templates/analytics/server/plugins/auth.ts +11 -1
  155. package/corpus/templates/analytics/server/plugins/db.ts +408 -0
  156. package/corpus/templates/analytics/server/plugins/uptime-monitor-jobs.ts +63 -0
  157. package/corpus/templates/assets/app/routes/_index.tsx +1 -1
  158. package/corpus/templates/assets/app/routes/settings.tsx +22 -1
  159. package/corpus/templates/assets/changelog/2026-07-08-recent-drafts-keep-comfortable-side-padding.md +6 -0
  160. package/corpus/templates/assets/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  161. package/corpus/templates/brain/app/routes/settings.tsx +43 -5
  162. package/corpus/templates/brain/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  163. package/corpus/templates/calendar/app/pages/Settings.tsx +44 -6
  164. package/corpus/templates/calendar/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  165. package/corpus/templates/chat/app/routes/settings.tsx +16 -1
  166. package/corpus/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  167. package/corpus/templates/clips/actions/lib/audio-only-transcription.ts +79 -37
  168. package/corpus/templates/clips/actions/regenerate-chapters.ts +7 -0
  169. package/corpus/templates/clips/app/components/player/player-controls.tsx +35 -0
  170. package/corpus/templates/clips/app/components/player/video-player.tsx +162 -18
  171. package/corpus/templates/clips/app/hooks/use-auto-title.ts +15 -5
  172. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +63 -6
  173. package/corpus/templates/clips/app/routes/download.tsx +12 -4
  174. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +1 -0
  175. package/corpus/templates/clips/app/routes/record.tsx +18 -1
  176. package/corpus/templates/clips/changelog/2026-07-07-auto-generated-chapter-requests-now-open-the-matching-agent-.md +6 -0
  177. package/corpus/templates/clips/changelog/2026-07-07-shared-clips-start-playback-reliably-from-the-first-play-click.md +6 -0
  178. package/corpus/templates/clips/changelog/2026-07-07-the-clips-desktop-download-page-now-uses-the-agent-native-ap.md +6 -0
  179. package/corpus/templates/clips/changelog/2026-07-08-chrome-extension-camera-and-microphone-menus-now-show-which-.md +6 -0
  180. package/corpus/templates/clips/changelog/2026-07-08-chrome-extension-copies-new-clip-links-after-saving.md +6 -0
  181. package/corpus/templates/clips/changelog/2026-07-08-chrome-extension-recordings-now-continue-after-granting-came.md +6 -0
  182. package/corpus/templates/clips/changelog/2026-07-08-mobile-shared-clips-now-have-loom-style-tap-and-skip-controls.md +6 -0
  183. package/corpus/templates/clips/changelog/2026-07-08-recordings-and-uploads-copy-links-after-saving.md +6 -0
  184. package/corpus/templates/clips/changelog/2026-07-08-settings-are-cleaner-searchable-and-collapse-s3-with-builder.md +5 -0
  185. package/corpus/templates/clips/changelog/2026-07-08-transcripts-are-more-reliable-for-longer-desktop-recordings-.md +6 -0
  186. package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -0
  187. package/corpus/templates/clips/chrome-extension/src/background.ts +162 -13
  188. package/corpus/templates/clips/chrome-extension/src/content-script.ts +14 -0
  189. package/corpus/templates/clips/chrome-extension/src/offscreen.ts +36 -0
  190. package/corpus/templates/clips/chrome-extension/src/overlay.ts +99 -25
  191. package/corpus/templates/clips/chrome-extension/src/permission.ts +63 -14
  192. package/corpus/templates/clips/chrome-extension/src/popup.ts +123 -23
  193. package/corpus/templates/content/actions/_builder-cms-read-client.ts +47 -0
  194. package/corpus/templates/content/actions/_database-source-utils.ts +33 -4
  195. package/corpus/templates/content/actions/add-content-database-source-field-property.ts +214 -29
  196. package/corpus/templates/content/actions/attach-content-database-source.ts +3 -0
  197. package/corpus/templates/content/actions/change-content-database-source-role.ts +1 -0
  198. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +42 -32
  199. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +352 -81
  200. package/corpus/templates/content/app/components/editor/database/settings.tsx +49 -24
  201. package/corpus/templates/content/app/routes/_app.settings.tsx +19 -1
  202. package/corpus/templates/content/changelog/2026-07-07-builder-source-tag-fields-now-import-as-multi-select.md +6 -0
  203. package/corpus/templates/content/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  204. package/corpus/templates/content/shared/api.ts +3 -0
  205. package/corpus/templates/content/shared/properties.ts +42 -0
  206. package/corpus/templates/design/actions/generate-design.ts +3 -0
  207. package/corpus/templates/design/actions/get-design-system.ts +147 -1
  208. package/corpus/templates/design/app/routes/settings.tsx +16 -1
  209. package/corpus/templates/design/changelog/2026-07-08-design-generation-now-follows-hydrated-builder-design-system.md +6 -0
  210. package/corpus/templates/design/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  211. package/corpus/templates/dispatch/app/routes/settings.tsx +23 -2
  212. package/corpus/templates/dispatch/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  213. package/corpus/templates/forms/app/routes/_app.settings.tsx +16 -1
  214. package/corpus/templates/forms/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  215. package/corpus/templates/macros/app/routes/settings.tsx +16 -1
  216. package/corpus/templates/macros/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  217. package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +1 -1
  218. package/corpus/templates/mail/app/components/settings/SnippetsSection.tsx +1 -1
  219. package/corpus/templates/mail/app/pages/SettingsPage.tsx +123 -105
  220. package/corpus/templates/mail/changelog/2026-07-08-settings-redesigned-with-a-consistent-searchable-layout.md +5 -0
  221. package/corpus/templates/plan/app/routes/settings.tsx +23 -2
  222. package/corpus/templates/plan/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  223. package/corpus/templates/slides/actions/add-slide.ts +1 -0
  224. package/corpus/templates/slides/actions/get-design-system.ts +147 -1
  225. package/corpus/templates/slides/app/pages/Index.tsx +46 -1
  226. package/corpus/templates/slides/app/routes/settings.tsx +16 -1
  227. package/corpus/templates/slides/changelog/2026-07-08-deck-generation-now-follows-hydrated-builder-design-system-g.md +6 -0
  228. package/corpus/templates/slides/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  229. package/dist/agent/durable-background.d.ts +1 -1
  230. package/dist/agent/durable-background.d.ts.map +1 -1
  231. package/dist/agent/durable-background.js +5 -3
  232. package/dist/agent/durable-background.js.map +1 -1
  233. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  234. package/dist/agent/engine/ai-sdk-engine.js +24 -4
  235. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  236. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  237. package/dist/agent/engine/anthropic-engine.js +13 -3
  238. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  239. package/dist/agent/engine/output-tokens.d.ts +27 -0
  240. package/dist/agent/engine/output-tokens.d.ts.map +1 -1
  241. package/dist/agent/engine/output-tokens.js +70 -0
  242. package/dist/agent/engine/output-tokens.js.map +1 -1
  243. package/dist/agent/production-agent.d.ts.map +1 -1
  244. package/dist/agent/production-agent.js +28 -7
  245. package/dist/agent/production-agent.js.map +1 -1
  246. package/dist/agent/run-ownership.d.ts +6 -0
  247. package/dist/agent/run-ownership.d.ts.map +1 -1
  248. package/dist/agent/run-ownership.js +11 -1
  249. package/dist/agent/run-ownership.js.map +1 -1
  250. package/dist/agent/types.d.ts +3 -2
  251. package/dist/agent/types.d.ts.map +1 -1
  252. package/dist/agent/types.js.map +1 -1
  253. package/dist/changelog/parse.d.ts +7 -0
  254. package/dist/changelog/parse.d.ts.map +1 -1
  255. package/dist/changelog/parse.js +64 -0
  256. package/dist/changelog/parse.js.map +1 -1
  257. package/dist/chat-threads/schema.d.ts +445 -0
  258. package/dist/chat-threads/schema.d.ts.map +1 -0
  259. package/dist/chat-threads/schema.js +39 -0
  260. package/dist/chat-threads/schema.js.map +1 -0
  261. package/dist/chat-threads/store.d.ts +12 -0
  262. package/dist/chat-threads/store.d.ts.map +1 -1
  263. package/dist/chat-threads/store.js +99 -10
  264. package/dist/chat-threads/store.js.map +1 -1
  265. package/dist/cli/workspace-dev.d.ts.map +1 -1
  266. package/dist/cli/workspace-dev.js +20 -5
  267. package/dist/cli/workspace-dev.js.map +1 -1
  268. package/dist/client/AgentPanel.d.ts.map +1 -1
  269. package/dist/client/AgentPanel.js +35 -7
  270. package/dist/client/AgentPanel.js.map +1 -1
  271. package/dist/client/AssistantChat.d.ts.map +1 -1
  272. package/dist/client/AssistantChat.js +105 -183
  273. package/dist/client/AssistantChat.js.map +1 -1
  274. package/dist/client/analytics-session.d.ts +3 -0
  275. package/dist/client/analytics-session.d.ts.map +1 -0
  276. package/dist/client/analytics-session.js +66 -0
  277. package/dist/client/analytics-session.js.map +1 -0
  278. package/dist/client/analytics.d.ts +32 -0
  279. package/dist/client/analytics.d.ts.map +1 -1
  280. package/dist/client/analytics.js +116 -46
  281. package/dist/client/analytics.js.map +1 -1
  282. package/dist/client/chat/message-components.d.ts +2 -1
  283. package/dist/client/chat/message-components.d.ts.map +1 -1
  284. package/dist/client/chat/message-components.js +16 -6
  285. package/dist/client/chat/message-components.js.map +1 -1
  286. package/dist/client/components/ui/message-scroller.d.ts +16 -0
  287. package/dist/client/components/ui/message-scroller.d.ts.map +1 -0
  288. package/dist/client/components/ui/message-scroller.js +25 -0
  289. package/dist/client/components/ui/message-scroller.js.map +1 -0
  290. package/dist/client/conversation/AgentConversation.d.ts +1 -1
  291. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  292. package/dist/client/conversation/AgentConversation.js +3 -8
  293. package/dist/client/conversation/AgentConversation.js.map +1 -1
  294. package/dist/client/error-capture.d.ts +99 -0
  295. package/dist/client/error-capture.d.ts.map +1 -0
  296. package/dist/client/error-capture.js +437 -0
  297. package/dist/client/error-capture.js.map +1 -0
  298. package/dist/client/index.d.ts +2 -2
  299. package/dist/client/index.d.ts.map +1 -1
  300. package/dist/client/index.js +3 -1
  301. package/dist/client/index.js.map +1 -1
  302. package/dist/client/session-replay.d.ts +22 -0
  303. package/dist/client/session-replay.d.ts.map +1 -1
  304. package/dist/client/session-replay.js +45 -4
  305. package/dist/client/session-replay.js.map +1 -1
  306. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  307. package/dist/client/settings/SettingsPanel.js +100 -5
  308. package/dist/client/settings/SettingsPanel.js.map +1 -1
  309. package/dist/client/settings/SettingsTabsPage.d.ts +49 -1
  310. package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
  311. package/dist/client/settings/SettingsTabsPage.js +131 -19
  312. package/dist/client/settings/SettingsTabsPage.js.map +1 -1
  313. package/dist/client/settings/index.d.ts +1 -1
  314. package/dist/client/settings/index.d.ts.map +1 -1
  315. package/dist/client/settings/index.js.map +1 -1
  316. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  317. package/dist/client/sharing/ShareButton.js +13 -8
  318. package/dist/client/sharing/ShareButton.js.map +1 -1
  319. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  320. package/dist/client/sharing/ShareDialog.js +12 -7
  321. package/dist/client/sharing/ShareDialog.js.map +1 -1
  322. package/dist/collab/routes.d.ts +1 -1
  323. package/dist/collab/struct-routes.d.ts +1 -1
  324. package/dist/db/client.d.ts.map +1 -1
  325. package/dist/db/client.js +12 -7
  326. package/dist/db/client.js.map +1 -1
  327. package/dist/mcp/builtin-tools.d.ts.map +1 -1
  328. package/dist/mcp/builtin-tools.js +21 -2
  329. package/dist/mcp/builtin-tools.js.map +1 -1
  330. package/dist/notifications/routes.d.ts +1 -1
  331. package/dist/observability/routes.d.ts +5 -5
  332. package/dist/org/schema.d.ts +15 -15
  333. package/dist/progress/routes.d.ts +1 -1
  334. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  335. package/dist/resources/handlers.d.ts +3 -3
  336. package/dist/secrets/routes.d.ts +9 -9
  337. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  338. package/dist/server/agent-chat-plugin.js +109 -73
  339. package/dist/server/agent-chat-plugin.js.map +1 -1
  340. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  341. package/dist/server/onboarding-html.d.ts.map +1 -1
  342. package/dist/server/onboarding-html.js +28 -16
  343. package/dist/server/onboarding-html.js.map +1 -1
  344. package/dist/shared/reasoning-effort.d.ts +1 -0
  345. package/dist/shared/reasoning-effort.d.ts.map +1 -1
  346. package/dist/shared/reasoning-effort.js +18 -0
  347. package/dist/shared/reasoning-effort.js.map +1 -1
  348. package/dist/sharing/actions/list-resource-shares.js +30 -1
  349. package/dist/sharing/actions/list-resource-shares.js.map +1 -1
  350. package/dist/sharing/actions/share-resource.js +6 -0
  351. package/dist/sharing/actions/share-resource.js.map +1 -1
  352. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +4 -2
  353. package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +9 -6
  354. package/dist/vite/client.d.ts.map +1 -1
  355. package/dist/vite/client.js +192 -30
  356. package/dist/vite/client.js.map +1 -1
  357. package/docs/content/toolkit-settings.mdx +56 -3
  358. package/package.json +2 -1
  359. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +4 -2
  360. package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +9 -6
@@ -1,8 +1,8 @@
1
1
  import {
2
- getAnalyticsSessionId,
3
- getAnalyticsAnonymousId,
4
- scrubUrl,
5
- } from "./analytics.js";
2
+ getOrCreateAnalyticsAnonymousId,
3
+ getOrCreateAnalyticsSessionId,
4
+ } from "./analytics-session.js";
5
+ import { scrubUrl } from "./url-scrub.js";
6
6
 
7
7
  type ReplayEvent = Record<string, unknown>;
8
8
  type QueuedReplayEvent = {
@@ -842,7 +842,7 @@ function buildReplayBody(
842
842
  ): ReplayUploadPayload | null {
843
843
  const options = state.options;
844
844
  if (!options || !state.replayId) return null;
845
- const sessionId = getAnalyticsSessionId();
845
+ const sessionId = getOrCreateAnalyticsSessionId();
846
846
  if (!sessionId) return null;
847
847
  const properties = replayPropertiesForUpload(state, options);
848
848
  const userEmail = replayUserEmail(properties);
@@ -864,7 +864,7 @@ function buildReplayBody(
864
864
  sessionId,
865
865
  ...(userId ? { userId } : {}),
866
866
  ...(userEmail ? { userEmail } : {}),
867
- anonymousId: getAnalyticsAnonymousId(),
867
+ anonymousId: getOrCreateAnalyticsAnonymousId(),
868
868
  sequence: state.sequence,
869
869
  reason,
870
870
  status: isFinalFlushReason(reason) ? "completed" : "active",
@@ -1956,7 +1956,7 @@ export async function startSessionReplay(
1956
1956
  const normalized = normalizeOptions(options);
1957
1957
  if (!normalized) return { started: false, reason: "missing-public-key" };
1958
1958
 
1959
- const sessionId = getAnalyticsSessionId();
1959
+ const sessionId = getOrCreateAnalyticsSessionId();
1960
1960
  if (!sessionId) return { started: false, reason: "missing-session-id" };
1961
1961
  const sampled = shouldSampleSessionReplay(
1962
1962
  sessionId,
@@ -2169,3 +2169,53 @@ export function maybeStartSessionReplay(
2169
2169
  export function isSessionReplayActive(): boolean {
2170
2170
  return getState().active;
2171
2171
  }
2172
+
2173
+ /**
2174
+ * The active session replay id when a recording is running, or the last one
2175
+ * persisted for this analytics session in `localStorage`. First-party error
2176
+ * capture uses this to tie each captured exception to the replay it happened
2177
+ * in, so triage can jump straight to `/sessions/<recordingId>`.
2178
+ */
2179
+ export function getSessionReplayId(): string | null {
2180
+ const state = getState();
2181
+ if (state.active && state.replayId) return state.replayId;
2182
+ const stored = readStoredReplaySession();
2183
+ return stored?.replayId ?? null;
2184
+ }
2185
+
2186
+ /**
2187
+ * Surface a manually captured exception on the active session replay timeline
2188
+ * as an `agent-native.console` custom event, reusing the diagnostics contract
2189
+ * (`level`, `source: "console"`, `message`, `stack`, `url`). No-op when no
2190
+ * recording is active. Auto-captured `window.onerror` / `unhandledrejection`
2191
+ * are intentionally NOT routed here — the recorder already logs those as
2192
+ * `window-error` / `unhandledrejection`, so re-emitting would double-count.
2193
+ */
2194
+ export function emitSessionReplayException(input: {
2195
+ type: string;
2196
+ message: string;
2197
+ level?: "fatal" | "error" | "warning" | "info" | "debug";
2198
+ stack?: string;
2199
+ url?: string;
2200
+ }): void {
2201
+ const state = getState();
2202
+ if (!state.active || !state.addCustomEvent) return;
2203
+ const level =
2204
+ input.level === "warning"
2205
+ ? "warn"
2206
+ : input.level === "info" || input.level === "debug"
2207
+ ? input.level
2208
+ : "error";
2209
+ emitReplayCustomEvent(state, SESSION_REPLAY_CONSOLE_EVENT_TAG, {
2210
+ level,
2211
+ source: "console",
2212
+ message: `${input.type}: ${input.message}`.slice(
2213
+ 0,
2214
+ MAX_CONSOLE_MESSAGE_LENGTH,
2215
+ ),
2216
+ ...(input.stack
2217
+ ? { stack: input.stack.slice(0, MAX_CONSOLE_STACK_LENGTH) }
2218
+ : {}),
2219
+ ...(input.url ? { url: input.url } : {}),
2220
+ });
2221
+ }
@@ -53,7 +53,10 @@ import { AutomationsSection } from "./AutomationsSection.js";
53
53
  import { DemoModeSection } from "./DemoModeSection.js";
54
54
  import { SecretsSection } from "./SecretsSection.js";
55
55
  import { SettingsSection } from "./SettingsSection.js";
56
- import type { SettingsTabItem } from "./SettingsTabsPage.js";
56
+ import type {
57
+ SettingsSearchEntry,
58
+ SettingsTabItem,
59
+ } from "./SettingsTabsPage.js";
57
60
  import { UsageSection } from "./UsageSection.js";
58
61
  import {
59
62
  type BuilderConnectFlow,
@@ -873,6 +876,7 @@ function LLMSectionInner({
873
876
 
874
877
  return (
875
878
  <SettingsSection
879
+ id={settingsSectionDomId("llm")}
876
880
  icon={<IconBrain size={14} />}
877
881
  title="LLM"
878
882
  subtitle="Connect any major LLM — Claude, GPT, Gemini, and more."
@@ -1541,6 +1545,7 @@ function EmailSectionInner({
1541
1545
 
1542
1546
  return (
1543
1547
  <SettingsSection
1548
+ id={settingsSectionDomId("email")}
1544
1549
  icon={<IconMail size={14} />}
1545
1550
  title="Email"
1546
1551
  subtitle="Needed before deploy for password resets, team invitations, share notifications, and dashboard email reports. Local development can run without it."
@@ -1859,6 +1864,7 @@ function AgentLimitsSectionInner({
1859
1864
 
1860
1865
  return (
1861
1866
  <SettingsSection
1867
+ id={settingsSectionDomId("limits")}
1862
1868
  icon={<IconGauge size={14} />}
1863
1869
  title="Agent Limits"
1864
1870
  subtitle="Control how long a single agent response can work before pausing."
@@ -2053,6 +2059,103 @@ const WORKSPACE_SETTINGS_SECTIONS: readonly SettingsSectionId[] = [
2053
2059
  "auth",
2054
2060
  ];
2055
2061
 
2062
+ // Search metadata for each section so settings search can deep-link straight
2063
+ // to a section from any tab. Labels mirror the section headers; keywords add
2064
+ // synonyms and provider names the header doesn't spell out.
2065
+ const SETTINGS_SECTION_SEARCH_META: Record<
2066
+ SettingsSectionId,
2067
+ { label: string; keywords: string; description?: string }
2068
+ > = {
2069
+ account: {
2070
+ label: "Account",
2071
+ keywords: "profile photo avatar identity signed in email name",
2072
+ },
2073
+ llm: {
2074
+ label: "LLM",
2075
+ keywords:
2076
+ "model claude gpt openai anthropic gemini api key provider ai engine llm",
2077
+ },
2078
+ "app-models": {
2079
+ label: "App Default Model",
2080
+ keywords: "default model provider app template composer",
2081
+ },
2082
+ limits: {
2083
+ label: "Agent Limits",
2084
+ keywords: "max iterations budget loop timeout runtime",
2085
+ },
2086
+ voice: {
2087
+ label: "Voice Transcription",
2088
+ keywords: "microphone dictation speech to text whisper",
2089
+ },
2090
+ "demo-mode": {
2091
+ label: "Demo mode",
2092
+ keywords: "fake data anonymize redact screenshot privacy mask",
2093
+ },
2094
+ automations: {
2095
+ label: "Automations",
2096
+ keywords: "triggers scheduled events cron jobs",
2097
+ },
2098
+ secrets: {
2099
+ label: "API Keys & Connections",
2100
+ keywords: "secrets credentials tokens api keys environment variables",
2101
+ },
2102
+ hosting: {
2103
+ label: "Hosting",
2104
+ keywords: "deploy netlify vercel cloudflare builder nitro",
2105
+ },
2106
+ database: {
2107
+ label: "Database",
2108
+ keywords: "postgres sqlite neon supabase turso storage sql pglite",
2109
+ },
2110
+ uploads: {
2111
+ label: "File uploads",
2112
+ keywords: "files storage s3 avatars attachments bucket blob",
2113
+ },
2114
+ auth: {
2115
+ label: "Authentication",
2116
+ keywords: "login signup oauth google github better auth access sso",
2117
+ },
2118
+ email: {
2119
+ label: "Email",
2120
+ keywords: "resend sendgrid smtp transactional notifications reports",
2121
+ },
2122
+ browser: {
2123
+ label: "Browser Automation",
2124
+ keywords: "web scraping playwright chrome headless",
2125
+ },
2126
+ background: {
2127
+ label: "Background Agent",
2128
+ keywords: "code changes branches builder production async",
2129
+ },
2130
+ integrations: {
2131
+ label: "Integrations",
2132
+ keywords: "slack telegram whatsapp discord messaging connect",
2133
+ },
2134
+ usage: {
2135
+ label: "Usage",
2136
+ keywords: "tokens cost spend billing consumption",
2137
+ },
2138
+ a2a: {
2139
+ label: "Connected Agents (A2A)",
2140
+ keywords: "remote agents protocol a2a connected",
2141
+ },
2142
+ };
2143
+
2144
+ function buildSectionSearchEntries(
2145
+ sections: readonly SettingsSectionId[],
2146
+ ): SettingsSearchEntry[] {
2147
+ return sections.map((section) => {
2148
+ const meta = SETTINGS_SECTION_SEARCH_META[section];
2149
+ return {
2150
+ id: `section:${section}`,
2151
+ label: meta.label,
2152
+ keywords: meta.keywords,
2153
+ description: meta.description,
2154
+ hash: section,
2155
+ };
2156
+ });
2157
+ }
2158
+
2056
2159
  function normalizeSettingsSection(
2057
2160
  value?: string | null,
2058
2161
  ): SettingsSectionId | null {
@@ -2238,6 +2341,7 @@ function AccountSectionInner({
2238
2341
 
2239
2342
  return (
2240
2343
  <SettingsSection
2344
+ id={settingsSectionDomId("account")}
2241
2345
  icon={<IconUserCircle size={14} />}
2242
2346
  title="Account"
2243
2347
  subtitle="Your profile photo and signed-in identity."
@@ -2488,6 +2592,7 @@ function SettingsPanelContent({
2488
2592
  {/* Voice transcription */}
2489
2593
  {shouldShowSection("voice") && (
2490
2594
  <SettingsSection
2595
+ id={settingsSectionDomId("voice")}
2491
2596
  icon={<IconMicrophone size={14} />}
2492
2597
  title="Voice Transcription"
2493
2598
  subtitle="How the composer microphone turns your voice into text."
@@ -2501,6 +2606,7 @@ function SettingsPanelContent({
2501
2606
  {/* Demo mode */}
2502
2607
  {shouldShowSection("demo-mode") && (
2503
2608
  <SettingsSection
2609
+ id={settingsSectionDomId("demo-mode")}
2504
2610
  icon={<IconEyeOff size={14} />}
2505
2611
  title="Demo mode"
2506
2612
  subtitle="Replace names, emails, and numbers with realistic fake data everywhere — in the UI and what the agent sees. IDs and structure are preserved so the app keeps working."
@@ -2514,6 +2620,7 @@ function SettingsPanelContent({
2514
2620
  {/* Automations */}
2515
2621
  {shouldShowSection("automations") && (
2516
2622
  <SettingsSection
2623
+ id={settingsSectionDomId("automations")}
2517
2624
  icon={<IconBolt size={14} />}
2518
2625
  title="Automations"
2519
2626
  subtitle="Event-triggered and scheduled automations."
@@ -2541,6 +2648,7 @@ function SettingsPanelContent({
2541
2648
  {/* Hosting */}
2542
2649
  {shouldShowSection("hosting") && (
2543
2650
  <SettingsSection
2651
+ id={settingsSectionDomId("hosting")}
2544
2652
  icon={<IconCloud size={14} />}
2545
2653
  title="Hosting"
2546
2654
  subtitle="Deploy your app to the cloud."
@@ -2571,6 +2679,7 @@ function SettingsPanelContent({
2571
2679
  {/* Database */}
2572
2680
  {shouldShowSection("database") && (
2573
2681
  <SettingsSection
2682
+ id={settingsSectionDomId("database")}
2574
2683
  icon={<IconDatabase size={14} />}
2575
2684
  title="Database"
2576
2685
  subtitle="Connect a cloud database for persistent storage."
@@ -2601,6 +2710,7 @@ function SettingsPanelContent({
2601
2710
  {/* File uploads */}
2602
2711
  {shouldShowSection("uploads") && (
2603
2712
  <SettingsSection
2713
+ id={settingsSectionDomId("uploads")}
2604
2714
  icon={<IconUpload size={14} />}
2605
2715
  title="File uploads"
2606
2716
  subtitle="Where user-uploaded files (avatars, chat attachments) are stored."
@@ -2631,6 +2741,7 @@ function SettingsPanelContent({
2631
2741
  {/* Authentication */}
2632
2742
  {shouldShowSection("auth") && (
2633
2743
  <SettingsSection
2744
+ id={settingsSectionDomId("auth")}
2634
2745
  icon={<IconShield size={14} />}
2635
2746
  title="Authentication"
2636
2747
  subtitle="Set up user authentication and access control."
@@ -2669,6 +2780,7 @@ function SettingsPanelContent({
2669
2780
  {/* Browser Automation */}
2670
2781
  {shouldShowSection("browser") && (
2671
2782
  <SettingsSection
2783
+ id={settingsSectionDomId("browser")}
2672
2784
  icon={<IconBrowser size={14} />}
2673
2785
  title="Browser Automation"
2674
2786
  subtitle="Let agents control a real browser for web tasks."
@@ -2691,6 +2803,7 @@ function SettingsPanelContent({
2691
2803
 
2692
2804
  {builderBranchesAvailable && shouldShowSection("background") && (
2693
2805
  <SettingsSection
2806
+ id={settingsSectionDomId("background")}
2694
2807
  icon={<IconGitBranch size={14} />}
2695
2808
  title="Background Agent"
2696
2809
  subtitle="Make code changes from production mode via Builder."
@@ -2714,6 +2827,7 @@ function SettingsPanelContent({
2714
2827
  {/* Integrations */}
2715
2828
  {shouldShowSection("integrations") && (
2716
2829
  <SettingsSection
2830
+ id={settingsSectionDomId("integrations")}
2717
2831
  icon={<IconPlugConnected size={14} />}
2718
2832
  title="Integrations"
2719
2833
  subtitle="Connect messaging platforms and external services."
@@ -2729,6 +2843,7 @@ function SettingsPanelContent({
2729
2843
  {/* Usage & spend */}
2730
2844
  {shouldShowSection("usage") && (
2731
2845
  <SettingsSection
2846
+ id={settingsSectionDomId("usage")}
2732
2847
  icon={<IconCoin size={14} />}
2733
2848
  title="Usage"
2734
2849
  subtitle="Track token consumption and estimated cost — broken down by chat, automations, and background jobs."
@@ -2742,6 +2857,7 @@ function SettingsPanelContent({
2742
2857
  {/* A2A Agents */}
2743
2858
  {shouldShowSection("a2a") && (
2744
2859
  <SettingsSection
2860
+ id={settingsSectionDomId("a2a")}
2745
2861
  icon={<IconTopologyRing2 size={14} />}
2746
2862
  title="Connected Agents (A2A)"
2747
2863
  subtitle="Manage remote agents connected via the A2A protocol."
@@ -2778,6 +2894,8 @@ export function useAgentSettingsTabs(): SettingsTabItem[] {
2778
2894
  id: "agent",
2779
2895
  label: "Agent",
2780
2896
  icon: IconBrain,
2897
+ keywords: "agent model llm limits voice automations",
2898
+ searchEntries: buildSectionSearchEntries(AGENT_SETTINGS_SECTIONS),
2781
2899
  content: (
2782
2900
  <SettingsPanelContent
2783
2901
  {...baseProps}
@@ -2791,6 +2909,8 @@ export function useAgentSettingsTabs(): SettingsTabItem[] {
2791
2909
  id: "connections",
2792
2910
  label: "Connections",
2793
2911
  icon: IconPlugConnected,
2912
+ keywords: "connections secrets integrations email browser usage",
2913
+ searchEntries: buildSectionSearchEntries(CONNECTION_SETTINGS_SECTIONS),
2794
2914
  content: (
2795
2915
  <SettingsPanelContent
2796
2916
  {...baseProps}
@@ -2804,6 +2924,8 @@ export function useAgentSettingsTabs(): SettingsTabItem[] {
2804
2924
  id: "workspace",
2805
2925
  label: "Workspace",
2806
2926
  icon: IconCloud,
2927
+ keywords: "workspace account hosting database uploads auth",
2928
+ searchEntries: buildSectionSearchEntries(WORKSPACE_SETTINGS_SECTIONS),
2807
2929
  content: (
2808
2930
  <SettingsPanelContent
2809
2931
  {...baseProps}