@agent-native/core 0.83.0 → 0.84.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 (424) hide show
  1. package/README.md +2 -2
  2. package/corpus/README.md +1 -1
  3. package/corpus/core/CHANGELOG.md +28 -0
  4. package/corpus/core/README.md +2 -2
  5. package/corpus/core/docs/content/cloneable-saas.mdx +2 -2
  6. package/corpus/core/docs/content/faq.mdx +1 -1
  7. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
  8. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +1 -1
  9. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +1 -1
  10. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
  11. package/corpus/core/docs/content/locales/de-DE/faq.mdx +1 -1
  12. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +1 -1
  13. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
  14. package/corpus/core/docs/content/locales/es-ES/faq.mdx +1 -1
  15. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +1 -1
  16. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  17. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +1 -1
  18. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +1 -1
  19. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
  20. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +1 -1
  21. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +1 -1
  22. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  23. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +1 -1
  24. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +1 -1
  25. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
  26. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +1 -1
  27. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +1 -1
  28. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
  29. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +1 -1
  30. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +1 -1
  31. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
  32. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +1 -1
  33. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +1 -1
  34. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
  35. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +1 -1
  36. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +1 -1
  37. package/corpus/core/docs/content/template-chat.mdx +1 -1
  38. package/corpus/core/package.json +1 -1
  39. package/corpus/core/src/agent/engine/builtin.ts +1 -1
  40. package/corpus/core/src/agent/engine/output-tokens.ts +1 -1
  41. package/corpus/core/src/agent/harness/acp-adapter.ts +28 -4
  42. package/corpus/core/src/agent/harness/ai-sdk-adapter.ts +3 -0
  43. package/corpus/core/src/agent/harness/translate.ts +3 -0
  44. package/corpus/core/src/agent/harness/types.ts +1 -0
  45. package/corpus/core/src/agent/model-config.ts +34 -13
  46. package/corpus/core/src/agent/production-agent.ts +87 -10
  47. package/corpus/core/src/agent/thread-data-builder.ts +29 -4
  48. package/corpus/core/src/agent/tool-call-journal.ts +109 -48
  49. package/corpus/core/src/agent/types.ts +6 -1
  50. package/corpus/core/src/cli/design-connect.ts +106 -0
  51. package/corpus/core/src/cli/gateway-helpers.ts +17 -0
  52. package/corpus/core/src/cli/recap.ts +0 -2
  53. package/corpus/core/src/cli/skills.ts +54 -16
  54. package/corpus/core/src/cli/workspace-dev.ts +29 -5
  55. package/corpus/core/src/client/AssistantChat.tsx +89 -42
  56. package/corpus/core/src/client/DefaultSpinner.tsx +8 -1
  57. package/corpus/core/src/client/chat/message-components.tsx +49 -1
  58. package/corpus/core/src/client/chat/repo-helpers.ts +71 -0
  59. package/corpus/core/src/client/chat/run-recovery.tsx +15 -5
  60. package/corpus/core/src/client/components/ApiKeySettings.tsx +8 -8
  61. package/corpus/core/src/client/components/CodeRequiredDialog.tsx +26 -15
  62. package/corpus/core/src/client/components/MissingKeyCard.tsx +13 -6
  63. package/corpus/core/src/client/composer/TiptapComposer.tsx +4 -3
  64. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +0 -1
  65. package/corpus/core/src/client/guided-questions.tsx +21 -27
  66. package/corpus/core/src/client/integrations/IntegrationCard.tsx +1 -1
  67. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +1 -1
  68. package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +2 -2
  69. package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +23 -19
  70. package/corpus/core/src/client/resources/ResourceEditor.tsx +18 -10
  71. package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
  72. package/corpus/core/src/client/settings/SettingsPanel.tsx +8 -3
  73. package/corpus/core/src/client/settings/useBuilderStatus.ts +8 -41
  74. package/corpus/core/src/client/useProductionAgent.ts +6 -2
  75. package/corpus/core/src/deploy/build.ts +1 -1
  76. package/corpus/core/src/observability/traces.ts +3 -3
  77. package/corpus/core/src/onboarding/default-steps.ts +1 -1
  78. package/corpus/core/src/scripts/agent-engines/manage-agent-engine.ts +1 -1
  79. package/corpus/core/src/scripts/agent-engines/set-agent-engine.ts +1 -1
  80. package/corpus/core/src/server/agent-chat-plugin.ts +177 -81
  81. package/corpus/core/src/server/core-routes-plugin.ts +7 -1
  82. package/corpus/core/src/server/open-route.ts +59 -40
  83. package/corpus/core/src/shared/reasoning-effort.ts +2 -0
  84. package/corpus/core/src/sharing/access.ts +22 -2
  85. package/corpus/core/src/sharing/registry.ts +18 -0
  86. package/corpus/core/src/styles/agent-native.css +104 -20
  87. package/corpus/core/src/styles/rich-markdown-editor.css +11 -10
  88. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +10 -10
  89. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +10 -10
  90. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +6 -5
  91. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +9 -9
  92. package/corpus/templates/analytics/app/global.css +4 -0
  93. package/corpus/templates/analytics/app/lib/chart-theme.ts +13 -0
  94. package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +22 -24
  95. package/corpus/templates/analytics/changelog/2026-06-30-dashboard-charts-now-use-theme-aware-tooltip-and-grid-colors.md +6 -0
  96. package/corpus/templates/analytics/changelog/2026-06-30-fixed-ask-composer-spacing-so-the-chat-field-has-a-comfortab.md +6 -0
  97. package/corpus/templates/calendar/AGENTS.md +4 -0
  98. package/corpus/templates/calendar/actions/connect-google-calendar.ts +80 -0
  99. package/corpus/templates/calendar/changelog/2026-06-30-calendar-now-gives-the-agent-a-safe-google-connection-link-i.md +6 -0
  100. package/corpus/templates/calendar/server/plugins/agent-chat.ts +4 -0
  101. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
  102. package/corpus/templates/content/app/global.css +6 -5
  103. package/corpus/templates/content/changelog/2026-06-30-editor-floating-toolbars-now-use-theme-aware-colors-in-light.md +6 -0
  104. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +6 -1
  105. package/corpus/templates/design/actions/add-localhost-screens.ts +63 -8
  106. package/corpus/templates/design/actions/apply-motion-edit.ts +12 -46
  107. package/corpus/templates/design/actions/list-design-native-assets.ts +2 -1
  108. package/corpus/templates/design/actions/migrate-board-objects-to-file.ts +49 -1
  109. package/corpus/templates/design/actions/navigate.ts +3 -12
  110. package/corpus/templates/design/actions/open-visual-edit.ts +341 -0
  111. package/corpus/templates/design/actions/view-screen.ts +1 -1
  112. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
  113. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +345 -14
  114. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +71 -91
  115. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +25 -27
  116. package/corpus/templates/design/app/components/design/DeviceFrame.tsx +1 -1
  117. package/corpus/templates/design/app/components/design/DrawOverlay.tsx +2 -2
  118. package/corpus/templates/design/app/components/design/EditPanel.tsx +1111 -570
  119. package/corpus/templates/design/app/components/design/LayersPanel.tsx +162 -32
  120. package/corpus/templates/design/app/components/design/MotionDock.tsx +268 -240
  121. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1038 -150
  122. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +1 -1
  123. package/corpus/templates/design/app/components/design/ReviewPanel.tsx +81 -102
  124. package/corpus/templates/design/app/components/design/StatesPanel.tsx +6 -6
  125. package/corpus/templates/design/app/components/design/TokensPanel.tsx +11 -11
  126. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -7
  127. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1129 -155
  128. package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +130 -37
  129. package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +24 -11
  130. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +184 -162
  131. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +137 -79
  132. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +13 -13
  133. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +8 -8
  134. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +2 -2
  135. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +4 -4
  136. package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +3 -3
  137. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +13 -7
  138. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -11
  139. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +4 -4
  140. package/corpus/templates/design/app/components/design/inspector/index.ts +2 -0
  141. package/corpus/templates/design/app/components/design/types.ts +19 -0
  142. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +61 -78
  143. package/corpus/templates/design/app/components/layout/Header.tsx +0 -1
  144. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -2
  145. package/corpus/templates/design/app/components/layout/Sidebar.tsx +0 -2
  146. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +5 -4
  147. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +1 -1
  148. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +2 -2
  149. package/corpus/templates/design/app/global.css +56 -0
  150. package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -5
  151. package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -7
  152. package/corpus/templates/design/app/hooks/use-question-flow.ts +3 -2
  153. package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +6 -4
  154. package/corpus/templates/design/app/i18n/zh-TW.ts +5 -14
  155. package/corpus/templates/design/app/i18n-data.ts +63 -188
  156. package/corpus/templates/design/app/lib/agent-chat.ts +13 -0
  157. package/corpus/templates/design/app/pages/DesignEditor.tsx +1428 -384
  158. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +9 -5
  159. package/corpus/templates/design/app/pages/DesignSystems.tsx +2 -2
  160. package/corpus/templates/design/app/pages/Index.tsx +49 -26
  161. package/corpus/templates/design/app/pages/NotFound.tsx +25 -8
  162. package/corpus/templates/design/app/pages/VisualEdit.tsx +17 -5
  163. package/corpus/templates/design/app/routes/examples.tsx +1 -7
  164. package/corpus/templates/design/app/routes/templates.tsx +7 -4
  165. package/corpus/templates/design/changelog/2026-06-30-board-shapes-and-auto-layout-controls-are-clearer.md +6 -0
  166. package/corpus/templates/design/changelog/2026-06-30-component-selections-now-use-purple-component-chrome-and-sho.md +6 -0
  167. package/corpus/templates/design/changelog/2026-06-30-constraints-now-stay-tucked-into-a-compact-inspector-preview.md +6 -0
  168. package/corpus/templates/design/changelog/2026-06-30-creating-a-component-now-opens-in-a-compact-inspector-popove.md +6 -0
  169. package/corpus/templates/design/changelog/2026-06-30-design-cards-no-longer-show-legacy-project-type-badges.md +6 -0
  170. package/corpus/templates/design/changelog/2026-06-30-design-chat-now-keeps-new-turns-in-the-visible-design-agent-.md +6 -0
  171. package/corpus/templates/design/changelog/2026-06-30-design-editor-panels-now-keep-their-compact-text-sizing-cons.md +6 -0
  172. package/corpus/templates/design/changelog/2026-06-30-design-no-longer-shows-the-connected-local-code-warning-bann.md +6 -0
  173. package/corpus/templates/design/changelog/2026-06-30-design-now-opens-to-the-files-panel-unless-a-generation-is-a.md +6 -0
  174. package/corpus/templates/design/changelog/2026-06-30-design-opens-with-a-cleaner-empty-canvas-and-loading-preview.md +6 -0
  175. package/corpus/templates/design/changelog/2026-06-30-design-tools-use-simpler-less-decorative-icons.md +6 -0
  176. package/corpus/templates/design/changelog/2026-06-30-dragging-absolute-elements-no-longer-shows-coordinate-labels.md +6 -0
  177. package/corpus/templates/design/changelog/2026-06-30-fixed-all-screens-opening-too-zoomed-in-by-default.md +6 -0
  178. package/corpus/templates/design/changelog/2026-06-30-fixed-the-public-design-assets-sidebar-so-native-components-.md +6 -0
  179. package/corpus/templates/design/changelog/2026-06-30-fixed-the-screen-overview-board-so-empty-board-space-no-long.md +6 -0
  180. package/corpus/templates/design/changelog/2026-06-30-full-view-screens-can-now-scroll-while-remaining-editable.md +6 -0
  181. package/corpus/templates/design/changelog/2026-06-30-inspector-element-headers-show-the-selected-html-tag-and-the.md +6 -0
  182. package/corpus/templates/design/changelog/2026-06-30-inspector-inputs-stay-compact-across-desktop-breakpoints.md +6 -0
  183. package/corpus/templates/design/changelog/2026-06-30-layers-can-be-multi-selected-from-the-canvas-and-edited-toge.md +6 -0
  184. package/corpus/templates/design/changelog/2026-06-30-local-visual-edit-links-can-edit-localhost-frames-without-si.md +6 -0
  185. package/corpus/templates/design/changelog/2026-06-30-localhost-visual-edit-frames-can-now-be-selected-and-edited.md +6 -0
  186. package/corpus/templates/design/changelog/2026-06-30-marquee-selection-now-works-inside-screens-multi-selected-la.md +6 -0
  187. package/corpus/templates/design/changelog/2026-06-30-motion-is-now-available-from-the-persistent-left-rail-and-th.md +6 -0
  188. package/corpus/templates/design/changelog/2026-06-30-motion-timeline-collapse-and-reopen-animations-feel-smoother.md +6 -0
  189. package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +6 -0
  190. package/corpus/templates/design/changelog/2026-06-30-new-board-shapes-now-start-with-neutral-gray-styling.md +6 -0
  191. package/corpus/templates/design/changelog/2026-06-30-new-designs-open-into-a-steadier-loading-state-before-the-ed.md +6 -0
  192. package/corpus/templates/design/changelog/2026-06-30-new-designs-show-a-loading-state-during-handoff-and-keep-edi.md +6 -0
  193. package/corpus/templates/design/changelog/2026-06-30-public-visual-edit-design-links-now-open-directly-instead-of.md +6 -0
  194. package/corpus/templates/design/changelog/2026-06-30-removed-the-confusing-states-section-from-the-design-editor-.md +6 -0
  195. package/corpus/templates/design/changelog/2026-06-30-removed-the-templates-gallery-from-design-navigation.md +6 -0
  196. package/corpus/templates/design/changelog/2026-06-30-share-stays-visible-as-soon-as-editable-designs-load.md +6 -0
  197. package/corpus/templates/design/changelog/2026-06-30-signed-out-save-and-share-controls-use-simpler-labels-and-op.md +6 -0
  198. package/corpus/templates/design/changelog/2026-06-30-text-added-on-the-canvas-now-focuses-cleanly-with-the-right-.md +6 -0
  199. package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-is-simpler-and-its-bottom.md +6 -0
  200. package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-now-follows-the-current-t.md +6 -0
  201. package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-child-layout-controls-o.md +6 -0
  202. package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-the-ask-ai-section-abov.md +6 -0
  203. package/corpus/templates/design/changelog/2026-06-30-the-design-review-panel-no-longer-shows-a-separate-inline-au.md +6 -0
  204. package/corpus/templates/design/changelog/2026-06-30-the-empty-designs-page-now-focuses-on-a-single-primary-new-d.md +6 -0
  205. package/corpus/templates/design/changelog/2026-06-30-the-layers-panel-header-stays-as-layers-while-multiple-items.md +6 -0
  206. package/corpus/templates/design/changelog/2026-06-30-the-missing-design-screen-now-uses-a-neutral-back-button.md +6 -0
  207. package/corpus/templates/design/changelog/2026-06-30-the-motion-timeline-now-closes-without-squeezing-the-canvas-.md +6 -0
  208. package/corpus/templates/design/changelog/2026-06-30-the-new-design-connect-ai-setup-now-lines-up-with-the-compos.md +6 -0
  209. package/corpus/templates/design/changelog/2026-06-30-the-screen-overview-board-now-blends-into-the-canvas-and-new.md +6 -0
  210. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-drops-now-show-screen-guides.md +6 -0
  211. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-keep-a-transparent-backdrop-and-.md +6 -0
  212. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-select-reliably-from-all-screens.md +6 -0
  213. package/corpus/templates/design/changelog/2026-06-30-visual-edit-can-open-and-refresh-localhost-screens-in-one-au.md +6 -0
  214. package/corpus/templates/design/e2e/helpers.ts +15 -4
  215. package/corpus/templates/design/server/db/index.ts +52 -0
  216. package/corpus/templates/design/server/plugins/agent-chat.ts +5 -0
  217. package/corpus/templates/design/server/plugins/auth.ts +1 -0
  218. package/corpus/templates/design/server/plugins/core-routes.ts +4 -0
  219. package/corpus/templates/design/shared/board-file.ts +380 -5
  220. package/corpus/templates/design/shared/board-objects.ts +2 -2
  221. package/corpus/templates/design/shared/code-layer.ts +50 -6
  222. package/corpus/templates/design/shared/motion-compiler.ts +27 -0
  223. package/corpus/templates/macros/app/components/DailyProgress.tsx +41 -37
  224. package/corpus/templates/macros/app/components/ExerciseCard.tsx +2 -2
  225. package/corpus/templates/macros/app/components/MealCard.tsx +2 -2
  226. package/corpus/templates/macros/app/components/VoiceDictation.tsx +1 -1
  227. package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -1
  228. package/corpus/templates/macros/app/components/WeightCard.tsx +2 -2
  229. package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
  230. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -1
  231. package/corpus/templates/macros/app/routes/_index.tsx +5 -5
  232. package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
  233. package/corpus/templates/macros/changelog/2026-06-30-dashboard-loading-and-chart-surfaces-now-use-theme-aware-col.md +6 -0
  234. package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +14 -11
  235. package/corpus/templates/mail/app/global.css +3 -2
  236. package/corpus/templates/mail/changelog/2026-06-30-compose-floating-toolbars-now-use-theme-aware-colors-in-ligh.md +6 -0
  237. package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
  238. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +3 -3
  239. package/corpus/templates/slides/app/global.css +10 -0
  240. package/corpus/templates/slides/app/pages/Index.tsx +55 -51
  241. package/corpus/templates/slides/changelog/2026-06-30-deck-thumbnails-collapse-cleanly-to-one-column-when-the-chat.md +6 -0
  242. package/dist/agent/engine/anthropic-engine.d.ts +2 -2
  243. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  244. package/dist/agent/engine/builder-engine.d.ts +2 -2
  245. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  246. package/dist/agent/engine/builtin.js +1 -1
  247. package/dist/agent/engine/builtin.js.map +1 -1
  248. package/dist/agent/engine/output-tokens.js +1 -1
  249. package/dist/agent/engine/output-tokens.js.map +1 -1
  250. package/dist/agent/harness/acp-adapter.d.ts +4 -1
  251. package/dist/agent/harness/acp-adapter.d.ts.map +1 -1
  252. package/dist/agent/harness/acp-adapter.js +19 -2
  253. package/dist/agent/harness/acp-adapter.js.map +1 -1
  254. package/dist/agent/harness/ai-sdk-adapter.d.ts.map +1 -1
  255. package/dist/agent/harness/ai-sdk-adapter.js +3 -0
  256. package/dist/agent/harness/ai-sdk-adapter.js.map +1 -1
  257. package/dist/agent/harness/translate.d.ts.map +1 -1
  258. package/dist/agent/harness/translate.js +3 -0
  259. package/dist/agent/harness/translate.js.map +1 -1
  260. package/dist/agent/harness/types.d.ts +1 -0
  261. package/dist/agent/harness/types.d.ts.map +1 -1
  262. package/dist/agent/harness/types.js.map +1 -1
  263. package/dist/agent/model-config.d.ts +21 -20
  264. package/dist/agent/model-config.d.ts.map +1 -1
  265. package/dist/agent/model-config.js +31 -13
  266. package/dist/agent/model-config.js.map +1 -1
  267. package/dist/agent/production-agent.d.ts.map +1 -1
  268. package/dist/agent/production-agent.js +85 -10
  269. package/dist/agent/production-agent.js.map +1 -1
  270. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  271. package/dist/agent/thread-data-builder.js +27 -6
  272. package/dist/agent/thread-data-builder.js.map +1 -1
  273. package/dist/agent/tool-call-journal.d.ts +11 -9
  274. package/dist/agent/tool-call-journal.d.ts.map +1 -1
  275. package/dist/agent/tool-call-journal.js +92 -40
  276. package/dist/agent/tool-call-journal.js.map +1 -1
  277. package/dist/agent/types.d.ts +5 -1
  278. package/dist/agent/types.d.ts.map +1 -1
  279. package/dist/agent/types.js.map +1 -1
  280. package/dist/cli/design-connect.d.ts.map +1 -1
  281. package/dist/cli/design-connect.js +84 -0
  282. package/dist/cli/design-connect.js.map +1 -1
  283. package/dist/cli/gateway-helpers.d.ts +4 -0
  284. package/dist/cli/gateway-helpers.d.ts.map +1 -1
  285. package/dist/cli/gateway-helpers.js +9 -0
  286. package/dist/cli/gateway-helpers.js.map +1 -1
  287. package/dist/cli/recap.d.ts.map +1 -1
  288. package/dist/cli/recap.js +0 -2
  289. package/dist/cli/recap.js.map +1 -1
  290. package/dist/cli/skills.d.ts.map +1 -1
  291. package/dist/cli/skills.js +54 -16
  292. package/dist/cli/skills.js.map +1 -1
  293. package/dist/cli/workspace-dev.d.ts.map +1 -1
  294. package/dist/cli/workspace-dev.js +33 -6
  295. package/dist/cli/workspace-dev.js.map +1 -1
  296. package/dist/client/AssistantChat.d.ts.map +1 -1
  297. package/dist/client/AssistantChat.js +72 -26
  298. package/dist/client/AssistantChat.js.map +1 -1
  299. package/dist/client/DefaultSpinner.d.ts.map +1 -1
  300. package/dist/client/DefaultSpinner.js +8 -1
  301. package/dist/client/DefaultSpinner.js.map +1 -1
  302. package/dist/client/chat/message-components.d.ts +7 -1
  303. package/dist/client/chat/message-components.d.ts.map +1 -1
  304. package/dist/client/chat/message-components.js +37 -1
  305. package/dist/client/chat/message-components.js.map +1 -1
  306. package/dist/client/chat/repo-helpers.d.ts +1 -0
  307. package/dist/client/chat/repo-helpers.d.ts.map +1 -1
  308. package/dist/client/chat/repo-helpers.js +59 -0
  309. package/dist/client/chat/repo-helpers.js.map +1 -1
  310. package/dist/client/chat/run-recovery.d.ts.map +1 -1
  311. package/dist/client/chat/run-recovery.js +4 -4
  312. package/dist/client/chat/run-recovery.js.map +1 -1
  313. package/dist/client/components/ApiKeySettings.js +8 -8
  314. package/dist/client/components/ApiKeySettings.js.map +1 -1
  315. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  316. package/dist/client/components/CodeRequiredDialog.js +24 -15
  317. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  318. package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
  319. package/dist/client/components/MissingKeyCard.js +11 -6
  320. package/dist/client/components/MissingKeyCard.js.map +1 -1
  321. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  322. package/dist/client/composer/TiptapComposer.js +4 -3
  323. package/dist/client/composer/TiptapComposer.js.map +1 -1
  324. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  325. package/dist/client/extensions/ExtensionsSidebarSection.js +1 -1
  326. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  327. package/dist/client/guided-questions.d.ts.map +1 -1
  328. package/dist/client/guided-questions.js +6 -6
  329. package/dist/client/guided-questions.js.map +1 -1
  330. package/dist/client/integrations/IntegrationCard.js +1 -1
  331. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  332. package/dist/client/integrations/IntegrationsPanel.js +1 -1
  333. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  334. package/dist/client/onboarding/OnboardingBanner.js +2 -2
  335. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  336. package/dist/client/onboarding/OnboardingPanel.js +23 -19
  337. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  338. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  339. package/dist/client/resources/ResourceEditor.js +13 -10
  340. package/dist/client/resources/ResourceEditor.js.map +1 -1
  341. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  342. package/dist/client/resources/ResourcesPanel.js +2 -1
  343. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  344. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  345. package/dist/client/settings/SettingsPanel.js +8 -3
  346. package/dist/client/settings/SettingsPanel.js.map +1 -1
  347. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  348. package/dist/client/settings/useBuilderStatus.js +6 -38
  349. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  350. package/dist/client/useProductionAgent.d.ts +2 -1
  351. package/dist/client/useProductionAgent.d.ts.map +1 -1
  352. package/dist/client/useProductionAgent.js.map +1 -1
  353. package/dist/deploy/build.js +1 -1
  354. package/dist/deploy/build.js.map +1 -1
  355. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  356. package/dist/notifications/routes.d.ts +1 -1
  357. package/dist/observability/routes.d.ts +5 -5
  358. package/dist/observability/traces.d.ts.map +1 -1
  359. package/dist/observability/traces.js.map +1 -1
  360. package/dist/onboarding/default-steps.js +1 -1
  361. package/dist/onboarding/default-steps.js.map +1 -1
  362. package/dist/scripts/agent-engines/manage-agent-engine.js +1 -1
  363. package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
  364. package/dist/scripts/agent-engines/set-agent-engine.js +1 -1
  365. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
  366. package/dist/server/agent-chat-plugin.d.ts +3 -0
  367. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  368. package/dist/server/agent-chat-plugin.js +134 -72
  369. package/dist/server/agent-chat-plugin.js.map +1 -1
  370. package/dist/server/core-routes-plugin.d.ts +3 -0
  371. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  372. package/dist/server/core-routes-plugin.js +4 -1
  373. package/dist/server/core-routes-plugin.js.map +1 -1
  374. package/dist/server/open-route.d.ts +9 -0
  375. package/dist/server/open-route.d.ts.map +1 -1
  376. package/dist/server/open-route.js +48 -38
  377. package/dist/server/open-route.js.map +1 -1
  378. package/dist/shared/reasoning-effort.js +3 -0
  379. package/dist/shared/reasoning-effort.js.map +1 -1
  380. package/dist/sharing/access.d.ts.map +1 -1
  381. package/dist/sharing/access.js +18 -2
  382. package/dist/sharing/access.js.map +1 -1
  383. package/dist/sharing/registry.d.ts +10 -0
  384. package/dist/sharing/registry.d.ts.map +1 -1
  385. package/dist/sharing/registry.js.map +1 -1
  386. package/dist/styles/agent-native.css +104 -20
  387. package/dist/styles/rich-markdown-editor.css +11 -10
  388. package/docs/content/cloneable-saas.mdx +2 -2
  389. package/docs/content/faq.mdx +1 -1
  390. package/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
  391. package/docs/content/locales/ar-SA/faq.mdx +1 -1
  392. package/docs/content/locales/ar-SA/template-chat.mdx +1 -1
  393. package/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
  394. package/docs/content/locales/de-DE/faq.mdx +1 -1
  395. package/docs/content/locales/de-DE/template-chat.mdx +1 -1
  396. package/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
  397. package/docs/content/locales/es-ES/faq.mdx +1 -1
  398. package/docs/content/locales/es-ES/template-chat.mdx +1 -1
  399. package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  400. package/docs/content/locales/fr-FR/faq.mdx +1 -1
  401. package/docs/content/locales/fr-FR/template-chat.mdx +1 -1
  402. package/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
  403. package/docs/content/locales/hi-IN/faq.mdx +1 -1
  404. package/docs/content/locales/hi-IN/template-chat.mdx +1 -1
  405. package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  406. package/docs/content/locales/ja-JP/faq.mdx +1 -1
  407. package/docs/content/locales/ja-JP/template-chat.mdx +1 -1
  408. package/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
  409. package/docs/content/locales/ko-KR/faq.mdx +1 -1
  410. package/docs/content/locales/ko-KR/template-chat.mdx +1 -1
  411. package/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
  412. package/docs/content/locales/pt-BR/faq.mdx +1 -1
  413. package/docs/content/locales/pt-BR/template-chat.mdx +1 -1
  414. package/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
  415. package/docs/content/locales/zh-CN/faq.mdx +1 -1
  416. package/docs/content/locales/zh-CN/template-chat.mdx +1 -1
  417. package/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
  418. package/docs/content/locales/zh-TW/faq.mdx +1 -1
  419. package/docs/content/locales/zh-TW/template-chat.mdx +1 -1
  420. package/docs/content/template-chat.mdx +1 -1
  421. package/package.json +1 -1
  422. package/corpus/templates/design/app/components/design/LocalSourceEditBanner.tsx +0 -157
  423. package/corpus/templates/design/app/lib/design-templates.ts +0 -1305
  424. package/corpus/templates/design/app/pages/Templates.tsx +0 -279
@@ -333,11 +333,12 @@
333
333
  display: flex;
334
334
  align-items: center;
335
335
  border-radius: 6px;
336
- background: hsl(0 0% 15%);
336
+ background: hsl(var(--popover));
337
+ color: hsl(var(--popover-foreground));
337
338
  padding: 3px;
338
339
  box-shadow:
339
340
  0 4px 16px rgb(0 0 0 / 0.25),
340
- 0 0 0 1px rgb(255 255 255 / 0.06);
341
+ 0 0 0 1px hsl(var(--border));
341
342
  }
342
343
 
343
344
  .an-rich-md-bubble-items,
@@ -351,7 +352,7 @@
351
352
  padding: 3px 6px;
352
353
  border-radius: 4px;
353
354
  font-size: 12px;
354
- color: rgb(255 255 255 / 0.76);
355
+ color: hsl(var(--popover-foreground) / 0.76);
355
356
  background: none;
356
357
  border: none;
357
358
  cursor: pointer;
@@ -359,20 +360,20 @@
359
360
  }
360
361
 
361
362
  .an-rich-md-bubble-button:hover {
362
- background: rgb(255 255 255 / 0.12);
363
- color: white;
363
+ background: hsl(var(--accent));
364
+ color: hsl(var(--accent-foreground));
364
365
  }
365
366
 
366
367
  .an-rich-md-bubble-button--active {
367
- background: rgb(255 255 255 / 0.18);
368
- color: white;
368
+ background: hsl(var(--accent));
369
+ color: hsl(var(--accent-foreground));
369
370
  }
370
371
 
371
372
  .an-rich-md-bubble-divider {
372
373
  width: 1px;
373
374
  height: 16px;
374
375
  margin: 0 2px;
375
- background: rgb(255 255 255 / 0.2);
376
+ background: hsl(var(--border));
376
377
  }
377
378
 
378
379
  .an-rich-md-link-editor {
@@ -384,7 +385,7 @@
384
385
  border: none;
385
386
  outline: none;
386
387
  background: transparent;
387
- color: white;
388
+ color: hsl(var(--popover-foreground));
388
389
  font-size: 12px;
389
390
  padding: 2px 4px;
390
391
  }
@@ -392,7 +393,7 @@
392
393
  .an-rich-md-link-editor button {
393
394
  border: none;
394
395
  background: none;
395
- color: #60a5fa;
396
+ color: hsl(var(--primary));
396
397
  cursor: pointer;
397
398
  font-size: 11px;
398
399
  font-weight: 500;
@@ -12,6 +12,11 @@ import {
12
12
 
13
13
  import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
14
14
  import { Skeleton } from "@/components/ui/skeleton";
15
+ import {
16
+ chartAxisStroke,
17
+ chartGridStroke,
18
+ chartTooltipContentStyle,
19
+ } from "@/lib/chart-theme";
15
20
 
16
21
  interface CumulativeNetChartProps {
17
22
  title: string;
@@ -78,14 +83,14 @@ export function CumulativeNetChart({
78
83
  </defs>
79
84
  <XAxis
80
85
  dataKey="day"
81
- stroke="#52525b"
86
+ stroke={chartAxisStroke}
82
87
  fontSize={12}
83
88
  tickLine={false}
84
89
  axisLine={false}
85
90
  tickFormatter={formatDate}
86
91
  />
87
92
  <YAxis
88
- stroke="#52525b"
93
+ stroke={chartAxisStroke}
89
94
  fontSize={12}
90
95
  tickLine={false}
91
96
  axisLine={false}
@@ -93,17 +98,12 @@ export function CumulativeNetChart({
93
98
  />
94
99
  <CartesianGrid
95
100
  strokeDasharray="3 3"
96
- stroke="#27272a"
101
+ stroke={chartGridStroke}
97
102
  vertical={false}
98
103
  />
99
- <ReferenceLine y={0} stroke="#52525b" strokeWidth={1} />
104
+ <ReferenceLine y={0} stroke={chartAxisStroke} strokeWidth={1} />
100
105
  <Tooltip
101
- contentStyle={{
102
- backgroundColor: "#09090b",
103
- border: "1px solid #27272a",
104
- borderRadius: "8px",
105
- color: "#fafafa",
106
- }}
106
+ contentStyle={chartTooltipContentStyle}
107
107
  labelFormatter={formatDate}
108
108
  formatter={(value: any) => [
109
109
  `$${Number(value).toLocaleString(undefined, { maximumFractionDigits: 0 })}`,
@@ -10,6 +10,11 @@ import {
10
10
  } from "recharts";
11
11
 
12
12
  import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
13
+ import {
14
+ chartAxisStroke,
15
+ chartGridStroke,
16
+ chartTooltipContentStyle,
17
+ } from "@/lib/chart-theme";
13
18
 
14
19
  const data = [
15
20
  { name: "Jan", total: 1200 },
@@ -49,13 +54,13 @@ export function RevenueChart() {
49
54
  </defs>
50
55
  <XAxis
51
56
  dataKey="name"
52
- stroke="#52525b"
57
+ stroke={chartAxisStroke}
53
58
  fontSize={12}
54
59
  tickLine={false}
55
60
  axisLine={false}
56
61
  />
57
62
  <YAxis
58
- stroke="#52525b"
63
+ stroke={chartAxisStroke}
59
64
  fontSize={12}
60
65
  tickLine={false}
61
66
  axisLine={false}
@@ -63,17 +68,12 @@ export function RevenueChart() {
63
68
  />
64
69
  <CartesianGrid
65
70
  strokeDasharray="3 3"
66
- stroke="#27272a"
71
+ stroke={chartGridStroke}
67
72
  vertical={false}
68
73
  />
69
74
  <Tooltip
70
- contentStyle={{
71
- backgroundColor: "#09090b",
72
- border: "1px solid #27272a",
73
- borderRadius: "8px",
74
- color: "#fafafa",
75
- }}
76
- itemStyle={{ color: "#38bdf8" }}
75
+ contentStyle={chartTooltipContentStyle}
76
+ itemStyle={{ color: "var(--brand-blue)" }}
77
77
  />
78
78
  <Area
79
79
  type="monotone"
@@ -14,6 +14,7 @@ import {
14
14
 
15
15
  import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
16
16
  import { Skeleton } from "@/components/ui/skeleton";
17
+ import { chartAxisStroke, chartGridStroke } from "@/lib/chart-theme";
17
18
 
18
19
  interface RevenueComparisonChartProps {
19
20
  title: string;
@@ -42,7 +43,7 @@ const formatDate = (value: string) => {
42
43
  function CustomTooltip({ active, payload, label }: any) {
43
44
  if (!active || !payload?.length) return null;
44
45
  return (
45
- <div className="rounded-lg border border-border bg-[#09090b] px-3 py-2 text-xs text-foreground shadow-lg">
46
+ <div className="rounded-lg border border-border bg-popover px-3 py-2 text-xs text-popover-foreground shadow-lg">
46
47
  <p className="mb-1 font-medium">{formatDate(label)}</p>
47
48
  {payload.map((entry: any) => (
48
49
  <p
@@ -94,19 +95,19 @@ export function RevenueComparisonChart({
94
95
  <ComposedChart data={chartData}>
95
96
  <CartesianGrid
96
97
  strokeDasharray="3 3"
97
- stroke="#27272a"
98
+ stroke={chartGridStroke}
98
99
  vertical={false}
99
100
  />
100
101
  <XAxis
101
102
  dataKey="day"
102
- stroke="#52525b"
103
+ stroke={chartAxisStroke}
103
104
  fontSize={12}
104
105
  tickLine={false}
105
106
  axisLine={false}
106
107
  tickFormatter={formatDate}
107
108
  />
108
109
  <YAxis
109
- stroke="#52525b"
110
+ stroke={chartAxisStroke}
110
111
  fontSize={12}
111
112
  tickLine={false}
112
113
  axisLine={false}
@@ -116,7 +117,7 @@ export function RevenueComparisonChart({
116
117
  return `$${v}`;
117
118
  }}
118
119
  />
119
- <ReferenceLine y={0} stroke="#52525b" strokeWidth={1} />
120
+ <ReferenceLine y={0} stroke={chartAxisStroke} strokeWidth={1} />
120
121
  <Tooltip content={<CustomTooltip />} />
121
122
  <Legend
122
123
  wrapperStyle={{ fontSize: "12px", paddingTop: "8px" }}
@@ -11,6 +11,11 @@ import {
11
11
 
12
12
  import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
13
13
  import { Skeleton } from "@/components/ui/skeleton";
14
+ import {
15
+ chartAxisStroke,
16
+ chartGridStroke,
17
+ chartTooltipContentStyle,
18
+ } from "@/lib/chart-theme";
14
19
 
15
20
  interface TimeSeriesChartProps {
16
21
  title: string;
@@ -75,14 +80,14 @@ export function TimeSeriesChart({
75
80
  </defs>
76
81
  <XAxis
77
82
  dataKey={xKey}
78
- stroke="#52525b"
83
+ stroke={chartAxisStroke}
79
84
  fontSize={12}
80
85
  tickLine={false}
81
86
  axisLine={false}
82
87
  tickFormatter={formatXLabel}
83
88
  />
84
89
  <YAxis
85
- stroke="#52525b"
90
+ stroke={chartAxisStroke}
86
91
  fontSize={12}
87
92
  tickLine={false}
88
93
  axisLine={false}
@@ -90,16 +95,11 @@ export function TimeSeriesChart({
90
95
  />
91
96
  <CartesianGrid
92
97
  strokeDasharray="3 3"
93
- stroke="#27272a"
98
+ stroke={chartGridStroke}
94
99
  vertical={false}
95
100
  />
96
101
  <Tooltip
97
- contentStyle={{
98
- backgroundColor: "#09090b",
99
- border: "1px solid #27272a",
100
- borderRadius: "8px",
101
- color: "#fafafa",
102
- }}
102
+ contentStyle={chartTooltipContentStyle}
103
103
  labelFormatter={formatXLabel}
104
104
  />
105
105
  <Area
@@ -191,6 +191,10 @@
191
191
  overflow: visible;
192
192
  }
193
193
 
194
+ .analytics-chat-panel .agent-composer-area--hero {
195
+ padding-inline: 1rem;
196
+ }
197
+
194
198
  .analytics-chat-panel [data-agent-empty-state="centered"] .agent-composer-area {
195
199
  width: 100%;
196
200
  max-width: min(760px, 90%);
@@ -0,0 +1,13 @@
1
+ import type { CSSProperties } from "react";
2
+
3
+ export const chartAxisStroke = "hsl(var(--muted-foreground))";
4
+ export const chartGridStroke = "hsl(var(--border))";
5
+ export const chartTooltipCursorStroke = "hsl(var(--muted-foreground) / 0.25)";
6
+ export const chartTooltipCursorFill = "hsl(var(--muted) / 0.5)";
7
+
8
+ export const chartTooltipContentStyle = {
9
+ backgroundColor: "hsl(var(--popover))",
10
+ border: "1px solid hsl(var(--border))",
11
+ borderRadius: "8px",
12
+ color: "hsl(var(--popover-foreground))",
13
+ } satisfies CSSProperties;
@@ -24,6 +24,13 @@ import {
24
24
  TooltipContent,
25
25
  TooltipTrigger,
26
26
  } from "@/components/ui/tooltip";
27
+ import {
28
+ chartAxisStroke,
29
+ chartGridStroke,
30
+ chartTooltipContentStyle,
31
+ chartTooltipCursorFill,
32
+ chartTooltipCursorStroke,
33
+ } from "@/lib/chart-theme";
27
34
 
28
35
  import { formatDate } from "./format";
29
36
 
@@ -122,31 +129,28 @@ export function KpiChart({
122
129
  <BarChart data={data}>
123
130
  <CartesianGrid
124
131
  strokeDasharray="3 3"
125
- stroke="#27272a"
132
+ stroke={chartGridStroke}
126
133
  vertical={false}
127
134
  />
128
135
  <XAxis
129
136
  dataKey="period"
130
- stroke="#52525b"
137
+ stroke={chartAxisStroke}
131
138
  fontSize={11}
132
139
  tickLine={false}
133
140
  axisLine={false}
134
141
  tickFormatter={formatDate}
135
142
  />
136
143
  <YAxis
137
- stroke="#52525b"
144
+ stroke={chartAxisStroke}
138
145
  fontSize={11}
139
146
  tickLine={false}
140
147
  axisLine={false}
141
148
  tickFormatter={formatY}
142
149
  />
143
150
  <Tooltip
144
- cursor={{ fill: "rgba(255,255,255,0.06)" }}
151
+ cursor={{ fill: chartTooltipCursorFill }}
145
152
  contentStyle={{
146
- backgroundColor: "#09090b",
147
- border: "1px solid #27272a",
148
- borderRadius: "8px",
149
- color: "#fafafa",
153
+ ...chartTooltipContentStyle,
150
154
  fontSize: "12px",
151
155
  }}
152
156
  labelFormatter={formatDate}
@@ -172,31 +176,28 @@ export function KpiChart({
172
176
  <LineChart data={data}>
173
177
  <CartesianGrid
174
178
  strokeDasharray="3 3"
175
- stroke="#27272a"
179
+ stroke={chartGridStroke}
176
180
  vertical={false}
177
181
  />
178
182
  <XAxis
179
183
  dataKey="period"
180
- stroke="#52525b"
184
+ stroke={chartAxisStroke}
181
185
  fontSize={11}
182
186
  tickLine={false}
183
187
  axisLine={false}
184
188
  tickFormatter={formatDate}
185
189
  />
186
190
  <YAxis
187
- stroke="#52525b"
191
+ stroke={chartAxisStroke}
188
192
  fontSize={11}
189
193
  tickLine={false}
190
194
  axisLine={false}
191
195
  tickFormatter={formatY}
192
196
  />
193
197
  <Tooltip
194
- cursor={{ stroke: "rgba(255,255,255,0.15)" }}
198
+ cursor={{ stroke: chartTooltipCursorStroke }}
195
199
  contentStyle={{
196
- backgroundColor: "#09090b",
197
- border: "1px solid #27272a",
198
- borderRadius: "8px",
199
- color: "#fafafa",
200
+ ...chartTooltipContentStyle,
200
201
  fontSize: "12px",
201
202
  }}
202
203
  labelFormatter={formatDate}
@@ -240,31 +241,28 @@ export function KpiChart({
240
241
  </defs>
241
242
  <CartesianGrid
242
243
  strokeDasharray="3 3"
243
- stroke="#27272a"
244
+ stroke={chartGridStroke}
244
245
  vertical={false}
245
246
  />
246
247
  <XAxis
247
248
  dataKey="period"
248
- stroke="#52525b"
249
+ stroke={chartAxisStroke}
249
250
  fontSize={11}
250
251
  tickLine={false}
251
252
  axisLine={false}
252
253
  tickFormatter={formatDate}
253
254
  />
254
255
  <YAxis
255
- stroke="#52525b"
256
+ stroke={chartAxisStroke}
256
257
  fontSize={11}
257
258
  tickLine={false}
258
259
  axisLine={false}
259
260
  tickFormatter={formatY}
260
261
  />
261
262
  <Tooltip
262
- cursor={{ stroke: "rgba(255,255,255,0.15)" }}
263
+ cursor={{ stroke: chartTooltipCursorStroke }}
263
264
  contentStyle={{
264
- backgroundColor: "#09090b",
265
- border: "1px solid #27272a",
266
- borderRadius: "8px",
267
- color: "#fafafa",
265
+ ...chartTooltipContentStyle,
268
266
  fontSize: "12px",
269
267
  }}
270
268
  labelFormatter={formatDate}
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-30
4
+ ---
5
+
6
+ Dashboard charts now use theme-aware tooltip and grid colors in light and dark mode.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-30
4
+ ---
5
+
6
+ Fixed Ask composer spacing so the chat field has a comfortable side inset.
@@ -12,6 +12,10 @@ Detailed event, availability, booking, storage, and UI rules live in
12
12
  - Never hardcode API keys, tokens, webhook URLs, signing secrets, private Builder/internal data, customer data, or credential-looking literals. Use secrets/OAuth/runtime configuration and obvious placeholders in examples.
13
13
  - Use actions for events, availability, booking links, settings, navigation,
14
14
  Google Calendar connection, and sharing. Do not bypass app access checks.
15
+ - Use `connect-google-calendar` when the user asks to connect or reconnect
16
+ Google Calendar. Return its link to the user; do not `fetch`
17
+ `/_agent-native/google/auth-url` from the agent backend because that route
18
+ requires the signed-in browser session.
15
19
  - In dev, call actions with `pnpm action <name>`; in production, use native
16
20
  tools. The action schema is authoritative.
17
21
  - Use the current date from runtime context, not a visible calendar date, when
@@ -0,0 +1,80 @@
1
+ import { defineAction } from "@agent-native/core";
2
+ import { getRequestUserEmail } from "@agent-native/core/server";
3
+ import { z } from "zod";
4
+
5
+ const CONNECT_PATH = "/_agent-native/google/auth-url";
6
+ const ADD_ACCOUNT_PATH = "/_agent-native/google/add-account/auth-url";
7
+
8
+ function normalizeReturnPath(value: string | undefined): string | undefined {
9
+ if (!value) return undefined;
10
+ try {
11
+ const url = new URL(value, "https://calendar.agent-native.local");
12
+ if (url.origin !== "https://calendar.agent-native.local") {
13
+ return undefined;
14
+ }
15
+ return `${url.pathname}${url.search}${url.hash}`;
16
+ } catch {
17
+ return undefined;
18
+ }
19
+ }
20
+
21
+ export default defineAction({
22
+ description:
23
+ "Create a user-clickable Google Calendar OAuth link. Use this when the user asks to connect or reconnect Google Calendar. Do not fetch the returned URL as an API; the signed-in user must open it in their browser.",
24
+ schema: z.object({
25
+ addAccount: z
26
+ .boolean()
27
+ .optional()
28
+ .describe(
29
+ "Use true only when adding another Google Calendar account to an already connected Calendar workspace.",
30
+ ),
31
+ returnPath: z
32
+ .string()
33
+ .optional()
34
+ .describe(
35
+ "Optional same-origin Calendar path to return to after the Google OAuth flow.",
36
+ ),
37
+ }),
38
+ http: { method: "GET" },
39
+ readOnly: true,
40
+ parallelSafe: true,
41
+ run: async (args) => {
42
+ const owner = getRequestUserEmail();
43
+ if (!owner) {
44
+ throw new Error("Sign in to Calendar before connecting Google Calendar.");
45
+ }
46
+
47
+ const path = args.addAccount ? ADD_ACCOUNT_PATH : CONNECT_PATH;
48
+ const params = new URLSearchParams({ redirect: "1" });
49
+ if (!args.addAccount) params.set("calendar", "1");
50
+
51
+ const returnPath = normalizeReturnPath(args.returnPath);
52
+ if (returnPath) params.set("return", returnPath);
53
+
54
+ const url = `${path}?${params.toString()}`;
55
+ const label = args.addAccount
56
+ ? "Add Google Calendar account"
57
+ : "Connect Google Calendar";
58
+ return {
59
+ provider: "google_calendar",
60
+ url,
61
+ label,
62
+ markdown: `[${label}](${url})`,
63
+ message:
64
+ "Open this link in the signed-in Calendar browser session to connect Google Calendar. Do not fetch it from the agent backend.",
65
+ requiresUserGesture: true,
66
+ };
67
+ },
68
+ link: ({ result }) => {
69
+ const url =
70
+ result && typeof result === "object"
71
+ ? (result as { url?: unknown }).url
72
+ : null;
73
+ if (typeof url !== "string" || !url) return null;
74
+ return {
75
+ url,
76
+ label: "Connect Google Calendar",
77
+ view: "settings",
78
+ };
79
+ },
80
+ });
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-30
4
+ ---
5
+
6
+ Calendar now gives the agent a safe Google connection link instead of surfacing a raw auth error.
@@ -70,6 +70,7 @@ const INITIAL_TOOL_NAMES = [
70
70
  "find-a-time",
71
71
  "search-people",
72
72
  "navigate",
73
+ "connect-google-calendar",
73
74
  "list-booking-links",
74
75
  "create-booking-link",
75
76
  "update-booking-link",
@@ -111,6 +112,7 @@ Provider-specific Calendar actions are shortcuts, not limits. If a first-class a
111
112
  - \`pnpm action navigate --view=calendar --date=YYYY-MM-DD\` — Navigate to a specific date
112
113
  - \`pnpm action navigate --view=availability\` — Show availability settings
113
114
  - \`pnpm action navigate --view=booking-links\` — Show booking links
115
+ - \`pnpm action connect-google-calendar\` — Create a user-clickable Google Calendar OAuth link. Use this when the user asks to connect or reconnect Google Calendar. Do not fetch \`/_agent-native/google/auth-url\` yourself; OAuth must be opened by the signed-in user in their browser.
114
116
  - \`pnpm action update-calendar-visual-preferences --colorMode multi\` — Color the local app UI by meeting type without modifying Google Calendar events
115
117
  - \`pnpm action update-calendar-visual-preferences --colorMode single --singleColor '#5B9BD5'\` — Use one local display color for the user's Google events
116
118
  - \`pnpm action check-availability --date YYYY-MM-DD --duration 60\` — Check free slots
@@ -125,6 +127,8 @@ Use \`create-event\` or \`update-event --colorId 1..11\` when the user wants one
125
127
  ## Google Connection Check
126
128
  Before answering schedule questions, run view-screen first for context, then use list-events for the requested date range even if the user is currently on Settings, Booking Links, or another non-calendar page. Do not infer a Google Calendar connection problem just because the current page is Settings. Only ask the user to reconnect Google if list-events or the explicit Google status reports an auth/connection error.
127
129
 
130
+ When the user explicitly asks you to connect or reconnect Google Calendar, call \`connect-google-calendar\` and give them the returned link. Do not call raw HTTP/fetch/web-request against \`/_agent-native/google/auth-url\`; that route depends on the user's browser session and will return 401 from the agent backend.
131
+
128
132
  For relationship-history or frequency questions such as "who have I met at Adobe?" or "how often do I meet with Mattel?", prefer the raw Google Calendar API through provider-api-request so you can choose the exact timeMin/timeMax, q, calendarId, maxResults, and pageToken behavior. Stage large paginated results before analysis. Do not conclude there are no recurring meetings from the visible range or from a convenience action alone.
129
133
 
130
134
  ## Context Awareness
@@ -301,11 +301,11 @@ export function BubbleToolbar({ editor, onComment }: BubbleToolbarProps) {
301
301
  setLinkUrl("");
302
302
  }
303
303
  }}
304
- className="bg-transparent border-none outline-none text-white text-sm w-40 sm:w-48 px-1 py-1 placeholder:text-gray-400"
304
+ className="bg-transparent border-none outline-none text-popover-foreground text-sm w-40 sm:w-48 px-1 py-1 placeholder:text-muted-foreground"
305
305
  />
306
306
  <button
307
307
  onClick={handleSetLink}
308
- className="text-xs text-blue-400 hover:text-blue-300 px-2 py-1.5 font-medium"
308
+ className="text-xs text-primary hover:text-primary/80 px-2 py-1.5 font-medium"
309
309
  >
310
310
  {t("editor.apply")}
311
311
  </button>
@@ -318,7 +318,7 @@ export function BubbleToolbar({ editor, onComment }: BubbleToolbarProps) {
318
318
  {items.map((item, i) => {
319
319
  if ("type" in item && item.type === "divider") {
320
320
  return (
321
- <div key={`d-${i}`} className="w-px h-5 bg-gray-600 mx-0.5" />
321
+ <div key={`d-${i}`} className="w-px h-5 bg-border mx-0.5" />
322
322
  );
323
323
  }
324
324
  const {
@@ -340,8 +340,8 @@ export function BubbleToolbar({ editor, onComment }: BubbleToolbarProps) {
340
340
  className={cn(
341
341
  "p-2 rounded",
342
342
  isActive()
343
- ? "bg-gray-600 text-white"
344
- : "text-gray-300 hover:bg-gray-700 hover:text-white",
343
+ ? "bg-accent text-accent-foreground"
344
+ : "text-popover-foreground/75 hover:bg-accent hover:text-accent-foreground",
345
345
  )}
346
346
  >
347
347
  <Icon size={16} strokeWidth={2.5} />
@@ -1537,10 +1537,10 @@ audio.media-block__content {
1537
1537
  flex-direction: column;
1538
1538
  gap: 0.18rem;
1539
1539
  max-width: 22rem;
1540
- border: 0;
1540
+ border: 1px solid hsl(var(--border));
1541
1541
  border-radius: 8px;
1542
- background: hsl(0 0% 15%);
1543
- color: white;
1542
+ background: hsl(var(--popover));
1543
+ color: hsl(var(--popover-foreground));
1544
1544
  padding: 0.6rem 0.75rem;
1545
1545
  box-shadow: 0 10px 24px hsl(0 0% 0% / 0.22);
1546
1546
  }
@@ -2218,12 +2218,13 @@ audio.media-block__content {
2218
2218
  .bubble-toolbar {
2219
2219
  display: flex;
2220
2220
  align-items: center;
2221
- background: hsl(0 0% 15%);
2221
+ background: hsl(var(--popover));
2222
+ color: hsl(var(--popover-foreground));
2222
2223
  border-radius: 8px;
2223
2224
  padding: 4px;
2224
2225
  box-shadow:
2225
2226
  0 4px 20px rgb(0 0 0 / 0.25),
2226
- 0 0 0 1px rgb(255 255 255 / 0.06);
2227
+ 0 0 0 1px hsl(var(--border));
2227
2228
  }
2228
2229
 
2229
2230
  /* ===== Inline comment highlights ===== */
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-30
4
+ ---
5
+
6
+ Editor floating toolbars now use theme-aware colors in light and dark mode.
@@ -65,9 +65,14 @@ For one-shot agent setup, ask for JSON and keep the long-running bridge open in
65
65
  a second terminal if the user needs live updates:
66
66
 
67
67
  ```bash
68
- npx @agent-native/core@latest design connect --url http://localhost:5173 --root . --json
68
+ npx @agent-native/core@latest design connect --url http://localhost:5173 --root .
69
+ curl http://127.0.0.1:7331/manifest.json
69
70
  ```
70
71
 
72
+ Do not use `--json` for an editable session. `--json`, `--once`, and
73
+ `--dry-run` print the manifest and exit, so Design will fall back to a
74
+ non-editable live iframe as soon as it tries to refresh the snapshot.
75
+
71
76
  ## Action Flow
72
77
 
73
78
  1. Register or refresh the bridge in Design: