@agent-native/core 0.117.2 → 0.118.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/corpus/README.md +3 -3
  2. package/corpus/core/CHANGELOG.md +51 -0
  3. package/corpus/core/docs/content/custom-design-system.mdx +445 -0
  4. package/corpus/core/docs/content/toolkit-ui.mdx +16 -0
  5. package/corpus/core/package.json +1 -1
  6. package/corpus/core/src/a2a/client.ts +32 -10
  7. package/corpus/core/src/a2a/types.ts +1 -0
  8. package/corpus/core/src/agent/types.ts +1 -1
  9. package/corpus/core/src/cli/index.ts +18 -10
  10. package/corpus/core/src/cli/multi-frontier-runs.ts +5 -3
  11. package/corpus/core/src/cli/templates-meta.ts +0 -12
  12. package/corpus/core/src/cli/workspace-dev.ts +1 -1
  13. package/corpus/core/src/client/AgentPanel.tsx +99 -108
  14. package/corpus/core/src/client/AssistantChat.tsx +30 -13
  15. package/corpus/core/src/client/CommandMenu.tsx +68 -178
  16. package/corpus/core/src/client/RunStuckBanner.tsx +39 -47
  17. package/corpus/core/src/client/agent-chat-adapter.ts +3 -1
  18. package/corpus/core/src/client/app-providers.tsx +1 -1
  19. package/corpus/core/src/client/chat/action-chat-ui-surface.tsx +32 -0
  20. package/corpus/core/src/client/chat/message-components.tsx +169 -18
  21. package/corpus/core/src/client/chat/tool-call-display.tsx +50 -14
  22. package/corpus/core/src/client/chat/widgets/InlineExtensionWidget.tsx +13 -40
  23. package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +7 -3
  24. package/corpus/core/src/client/components/ui/message-scroller.tsx +15 -1
  25. package/corpus/core/src/client/conversation/AgentConversation.tsx +12 -1
  26. package/corpus/core/src/client/error-capture.ts +2 -6
  27. package/corpus/core/src/client/i18n.tsx +22 -0
  28. package/corpus/core/src/client/index.ts +17 -0
  29. package/corpus/core/src/client/org/TeamPage.tsx +257 -153
  30. package/corpus/core/src/client/progress/RunsTray.tsx +89 -88
  31. package/corpus/core/src/client/resources/McpConnectionSuggestion.tsx +25 -16
  32. package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +34 -13
  33. package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
  34. package/corpus/core/src/client/resources/mcp-integration-catalog.ts +20 -17
  35. package/corpus/core/src/client/resources/mcp-integration-logos.ts +2 -2
  36. package/corpus/core/src/client/route-chunk-recovery.ts +5 -3
  37. package/corpus/core/src/client/session-replay.ts +3 -3
  38. package/corpus/core/src/client/settings/DemoModeSection.tsx +6 -18
  39. package/corpus/core/src/client/settings/SecretsSection.tsx +97 -52
  40. package/corpus/core/src/client/settings/SettingsPanel.tsx +217 -252
  41. package/corpus/core/src/client/settings/SettingsTabsPage.tsx +23 -2
  42. package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +7 -18
  43. package/corpus/core/src/client/settings/index.ts +7 -0
  44. package/corpus/core/src/client/settings/useSettingsPanelController.ts +155 -0
  45. package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +116 -51
  46. package/corpus/core/src/client/setup-connections/index.ts +10 -0
  47. package/corpus/core/src/client/setup-connections/useBuilderConnectCardController.ts +82 -0
  48. package/corpus/core/src/client/sharing/ShareButton.tsx +64 -586
  49. package/corpus/core/src/client/sharing/ShareDialog.tsx +299 -633
  50. package/corpus/core/src/client/sharing/index.ts +42 -0
  51. package/corpus/core/src/client/sharing/share-controller-helpers.ts +318 -0
  52. package/corpus/core/src/client/sharing/useShareButtonController.ts +600 -0
  53. package/corpus/core/src/client/sharing/useShareDialogController.ts +559 -0
  54. package/corpus/core/src/client/sse-event-processor.ts +23 -0
  55. package/corpus/core/src/client/tool-display.ts +71 -0
  56. package/corpus/core/src/client/transcription/use-live-transcription.ts +64 -45
  57. package/corpus/core/src/client/use-agent-engine-configured.ts +12 -19
  58. package/corpus/core/src/client/use-chat-threads.ts +33 -12
  59. package/corpus/core/src/deploy/build.ts +2 -1
  60. package/corpus/core/src/guards/db-tool-scoping.ts +1 -1
  61. package/corpus/core/src/integrations/adapters/slack.ts +84 -5
  62. package/corpus/core/src/integrations/index.ts +5 -1
  63. package/corpus/core/src/localization/default-messages.ts +6 -1
  64. package/corpus/core/src/mcp-client/oauth-routes.ts +61 -14
  65. package/corpus/core/src/scripts/call-agent.ts +5 -1
  66. package/corpus/core/src/server/realtime-voice.ts +5 -2
  67. package/corpus/core/src/styles/agent-native.css +0 -24
  68. package/corpus/core/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  69. package/corpus/core/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  70. package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
  71. package/corpus/core/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
  72. package/corpus/core/src/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
  73. package/corpus/core/src/templates/default/app/design-system.ts +3 -0
  74. package/corpus/core/src/templates/default/app/root.tsx +5 -2
  75. package/corpus/core/src/templates/default/package.json +1 -0
  76. package/corpus/core/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  77. package/corpus/core/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  78. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  79. package/corpus/core/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  80. package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
  81. package/corpus/core/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
  82. package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +7 -5
  83. package/corpus/core/src/terminal/cli-registry.ts +1 -1
  84. package/corpus/core/src/vite/client.ts +205 -1
  85. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  86. package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  87. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +22 -2
  88. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +28 -4
  89. package/corpus/templates/analytics/app/components/ui/toolkit-provider.tsx +6 -1
  90. package/corpus/templates/analytics/app/design-system.ts +3 -0
  91. package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +13 -1
  92. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +10 -0
  93. package/corpus/templates/analytics/changelog/2026-07-22-show-a-useful-error-when-saving-a-dashboard-view-fails.md +6 -0
  94. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  95. package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  96. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +22 -2
  97. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +28 -4
  98. package/corpus/templates/assets/app/components/ui/alert.tsx +1 -0
  99. package/corpus/templates/assets/app/components/ui/toolkit-provider.tsx +6 -1
  100. package/corpus/templates/assets/app/design-system.ts +3 -0
  101. package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +26 -30
  102. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  103. package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  104. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +22 -2
  105. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +28 -4
  106. package/corpus/templates/brain/app/components/ui/dialog.tsx +1 -0
  107. package/corpus/templates/brain/app/components/ui/toolkit-provider.tsx +6 -1
  108. package/corpus/templates/brain/app/design-system.ts +3 -0
  109. package/corpus/templates/brain/app/routes/sources.tsx +189 -122
  110. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  111. package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  112. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +22 -2
  113. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +28 -4
  114. package/corpus/templates/calendar/app/components/ui/toolkit-provider.tsx +6 -1
  115. package/corpus/templates/calendar/app/design-system.ts +3 -0
  116. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  117. package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  118. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
  119. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
  120. package/corpus/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
  121. package/corpus/templates/chat/app/design-system.ts +3 -0
  122. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  123. package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  124. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +22 -2
  125. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +28 -4
  126. package/corpus/templates/clips/AGENTS.md +8 -6
  127. package/corpus/templates/clips/actions/request-transcript.ts +90 -420
  128. package/corpus/templates/clips/actions/save-browser-transcript.ts +11 -28
  129. package/corpus/templates/clips/app/components/capture-install-options.tsx +5 -3
  130. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +3 -136
  131. package/corpus/templates/clips/app/components/ui/toolkit-provider.tsx +6 -1
  132. package/corpus/templates/clips/app/design-system.ts +3 -0
  133. package/corpus/templates/clips/app/lib/capture-install-options.ts +15 -4
  134. package/corpus/templates/clips/app/routes/_app.library._index.tsx +1 -1
  135. package/corpus/templates/clips/app/routes/download.tsx +3 -2
  136. package/corpus/templates/clips/changelog/2026-07-22-fixed-an-intermittent-hydration-error-on-the-download-page.md +6 -0
  137. package/corpus/templates/clips/changelog/2026-07-22-fixed-transcript-generation-when-native-speech-capture-retur.md +6 -0
  138. package/corpus/templates/clips/changelog/2026-07-22-fixed-windows-recordings-aborting-during-the-countdown.md +6 -0
  139. package/corpus/templates/clips/changelog/2026-07-22-permissions-and-rewind-controls-are-now-grouped-with-clearer.md +6 -0
  140. package/corpus/templates/clips/changelog/2026-07-22-the-desktop-popover-opens-centered-under-the-menu-bar-icon-o.md +6 -0
  141. package/corpus/templates/clips/changelog/2026-07-22-transcript-generation-now-retries-with-backup-speech-recogni.md +6 -0
  142. package/corpus/templates/clips/desktop/src/app.tsx +86 -82
  143. package/corpus/templates/clips/desktop/src/styles.css +13 -0
  144. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +10 -1
  145. package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +37 -2
  146. package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +18 -0
  147. package/corpus/templates/clips/server/lib/public-agent-context.ts +2 -2
  148. package/corpus/templates/clips/server/register-secrets.ts +7 -6
  149. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  150. package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  151. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +22 -2
  152. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +28 -4
  153. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +41 -59
  154. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +16 -84
  155. package/corpus/templates/content/app/components/editor/VisualEditor.tsx +13 -7
  156. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +41 -41
  157. package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +2 -1
  158. package/corpus/templates/content/app/components/editor/database/ListView.tsx +2 -1
  159. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +9 -9
  160. package/corpus/templates/content/app/components/editor/database/sidebar.tsx +7 -7
  161. package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +11 -11
  162. package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +2 -2
  163. package/corpus/templates/content/app/components/ui/checkbox.tsx +1 -0
  164. package/corpus/templates/content/app/components/ui/collapsible.tsx +1 -0
  165. package/corpus/templates/content/app/components/ui/toolkit-provider.tsx +6 -1
  166. package/corpus/templates/content/app/design-system.ts +3 -0
  167. package/corpus/templates/content/app/global.css +29 -3
  168. package/corpus/templates/content/app/i18n-data.ts +10 -0
  169. package/corpus/templates/content/changelog/2026-07-22-page-actions-are-grouped-into-the-three-dots-menu-for-a-clea.md +6 -0
  170. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  171. package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  172. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +22 -2
  173. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +28 -4
  174. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +8 -8
  175. package/corpus/templates/design/app/components/ui/command.tsx +1 -0
  176. package/corpus/templates/design/app/components/ui/toolkit-provider.tsx +6 -1
  177. package/corpus/templates/design/app/design-system.ts +3 -0
  178. package/corpus/templates/design/server/lib/fig-file-decoder.ts +1 -0
  179. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  180. package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  181. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +22 -2
  182. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +28 -4
  183. package/corpus/templates/dispatch/app/components/ui/button.tsx +1 -0
  184. package/corpus/templates/dispatch/app/components/ui/toolkit-provider.tsx +17 -0
  185. package/corpus/templates/dispatch/app/design-system.ts +3 -0
  186. package/corpus/templates/dispatch/app/root.tsx +10 -7
  187. package/corpus/templates/dispatch/package.json +1 -0
  188. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  189. package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  190. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +22 -2
  191. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +28 -4
  192. package/corpus/templates/forms/app/components/ui/toolkit-provider.tsx +6 -1
  193. package/corpus/templates/forms/app/design-system.ts +3 -0
  194. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  195. package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  196. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +22 -2
  197. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +28 -4
  198. package/corpus/templates/macros/app/components/ui/toolkit-provider.tsx +6 -1
  199. package/corpus/templates/macros/app/design-system.ts +3 -0
  200. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  201. package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  202. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +22 -2
  203. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +28 -4
  204. package/corpus/templates/mail/app/components/email/EmailThread.tsx +134 -93
  205. package/corpus/templates/mail/app/components/email/email-iframe-document.ts +8 -2
  206. package/corpus/templates/mail/app/components/ui/textarea.tsx +1 -21
  207. package/corpus/templates/mail/app/components/ui/toolkit-provider.tsx +6 -1
  208. package/corpus/templates/mail/app/design-system.ts +3 -0
  209. package/corpus/templates/mail/changelog/2026-07-22-email-messages-no-longer-flash-with-an-unstyled-page-while-l.md +6 -0
  210. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  211. package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  212. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +22 -2
  213. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +28 -4
  214. package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +1 -1
  215. package/corpus/templates/plan/app/components/ui/toolkit-provider.tsx +6 -1
  216. package/corpus/templates/plan/app/design-system.ts +3 -0
  217. package/corpus/templates/plan/app/entry.client.tsx +3 -0
  218. package/corpus/templates/plan/changelog/2026-07-22-recover-stale-pages-after-a-deployment-refresh-automatically.md +6 -0
  219. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  220. package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  221. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +22 -2
  222. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +28 -4
  223. package/corpus/templates/slides/app/components/ui/toolkit-provider.tsx +6 -1
  224. package/corpus/templates/slides/app/design-system.ts +3 -0
  225. package/corpus/templates/slides/app/hooks/use-agent-generating.ts +10 -3
  226. package/corpus/templates/slides/app/pages/Index.tsx +1 -0
  227. package/corpus/templates/slides/changelog/2026-07-22-new-deck-prompts-now-open-in-their-own-visible-chat-thread.md +6 -0
  228. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  229. package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  230. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +22 -2
  231. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +28 -4
  232. package/corpus/templates/tasks/app/components/ui/toolkit-provider.tsx +17 -0
  233. package/corpus/templates/tasks/app/design-system.ts +3 -0
  234. package/corpus/templates/tasks/app/root.tsx +5 -2
  235. package/corpus/toolkit/CHANGELOG.md +23 -0
  236. package/corpus/toolkit/agent-native.eject.json +71 -0
  237. package/corpus/toolkit/package.json +31 -1
  238. package/corpus/toolkit/src/chat-history/ChatHistoryRail.tsx +100 -39
  239. package/corpus/toolkit/src/chat-history/index.ts +9 -0
  240. package/corpus/toolkit/src/chat-history/useChatHistoryRailController.ts +76 -0
  241. package/corpus/toolkit/src/chat-history.css +2 -0
  242. package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +11 -8
  243. package/corpus/toolkit/src/composer/PromptComposer.tsx +32 -7
  244. package/corpus/toolkit/src/composer/RealtimeVoiceMode.tsx +119 -31
  245. package/corpus/toolkit/src/composer/useRealtimeVoiceMode.tsx +124 -9
  246. package/corpus/toolkit/src/conformance/__fixtures__/css-in-js-adapter.tsx +401 -0
  247. package/corpus/toolkit/src/conformance/index.ts +3 -0
  248. package/corpus/toolkit/src/conformance/runner.tsx +862 -0
  249. package/corpus/toolkit/src/conformance/types.ts +45 -0
  250. package/corpus/toolkit/src/conformance/version.ts +22 -0
  251. package/corpus/toolkit/src/design-system/components.tsx +146 -0
  252. package/corpus/toolkit/src/design-system/context.tsx +31 -0
  253. package/corpus/toolkit/src/design-system/default-adapter.tsx +915 -0
  254. package/corpus/toolkit/src/design-system/definition.ts +14 -0
  255. package/corpus/toolkit/src/design-system/error-boundary.tsx +37 -0
  256. package/corpus/toolkit/src/design-system/index.ts +7 -0
  257. package/corpus/toolkit/src/design-system/theme.ts +145 -0
  258. package/corpus/toolkit/src/design-system/types.ts +363 -0
  259. package/corpus/toolkit/src/editor/SharedRichEditor.tsx +13 -2
  260. package/corpus/toolkit/src/editor/SlashCommandMenu.tsx +20 -0
  261. package/corpus/toolkit/src/editor/index.ts +2 -0
  262. package/corpus/toolkit/src/provider.tsx +98 -5
  263. package/corpus/toolkit/src/styles.css +52 -23
  264. package/corpus/toolkit/src/ui/button.tsx +95 -6
  265. package/corpus/toolkit/src/ui/dialog.tsx +48 -23
  266. package/corpus/toolkit/src/ui/popover.tsx +16 -2
  267. package/corpus/toolkit/src/ui/select.tsx +7 -3
  268. package/corpus/toolkit/src/ui/sidebar.tsx +47 -48
  269. package/corpus/toolkit/src/ui/tooltip.tsx +7 -3
  270. package/dist/a2a/client.d.ts +3 -1
  271. package/dist/a2a/client.d.ts.map +1 -1
  272. package/dist/a2a/client.js +17 -12
  273. package/dist/a2a/client.js.map +1 -1
  274. package/dist/a2a/types.d.ts +1 -1
  275. package/dist/a2a/types.d.ts.map +1 -1
  276. package/dist/a2a/types.js.map +1 -1
  277. package/dist/agent/types.d.ts +1 -1
  278. package/dist/agent/types.d.ts.map +1 -1
  279. package/dist/agent/types.js.map +1 -1
  280. package/dist/cli/index.js +18 -8
  281. package/dist/cli/index.js.map +1 -1
  282. package/dist/cli/multi-frontier-runs.js +3 -3
  283. package/dist/cli/multi-frontier-runs.js.map +1 -1
  284. package/dist/cli/templates-meta.d.ts.map +1 -1
  285. package/dist/cli/templates-meta.js +0 -12
  286. package/dist/cli/templates-meta.js.map +1 -1
  287. package/dist/cli/workspace-dev.js +1 -1
  288. package/dist/cli/workspace-dev.js.map +1 -1
  289. package/dist/client/AgentPanel.d.ts.map +1 -1
  290. package/dist/client/AgentPanel.js +18 -15
  291. package/dist/client/AgentPanel.js.map +1 -1
  292. package/dist/client/AssistantChat.d.ts.map +1 -1
  293. package/dist/client/AssistantChat.js +26 -15
  294. package/dist/client/AssistantChat.js.map +1 -1
  295. package/dist/client/CommandMenu.d.ts.map +1 -1
  296. package/dist/client/CommandMenu.js +18 -106
  297. package/dist/client/CommandMenu.js.map +1 -1
  298. package/dist/client/RunStuckBanner.d.ts +3 -5
  299. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  300. package/dist/client/RunStuckBanner.js +17 -18
  301. package/dist/client/RunStuckBanner.js.map +1 -1
  302. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  303. package/dist/client/agent-chat-adapter.js +2 -1
  304. package/dist/client/agent-chat-adapter.js.map +1 -1
  305. package/dist/client/app-providers.d.ts.map +1 -1
  306. package/dist/client/app-providers.js +1 -1
  307. package/dist/client/app-providers.js.map +1 -1
  308. package/dist/client/chat/action-chat-ui-surface.d.ts +8 -0
  309. package/dist/client/chat/action-chat-ui-surface.d.ts.map +1 -0
  310. package/dist/client/chat/action-chat-ui-surface.js +10 -0
  311. package/dist/client/chat/action-chat-ui-surface.js.map +1 -0
  312. package/dist/client/chat/message-components.d.ts +12 -1
  313. package/dist/client/chat/message-components.d.ts.map +1 -1
  314. package/dist/client/chat/message-components.js +102 -14
  315. package/dist/client/chat/message-components.js.map +1 -1
  316. package/dist/client/chat/tool-call-display.d.ts +3 -1
  317. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  318. package/dist/client/chat/tool-call-display.js +33 -14
  319. package/dist/client/chat/tool-call-display.js.map +1 -1
  320. package/dist/client/chat/widgets/InlineExtensionWidget.d.ts.map +1 -1
  321. package/dist/client/chat/widgets/InlineExtensionWidget.js +9 -12
  322. package/dist/client/chat/widgets/InlineExtensionWidget.js.map +1 -1
  323. package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
  324. package/dist/client/chat/widgets/builtin-tool-renderers.js +5 -3
  325. package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
  326. package/dist/client/components/ui/message-scroller.d.ts +1 -1
  327. package/dist/client/components/ui/message-scroller.d.ts.map +1 -1
  328. package/dist/client/components/ui/message-scroller.js +4 -3
  329. package/dist/client/components/ui/message-scroller.js.map +1 -1
  330. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  331. package/dist/client/conversation/AgentConversation.js +3 -2
  332. package/dist/client/conversation/AgentConversation.js.map +1 -1
  333. package/dist/client/error-capture.d.ts.map +1 -1
  334. package/dist/client/error-capture.js +2 -2
  335. package/dist/client/error-capture.js.map +1 -1
  336. package/dist/client/i18n.d.ts.map +1 -1
  337. package/dist/client/i18n.js +9 -0
  338. package/dist/client/i18n.js.map +1 -1
  339. package/dist/client/index.d.ts +2 -2
  340. package/dist/client/index.d.ts.map +1 -1
  341. package/dist/client/index.js +2 -2
  342. package/dist/client/index.js.map +1 -1
  343. package/dist/client/org/TeamPage.d.ts.map +1 -1
  344. package/dist/client/org/TeamPage.js +41 -33
  345. package/dist/client/org/TeamPage.js.map +1 -1
  346. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  347. package/dist/client/progress/RunsTray.js +9 -10
  348. package/dist/client/progress/RunsTray.js.map +1 -1
  349. package/dist/client/resources/McpConnectionSuggestion.d.ts +1 -0
  350. package/dist/client/resources/McpConnectionSuggestion.d.ts.map +1 -1
  351. package/dist/client/resources/McpConnectionSuggestion.js +14 -12
  352. package/dist/client/resources/McpConnectionSuggestion.js.map +1 -1
  353. package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
  354. package/dist/client/resources/McpIntegrationDialog.js +10 -8
  355. package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
  356. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  357. package/dist/client/resources/ResourcesPanel.js +3 -1
  358. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  359. package/dist/client/resources/mcp-integration-catalog.d.ts +2 -0
  360. package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
  361. package/dist/client/resources/mcp-integration-catalog.js +17 -17
  362. package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
  363. package/dist/client/resources/mcp-integration-logos.js +2 -2
  364. package/dist/client/resources/mcp-integration-logos.js.map +1 -1
  365. package/dist/client/route-chunk-recovery.d.ts.map +1 -1
  366. package/dist/client/route-chunk-recovery.js +5 -3
  367. package/dist/client/route-chunk-recovery.js.map +1 -1
  368. package/dist/client/session-replay.js +3 -3
  369. package/dist/client/session-replay.js.map +1 -1
  370. package/dist/client/settings/DemoModeSection.d.ts.map +1 -1
  371. package/dist/client/settings/DemoModeSection.js +2 -5
  372. package/dist/client/settings/DemoModeSection.js.map +1 -1
  373. package/dist/client/settings/SecretsSection.d.ts.map +1 -1
  374. package/dist/client/settings/SecretsSection.js +18 -6
  375. package/dist/client/settings/SecretsSection.js.map +1 -1
  376. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  377. package/dist/client/settings/SettingsPanel.js +53 -118
  378. package/dist/client/settings/SettingsPanel.js.map +1 -1
  379. package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
  380. package/dist/client/settings/SettingsTabsPage.js +16 -1
  381. package/dist/client/settings/SettingsTabsPage.js.map +1 -1
  382. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
  383. package/dist/client/settings/VoiceTranscriptionSection.js +2 -5
  384. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  385. package/dist/client/settings/index.d.ts +1 -0
  386. package/dist/client/settings/index.d.ts.map +1 -1
  387. package/dist/client/settings/index.js +1 -0
  388. package/dist/client/settings/index.js.map +1 -1
  389. package/dist/client/settings/useSettingsPanelController.d.ts +22 -0
  390. package/dist/client/settings/useSettingsPanelController.d.ts.map +1 -0
  391. package/dist/client/settings/useSettingsPanelController.js +103 -0
  392. package/dist/client/settings/useSettingsPanelController.js.map +1 -0
  393. package/dist/client/setup-connections/BuilderConnectCard.d.ts +14 -6
  394. package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -1
  395. package/dist/client/setup-connections/BuilderConnectCard.js +24 -16
  396. package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -1
  397. package/dist/client/setup-connections/index.d.ts +2 -1
  398. package/dist/client/setup-connections/index.d.ts.map +1 -1
  399. package/dist/client/setup-connections/index.js +2 -1
  400. package/dist/client/setup-connections/index.js.map +1 -1
  401. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +34 -0
  402. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts.map +1 -0
  403. package/dist/client/setup-connections/useBuilderConnectCardController.js +39 -0
  404. package/dist/client/setup-connections/useBuilderConnectCardController.js.map +1 -0
  405. package/dist/client/sharing/ShareButton.d.ts +2 -1
  406. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  407. package/dist/client/sharing/ShareButton.js +17 -463
  408. package/dist/client/sharing/ShareButton.js.map +1 -1
  409. package/dist/client/sharing/ShareDialog.d.ts +6 -6
  410. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  411. package/dist/client/sharing/ShareDialog.js +69 -283
  412. package/dist/client/sharing/ShareDialog.js.map +1 -1
  413. package/dist/client/sharing/index.d.ts +3 -0
  414. package/dist/client/sharing/index.d.ts.map +1 -1
  415. package/dist/client/sharing/index.js +3 -0
  416. package/dist/client/sharing/index.js.map +1 -1
  417. package/dist/client/sharing/share-controller-helpers.d.ts +70 -0
  418. package/dist/client/sharing/share-controller-helpers.d.ts.map +1 -0
  419. package/dist/client/sharing/share-controller-helpers.js +224 -0
  420. package/dist/client/sharing/share-controller-helpers.js.map +1 -0
  421. package/dist/client/sharing/useShareButtonController.d.ts +91 -0
  422. package/dist/client/sharing/useShareButtonController.d.ts.map +1 -0
  423. package/dist/client/sharing/useShareButtonController.js +397 -0
  424. package/dist/client/sharing/useShareButtonController.js.map +1 -0
  425. package/dist/client/sharing/useShareDialogController.d.ts +109 -0
  426. package/dist/client/sharing/useShareDialogController.d.ts.map +1 -0
  427. package/dist/client/sharing/useShareDialogController.js +348 -0
  428. package/dist/client/sharing/useShareDialogController.js.map +1 -0
  429. package/dist/client/sse-event-processor.d.ts.map +1 -1
  430. package/dist/client/sse-event-processor.js +21 -0
  431. package/dist/client/sse-event-processor.js.map +1 -1
  432. package/dist/client/tool-display.d.ts +16 -0
  433. package/dist/client/tool-display.d.ts.map +1 -1
  434. package/dist/client/tool-display.js +52 -0
  435. package/dist/client/tool-display.js.map +1 -1
  436. package/dist/client/transcription/use-live-transcription.d.ts +3 -3
  437. package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
  438. package/dist/client/transcription/use-live-transcription.js +22 -11
  439. package/dist/client/transcription/use-live-transcription.js.map +1 -1
  440. package/dist/client/use-agent-engine-configured.d.ts +3 -2
  441. package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
  442. package/dist/client/use-agent-engine-configured.js +7 -19
  443. package/dist/client/use-agent-engine-configured.js.map +1 -1
  444. package/dist/client/use-chat-threads.d.ts.map +1 -1
  445. package/dist/client/use-chat-threads.js +21 -8
  446. package/dist/client/use-chat-threads.js.map +1 -1
  447. package/dist/collab/routes.d.ts +1 -1
  448. package/dist/collab/struct-routes.d.ts +1 -1
  449. package/dist/deploy/build.d.ts.map +1 -1
  450. package/dist/deploy/build.js +1 -1
  451. package/dist/deploy/build.js.map +1 -1
  452. package/dist/guards/db-tool-scoping.js +1 -1
  453. package/dist/guards/db-tool-scoping.js.map +1 -1
  454. package/dist/integrations/adapters/slack.d.ts +1 -0
  455. package/dist/integrations/adapters/slack.d.ts.map +1 -1
  456. package/dist/integrations/adapters/slack.js +61 -5
  457. package/dist/integrations/adapters/slack.js.map +1 -1
  458. package/dist/integrations/index.d.ts +1 -1
  459. package/dist/integrations/index.d.ts.map +1 -1
  460. package/dist/integrations/index.js +1 -1
  461. package/dist/integrations/index.js.map +1 -1
  462. package/dist/localization/default-messages.d.ts +4 -0
  463. package/dist/localization/default-messages.d.ts.map +1 -1
  464. package/dist/localization/default-messages.js +5 -1
  465. package/dist/localization/default-messages.js.map +1 -1
  466. package/dist/mcp-client/oauth-routes.d.ts +5 -0
  467. package/dist/mcp-client/oauth-routes.d.ts.map +1 -1
  468. package/dist/mcp-client/oauth-routes.js +53 -14
  469. package/dist/mcp-client/oauth-routes.js.map +1 -1
  470. package/dist/notifications/routes.d.ts +2 -2
  471. package/dist/observability/routes.d.ts +1 -1
  472. package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
  473. package/dist/provider-api/actions/provider-api.d.ts +11 -11
  474. package/dist/scripts/call-agent.d.ts.map +1 -1
  475. package/dist/scripts/call-agent.js +5 -1
  476. package/dist/scripts/call-agent.js.map +1 -1
  477. package/dist/secrets/routes.d.ts +6 -6
  478. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  479. package/dist/server/realtime-voice.d.ts.map +1 -1
  480. package/dist/server/realtime-voice.js +2 -2
  481. package/dist/server/realtime-voice.js.map +1 -1
  482. package/dist/styles/agent-native.css +0 -24
  483. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  484. package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  485. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
  486. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
  487. package/dist/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
  488. package/dist/templates/chat/app/design-system.ts +3 -0
  489. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  490. package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  491. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
  492. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
  493. package/dist/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
  494. package/dist/templates/default/app/design-system.ts +3 -0
  495. package/dist/templates/default/app/root.tsx +5 -2
  496. package/dist/templates/default/package.json +1 -0
  497. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  498. package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  499. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  500. package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  501. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
  502. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
  503. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +7 -5
  504. package/dist/terminal/cli-registry.js +1 -1
  505. package/dist/terminal/cli-registry.js.map +1 -1
  506. package/dist/vite/client.d.ts +11 -1
  507. package/dist/vite/client.d.ts.map +1 -1
  508. package/dist/vite/client.js +144 -2
  509. package/dist/vite/client.js.map +1 -1
  510. package/docs/content/custom-design-system.mdx +445 -0
  511. package/docs/content/toolkit-ui.mdx +16 -0
  512. package/package.json +2 -2
  513. package/src/a2a/client.ts +32 -10
  514. package/src/a2a/types.ts +1 -0
  515. package/src/agent/types.ts +1 -1
  516. package/src/cli/index.ts +18 -10
  517. package/src/cli/multi-frontier-runs.ts +5 -3
  518. package/src/cli/templates-meta.ts +0 -12
  519. package/src/cli/workspace-dev.ts +1 -1
  520. package/src/client/AgentPanel.tsx +99 -108
  521. package/src/client/AssistantChat.tsx +30 -13
  522. package/src/client/CommandMenu.tsx +68 -178
  523. package/src/client/RunStuckBanner.tsx +39 -47
  524. package/src/client/agent-chat-adapter.ts +3 -1
  525. package/src/client/app-providers.tsx +1 -1
  526. package/src/client/chat/action-chat-ui-surface.tsx +32 -0
  527. package/src/client/chat/message-components.tsx +169 -18
  528. package/src/client/chat/tool-call-display.tsx +50 -14
  529. package/src/client/chat/widgets/InlineExtensionWidget.tsx +13 -40
  530. package/src/client/chat/widgets/builtin-tool-renderers.tsx +7 -3
  531. package/src/client/components/ui/message-scroller.tsx +15 -1
  532. package/src/client/conversation/AgentConversation.tsx +12 -1
  533. package/src/client/error-capture.ts +2 -6
  534. package/src/client/i18n.tsx +22 -0
  535. package/src/client/index.ts +17 -0
  536. package/src/client/org/TeamPage.tsx +257 -153
  537. package/src/client/progress/RunsTray.tsx +89 -88
  538. package/src/client/resources/McpConnectionSuggestion.tsx +25 -16
  539. package/src/client/resources/McpIntegrationDialog.tsx +34 -13
  540. package/src/client/resources/ResourcesPanel.tsx +5 -1
  541. package/src/client/resources/mcp-integration-catalog.ts +20 -17
  542. package/src/client/resources/mcp-integration-logos.ts +2 -2
  543. package/src/client/route-chunk-recovery.ts +5 -3
  544. package/src/client/session-replay.ts +3 -3
  545. package/src/client/settings/DemoModeSection.tsx +6 -18
  546. package/src/client/settings/SecretsSection.tsx +97 -52
  547. package/src/client/settings/SettingsPanel.tsx +217 -252
  548. package/src/client/settings/SettingsTabsPage.tsx +23 -2
  549. package/src/client/settings/VoiceTranscriptionSection.tsx +7 -18
  550. package/src/client/settings/index.ts +7 -0
  551. package/src/client/settings/useSettingsPanelController.ts +155 -0
  552. package/src/client/setup-connections/BuilderConnectCard.tsx +116 -51
  553. package/src/client/setup-connections/index.ts +10 -0
  554. package/src/client/setup-connections/useBuilderConnectCardController.ts +82 -0
  555. package/src/client/sharing/ShareButton.tsx +64 -586
  556. package/src/client/sharing/ShareDialog.tsx +299 -633
  557. package/src/client/sharing/index.ts +42 -0
  558. package/src/client/sharing/share-controller-helpers.ts +318 -0
  559. package/src/client/sharing/useShareButtonController.ts +600 -0
  560. package/src/client/sharing/useShareDialogController.ts +559 -0
  561. package/src/client/sse-event-processor.ts +23 -0
  562. package/src/client/tool-display.ts +71 -0
  563. package/src/client/transcription/use-live-transcription.ts +64 -45
  564. package/src/client/use-agent-engine-configured.ts +12 -19
  565. package/src/client/use-chat-threads.ts +33 -12
  566. package/src/deploy/build.ts +2 -1
  567. package/src/guards/db-tool-scoping.ts +1 -1
  568. package/src/integrations/adapters/slack.ts +84 -5
  569. package/src/integrations/index.ts +5 -1
  570. package/src/localization/default-messages.ts +6 -1
  571. package/src/mcp-client/oauth-routes.ts +61 -14
  572. package/src/scripts/call-agent.ts +5 -1
  573. package/src/server/realtime-voice.ts +5 -2
  574. package/src/styles/agent-native.css +0 -24
  575. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  576. package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  577. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
  578. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
  579. package/src/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
  580. package/src/templates/chat/app/design-system.ts +3 -0
  581. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  582. package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  583. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
  584. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
  585. package/src/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
  586. package/src/templates/default/app/design-system.ts +3 -0
  587. package/src/templates/default/app/root.tsx +5 -2
  588. package/src/templates/default/package.json +1 -0
  589. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  590. package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  591. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  592. package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  593. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
  594. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
  595. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +7 -5
  596. package/src/terminal/cli-registry.ts +1 -1
  597. package/src/vite/client.ts +205 -1
  598. package/corpus/templates/analytics/app/components/ui/calendar.tsx +0 -70
  599. package/corpus/templates/analytics/app/components/ui/chart.tsx +0 -386
  600. package/corpus/templates/calendar/app/components/ui/sonner.tsx +0 -58
  601. package/corpus/templates/crm/.agents/skills/agent-native-docs/SKILL.md +0 -115
  602. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +0 -142
  603. package/corpus/templates/crm/.agents/skills/crm/SKILL.md +0 -128
  604. package/corpus/templates/crm/.agents/skills/customizing-agent-native/SKILL.md +0 -145
  605. package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
  606. package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -100
  607. package/corpus/templates/crm/.env.example +0 -5
  608. package/corpus/templates/crm/AGENTS.md +0 -120
  609. package/corpus/templates/crm/CHANGELOG.md +0 -1
  610. package/corpus/templates/crm/DEVELOPING.md +0 -66
  611. package/corpus/templates/crm/README.md +0 -106
  612. package/corpus/templates/crm/_gitignore +0 -12
  613. package/corpus/templates/crm/actions/_crm-action-utils.ts +0 -87
  614. package/corpus/templates/crm/actions/_crm-dashboard.ts +0 -69
  615. package/corpus/templates/crm/actions/_crm-data-program-actions.ts +0 -15
  616. package/corpus/templates/crm/actions/_crm-signal-utils.ts +0 -79
  617. package/corpus/templates/crm/actions/apply-crm-proposals.ts +0 -203
  618. package/corpus/templates/crm/actions/attach-call-evidence.ts +0 -170
  619. package/corpus/templates/crm/actions/configure-crm-connection.ts +0 -126
  620. package/corpus/templates/crm/actions/configure-native-crm.ts +0 -44
  621. package/corpus/templates/crm/actions/create-crm-record.ts +0 -148
  622. package/corpus/templates/crm/actions/create-crm-signal-tracker.ts +0 -58
  623. package/corpus/templates/crm/actions/delete-staged-dataset.ts +0 -14
  624. package/corpus/templates/crm/actions/get-crm-automation-recipe.ts +0 -36
  625. package/corpus/templates/crm/actions/get-crm-dashboard-panel.ts +0 -35
  626. package/corpus/templates/crm/actions/get-crm-dashboard.ts +0 -14
  627. package/corpus/templates/crm/actions/get-crm-overview.ts +0 -13
  628. package/corpus/templates/crm/actions/get-crm-pipeline-data.ts +0 -61
  629. package/corpus/templates/crm/actions/get-crm-record.ts +0 -75
  630. package/corpus/templates/crm/actions/install-crm-pipeline-dashboard.ts +0 -81
  631. package/corpus/templates/crm/actions/list-crm-dashboard-revisions.ts +0 -15
  632. package/corpus/templates/crm/actions/list-crm-dashboards.ts +0 -15
  633. package/corpus/templates/crm/actions/list-crm-proposals.ts +0 -31
  634. package/corpus/templates/crm/actions/list-crm-records.ts +0 -79
  635. package/corpus/templates/crm/actions/list-crm-saved-views.ts +0 -15
  636. package/corpus/templates/crm/actions/list-crm-signal-hits.ts +0 -43
  637. package/corpus/templates/crm/actions/list-crm-signal-trackers.ts +0 -32
  638. package/corpus/templates/crm/actions/list-crm-tasks.ts +0 -22
  639. package/corpus/templates/crm/actions/list-staged-datasets.ts +0 -14
  640. package/corpus/templates/crm/actions/list-workspace-connections.ts +0 -47
  641. package/corpus/templates/crm/actions/manage-crm-signal-tracker.ts +0 -87
  642. package/corpus/templates/crm/actions/manage-crm-task.ts +0 -132
  643. package/corpus/templates/crm/actions/navigate.ts +0 -63
  644. package/corpus/templates/crm/actions/provider-api-catalog.ts +0 -22
  645. package/corpus/templates/crm/actions/provider-api-docs.ts +0 -54
  646. package/corpus/templates/crm/actions/provider-api-request.ts +0 -92
  647. package/corpus/templates/crm/actions/query-staged-dataset.ts +0 -44
  648. package/corpus/templates/crm/actions/record-crm-call-insight.ts +0 -160
  649. package/corpus/templates/crm/actions/record-crm-smart-signal.ts +0 -150
  650. package/corpus/templates/crm/actions/restore-crm-dashboard-revision.ts +0 -23
  651. package/corpus/templates/crm/actions/review-crm-signal.ts +0 -31
  652. package/corpus/templates/crm/actions/run-crm-saved-view-program.ts +0 -103
  653. package/corpus/templates/crm/actions/run-crm-signal-trackers.ts +0 -275
  654. package/corpus/templates/crm/actions/run.ts +0 -7
  655. package/corpus/templates/crm/actions/save-crm-dashboard.ts +0 -51
  656. package/corpus/templates/crm/actions/save-crm-saved-view.ts +0 -119
  657. package/corpus/templates/crm/actions/sync-crm.ts +0 -146
  658. package/corpus/templates/crm/actions/update-crm-record.ts +0 -510
  659. package/corpus/templates/crm/actions/view-screen.ts +0 -218
  660. package/corpus/templates/crm/agent-native.app-skill.json +0 -58
  661. package/corpus/templates/crm/app/components/crm/CreateCrmRecordDialog.tsx +0 -158
  662. package/corpus/templates/crm/app/components/crm/CrmDashboardPanel.tsx +0 -83
  663. package/corpus/templates/crm/app/components/crm/CrmSignalsPanel.tsx +0 -225
  664. package/corpus/templates/crm/app/components/crm/IntelligenceSettings.tsx +0 -413
  665. package/corpus/templates/crm/app/components/crm/RecordActions.tsx +0 -510
  666. package/corpus/templates/crm/app/components/crm/RecordGrid.tsx +0 -134
  667. package/corpus/templates/crm/app/components/crm/RecordWorkspace.tsx +0 -367
  668. package/corpus/templates/crm/app/components/crm/SavedViewDataProgram.tsx +0 -92
  669. package/corpus/templates/crm/app/components/crm/Surface.tsx +0 -96
  670. package/corpus/templates/crm/app/components/crm/WorkOverview.tsx +0 -180
  671. package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +0 -112
  672. package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +0 -84
  673. package/corpus/templates/crm/app/entry.client.tsx +0 -16
  674. package/corpus/templates/crm/app/entry.server.tsx +0 -10
  675. package/corpus/templates/crm/app/global.css +0 -167
  676. package/corpus/templates/crm/app/hooks/use-navigation-state.ts +0 -60
  677. package/corpus/templates/crm/app/i18n/en-US.ts +0 -89
  678. package/corpus/templates/crm/app/i18n/index.ts +0 -34
  679. package/corpus/templates/crm/app/lib/dashboard.ts +0 -13
  680. package/corpus/templates/crm/app/lib/navigation.ts +0 -54
  681. package/corpus/templates/crm/app/lib/tab-id.ts +0 -1
  682. package/corpus/templates/crm/app/lib/types.ts +0 -172
  683. package/corpus/templates/crm/app/lib/utils.ts +0 -1
  684. package/corpus/templates/crm/app/root.tsx +0 -88
  685. package/corpus/templates/crm/app/routes/_index.tsx +0 -26
  686. package/corpus/templates/crm/app/routes/accounts.tsx +0 -41
  687. package/corpus/templates/crm/app/routes/agent.tsx +0 -5
  688. package/corpus/templates/crm/app/routes/ask.tsx +0 -53
  689. package/corpus/templates/crm/app/routes/dashboard.tsx +0 -118
  690. package/corpus/templates/crm/app/routes/opportunities.tsx +0 -41
  691. package/corpus/templates/crm/app/routes/people.tsx +0 -41
  692. package/corpus/templates/crm/app/routes/proposals.tsx +0 -266
  693. package/corpus/templates/crm/app/routes/records.$recordId.tsx +0 -35
  694. package/corpus/templates/crm/app/routes/settings.tsx +0 -63
  695. package/corpus/templates/crm/app/routes/setup.tsx +0 -308
  696. package/corpus/templates/crm/app/routes/tasks.tsx +0 -252
  697. package/corpus/templates/crm/app/routes/views.tsx +0 -333
  698. package/corpus/templates/crm/app/routes.ts +0 -17
  699. package/corpus/templates/crm/app/vite-env.d.ts +0 -6
  700. package/corpus/templates/crm/changelog/2026-07-21-agent-native-crm.md +0 -6
  701. package/corpus/templates/crm/changelog/2026-07-21-clips-call-evidence-review-recipe.md +0 -6
  702. package/corpus/templates/crm/changelog/2026-07-21-crm-can-now-find-and-review-evidence-grounded-call-signals-w.md +0 -6
  703. package/corpus/templates/crm/changelog/2026-07-21-crm-can-now-manage-keyword-and-smart-call-signal-trackers-fr.md +0 -6
  704. package/corpus/templates/crm/changelog/2026-07-21-delegated-local-crm-automation.md +0 -6
  705. package/corpus/templates/crm/changelog/2026-07-21-native-sql.md +0 -6
  706. package/corpus/templates/crm/changelog/2026-07-21-pipeline-dashboard.md +0 -6
  707. package/corpus/templates/crm/changelog/2026-07-21-pipeline-dashboards-now-install-correctly-from-the-crm-actio.md +0 -6
  708. package/corpus/templates/crm/changelog/2026-07-21-salesforce-connection.md +0 -6
  709. package/corpus/templates/crm/changelog/2026-07-22-crm-field-validation-now-explains-which-fields-cannot-be-edi.md +0 -6
  710. package/corpus/templates/crm/changelog/2026-07-22-fixed-hubspot-contact-syncs-missing-records-updated-after-th.md +0 -6
  711. package/corpus/templates/crm/changelog/2026-07-22-fixed-pipeline-dashboard-panels-so-their-opportunity-data-lo.md +0 -6
  712. package/corpus/templates/crm/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +0 -6
  713. package/corpus/templates/crm/components.json +0 -20
  714. package/corpus/templates/crm/docs/architecture/crm-contract.md +0 -180
  715. package/corpus/templates/crm/learnings.defaults.md +0 -5
  716. package/corpus/templates/crm/package.json +0 -59
  717. package/corpus/templates/crm/public/favicon.svg +0 -1
  718. package/corpus/templates/crm/public/icon-180.svg +0 -1
  719. package/corpus/templates/crm/public/manifest.json +0 -11
  720. package/corpus/templates/crm/react-router.config.ts +0 -7
  721. package/corpus/templates/crm/server/crm/adapter.ts +0 -32
  722. package/corpus/templates/crm/server/crm/crm-field-firewall.ts +0 -64
  723. package/corpus/templates/crm/server/crm/crm-mirror.ts +0 -711
  724. package/corpus/templates/crm/server/crm/hubspot-adapter.ts +0 -1146
  725. package/corpus/templates/crm/server/crm/native-adapter.ts +0 -1715
  726. package/corpus/templates/crm/server/crm/read-through.ts +0 -207
  727. package/corpus/templates/crm/server/crm/salesforce-adapter.ts +0 -1255
  728. package/corpus/templates/crm/server/db/crm-store.ts +0 -1170
  729. package/corpus/templates/crm/server/db/index.ts +0 -169
  730. package/corpus/templates/crm/server/db/schema.ts +0 -441
  731. package/corpus/templates/crm/server/lib/intelligence/default-detectors.ts +0 -65
  732. package/corpus/templates/crm/server/lib/intelligence/evidence.ts +0 -105
  733. package/corpus/templates/crm/server/lib/intelligence/keyword-detector.ts +0 -100
  734. package/corpus/templates/crm/server/lib/intelligence/smart-detector.ts +0 -144
  735. package/corpus/templates/crm/server/lib/intelligence/summary.ts +0 -141
  736. package/corpus/templates/crm/server/lib/provider-api.ts +0 -64
  737. package/corpus/templates/crm/server/middleware/auth.ts +0 -4
  738. package/corpus/templates/crm/server/plugins/agent-chat.ts +0 -68
  739. package/corpus/templates/crm/server/plugins/auth.ts +0 -14
  740. package/corpus/templates/crm/server/plugins/core-routes.ts +0 -17
  741. package/corpus/templates/crm/server/plugins/db.ts +0 -454
  742. package/corpus/templates/crm/server/routes/[...page].get.ts +0 -5
  743. package/corpus/templates/crm/shared/crm-automation-recipes.ts +0 -132
  744. package/corpus/templates/crm/shared/crm-contract.ts +0 -254
  745. package/corpus/templates/crm/shared/crm-sales-config.ts +0 -63
  746. package/corpus/templates/crm/ssr-entry.ts +0 -11
  747. package/corpus/templates/crm/tsconfig.json +0 -24
  748. package/corpus/templates/crm/vite.config.ts +0 -15
  749. package/corpus/templates/crm/vitest.config.ts +0 -5
  750. package/corpus/templates/forms/app/components/ui/calendar.tsx +0 -214
  751. package/corpus/templates/forms/app/components/ui/chart.tsx +0 -379
  752. package/corpus/templates/forms/app/components/ui/command.tsx +0 -153
  753. package/corpus/templates/forms/app/components/ui/context-menu.tsx +0 -198
  754. package/corpus/templates/forms/app/components/ui/menubar.tsx +0 -254
  755. package/corpus/templates/macros/app/components/ui/menubar.tsx +0 -238
  756. package/corpus/templates/macros/app/components/ui/progress.tsx +0 -26
  757. package/corpus/templates/mail/app/components/ui/calendar.tsx +0 -211
  758. package/corpus/templates/mail/app/components/ui/chart.tsx +0 -379
  759. package/corpus/templates/mail/app/components/ui/command.tsx +0 -153
  760. package/corpus/templates/mail/app/components/ui/context-menu.tsx +0 -198
  761. package/corpus/templates/mail/app/components/ui/menubar.tsx +0 -254
  762. package/corpus/templates/tasks/app/components/ui/accordion.tsx +0 -56
  763. package/corpus/templates/tasks/app/components/ui/aspect-ratio.tsx +0 -5
  764. package/corpus/templates/tasks/app/components/ui/breadcrumb.tsx +0 -115
  765. package/corpus/templates/tasks/app/components/ui/calendar.tsx +0 -70
  766. package/corpus/templates/tasks/app/components/ui/carousel.tsx +0 -260
  767. package/corpus/templates/tasks/app/components/ui/chart.tsx +0 -379
  768. package/corpus/templates/tasks/app/components/ui/form.tsx +0 -177
  769. package/corpus/templates/tasks/app/components/ui/hover-card.tsx +0 -27
  770. package/corpus/templates/tasks/app/components/ui/input-otp.tsx +0 -69
  771. package/corpus/templates/tasks/app/components/ui/menubar.tsx +0 -254
  772. package/corpus/templates/tasks/app/components/ui/navigation-menu.tsx +0 -128
  773. package/corpus/templates/tasks/app/components/ui/pagination.tsx +0 -121
  774. package/corpus/templates/tasks/app/components/ui/resizable.tsx +0 -43
  775. package/corpus/templates/tasks/app/components/ui/sidebar.tsx +0 -782
  776. package/corpus/templates/tasks/app/components/ui/toggle.tsx +0 -43
@@ -1,169 +0,0 @@
1
- ---
2
- name: feature-flags
3
- description: >-
4
- Declare, evaluate, manage, and remove framework feature flags. Use when
5
- shipping a capability gradually, targeting users or organizations, or
6
- replacing a compile-time rollout switch with a production-safe runtime flag.
7
- scope: dev
8
- metadata:
9
- internal: true
10
- ---
11
-
12
- # Feature Flags
13
-
14
- A feature flag is a boolean declared in app code, evaluated locally by Core,
15
- and managed from the Analytics fleet control plane. Code owns whether a flag
16
- exists. Runtime settings own only its rollout state.
17
-
18
- Flags let an app deploy dormant code and turn it on in the real environment
19
- without another deployment. They are not experiments: do not add variants,
20
- hypotheses, conversion metrics, exposure tracking, or lifecycle states.
21
-
22
- ## When to use one
23
-
24
- Use a flag for a reversible rollout of a user-facing capability whose dormant
25
- code is safe to deploy. Flags are useful for production dogfooding, exact-user
26
- or organization pilots, and deterministic percentage rollouts.
27
-
28
- Do not use a flag for authentication, authorization, secrets, audit enablement,
29
- SSR cache behavior, or another security boundary. Client hiding is presentation
30
- only; every guarded server action must evaluate the same registered flag.
31
-
32
- ## Agent workflow
33
-
34
- ### 1. Declare
35
-
36
- Keep definitions in a shared TypeScript module so server and client code use the
37
- same stable key. Flags are boolean and default-off.
38
-
39
- ```ts
40
- import { defineFeatureFlag } from "@agent-native/core/feature-flags/registry";
41
-
42
- export const FULL_APP_BUILDING = defineFeatureFlag({
43
- key: "full-app-building",
44
- displayName: "Full app building",
45
- description: "Create and edit Fusion-backed applications.",
46
- });
47
- ```
48
-
49
- Keys are immutable, never reused, and contain only letters, numbers, dots,
50
- underscores, or hyphens. Prefer a concise app-owned name. Do not create flag
51
- definitions or rollout rows from Analytics.
52
-
53
- ### 2. Register
54
-
55
- Register app definitions from a Nitro plugin before actions are discovered.
56
- Do not add app-specific flags to a Core registry.
57
-
58
- ```ts
59
- import { createFeatureFlagsPlugin } from "@agent-native/core/server";
60
-
61
- import { FULL_APP_BUILDING } from "../../shared/feature-flags.js";
62
-
63
- export default createFeatureFlagsPlugin({ flags: [FULL_APP_BUILDING] });
64
- ```
65
-
66
- ### 3. Guard server and client
67
-
68
- The server action is the enforcement boundary:
69
-
70
- ```ts
71
- import { isFeatureFlagEnabled } from "@agent-native/core/feature-flags";
72
-
73
- run: async (args, ctx) => {
74
- if (!(await isFeatureFlagEnabled(FULL_APP_BUILDING, ctx))) {
75
- throw new Error("Full app building is not enabled for this account.");
76
- }
77
- // guarded operation
78
- }
79
- ```
80
-
81
- Use the client hook only to hide or reveal hydrated UI:
82
-
83
- ```tsx
84
- import { useFeatureFlag } from "@agent-native/core/client/feature-flags";
85
-
86
- const enabled = useFeatureFlag(FULL_APP_BUILDING.key);
87
- return enabled ? <FullAppOption /> : null;
88
- ```
89
-
90
- The client hook intentionally returns false while loading or for an unknown
91
- flag. Never replace that fail-closed behavior with app-local bucketing or a
92
- compile-time fallback. Never evaluate personalized flags in the public SSR
93
- shell; it is shared and cached for every visitor.
94
-
95
- ### 4. Verify and roll out
96
-
97
- 1. Verify the off path before changing rollout state.
98
- 2. Confirm the registered flag appears in **Analytics → Feature flags** for the
99
- app and is Off by default.
100
- 3. Use **Enable for me** for initial production dogfood.
101
- 4. Expand to exact emails, organization IDs, or a percentage only from
102
- Analytics.
103
- 5. Confirm the client presentation and authoritative server action agree.
104
-
105
- ## Management contract
106
-
107
- Core mounts three actions in registered apps:
108
-
109
- | Action | Purpose |
110
- | --- | --- |
111
- | `get-feature-flags` | Return the current caller's evaluated boolean values. |
112
- | `list-feature-flags` | Return definitions and rollout metadata to an authorized operator. |
113
- | `set-feature-flag` | Atomically turn a flag off, enable it for the operator, or replace targeting rules. |
114
-
115
- Analytics calls the app-local operator actions through narrowly scoped A2A
116
- delegation. Tokens require an exact audience, organization, scope, operator
117
- role, and audit correlation id. Management is permission-checked and audited
118
- by the target app. Never manage flags through generic settings routes, raw SQL,
119
- or per-app toggle UIs.
120
-
121
- ## Rollout semantics
122
-
123
- The operator modes are **Off**, **Targeted**, and **Everyone**. Core stores them
124
- as `off`, `rules`, and `on`.
125
-
126
- Targeted rules combine exact normalized emails, exact organization IDs, and a
127
- percentage with OR semantics. Exact matches are checked first. Percentage
128
- buckets use Core's stable hash of the flag key and authenticated user identity;
129
- anonymous callers fail closed. Raising a percentage preserves the users already
130
- included at a lower percentage. Do not implement bucketing in app code.
131
-
132
- Unknown definitions, missing state, malformed state, storage errors, and
133
- evaluation errors all return the code default (`false` in v1). Explicit Off
134
- wins over every target; Everyone enables every authenticated caller.
135
-
136
- ## Remove a flag
137
-
138
- After a rollout is permanent:
139
-
140
- 1. Replace guarded branches with the chosen behavior.
141
- 2. Delete the server and client gates.
142
- 3. Delete the definition and registration entry.
143
- 4. Verify the flag disappears from the Analytics fleet.
144
- 5. Remove stale tests and rollout instructions.
145
-
146
- A permanent flag is just an if statement with a pension plan.
147
-
148
- ## Verification checklist
149
-
150
- - Unknown and unregistered keys evaluate false.
151
- - UI hiding and server enforcement use the same registered key.
152
- - Exact-user, organization, deterministic percentage, Everyone, and Off paths
153
- have focused tests.
154
- - Increasing a percentage is monotonic; anonymous percentage evaluation is off.
155
- - Unauthorized callers cannot list targeting details or mutate flags.
156
- - Mutations are atomic, read back stored state, emit refresh, and appear in the
157
- audit log with the flag key.
158
- - Analytics represents ready, no-definition, unsupported, forbidden, legacy,
159
- and unreachable directory apps honestly.
160
- - Future agents can find this skill from root `AGENTS.md`, and
161
- `pnpm guard:workspace-skills` passes after syncing generated copies.
162
-
163
- ## Related skills
164
-
165
- - **adding-a-feature** — preserve UI/action/instruction/application-state parity
166
- - **actions** — define and call guarded app operations
167
- - **audit-log** — inspect automatic action mutation history
168
- - **reliable-mutations** — make rollout changes atomic and provable
169
- - **security** — keep security controls out of feature flags
@@ -1,100 +0,0 @@
1
- ---
2
- name: upgrade-agent-native
3
- description: >-
4
- Bring an older Agent Native app or workspace current. Use when updating
5
- @agent-native/core, fixing a broken upgrade, or when tempted to patch or
6
- override core/dispatch packages to make an old branch run.
7
- scope: dev
8
- metadata:
9
- internal: true
10
- ---
11
-
12
- # Upgrade Agent Native
13
-
14
- ## Rule
15
-
16
- When an older Agent Native app/branch needs to run on current packages, use
17
- `agent-native upgrade`. Never "fix" upgrade breakage with
18
- `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patches, or
19
- edits under `node_modules/@agent-native/*` — especially not against
20
- `@agent-native/core` or `@agent-native/dispatch`.
21
-
22
- ## Why
23
-
24
- Agents often respond to a failed core bump by inventing framework patches and
25
- dispatch behavior overrides. That hides the real app-level break, drifts from
26
- upstream, and makes the next upgrade worse. The supported path is bump →
27
- install → refresh scaffold skills → verify, then fix **app** code only.
28
-
29
- ## How
30
-
31
- 1. **Preview migration codemods first**
32
-
33
- ```bash
34
- npx @agent-native/core@latest upgrade --codemods
35
- ```
36
-
37
- Codemods are preview-by-default: read the diff before applying it. Do not
38
- manually edit imports before running this command; the migration manifest is
39
- the source of truth for renamed specifiers and symbols.
40
-
41
- 2. **Apply the reviewed codemods, then run the upgrade**
42
-
43
- ```bash
44
- npx @agent-native/core@latest upgrade --codemods --yes
45
- npx @agent-native/core@latest upgrade
46
- ```
47
-
48
- Or from an already-installed CLI: `pnpm exec agent-native upgrade` /
49
- `agent-native upgrade`.
50
-
51
- What it does:
52
-
53
- - Blocks (unless `--force`) when `@agent-native/*` overrides/patches exist
54
- - Rewrites non-local `@agent-native/*` dependency pins to `latest`
55
- - Runs the package manager install
56
- - Runs `skills update scaffold --project`
57
- - Runs `typecheck` when the project has that script
58
-
59
- 3. **If upgrade or typecheck fails**
60
-
61
- - Read the concrete error
62
- - Fix **app** source, actions, config, or env — not framework packages
63
- - Re-run `agent-native upgrade` or `pnpm typecheck`
64
- - Stop and ask the user if you cannot fix the app-level error
65
-
66
- Intentional app-level UI customization is a separate workflow. Read
67
- `customizing-agent-native` when the product needs to own a selectively
68
- copied component; do not use that path to reproduce framework runtime
69
- behavior or hide version skew.
70
-
71
- 4. **Dry-run / partial runs**
72
-
73
- ```bash
74
- agent-native upgrade --dry-run
75
- agent-native upgrade --skip-verify
76
- agent-native upgrade --skip-install # package.json bumps only
77
- agent-native doctor --only migration-manifest
78
- ```
79
-
80
- `migration-manifest` has no opt-out. Run it in CI before upgrading to find
81
- imports that will break, then use `npx @agent-native/core@latest upgrade --codemods`
82
- to preview the supported rewrite.
83
-
84
- ## Don't
85
-
86
- - Don't add `pnpm.overrides`, `overrides`, `resolutions`, or
87
- `patchedDependencies` for any `@agent-native/*` package
88
- - Don't edit `node_modules/@agent-native/core` or
89
- `node_modules/@agent-native/dispatch`
90
- - Don't invent local "dispatch behavior" shims to paper over version skew
91
- - Don't keep iterating with more framework patches after a failed install
92
- - Don't skip `skills update scaffold --project` after a core bump (the
93
- upgrade command does this for you)
94
-
95
- ## Related Skills
96
-
97
- - **self-modifying-code** — Tier 4: framework packages are off limits
98
- - **agent-native-docs** — version-matched docs after the bump
99
- - **customizing-agent-native** — intentional app-owned UI copies, not upgrade patches
100
- - **portability** — keep app code provider-agnostic across upgrades
@@ -1,5 +0,0 @@
1
- # Persistent SQL is required outside local development.
2
- DATABASE_URL=file:./data/app.db
3
-
4
- # Local development or preview only.
5
- # AUTH_DISABLED=true
@@ -1,120 +0,0 @@
1
- # CRM — Agent Guide
2
-
3
- CRM is a standalone Native SQL CRM and a HubSpot/Salesforce Connected/Hybrid
4
- companion. Actions are the shared contract for UI, agent chat, HTTP, MCP, A2A,
5
- and CLI. Read `shared/crm-contract.ts` before changing CRM semantics; it is the
6
- source of truth for vocabulary, field policies, provenance, provider identity,
7
- and write policy.
8
-
9
- ## Hard boundaries
10
-
11
- - Native SQL, HubSpot, and Salesforce are the initial modes. Native SQL is
12
- local-authoritative, requires no external connection, and stays portable
13
- across SQLite, Postgres, and D1.
14
- - Workspace Connections own provider credentials. Never ask for, store, log,
15
- or expose provider tokens.
16
- - The local mirror is scoped and thin. Unknown fields are remote-only;
17
- sensitive fields default to redacted; only allow-listed fields are mirrored.
18
- - Never store raw provider payloads, transcripts, audio, video, screenshots,
19
- base64, or file bodies in SQL. Evidence is a URL/id plus bounded quote,
20
- timestamp, speaker, and source metadata.
21
- - Do not merge identities from email/domain matches. Preserve the provider
22
- identity tuple and directional relationships.
23
-
24
- ## Actions
25
-
26
- | Action | Purpose |
27
- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
28
- | `get-crm-overview` | Read the scoped CRM summary and connection/mirror health. |
29
- | `configure-native-crm` | Start a local-authoritative Native SQL CRM without a provider connection. |
30
- | `configure-crm-connection` | Register an authorized HubSpot or Salesforce workspace Connection for the companion mirror. |
31
- | `list-crm-records` | List a bounded set of CRM records using declared filters. |
32
- | `get-crm-record` | Read one record and its permitted scoped detail. |
33
- | `sync-crm` | Refresh a declared mirror cohort; never treat it as an export-all operation. |
34
- | `list-crm-saved-views` / `save-crm-saved-view` | List or save scoped CRM views. |
35
- | `install-crm-pipeline-dashboard` | Idempotently verify and install the CRM-owned Pipeline dashboard and data program. |
36
- | `get-crm-pipeline-data` | Read bounded, access-scoped opportunity totals by stage for the dashboard program. |
37
- | `get-crm-dashboard` / `list-crm-dashboards` / `save-crm-dashboard` | Read, list, or revision-write access-scoped Pipeline dashboards. |
38
- | `list-crm-dashboard-revisions` / `restore-crm-dashboard-revision` | Inspect and restore a dashboard's bounded revision history. |
39
- | `list-crm-tasks` / `manage-crm-task` | Read and manage CRM follow-up tasks. |
40
- | `update-crm-record` | Submit a typed, access-checked, revision-aware record mutation. |
41
- | `list-crm-proposals` / `apply-crm-proposals` | Review provider proposals and record the upstream handoff. |
42
- | `attach-call-evidence` | Attach a bounded call evidence reference; never attach a transcript or media. |
43
- | `get-crm-automation-recipe` | Return the default-off, record-selected Clips call-evidence review recipe. |
44
- | `create-crm-signal-tracker` / `list-crm-signal-trackers` / `manage-crm-signal-tracker` | Create, inspect, enable, disable, or delete access-scoped keyword and delegated-agent moment detectors. |
45
- | `run-crm-signal-trackers` / `list-crm-signal-hits` | Find deterministic hits and prepare bounded smart/summary agent work. |
46
- | `record-crm-smart-signal` / `record-crm-call-insight` | Persist only evidence-grounded delegated results as reviewable signals. |
47
- | `review-crm-signal` | Confirm or dismiss one grounded CRM signal. |
48
- | `view-screen` | Read current navigation, selection, and visible CRM context. |
49
- | `navigate` | Move the UI to overview, records, tasks, proposals, or settings. |
50
- | `provider-api-catalog` / `provider-api-docs` / `provider-api-request` | Discover and make authorized, read-only exact provider API requests. |
51
- | `query-staged-dataset` | Reduce staged, paginated provider results for broad analyses. |
52
- | data program, automation, extension surfaces | Use shared framework capabilities under their scoped access and data limits. |
53
-
54
- ## Agent behavior
55
-
56
- - Call `view-screen` before acting on “this record,” “these accounts,” the
57
- selected row, or a visible saved view. For standalone read requests, call the
58
- focused CRM action directly.
59
- - Navigate before presenting a requested CRM view. Keep visible context aligned
60
- with the action result.
61
- - For a standalone CRM, use `configure-native-crm`; then create and update
62
- local-authoritative records through the normal CRM actions. Do not call
63
- `sync-crm`, provider API actions, or require a workspace Connection for
64
- Native SQL.
65
- - Use first-class actions for ordinary workflows. For an exact HubSpot or Salesforce API
66
- request that actions cannot express, discover it with provider API actions,
67
- fetch it with explicit pagination, then stage/reduce large results. Report
68
- source, scope, filters, counts, pagination, and uncertainty.
69
- - Agent provider changes are normally proposals. Changes involving ownership,
70
- amounts, stage, deletion, bulk scope, or external side effects require an
71
- exact preview and approval. This release does not complete provider writes:
72
- review the proposal, direct the user to make the change in HubSpot or
73
- Salesforce, and never claim the upstream change succeeded.
74
- - A stored automation may execute only the `crm-sales-routine-local-v1` pack:
75
- one routine, compensatable local update to one record. The trigger dispatcher,
76
- not action input, supplies that policy context. Provider updates remain
77
- proposals; ownership, amount, stage, deletion, bulk, and external effects
78
- stay approval-gated or denied.
79
- - Use `run-crm-signal-trackers` for attached Clips evidence. Keyword detectors
80
- run locally; smart detectors and call summaries are delegated through agent
81
- chat. Record only exact, bounded evidence citations through the signal record
82
- actions. Never pass or reconstruct a transcript.
83
- - Manage a tracker only with editor access. Enabling, disabling, and deleting a
84
- tracker are local CRM configuration changes: they never invoke a model or
85
- mutate a connected provider. Use `navigate` with
86
- `{ view: "settings", settingsSection: "intelligence" }` to open its settings tab.
87
- - The Clips review recipe is default-off and always scoped to one explicit CRM
88
- record. It may subscribe to `clip.created` only after the user explicitly
89
- approves the exact A2A activation call. The trigger belongs to Clips, where
90
- `clip.created` is registered. It must ignore the event URL, call
91
- `prepare-crm-call-evidence` with the event clip ID, and send only that bounded
92
- durable HTTPS `/r/<id>` reference back to `attach-call-evidence` for the
93
- selected record. It rejects media, tokens, transcripts, inferred records,
94
- tasks, field/provider writes, and broader scopes. Use
95
- `get-crm-automation-recipe` before configuring this flow.
96
- - Use `install-crm-pipeline-dashboard` to set up the Pipeline view. It owns one
97
- per-user data program that calls `get-crm-pipeline-data`; do not replace it
98
- with a provider-specific action or embed raw rows in dashboard config. Use
99
- `save-crm-dashboard` with `expectedUpdatedAt` for dashboard edits, and
100
- `restore-crm-dashboard-revision` to roll back a saved revision.
101
-
102
- ## Four-area change guide
103
-
104
- When changing a provider workflow, keep UI, actions, agent instructions, and
105
- application state aligned. The setup route records the selected native mode or
106
- connection; `configure-native-crm`, `configure-crm-connection`, and `sync-crm`
107
- are the shared UI/agent operations; signal selection stores record/evidence IDs
108
- only; `view-screen` and `navigate` expose the selected CRM context. Do not introduce provider-specific API routes, browser
109
- credential inputs, or unscoped state.
110
-
111
- ## Implementation
112
-
113
- Before building common workspace or agent UI, read `agent-native-toolkit`; use
114
- `customizing-agent-native` when composing or ejecting shared surfaces.
115
-
116
- Use `defineAction` and action hooks rather than duplicate `/api` CRUD routes.
117
- Use shared Toolkit surfaces for connections, settings, navigation, sharing,
118
- automations, and extensions before adding app-local equivalents. Keep SQL
119
- schema changes additive and preserve access-scope checks independently from
120
- provider permissions.
@@ -1 +0,0 @@
1
- # CRM changelog
@@ -1,66 +0,0 @@
1
- # CRM — Development Guide
2
-
3
- CRM is a React Router + Nitro Agent Native template. The UI and agent share the
4
- same `actions/` contract; normal client reads and writes use action hooks, not
5
- custom CRUD routes.
6
-
7
- ## Commands
8
-
9
- - `pnpm dev` — run the local app
10
- - `pnpm typecheck` — run the framework typecheck
11
- - `pnpm test` — run unit tests
12
- - `pnpm build` — build the React Router and Nitro app
13
-
14
- ## Architecture boundaries
15
-
16
- - `shared/crm-contract.ts` is the canonical CRM vocabulary and provider-neutral
17
- contract.
18
- - `actions/` contains UI/agent operations. Read actions are GET; mutations use
19
- the shared action surface and must preserve access checks and audit behavior.
20
- - `server/` owns provider adapters, scoped mirror lifecycle, and startup
21
- plugins. Use a route only for protocols actions cannot model.
22
- - `app/` owns the persistent workspace shell and domain views. Keep normal
23
- data fetching client-side through `useActionQuery` and `useActionMutation`.
24
-
25
- ## Data and provider rules
26
-
27
- CRM SQL is a thin projection, not a raw HubSpot backup. Only allow-listed
28
- fields are mirrored; remote-only values are fetched ephemerally and redacted
29
- values are never fetched or exposed. Store evidence as bounded references and
30
- quotes only. Raw provider responses, transcripts, media, screenshots, and file
31
- bodies belong in their source system or approved blob storage, never SQL.
32
-
33
- Use workspace Connections for credentials. Never add provider tokens to source,
34
- fixtures, docs, logs, or `.env.example`. Provider API actions are the escape
35
- hatch for legitimate unmodeled HubSpot or Salesforce requests; stage large
36
- results and reduce them via data programs instead of loading an unbounded
37
- payload into chat.
38
-
39
- ## Dashboards
40
-
41
- CRM owns its dashboard schema, revision history, access policy, data programs,
42
- and panel resolvers. It composes `@agent-native/toolkit/dashboard` for cards,
43
- tables, layout, and chart rendering only; never add fetching, provider tokens,
44
- or direct SQL access to Toolkit components. The Pipeline dashboard is installed
45
- idempotently through `install-crm-pipeline-dashboard` and reads its bounded
46
- opportunity data through `get-crm-pipeline-data`.
47
-
48
- `@agent-native/core/dashboard-storage` is instantiated per app. Keep CRM's
49
- dashboard rows and revisions scoped through its store, and use the `program`
50
- panel source for CRM-owned data programs. Add a provider panel source only when
51
- the CRM adapter can enforce the workspace connection, field policy, and access
52
- scope.
53
-
54
- ## Signals and provider writes
55
-
56
- Call evidence is a Clips-owned artifact reference. CRM may store only bounded
57
- quotes, timestamps, evidence references, confidence, detector/model metadata,
58
- and review state; it must never store a transcript body, media, or provider
59
- payload. Keyword trackers run locally. Smart trackers and call summaries must
60
- delegate to the agent chat, then validate evidence before persisting a signal.
61
-
62
- Keep provider mutations proposal-first. `update-crm-record` records a
63
- revision-aware, idempotent proposal for provider-authoritative fields;
64
- `apply-crm-proposals` is the only path that can invoke an adapter after
65
- approval. Delegated policy is narrow, access-scoped, and never bypasses the
66
- field firewall or destructive/bulk gates.
@@ -1,106 +0,0 @@
1
- # CRM
2
-
3
- CRM is an agent-native CRM that runs either as a standalone Native SQL system
4
- or as a scoped companion for connected HubSpot and Salesforce workspaces. It
5
- provides fast record work, saved views, tasks, cadence, evidence, reviewable
6
- call signals, and agent workflows without forcing a provider choice.
7
-
8
- Native SQL is local-authoritative and portable across SQLite, Postgres, and D1.
9
- The connected modes support scoped Connected and Hybrid behavior: HubSpot maps
10
- companies, contacts, and deals; Salesforce maps Accounts, Contacts, and
11
- Opportunities.
12
-
13
- ## Guardrails
14
-
15
- - Native SQL requires no external connection or provider credential.
16
- - Provider credentials are workspace Connections only.
17
- - The mirror contains configured cohorts and allow-listed fields, not raw
18
- provider exports.
19
- - Sensitive fields default to redacted and unknown fields are remote-only.
20
- - Evidence stores a bounded quote and source reference, never transcripts or
21
- media.
22
- - Signal detectors produce timestamped evidence citations. Keyword matching is
23
- local; smart moments and summaries are delegated through agent chat and saved
24
- only after grounding validation.
25
- - Provider mutations are revision-aware, audited, and proposed when agent risk
26
- requires approval.
27
-
28
- ## Start or connect CRM
29
-
30
- 1. Open **Set up CRM** and select **Start with Native SQL** to use CRM without
31
- HubSpot or Salesforce. Native records and fields are local-authoritative.
32
- 2. To use CRM as a companion, in shared **Settings → Connections**, authorize
33
- HubSpot or Salesforce and
34
- grant the connection to CRM. OAuth and refresh tokens stay in workspace
35
- Connections; CRM never accepts a token or key. Salesforce production is the
36
- default. For a sandbox, use **Authorize the sandbox directly** on Set up CRM;
37
- the selected login environment is retained for token refresh.
38
- 3. Choose the granted connection and select a recent
39
- history window. HubSpot may be narrowed to deal pipeline IDs; Salesforce
40
- starts with recently updated Accounts, Contacts, and Opportunities.
41
- 4. CRM mirrors the selected cohort and allow-listed fields only. Confirm the
42
- connection actor's access before relying on a record in the local mirror.
43
-
44
- ## Operating model
45
-
46
- - **Connected**: the source CRM is authoritative. CRM is a scoped companion
47
- for record work, saved views, tasks, call evidence, and analysis.
48
- - **Hybrid**: the source CRM remains authoritative for remote fields; CRM may
49
- own explicitly configured derived-local and local-authoritative fields.
50
- - **Native SQL**: CRM is the system of record for its accounts, people,
51
- opportunities, relationships, saved views, tasks, cadence, and local fields.
52
- It has no upstream provider, sync job, or provider token.
53
- - **Signals**: attach one Clips call-evidence artifact to one or more CRM
54
- records, run the default Pricing, Competitors, Objections, Next steps,
55
- Budget, and Timing detectors, then confirm or dismiss the grounded results.
56
- Clips remains the owner of recording, transcript, consent, and media access.
57
- - **Clips review recipe**: from a chosen CRM record, prepare a default-off
58
- `clip.created` recipe. After explicit activation, its Clips-owned trigger
59
- ignores the event media URL, resolves the clip through an access-checked
60
- read action, and attaches only its opaque ID, durable HTTPS `/r/<id>` page,
61
- and capture time to that exact CRM record. It never copies media or a
62
- transcript, infers another record, or authorizes a provider write.
63
- - **Pipeline dashboard**: install the CRM-owned Pipeline dashboard to get
64
- action-backed stage, amount, and close-date panels. Its data program and
65
- dashboard revisions are access-scoped CRM records; the reusable chart and
66
- table presentation comes from the Toolkit dashboard kit.
67
- - **Read and write safety**: provider reads use the connection's effective
68
- permissions. Upstream changes are revision-aware, access-checked proposals
69
- in this release; finish the approved change in HubSpot or Salesforce and do
70
- not claim a provider write completed from CRM.
71
-
72
- ## Review and delegation policy
73
-
74
- CRM records the actor, expected remote revision, idempotency key, field-level
75
- provenance, and an audit event for each mutation request. Local, reversible
76
- routine work can execute in CRM. Agent-initiated provider changes become
77
- reviewable proposals; destructive, bulk, and named-risk changes remain gated.
78
- Delegated authority is narrow and stored as policy—it never expands record or
79
- field access, bypasses the write firewall, or turns a provider result into an
80
- unverified success.
81
-
82
- Salesforce reads are validated against the current connection actor and field
83
- permissions before mirrored data is returned. A service-account mirror never
84
- proves a user's access; ambiguous or changed access fails closed until refresh.
85
-
86
- ## Live testing
87
-
88
- Use a shared, already-authorized workspace Connection—never copy its secret
89
- into an environment file. Choose a small recent cohort, verify the resulting
90
- records and access scope in CRM, then test a proposal without applying a
91
- provider change. Record only connection labels, counts, and non-sensitive
92
- results in test evidence.
93
-
94
- See [the CRM contract](docs/architecture/crm-contract.md) for field policies,
95
- identity, access scope, and write decisions.
96
-
97
- ## Local development
98
-
99
- ```bash
100
- pnpm install
101
- pnpm dev
102
- ```
103
-
104
- Set `DATABASE_URL` for persistent deployment storage. Native SQL works without
105
- external credentials. Connect HubSpot or Salesforce from the workspace
106
- Connections surface; do not add provider secrets to `.env`.
@@ -1,12 +0,0 @@
1
- node_modules
2
- dist
3
- build
4
- .output
5
- .netlify
6
- .react-router
7
- .generated
8
- data/*.db
9
- data/*.db-shm
10
- data/*.db-wal
11
- .env
12
- .env.local
@@ -1,87 +0,0 @@
1
- import type { ActionRunContext } from "@agent-native/core/action";
2
- import {
3
- getRequestOrgId,
4
- getRequestUserEmail,
5
- } from "@agent-native/core/server";
6
-
7
- export {
8
- isBoundedCrmValue,
9
- isSafeCrmMutationFieldName,
10
- isSafeCrmMutationFields,
11
- } from "../server/crm/crm-field-firewall.js";
12
-
13
- export const MAX_CRM_FIELDS_PER_MUTATION = 20;
14
-
15
- export function requireCrmScope(ctx?: ActionRunContext) {
16
- const ownerEmail = ctx?.userEmail ?? getRequestUserEmail();
17
- if (!ownerEmail) throw new Error("Sign in is required to manage CRM data.");
18
- const orgId = ctx?.orgId ?? getRequestOrgId() ?? null;
19
- return {
20
- ownerEmail,
21
- orgId,
22
- visibility: orgId ? ("org" as const) : ("private" as const),
23
- };
24
- }
25
-
26
- export function crmInitiatedBy(ctx?: ActionRunContext) {
27
- if (ctx?.caller === "automation") return "automation" as const;
28
- return ctx?.caller === "tool" ||
29
- ctx?.caller === "mcp" ||
30
- ctx?.caller === "a2a"
31
- ? ("agent" as const)
32
- : ("human" as const);
33
- }
34
-
35
- export function crmWriteRisk(fieldNames: string[]) {
36
- const names = fieldNames.map((field) => field.toLowerCase());
37
- if (names.some((field) => field.includes("owner")))
38
- return "ownership" as const;
39
- if (names.some((field) => field === "amount" || field.includes("amount"))) {
40
- return "amount" as const;
41
- }
42
- if (
43
- names.some((field) => field.includes("stage") || field.includes("pipeline"))
44
- ) {
45
- return "stage" as const;
46
- }
47
- return "routine" as const;
48
- }
49
-
50
- export async function scopedCrmIdempotencyKey(input: {
51
- ownerEmail: string;
52
- orgId: string | null;
53
- recordId: string;
54
- key: string;
55
- }): Promise<string> {
56
- const value = [
57
- "crm-mutation-v1",
58
- input.ownerEmail.toLowerCase(),
59
- input.orgId ?? "",
60
- input.recordId,
61
- input.key,
62
- ].join("\u0000");
63
- const bytes = new TextEncoder().encode(value);
64
- const digest = await crypto.subtle.digest("SHA-256", bytes);
65
- return `crm:v1:${Array.from(new Uint8Array(digest), (byte) =>
66
- byte.toString(16).padStart(2, "0"),
67
- ).join("")}`;
68
- }
69
-
70
- export function toJson(value: unknown, maxChars: number) {
71
- const encoded = JSON.stringify(value);
72
- if (encoded.length > maxChars) {
73
- throw new Error(`CRM payload exceeds the ${maxChars}-character limit.`);
74
- }
75
- return encoded;
76
- }
77
-
78
- export function parseJsonRecord(value: string): Record<string, unknown> {
79
- try {
80
- const parsed = JSON.parse(value) as unknown;
81
- return parsed && typeof parsed === "object" && !Array.isArray(parsed)
82
- ? (parsed as Record<string, unknown>)
83
- : {};
84
- } catch {
85
- return {};
86
- }
87
- }