@agent-native/core 0.117.2 → 0.118.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 (524) hide show
  1. package/corpus/README.md +3 -3
  2. package/corpus/core/CHANGELOG.md +30 -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/types.ts +1 -0
  7. package/corpus/core/src/agent/types.ts +1 -1
  8. package/corpus/core/src/client/AgentPanel.tsx +90 -107
  9. package/corpus/core/src/client/AssistantChat.tsx +30 -13
  10. package/corpus/core/src/client/CommandMenu.tsx +68 -178
  11. package/corpus/core/src/client/agent-chat-adapter.ts +3 -1
  12. package/corpus/core/src/client/app-providers.tsx +1 -1
  13. package/corpus/core/src/client/chat/message-components.tsx +116 -10
  14. package/corpus/core/src/client/chat/tool-call-display.tsx +26 -5
  15. package/corpus/core/src/client/chat/widgets/InlineExtensionWidget.tsx +14 -40
  16. package/corpus/core/src/client/components/ui/message-scroller.tsx +15 -1
  17. package/corpus/core/src/client/i18n.tsx +22 -0
  18. package/corpus/core/src/client/index.ts +17 -0
  19. package/corpus/core/src/client/org/TeamPage.tsx +257 -153
  20. package/corpus/core/src/client/progress/RunsTray.tsx +89 -88
  21. package/corpus/core/src/client/resources/McpConnectionSuggestion.tsx +5 -2
  22. package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +34 -13
  23. package/corpus/core/src/client/resources/mcp-integration-catalog.ts +13 -0
  24. package/corpus/core/src/client/settings/DemoModeSection.tsx +6 -18
  25. package/corpus/core/src/client/settings/SecretsSection.tsx +97 -52
  26. package/corpus/core/src/client/settings/SettingsPanel.tsx +202 -246
  27. package/corpus/core/src/client/settings/SettingsTabsPage.tsx +23 -2
  28. package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +7 -18
  29. package/corpus/core/src/client/settings/index.ts +7 -0
  30. package/corpus/core/src/client/settings/useSettingsPanelController.ts +155 -0
  31. package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +116 -51
  32. package/corpus/core/src/client/setup-connections/index.ts +10 -0
  33. package/corpus/core/src/client/setup-connections/useBuilderConnectCardController.ts +82 -0
  34. package/corpus/core/src/client/sharing/ShareButton.tsx +64 -586
  35. package/corpus/core/src/client/sharing/ShareDialog.tsx +299 -633
  36. package/corpus/core/src/client/sharing/index.ts +42 -0
  37. package/corpus/core/src/client/sharing/share-controller-helpers.ts +318 -0
  38. package/corpus/core/src/client/sharing/useShareButtonController.ts +600 -0
  39. package/corpus/core/src/client/sharing/useShareDialogController.ts +559 -0
  40. package/corpus/core/src/client/sse-event-processor.ts +23 -0
  41. package/corpus/core/src/client/tool-display.ts +71 -0
  42. package/corpus/core/src/client/use-agent-engine-configured.ts +12 -19
  43. package/corpus/core/src/client/use-chat-threads.ts +33 -12
  44. package/corpus/core/src/localization/default-messages.ts +5 -0
  45. package/corpus/core/src/mcp-client/oauth-routes.ts +16 -2
  46. package/corpus/core/src/scripts/call-agent.ts +5 -1
  47. package/corpus/core/src/server/realtime-voice.ts +1 -1
  48. package/corpus/core/src/styles/agent-native.css +0 -24
  49. package/corpus/core/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  50. package/corpus/core/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  51. package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
  52. package/corpus/core/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
  53. package/corpus/core/src/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
  54. package/corpus/core/src/templates/default/app/design-system.ts +3 -0
  55. package/corpus/core/src/templates/default/app/root.tsx +5 -2
  56. package/corpus/core/src/templates/default/package.json +1 -0
  57. package/corpus/core/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  58. package/corpus/core/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  59. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  60. package/corpus/core/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  61. package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
  62. package/corpus/core/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
  63. package/corpus/core/src/vite/client.ts +39 -0
  64. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  65. package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  66. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +22 -2
  67. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +28 -4
  68. package/corpus/templates/analytics/app/components/ui/toolkit-provider.tsx +6 -1
  69. package/corpus/templates/analytics/app/design-system.ts +3 -0
  70. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  71. package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  72. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +22 -2
  73. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +28 -4
  74. package/corpus/templates/assets/app/components/ui/alert.tsx +1 -0
  75. package/corpus/templates/assets/app/components/ui/toolkit-provider.tsx +6 -1
  76. package/corpus/templates/assets/app/design-system.ts +3 -0
  77. package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +26 -30
  78. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  79. package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  80. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +22 -2
  81. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +28 -4
  82. package/corpus/templates/brain/app/components/ui/dialog.tsx +1 -0
  83. package/corpus/templates/brain/app/components/ui/toolkit-provider.tsx +6 -1
  84. package/corpus/templates/brain/app/design-system.ts +3 -0
  85. package/corpus/templates/brain/app/routes/sources.tsx +8 -8
  86. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  87. package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  88. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +22 -2
  89. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +28 -4
  90. package/corpus/templates/calendar/app/components/ui/toolkit-provider.tsx +6 -1
  91. package/corpus/templates/calendar/app/design-system.ts +3 -0
  92. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  93. package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  94. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
  95. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
  96. package/corpus/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
  97. package/corpus/templates/chat/app/design-system.ts +3 -0
  98. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  99. package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  100. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +22 -2
  101. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +28 -4
  102. package/corpus/templates/clips/app/components/ui/toolkit-provider.tsx +6 -1
  103. package/corpus/templates/clips/app/design-system.ts +3 -0
  104. package/corpus/templates/clips/app/routes/_app.library._index.tsx +1 -1
  105. package/corpus/templates/clips/changelog/2026-07-22-fixed-windows-recordings-aborting-during-the-countdown.md +6 -0
  106. package/corpus/templates/clips/changelog/2026-07-22-permissions-and-rewind-controls-are-now-grouped-with-clearer.md +6 -0
  107. package/corpus/templates/clips/changelog/2026-07-22-the-desktop-popover-opens-centered-under-the-menu-bar-icon-o.md +6 -0
  108. package/corpus/templates/clips/desktop/src/app.tsx +86 -82
  109. package/corpus/templates/clips/desktop/src/styles.css +13 -0
  110. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +10 -1
  111. package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +37 -2
  112. package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +18 -0
  113. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  114. package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  115. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +22 -2
  116. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +28 -4
  117. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +41 -59
  118. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +41 -41
  119. package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +2 -1
  120. package/corpus/templates/content/app/components/editor/database/ListView.tsx +2 -1
  121. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +9 -9
  122. package/corpus/templates/content/app/components/editor/database/sidebar.tsx +7 -7
  123. package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +11 -11
  124. package/corpus/templates/content/app/components/ui/checkbox.tsx +1 -0
  125. package/corpus/templates/content/app/components/ui/collapsible.tsx +1 -0
  126. package/corpus/templates/content/app/components/ui/toolkit-provider.tsx +6 -1
  127. package/corpus/templates/content/app/design-system.ts +3 -0
  128. package/corpus/templates/content/app/global.css +29 -3
  129. package/corpus/templates/content/changelog/2026-07-22-page-actions-are-grouped-into-the-three-dots-menu-for-a-clea.md +6 -0
  130. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  131. package/corpus/templates/crm/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  132. package/corpus/templates/crm/app/components/crm/CreateCrmRecordDialog.tsx +10 -10
  133. package/corpus/templates/crm/app/components/crm/CrmDashboardPanel.tsx +1 -6
  134. package/corpus/templates/crm/app/components/crm/CrmSignalsPanel.tsx +3 -2
  135. package/corpus/templates/crm/app/components/crm/IntelligenceSettings.tsx +13 -12
  136. package/corpus/templates/crm/app/components/crm/RecordActions.tsx +17 -17
  137. package/corpus/templates/crm/app/components/crm/RecordGrid.tsx +8 -8
  138. package/corpus/templates/crm/app/components/crm/RecordWorkspace.tsx +3 -8
  139. package/corpus/templates/crm/app/components/crm/SavedViewDataProgram.tsx +2 -1
  140. package/corpus/templates/crm/app/components/crm/Surface.tsx +3 -2
  141. package/corpus/templates/crm/app/components/crm/WorkOverview.tsx +2 -2
  142. package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +7 -7
  143. package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +1 -1
  144. package/corpus/templates/crm/app/components/ui/alert-dialog.tsx +1 -0
  145. package/corpus/templates/crm/app/components/ui/badge.tsx +1 -0
  146. package/corpus/templates/crm/app/components/ui/button.tsx +1 -0
  147. package/corpus/templates/crm/app/components/ui/card.tsx +1 -0
  148. package/corpus/templates/crm/app/components/ui/dialog.tsx +1 -0
  149. package/corpus/templates/crm/app/components/ui/input.tsx +1 -0
  150. package/corpus/templates/crm/app/components/ui/label.tsx +1 -0
  151. package/corpus/templates/crm/app/components/ui/select.tsx +1 -0
  152. package/corpus/templates/crm/app/components/ui/sheet.tsx +1 -0
  153. package/corpus/templates/crm/app/components/ui/skeleton.tsx +1 -0
  154. package/corpus/templates/crm/app/components/ui/switch.tsx +1 -0
  155. package/corpus/templates/crm/app/components/ui/table.tsx +1 -0
  156. package/corpus/templates/crm/app/components/ui/tabs.tsx +1 -0
  157. package/corpus/templates/crm/app/components/ui/textarea.tsx +1 -0
  158. package/corpus/templates/crm/app/components/ui/toolkit-provider.tsx +17 -0
  159. package/corpus/templates/crm/app/design-system.ts +3 -0
  160. package/corpus/templates/crm/app/root.tsx +9 -6
  161. package/corpus/templates/crm/app/routes/dashboard.tsx +1 -1
  162. package/corpus/templates/crm/app/routes/proposals.tsx +13 -13
  163. package/corpus/templates/crm/app/routes/setup.tsx +9 -9
  164. package/corpus/templates/crm/app/routes/tasks.tsx +14 -14
  165. package/corpus/templates/crm/app/routes/views.tsx +16 -16
  166. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  167. package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  168. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +22 -2
  169. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +28 -4
  170. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +8 -8
  171. package/corpus/templates/design/app/components/ui/command.tsx +1 -0
  172. package/corpus/templates/design/app/components/ui/toolkit-provider.tsx +6 -1
  173. package/corpus/templates/design/app/design-system.ts +3 -0
  174. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  175. package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  176. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +22 -2
  177. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +28 -4
  178. package/corpus/templates/dispatch/app/components/ui/button.tsx +1 -0
  179. package/corpus/templates/dispatch/app/components/ui/toolkit-provider.tsx +17 -0
  180. package/corpus/templates/dispatch/app/design-system.ts +3 -0
  181. package/corpus/templates/dispatch/app/root.tsx +10 -7
  182. package/corpus/templates/dispatch/package.json +1 -0
  183. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  184. package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  185. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +22 -2
  186. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +28 -4
  187. package/corpus/templates/forms/app/components/ui/toolkit-provider.tsx +6 -1
  188. package/corpus/templates/forms/app/design-system.ts +3 -0
  189. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  190. package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  191. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +22 -2
  192. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +28 -4
  193. package/corpus/templates/macros/app/components/ui/toolkit-provider.tsx +6 -1
  194. package/corpus/templates/macros/app/design-system.ts +3 -0
  195. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  196. package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  197. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +22 -2
  198. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +28 -4
  199. package/corpus/templates/mail/app/components/email/EmailThread.tsx +134 -93
  200. package/corpus/templates/mail/app/components/email/email-iframe-document.ts +8 -2
  201. package/corpus/templates/mail/app/components/ui/textarea.tsx +1 -21
  202. package/corpus/templates/mail/app/components/ui/toolkit-provider.tsx +6 -1
  203. package/corpus/templates/mail/app/design-system.ts +3 -0
  204. package/corpus/templates/mail/changelog/2026-07-22-email-messages-no-longer-flash-with-an-unstyled-page-while-l.md +6 -0
  205. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  206. package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  207. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +22 -2
  208. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +28 -4
  209. package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +1 -1
  210. package/corpus/templates/plan/app/components/ui/toolkit-provider.tsx +6 -1
  211. package/corpus/templates/plan/app/design-system.ts +3 -0
  212. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  213. package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  214. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +22 -2
  215. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +28 -4
  216. package/corpus/templates/slides/app/components/ui/toolkit-provider.tsx +6 -1
  217. package/corpus/templates/slides/app/design-system.ts +3 -0
  218. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  219. package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  220. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +22 -2
  221. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +28 -4
  222. package/corpus/templates/tasks/app/components/ui/toolkit-provider.tsx +17 -0
  223. package/corpus/templates/tasks/app/design-system.ts +3 -0
  224. package/corpus/templates/tasks/app/root.tsx +5 -2
  225. package/corpus/toolkit/CHANGELOG.md +14 -0
  226. package/corpus/toolkit/agent-native.eject.json +71 -0
  227. package/corpus/toolkit/package.json +31 -1
  228. package/corpus/toolkit/src/chat-history/ChatHistoryRail.tsx +100 -39
  229. package/corpus/toolkit/src/chat-history/index.ts +9 -0
  230. package/corpus/toolkit/src/chat-history/useChatHistoryRailController.ts +76 -0
  231. package/corpus/toolkit/src/chat-history.css +2 -0
  232. package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +11 -8
  233. package/corpus/toolkit/src/composer/PromptComposer.tsx +27 -6
  234. package/corpus/toolkit/src/composer/useRealtimeVoiceMode.tsx +107 -22
  235. package/corpus/toolkit/src/conformance/__fixtures__/css-in-js-adapter.tsx +401 -0
  236. package/corpus/toolkit/src/conformance/index.ts +3 -0
  237. package/corpus/toolkit/src/conformance/runner.tsx +710 -0
  238. package/corpus/toolkit/src/conformance/types.ts +45 -0
  239. package/corpus/toolkit/src/conformance/version.ts +22 -0
  240. package/corpus/toolkit/src/design-system/components.tsx +146 -0
  241. package/corpus/toolkit/src/design-system/context.tsx +31 -0
  242. package/corpus/toolkit/src/design-system/default-adapter.tsx +915 -0
  243. package/corpus/toolkit/src/design-system/definition.ts +14 -0
  244. package/corpus/toolkit/src/design-system/error-boundary.tsx +37 -0
  245. package/corpus/toolkit/src/design-system/index.ts +7 -0
  246. package/corpus/toolkit/src/design-system/theme.ts +145 -0
  247. package/corpus/toolkit/src/design-system/types.ts +363 -0
  248. package/corpus/toolkit/src/provider.tsx +98 -5
  249. package/corpus/toolkit/src/ui/button.tsx +95 -6
  250. package/corpus/toolkit/src/ui/dialog.tsx +48 -23
  251. package/corpus/toolkit/src/ui/popover.tsx +16 -2
  252. package/corpus/toolkit/src/ui/select.tsx +7 -3
  253. package/corpus/toolkit/src/ui/sidebar.tsx +47 -48
  254. package/corpus/toolkit/src/ui/tooltip.tsx +7 -3
  255. package/dist/a2a/types.d.ts +1 -1
  256. package/dist/a2a/types.d.ts.map +1 -1
  257. package/dist/a2a/types.js.map +1 -1
  258. package/dist/agent/types.d.ts +1 -1
  259. package/dist/agent/types.d.ts.map +1 -1
  260. package/dist/agent/types.js.map +1 -1
  261. package/dist/client/AgentPanel.d.ts.map +1 -1
  262. package/dist/client/AgentPanel.js +14 -14
  263. package/dist/client/AgentPanel.js.map +1 -1
  264. package/dist/client/AssistantChat.d.ts.map +1 -1
  265. package/dist/client/AssistantChat.js +26 -15
  266. package/dist/client/AssistantChat.js.map +1 -1
  267. package/dist/client/CommandMenu.d.ts.map +1 -1
  268. package/dist/client/CommandMenu.js +18 -106
  269. package/dist/client/CommandMenu.js.map +1 -1
  270. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  271. package/dist/client/agent-chat-adapter.js +2 -1
  272. package/dist/client/agent-chat-adapter.js.map +1 -1
  273. package/dist/client/app-providers.d.ts.map +1 -1
  274. package/dist/client/app-providers.js +1 -1
  275. package/dist/client/app-providers.js.map +1 -1
  276. package/dist/client/chat/message-components.d.ts +9 -1
  277. package/dist/client/chat/message-components.d.ts.map +1 -1
  278. package/dist/client/chat/message-components.js +62 -7
  279. package/dist/client/chat/message-components.js.map +1 -1
  280. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  281. package/dist/client/chat/tool-call-display.js +20 -5
  282. package/dist/client/chat/tool-call-display.js.map +1 -1
  283. package/dist/client/chat/widgets/InlineExtensionWidget.d.ts.map +1 -1
  284. package/dist/client/chat/widgets/InlineExtensionWidget.js +9 -12
  285. package/dist/client/chat/widgets/InlineExtensionWidget.js.map +1 -1
  286. package/dist/client/components/ui/message-scroller.d.ts +1 -1
  287. package/dist/client/components/ui/message-scroller.d.ts.map +1 -1
  288. package/dist/client/components/ui/message-scroller.js +4 -3
  289. package/dist/client/components/ui/message-scroller.js.map +1 -1
  290. package/dist/client/i18n.d.ts.map +1 -1
  291. package/dist/client/i18n.js +9 -0
  292. package/dist/client/i18n.js.map +1 -1
  293. package/dist/client/index.d.ts +2 -2
  294. package/dist/client/index.d.ts.map +1 -1
  295. package/dist/client/index.js +2 -2
  296. package/dist/client/index.js.map +1 -1
  297. package/dist/client/org/TeamPage.d.ts.map +1 -1
  298. package/dist/client/org/TeamPage.js +41 -33
  299. package/dist/client/org/TeamPage.js.map +1 -1
  300. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  301. package/dist/client/progress/RunsTray.js +9 -10
  302. package/dist/client/progress/RunsTray.js.map +1 -1
  303. package/dist/client/resources/McpConnectionSuggestion.d.ts.map +1 -1
  304. package/dist/client/resources/McpConnectionSuggestion.js +5 -4
  305. package/dist/client/resources/McpConnectionSuggestion.js.map +1 -1
  306. package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
  307. package/dist/client/resources/McpIntegrationDialog.js +10 -8
  308. package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
  309. package/dist/client/resources/mcp-integration-catalog.d.ts +1 -0
  310. package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
  311. package/dist/client/resources/mcp-integration-catalog.js +13 -0
  312. package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
  313. package/dist/client/settings/DemoModeSection.d.ts.map +1 -1
  314. package/dist/client/settings/DemoModeSection.js +2 -5
  315. package/dist/client/settings/DemoModeSection.js.map +1 -1
  316. package/dist/client/settings/SecretsSection.d.ts.map +1 -1
  317. package/dist/client/settings/SecretsSection.js +18 -6
  318. package/dist/client/settings/SecretsSection.js.map +1 -1
  319. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  320. package/dist/client/settings/SettingsPanel.js +52 -117
  321. package/dist/client/settings/SettingsPanel.js.map +1 -1
  322. package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
  323. package/dist/client/settings/SettingsTabsPage.js +16 -1
  324. package/dist/client/settings/SettingsTabsPage.js.map +1 -1
  325. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
  326. package/dist/client/settings/VoiceTranscriptionSection.js +2 -5
  327. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  328. package/dist/client/settings/index.d.ts +1 -0
  329. package/dist/client/settings/index.d.ts.map +1 -1
  330. package/dist/client/settings/index.js +1 -0
  331. package/dist/client/settings/index.js.map +1 -1
  332. package/dist/client/settings/useSettingsPanelController.d.ts +22 -0
  333. package/dist/client/settings/useSettingsPanelController.d.ts.map +1 -0
  334. package/dist/client/settings/useSettingsPanelController.js +103 -0
  335. package/dist/client/settings/useSettingsPanelController.js.map +1 -0
  336. package/dist/client/setup-connections/BuilderConnectCard.d.ts +14 -6
  337. package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -1
  338. package/dist/client/setup-connections/BuilderConnectCard.js +24 -16
  339. package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -1
  340. package/dist/client/setup-connections/index.d.ts +2 -1
  341. package/dist/client/setup-connections/index.d.ts.map +1 -1
  342. package/dist/client/setup-connections/index.js +2 -1
  343. package/dist/client/setup-connections/index.js.map +1 -1
  344. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +34 -0
  345. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts.map +1 -0
  346. package/dist/client/setup-connections/useBuilderConnectCardController.js +39 -0
  347. package/dist/client/setup-connections/useBuilderConnectCardController.js.map +1 -0
  348. package/dist/client/sharing/ShareButton.d.ts +2 -1
  349. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  350. package/dist/client/sharing/ShareButton.js +17 -463
  351. package/dist/client/sharing/ShareButton.js.map +1 -1
  352. package/dist/client/sharing/ShareDialog.d.ts +6 -6
  353. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  354. package/dist/client/sharing/ShareDialog.js +69 -283
  355. package/dist/client/sharing/ShareDialog.js.map +1 -1
  356. package/dist/client/sharing/index.d.ts +3 -0
  357. package/dist/client/sharing/index.d.ts.map +1 -1
  358. package/dist/client/sharing/index.js +3 -0
  359. package/dist/client/sharing/index.js.map +1 -1
  360. package/dist/client/sharing/share-controller-helpers.d.ts +70 -0
  361. package/dist/client/sharing/share-controller-helpers.d.ts.map +1 -0
  362. package/dist/client/sharing/share-controller-helpers.js +224 -0
  363. package/dist/client/sharing/share-controller-helpers.js.map +1 -0
  364. package/dist/client/sharing/useShareButtonController.d.ts +91 -0
  365. package/dist/client/sharing/useShareButtonController.d.ts.map +1 -0
  366. package/dist/client/sharing/useShareButtonController.js +397 -0
  367. package/dist/client/sharing/useShareButtonController.js.map +1 -0
  368. package/dist/client/sharing/useShareDialogController.d.ts +109 -0
  369. package/dist/client/sharing/useShareDialogController.d.ts.map +1 -0
  370. package/dist/client/sharing/useShareDialogController.js +348 -0
  371. package/dist/client/sharing/useShareDialogController.js.map +1 -0
  372. package/dist/client/sse-event-processor.d.ts.map +1 -1
  373. package/dist/client/sse-event-processor.js +21 -0
  374. package/dist/client/sse-event-processor.js.map +1 -1
  375. package/dist/client/tool-display.d.ts +16 -0
  376. package/dist/client/tool-display.d.ts.map +1 -1
  377. package/dist/client/tool-display.js +52 -0
  378. package/dist/client/tool-display.js.map +1 -1
  379. package/dist/client/use-agent-engine-configured.d.ts +3 -2
  380. package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
  381. package/dist/client/use-agent-engine-configured.js +7 -19
  382. package/dist/client/use-agent-engine-configured.js.map +1 -1
  383. package/dist/client/use-chat-threads.d.ts.map +1 -1
  384. package/dist/client/use-chat-threads.js +21 -8
  385. package/dist/client/use-chat-threads.js.map +1 -1
  386. package/dist/localization/default-messages.d.ts +4 -0
  387. package/dist/localization/default-messages.d.ts.map +1 -1
  388. package/dist/localization/default-messages.js +4 -0
  389. package/dist/localization/default-messages.js.map +1 -1
  390. package/dist/mcp-client/oauth-routes.d.ts +2 -0
  391. package/dist/mcp-client/oauth-routes.d.ts.map +1 -1
  392. package/dist/mcp-client/oauth-routes.js +12 -2
  393. package/dist/mcp-client/oauth-routes.js.map +1 -1
  394. package/dist/observability/routes.d.ts +3 -3
  395. package/dist/provider-api/actions/custom-provider-registration.d.ts +4 -4
  396. package/dist/scripts/call-agent.d.ts.map +1 -1
  397. package/dist/scripts/call-agent.js +5 -1
  398. package/dist/scripts/call-agent.js.map +1 -1
  399. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  400. package/dist/server/realtime-voice.js +1 -1
  401. package/dist/server/realtime-voice.js.map +1 -1
  402. package/dist/server/transcribe-voice.d.ts +1 -1
  403. package/dist/styles/agent-native.css +0 -24
  404. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  405. package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  406. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
  407. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
  408. package/dist/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
  409. package/dist/templates/chat/app/design-system.ts +3 -0
  410. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  411. package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  412. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
  413. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
  414. package/dist/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
  415. package/dist/templates/default/app/design-system.ts +3 -0
  416. package/dist/templates/default/app/root.tsx +5 -2
  417. package/dist/templates/default/package.json +1 -0
  418. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  419. package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  420. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  421. package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  422. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
  423. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
  424. package/dist/vite/client.d.ts +3 -0
  425. package/dist/vite/client.d.ts.map +1 -1
  426. package/dist/vite/client.js +31 -0
  427. package/dist/vite/client.js.map +1 -1
  428. package/docs/content/custom-design-system.mdx +445 -0
  429. package/docs/content/toolkit-ui.mdx +16 -0
  430. package/package.json +2 -2
  431. package/src/a2a/types.ts +1 -0
  432. package/src/agent/types.ts +1 -1
  433. package/src/client/AgentPanel.tsx +90 -107
  434. package/src/client/AssistantChat.tsx +30 -13
  435. package/src/client/CommandMenu.tsx +68 -178
  436. package/src/client/agent-chat-adapter.ts +3 -1
  437. package/src/client/app-providers.tsx +1 -1
  438. package/src/client/chat/message-components.tsx +116 -10
  439. package/src/client/chat/tool-call-display.tsx +26 -5
  440. package/src/client/chat/widgets/InlineExtensionWidget.tsx +14 -40
  441. package/src/client/components/ui/message-scroller.tsx +15 -1
  442. package/src/client/i18n.tsx +22 -0
  443. package/src/client/index.ts +17 -0
  444. package/src/client/org/TeamPage.tsx +257 -153
  445. package/src/client/progress/RunsTray.tsx +89 -88
  446. package/src/client/resources/McpConnectionSuggestion.tsx +5 -2
  447. package/src/client/resources/McpIntegrationDialog.tsx +34 -13
  448. package/src/client/resources/mcp-integration-catalog.ts +13 -0
  449. package/src/client/settings/DemoModeSection.tsx +6 -18
  450. package/src/client/settings/SecretsSection.tsx +97 -52
  451. package/src/client/settings/SettingsPanel.tsx +202 -246
  452. package/src/client/settings/SettingsTabsPage.tsx +23 -2
  453. package/src/client/settings/VoiceTranscriptionSection.tsx +7 -18
  454. package/src/client/settings/index.ts +7 -0
  455. package/src/client/settings/useSettingsPanelController.ts +155 -0
  456. package/src/client/setup-connections/BuilderConnectCard.tsx +116 -51
  457. package/src/client/setup-connections/index.ts +10 -0
  458. package/src/client/setup-connections/useBuilderConnectCardController.ts +82 -0
  459. package/src/client/sharing/ShareButton.tsx +64 -586
  460. package/src/client/sharing/ShareDialog.tsx +299 -633
  461. package/src/client/sharing/index.ts +42 -0
  462. package/src/client/sharing/share-controller-helpers.ts +318 -0
  463. package/src/client/sharing/useShareButtonController.ts +600 -0
  464. package/src/client/sharing/useShareDialogController.ts +559 -0
  465. package/src/client/sse-event-processor.ts +23 -0
  466. package/src/client/tool-display.ts +71 -0
  467. package/src/client/use-agent-engine-configured.ts +12 -19
  468. package/src/client/use-chat-threads.ts +33 -12
  469. package/src/localization/default-messages.ts +5 -0
  470. package/src/mcp-client/oauth-routes.ts +16 -2
  471. package/src/scripts/call-agent.ts +5 -1
  472. package/src/server/realtime-voice.ts +1 -1
  473. package/src/styles/agent-native.css +0 -24
  474. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  475. package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  476. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
  477. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
  478. package/src/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
  479. package/src/templates/chat/app/design-system.ts +3 -0
  480. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  481. package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  482. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
  483. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
  484. package/src/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
  485. package/src/templates/default/app/design-system.ts +3 -0
  486. package/src/templates/default/app/root.tsx +5 -2
  487. package/src/templates/default/package.json +1 -0
  488. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  489. package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  490. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +37 -2
  491. package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
  492. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
  493. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
  494. package/src/vite/client.ts +39 -0
  495. package/corpus/templates/analytics/app/components/ui/calendar.tsx +0 -70
  496. package/corpus/templates/analytics/app/components/ui/chart.tsx +0 -386
  497. package/corpus/templates/calendar/app/components/ui/sonner.tsx +0 -58
  498. package/corpus/templates/forms/app/components/ui/calendar.tsx +0 -214
  499. package/corpus/templates/forms/app/components/ui/chart.tsx +0 -379
  500. package/corpus/templates/forms/app/components/ui/command.tsx +0 -153
  501. package/corpus/templates/forms/app/components/ui/context-menu.tsx +0 -198
  502. package/corpus/templates/forms/app/components/ui/menubar.tsx +0 -254
  503. package/corpus/templates/macros/app/components/ui/menubar.tsx +0 -238
  504. package/corpus/templates/macros/app/components/ui/progress.tsx +0 -26
  505. package/corpus/templates/mail/app/components/ui/calendar.tsx +0 -211
  506. package/corpus/templates/mail/app/components/ui/chart.tsx +0 -379
  507. package/corpus/templates/mail/app/components/ui/command.tsx +0 -153
  508. package/corpus/templates/mail/app/components/ui/context-menu.tsx +0 -198
  509. package/corpus/templates/mail/app/components/ui/menubar.tsx +0 -254
  510. package/corpus/templates/tasks/app/components/ui/accordion.tsx +0 -56
  511. package/corpus/templates/tasks/app/components/ui/aspect-ratio.tsx +0 -5
  512. package/corpus/templates/tasks/app/components/ui/breadcrumb.tsx +0 -115
  513. package/corpus/templates/tasks/app/components/ui/calendar.tsx +0 -70
  514. package/corpus/templates/tasks/app/components/ui/carousel.tsx +0 -260
  515. package/corpus/templates/tasks/app/components/ui/chart.tsx +0 -379
  516. package/corpus/templates/tasks/app/components/ui/form.tsx +0 -177
  517. package/corpus/templates/tasks/app/components/ui/hover-card.tsx +0 -27
  518. package/corpus/templates/tasks/app/components/ui/input-otp.tsx +0 -69
  519. package/corpus/templates/tasks/app/components/ui/menubar.tsx +0 -254
  520. package/corpus/templates/tasks/app/components/ui/navigation-menu.tsx +0 -128
  521. package/corpus/templates/tasks/app/components/ui/pagination.tsx +0 -121
  522. package/corpus/templates/tasks/app/components/ui/resizable.tsx +0 -43
  523. package/corpus/templates/tasks/app/components/ui/sidebar.tsx +0 -782
  524. package/corpus/templates/tasks/app/components/ui/toggle.tsx +0 -43
@@ -0,0 +1,445 @@
1
+ ---
2
+ title: "Custom Design Systems"
3
+ description: "Use your company’s React design system across Agent Native apps and shared Toolkit experiences without replacing Agent Native behavior."
4
+ ---
5
+
6
+ # Custom Design Systems
7
+
8
+ Agent Native can render app-owned screens and shared Toolkit experiences with
9
+ your company’s React components. Register an explicit, typed adapter once; the
10
+ same feature controllers continue to own actions, state, accessibility
11
+ requirements, and agent-visible behavior.
12
+
13
+ The adapter contract does not require Tailwind, shadcn, Radix, `className`, or
14
+ any particular styling runtime. A component may use a theme provider,
15
+ CSS-in-JS, CSS Modules, React Aria, or ordinary CSS. `className` and `style` are
16
+ optional interoperability hooks, not styling requirements.
17
+
18
+ See the runnable [Material UI Chat example](https://github.com/BuilderIO/agent-native/tree/main/examples/chat-mui) and [Ant Design Chat example](https://github.com/BuilderIO/agent-native/tree/main/examples/chat-antd) for complete adapters, theme-provider wiring, dark mode, and documented v1 gaps.
19
+
20
+ ## Choose the smallest customization tier
21
+
22
+ | Tier | Use it for | What remains shared |
23
+ | ----------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
24
+ | **Theme tokens** | Fast brand alignment across default and not-yet-adapted surfaces | Toolkit components, controllers, and behavior |
25
+ | **Semantic components** | Company controls such as buttons, fields, pickers, dialogs, menus, and surfaces | Feature controllers and product contracts |
26
+ | **Product slots** | A company-specific layout for one feature, such as the connection card or chat-history rail | The feature’s controller and actions |
27
+ | **Eject** | Product behavior or structure that cannot be expressed by a supported slot | Core runtime contracts; the ejected feature becomes app-owned |
28
+
29
+ Start with tokens, add semantic components where your system has an equivalent,
30
+ use a product slot for feature-level composition, and eject only the smallest
31
+ unit that still needs ownership.
32
+
33
+ ## Register an adapter
34
+
35
+ Customer adapters are ordinary npm packages. Import one explicitly in
36
+ `app/design-system.ts`; Agent Native never scans dependencies, auto-detects a
37
+ library, or loads components from JSON.
38
+
39
+ Keep the build-time theme in a dependency-light module so Vite does not need to
40
+ evaluate the customer React package while loading its config:
41
+
42
+ ```ts filename="app/design-system-theme.ts"
43
+ import { defineTheme } from "@agent-native/toolkit/design-system";
44
+
45
+ export const acmeTheme = defineTheme({
46
+ colors: {
47
+ light: {
48
+ background: "#ffffff",
49
+ foreground: "oklch(24% 0.03 255)",
50
+ primary: "rgb(33 82 255)",
51
+ "primary-foreground": "white",
52
+ border: "hsl(218 20% 88%)",
53
+ },
54
+ dark: {
55
+ background: "#11131a",
56
+ foreground: "#f7f8fb",
57
+ primary: "oklch(72% 0.17 259)",
58
+ "primary-foreground": "#07102f",
59
+ },
60
+ },
61
+ radius: "0.625rem",
62
+ typography: { fontFamily: "Acme Sans, sans-serif" },
63
+ });
64
+ ```
65
+
66
+ ```tsx filename="app/design-system.ts"
67
+ import { defineDesignSystem } from "@agent-native/toolkit/design-system";
68
+ import { acmeComponents } from "@acme/agent-native-design-system";
69
+
70
+ import { acmeTheme } from "@/design-system-theme";
71
+
72
+ export const designSystem = defineDesignSystem({
73
+ name: "Acme",
74
+ theme: acmeTheme,
75
+ components: acmeComponents,
76
+ });
77
+ ```
78
+
79
+ Wire the definition through the app’s provider seam:
80
+
81
+ ```tsx filename="app/components/ui/toolkit-provider.tsx"
82
+ import { ToolkitProvider } from "@agent-native/toolkit/provider";
83
+
84
+ import { designSystem } from "@/design-system";
85
+
86
+ export function AppToolkitProvider({
87
+ children,
88
+ }: {
89
+ children: React.ReactNode;
90
+ }) {
91
+ return (
92
+ <ToolkitProvider designSystem={designSystem}>{children}</ToolkitProvider>
93
+ );
94
+ }
95
+ ```
96
+
97
+ Partial adapters are supported. Any component you omit uses Agent Native’s
98
+ default adapter. If one custom component throws while rendering, a
99
+ per-component error boundary logs the failure and renders the default component
100
+ for that control; the rest of the custom system stays active.
101
+
102
+ Two complete Chat applications keep this contract honest against real design
103
+ systems: [the Material UI example](https://github.com/BuilderIO/agent-native/tree/main/examples/chat-mui)
104
+ uses Emotion, `ThemeProvider`, and MUI’s overlay stack, while [the Ant Design
105
+ example](https://github.com/BuilderIO/agent-native/tree/main/examples/chat-antd)
106
+ uses `ConfigProvider` and Ant Design’s form and overlay primitives. Their
107
+ `app/design-system.tsx` files are the primary integration references; the Acme
108
+ fixture above remains intentionally small and is used for unit tests.
109
+
110
+ The older `components={{ Button }}` provider API remains compatible and is
111
+ treated as the lowest-precedence `ActionButton` adapter. If both are supplied,
112
+ `designSystem.components.ActionButton` wins and development builds log a
113
+ warning.
114
+
115
+ ## Build-time theme tokens
116
+
117
+ `defineTheme` accepts standard CSS colors, including hex, `rgb()`, `hsl()`, and
118
+ OKLCH. The Core Vite plugin validates and normalizes them to Agent Native’s
119
+ existing semantic variables. Dark colors fall back token-by-token to the light
120
+ palette; Agent Native does not derive a dark palette automatically.
121
+
122
+ Pass the theme to the Vite plugin:
123
+
124
+ ```tsx filename="vite.config.ts"
125
+ import { agentNative } from "@agent-native/core/vite";
126
+ import { defineConfig } from "vite";
127
+
128
+ import { acmeTheme } from "./app/design-system-theme";
129
+
130
+ export default defineConfig({
131
+ plugins: [...agentNative({ designSystemTheme: acmeTheme })],
132
+ });
133
+ ```
134
+
135
+ Import the virtual stylesheet once from the app root so both development and
136
+ React Router production builds include it:
137
+
138
+ ```tsx filename="app/root.tsx"
139
+ import "virtual:agent-native-theme.css";
140
+ ```
141
+
142
+ The plugin generates that virtual theme CSS at build time. Its semantic tokens
143
+ override the scaffold's fallback values without removing fallback-only tokens.
144
+ Version 1 does not choose a theme per request or per organization.
145
+
146
+ ## The 17 semantic contracts
147
+
148
+ The contract is deliberately about meaning and behavior, not DOM shape or
149
+ visual implementation. Values and open state are controlled wherever product
150
+ state must remain portable.
151
+
152
+ ### Leaf contracts
153
+
154
+ | Component | Required contract | Important optional semantics |
155
+ | -------------- | ------------------------------------- | -------------------------------------------------------------------------------- |
156
+ | `ActionButton` | `children` and `onPress` as needed | `intent`, `emphasis`, `size`, `pending`, icons, disabled state, button type, ref |
157
+ | `IconButton` | accessible `label`, `icon` | button semantics matching `ActionButton` |
158
+ | `TextField` | controlled string `value`, `onChange` | label, description, error, input type/mode, validation, adornments, events, ref |
159
+ | `TextArea` | controlled string `value`, `onChange` | label, description, error, rows, validation, events, ref |
160
+ | `Spinner` | progress indicator | accessible label and semantic size |
161
+ | `Skeleton` | non-interactive placeholder | width, height, line/rectangle/circle shape |
162
+ | `Status` | `children` | neutral/info/success/warning/danger tone, icon, size |
163
+ | `Surface` | `children` | semantic element, elevation, padding, interactive press behavior |
164
+ | `Avatar` | accessible `name` | image source, fallback, size, presence status, image ref |
165
+
166
+ ### Behavior contracts
167
+
168
+ | Component | Required contract | Behavior the adapter owns |
169
+ | ---------- | -------------------------------------------------- | -------------------------------------------------------------------------------- |
170
+ | `Tooltip` | trigger and content | controlled/uncontrolled open state, delay, placement, portal behavior |
171
+ | `Menu` | trigger, items/sections, `onAction` | keyboard navigation, nested items, selection, dismissal, portal behavior |
172
+ | `Popover` | trigger and children | controlled/uncontrolled open state, dismissal, focus, modality, portal behavior |
173
+ | `Dialog` | controlled `open`, `onOpenChange`, title, children | dialog semantics, dismissal, initial/restore focus, portal and stacking behavior |
174
+ | `Picker` | `mode`, options, controlled `value`, `onChange` | select/combobox semantics, search/open state, validation, loading/empty state |
175
+ | `Checkbox` | controlled `checked`, `onChange` | checkbox semantics, indeterminate/required/invalid state |
176
+ | `Switch` | controlled `checked`, `onChange` | switch semantics and disabled state |
177
+ | `Tabs` | items, controlled `value`, `onChange` | tab semantics, orientation, automatic/manual activation |
178
+
179
+ `intent` is `primary`, `neutral`, or `danger`; `emphasis` is `solid`,
180
+ `outline`, or `ghost`; and size is `compact`, `default`, or `large`. These
181
+ values describe purpose, not a class or variant name from the default UI.
182
+
183
+ The default adapter gives these visual props observable behavior as well as
184
+ semantic attributes: button, spinner, status, skeleton, avatar, and dialog
185
+ sizes select concrete variants; skeleton shape and avatar presence status
186
+ change their presentation; menu selection and `closeOnAction` affect behavior.
187
+ Custom adapters remain responsible for mapping the same meanings to their own
188
+ visual vocabulary.
189
+
190
+ `Picker` covers select and combobox behavior only. Date picking is not part of
191
+ the version 1 semantic contract.
192
+
193
+ ### What the Chat examples actually render
194
+
195
+ The runnable MUI and Ant Design Chat examples register all 17 components and
196
+ render 16/17 through those adapters in the normalized shared surfaces:
197
+
198
+ | Adapter component | Reachable proving surface |
199
+ | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
200
+ | `ActionButton`, `IconButton` | Chat-history rail, settings actions, sharing actions |
201
+ | `TextField`, `TextArea`, `Picker`, `Checkbox`, `Switch`, `Tabs` | Settings and sharing controls |
202
+ | `Dialog`, `Avatar`, `Status` | Core Share dialog on each example's shipped `/design-system-proof` route |
203
+ | `Tooltip`, `Popover`, `Spinner`, `Skeleton` | Agent-panel, runs-tray, and sidebar chrome |
204
+ | `Surface` | Builder connection card |
205
+ | `Menu` | Explicit gap: the agent-panel header menu embeds the live `RunsTrayMenuItem` compound submenu, which the v1 data-only menu contract cannot express |
206
+
207
+ The `Menu` row is intentionally called out rather than counted as bridged.
208
+ The everyday Chat share button remains the legacy popover; the proof route makes
209
+ the complete Core `ShareDialog` reachable without misrepresenting that popover.
210
+ The assistant-ui composer/message renderer, cmdk command-menu internals, and
211
+ Tiptap editor remain v1 non-goals. Their surrounding chrome is tokenized or
212
+ bridged where the semantic contract fits. If a product needs arbitrary nested
213
+ menu content, use a product slot or propose a contract extension instead of
214
+ silently mixing the default menu into a custom adapter.
215
+
216
+ The framework-owned sign-in shell is outside both the semantic bridge and the
217
+ build-time token tier in v1; the authenticated settings, sharing, history rail,
218
+ and agent-panel surfaces are the design-system proving surfaces. The main Chat
219
+ canvas remains tokens-only because the assistant-ui renderer is a documented
220
+ v1 non-goal. In the runnable examples, dark mode is exercised from the
221
+ `Cmd/Ctrl+K` Appearance command rather than a second settings section.
222
+
223
+ ## Overlays, portals, and focus
224
+
225
+ Behavior components may use your design system’s overlay and focus
226
+ implementation wholesale. They do not need to wrap Radix. They must honor the
227
+ semantic contract, including controlled state, accessible roles, and the
228
+ provided `portalContainer`, `initialFocusRef`, and `restoreFocusRef` seams.
229
+
230
+ This matters when a native design-system dialog opens from a Radix-hosted
231
+ Toolkit surface. The adapter owns its overlay stack, while the seams let both
232
+ systems agree on the portal layer, z-index order, initial focus, and focus
233
+ restoration. Test nested and adjacent overlays in the real app, not only in an
234
+ isolated component explorer.
235
+
236
+ ## Headless feature controllers and product slots
237
+
238
+ Semantic components are the shared vocabulary. Feature controllers are the
239
+ behavior boundary. A controller owns state transitions, actions, tracking, and
240
+ the view model; both the default view and a product slot consume that same
241
+ controller.
242
+
243
+ ```tsx
244
+ <BuilderConnectCard
245
+ className="connection-card"
246
+ render={({ viewModel, className }) => (
247
+ <AcmeConnectionPanel
248
+ className={className}
249
+ title={viewModel.title}
250
+ status={viewModel.status}
251
+ pending={viewModel.action?.pending ?? false}
252
+ onConnect={viewModel.action?.onPress}
253
+ />
254
+ )}
255
+ />
256
+ ```
257
+
258
+ This is feature-level headless UI, not a second set of low-level hooks for every
259
+ widget. `BuilderConnectCard` and `ChatHistoryRail` are the first proving slices;
260
+ settings and sharing follow the same controller/default-view/custom-view
261
+ invariant.
262
+
263
+ `ChatHistoryRail` keeps one deliberately opaque `renderRail` slot in v1. The
264
+ slot replaces the rail view wholesale and receives the shared controller plus
265
+ list props; discrete header, footer, and row slots are deferred until a second
266
+ product needs them. This bounds the API while keeping history state and actions
267
+ on the shared controller.
268
+
269
+ If a slot cannot express the required product change, inspect and eject the
270
+ smallest published unit:
271
+
272
+ ```bash
273
+ agent-native eject --list
274
+ agent-native eject inspect toolkit/design-system
275
+ agent-native eject toolkit/design-system --app my-app --apply
276
+ ```
277
+
278
+ Ejection transfers ownership; it does not fork Core auth, actions, persistence,
279
+ access checks, chat transport, or agent execution.
280
+
281
+ ## Run the conformance kit
282
+
283
+ Export a complete component map from the customer package and run the shipped
284
+ test kit in a browser-like test environment:
285
+
286
+ ```tsx filename="design-system.conformance.spec.tsx"
287
+ import { describe, it } from "vitest";
288
+ import { assertDesignSystemConformance } from "@agent-native/toolkit/conformance";
289
+ import { DESIGN_SYSTEM_CONTRACT_VERSION } from "@agent-native/toolkit/design-system";
290
+ import { acmeComponents } from "@acme/agent-native-design-system";
291
+
292
+ describe("Acme Agent Native adapter", () => {
293
+ it("conforms", async () => {
294
+ await assertDesignSystemConformance({
295
+ adapterName: "Acme",
296
+ components: acmeComponents,
297
+ contractVersion: DESIGN_SYSTEM_CONTRACT_VERSION,
298
+ });
299
+ });
300
+ });
301
+ ```
302
+
303
+ The suite checks all 17 exports, controlled values and open state, accessible
304
+ roles, keyboard interaction, selection, portal targeting, z-index
305
+ interoperability, initial focus, and focus restoration. Run it in the adapter
306
+ package’s CI and retain a small app-level overlay test for provider-specific
307
+ composition.
308
+
309
+ Contract evolution follows semantic versioning:
310
+
311
+ - New components and optional props are a compatible minor change.
312
+ - New required props, removed components/props, or behavioral contract changes
313
+ require a new contract major.
314
+ - The conformance kit fails when the adapter’s contract major and Toolkit’s
315
+ contract major differ.
316
+
317
+ ## Adapter recipes
318
+
319
+ ### MUI-style theme-provider systems
320
+
321
+ The [Chat + Material UI example](https://github.com/BuilderIO/agent-native/tree/main/examples/chat-mui) is the primary worked reference. Its single
322
+ `app/design-system.tsx` module exports the semantic adapter, the MUI light and
323
+ dark `createTheme` values, and the `defineTheme` token source. The app's
324
+ `AppToolkitProvider` keeps the MUI `ThemeProvider` above shared Toolkit
325
+ surfaces, while `vite.config.ts` imports that same `theme` value for build-time
326
+ CSS generation. This keeps Emotion styles, MUI portals, and Agent Native
327
+ tokens on one source of truth.
328
+
329
+ Keep the company theme provider above `AppToolkitProvider`, and adapt semantic
330
+ props at the package boundary. Map `intent`, `emphasis`, and `size` to your
331
+ system’s own vocabulary inside the adapter—not in Agent Native feature code.
332
+ For overlays, forward `portalContainer` to the design system’s container or
333
+ portal prop and implement `initialFocusRef`/`restoreFocusRef` using its focus
334
+ manager.
335
+
336
+ ```tsx
337
+ export const ActionButton: DesignSystemComponents["ActionButton"] = ({
338
+ intent = "neutral",
339
+ emphasis = "solid",
340
+ pending,
341
+ onPress,
342
+ children,
343
+ ...props
344
+ }) => (
345
+ <CompanyButton
346
+ {...props}
347
+ color={intent === "danger" ? "error" : intent}
348
+ variant={emphasis === "solid" ? "contained" : emphasis}
349
+ loading={pending}
350
+ onClick={onPress}
351
+ >
352
+ {children}
353
+ </CompanyButton>
354
+ );
355
+ ```
356
+
357
+ Do not copy a feature’s theme provider into each adapter component. Install it
358
+ once at the app boundary so portals and overlays inherit the same context.
359
+
360
+ The [Chat MUI adapter](https://github.com/BuilderIO/agent-native/blob/main/examples/chat-mui/app/design-system.tsx)
361
+ is the worked example: it exports one `defineTheme` value, imports that value
362
+ into `defineDesignSystem`, and imports the same module from `vite.config.ts`.
363
+ That single source of truth keeps the MUI light/dark provider tokens and the
364
+ build-time semantic CSS tokens aligned without runtime theme generation.
365
+
366
+ ### React Aria-based systems
367
+
368
+ Use React Aria components or hooks to implement the semantics directly. Preserve
369
+ controlled `value`/`open` props and forward their change callbacks rather than
370
+ creating a second state store. For behavior contracts, use your overlay provider
371
+ and focus scope, set its portal root from `portalContainer`, and connect
372
+ initial/restore refs to the focus-management API. The conformance suite is the
373
+ minimum behavior check; your design system remains responsible for its full
374
+ keyboard and screen-reader test matrix.
375
+
376
+ ```tsx
377
+ export const Checkbox: DesignSystemComponents["Checkbox"] = ({
378
+ checked,
379
+ onChange,
380
+ label,
381
+ ...props
382
+ }) => (
383
+ <AriaCheckbox {...props} isSelected={checked} onChange={onChange}>
384
+ {label}
385
+ </AriaCheckbox>
386
+ );
387
+ ```
388
+
389
+ ### CSS Modules and plain React
390
+
391
+ The adapter can be ordinary React and CSS Modules. Ignore `className` entirely
392
+ when it would bypass your component’s style contract; it is optional. Keep DOM
393
+ roles, accessible names, keyboard behavior, and controlled state explicit.
394
+
395
+ ```tsx
396
+ import styles from "./action-button.module.css";
397
+
398
+ export const ActionButton: DesignSystemComponents["ActionButton"] = ({
399
+ intent = "neutral",
400
+ emphasis = "solid",
401
+ pending,
402
+ disabled,
403
+ onPress,
404
+ children,
405
+ elementRef,
406
+ }) => (
407
+ <button
408
+ ref={elementRef}
409
+ className={styles[`${intent}-${emphasis}`]}
410
+ disabled={disabled || pending}
411
+ aria-busy={pending || undefined}
412
+ onClick={onPress}
413
+ >
414
+ {children}
415
+ </button>
416
+ );
417
+ ```
418
+
419
+ ## Version 1 boundaries
420
+
421
+ The semantic bridge does not replace every third-party UI ecosystem in version
422
+
423
+ 1. These surfaces receive theme tokens and feature slots where available, but
424
+ their internal widgets are not semantic-adapter contracts yet:
425
+
426
+ - `@assistant-ui/react` chat and composer internals
427
+ - Tiptap editor kits
428
+ - `cmdk`, `vaul`, Recharts, and `react-day-picker`
429
+ - date-picker components (the `Picker` contract is select/combobox only)
430
+ - Dispatch’s independent primitive fork
431
+ - Pinpoint’s Solid.js and Shadow DOM UI
432
+
433
+ These boundaries are explicit so an adapter package can make accurate support
434
+ claims. Propose a new semantic component only when the same meaning and behavior
435
+ is useful across more than one feature; use product slots or eject for
436
+ one-feature differences.
437
+
438
+ ## What’s next
439
+
440
+ - [**Toolkit UI Primitives**](/docs/toolkit-ui) — local adapters, provider
441
+ wiring, and shared primitive imports.
442
+ - [**Agent-Native Toolkit**](/docs/agent-native-toolkit) — reusable feature
443
+ ownership and package boundaries.
444
+ - [**Settings Kit**](/docs/toolkit-settings) and [**Sharing Kit**](/docs/toolkit-sharing)
445
+ — shared feature controllers that preserve app actions and access contracts.
@@ -8,6 +8,14 @@ description: "How to use @agent-native/toolkit UI primitives, the local app-adap
8
8
  Toolkit UI primitives live under `@agent-native/toolkit/ui/*`. They are the
9
9
  shared shadcn-style building blocks used by templates and reusable kits.
10
10
 
11
+ If your company already has a React component library, register it through the
12
+ semantic design-system bridge instead of replacing feature code. The bridge is
13
+ styling-runtime agnostic, supports partial adapters with per-control fallback,
14
+ and lets shared Toolkit and Core-owned feature views consume the same company
15
+ components. See [Custom Design Systems](/docs/custom-design-system) for the 17
16
+ semantic contracts, build-time theme tokens, conformance tests, and adapter
17
+ recipes.
18
+
11
19
  <WireframeBlock id="doc-block-toolkit-ui-primitives">
12
20
  <Screen
13
21
  surface="desktop"
@@ -105,6 +113,14 @@ keep importing `@agent-native/toolkit/ui/*` without adopting local adapters.
105
113
  Core also keeps old imports working through its own re-export shims for code
106
114
  written before Toolkit adapters existed.
107
115
 
116
+ For new customization, prefer `designSystem={designSystem}` over the legacy
117
+ `components={{ Button }}` override. The design-system adapter uses semantic
118
+ props such as intent, emphasis, pending state, controlled values, and controlled
119
+ open state rather than shadcn variant names. When both APIs provide the button,
120
+ `designSystem.components.ActionButton` wins. A missing or failed custom control
121
+ falls back to Toolkit’s default adapter without disabling the rest of the
122
+ registered system.
123
+
108
124
  ## Shell hooks {#shell-hooks}
109
125
 
110
126
  Toolkit includes small shell helpers and hooks that are useful across apps:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.117.2",
3
+ "version": "0.118.0",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -390,7 +390,7 @@
390
390
  "yjs": "^13.6.31",
391
391
  "zod": "^4.3.6",
392
392
  "@agent-native/recap-cli": "0.5.1",
393
- "@agent-native/toolkit": "^0.9.1"
393
+ "@agent-native/toolkit": "^0.10.0"
394
394
  },
395
395
  "devDependencies": {
396
396
  "@ai-sdk/anthropic": "^3.0.71",
package/src/a2a/types.ts CHANGED
@@ -36,6 +36,7 @@ export interface Message {
36
36
  export type TaskState =
37
37
  | "submitted"
38
38
  | "working"
39
+ | "processing"
39
40
  | "completed"
40
41
  | "failed"
41
42
  | "canceled"
@@ -290,7 +290,7 @@ export type AgentChatEvent =
290
290
  */
291
291
  type: "agent_call_progress";
292
292
  agent: string;
293
- /** Remote A2A task state for this poll, e.g. "working" | "submitted". */
293
+ /** Remote A2A task state for this poll, e.g. "working" | "processing". */
294
294
  state: string;
295
295
  /** Elapsed wall-clock seconds since the cross-app call began. */
296
296
  elapsedSeconds: number;