@agent-native/core 0.83.0 → 0.84.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/README.md +2 -2
  2. package/corpus/README.md +1 -1
  3. package/corpus/core/CHANGELOG.md +34 -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/evals.mdx +34 -12
  7. package/corpus/core/docs/content/faq.mdx +1 -1
  8. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
  9. package/corpus/core/docs/content/locales/ar-SA/evals.mdx +7 -0
  10. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +1 -1
  11. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +1 -1
  12. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
  13. package/corpus/core/docs/content/locales/de-DE/evals.mdx +8 -0
  14. package/corpus/core/docs/content/locales/de-DE/faq.mdx +1 -1
  15. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +1 -1
  16. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
  17. package/corpus/core/docs/content/locales/es-ES/evals.mdx +8 -0
  18. package/corpus/core/docs/content/locales/es-ES/faq.mdx +1 -1
  19. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +1 -1
  20. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  21. package/corpus/core/docs/content/locales/fr-FR/evals.mdx +8 -0
  22. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +1 -1
  23. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +1 -1
  24. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
  25. package/corpus/core/docs/content/locales/hi-IN/evals.mdx +8 -0
  26. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +1 -1
  27. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +1 -1
  28. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  29. package/corpus/core/docs/content/locales/ja-JP/evals.mdx +7 -0
  30. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +1 -1
  31. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +1 -1
  32. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
  33. package/corpus/core/docs/content/locales/ko-KR/evals.mdx +7 -0
  34. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +1 -1
  35. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +1 -1
  36. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
  37. package/corpus/core/docs/content/locales/pt-BR/evals.mdx +8 -0
  38. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +1 -1
  39. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +1 -1
  40. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
  41. package/corpus/core/docs/content/locales/zh-CN/evals.mdx +7 -0
  42. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +1 -1
  43. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +1 -1
  44. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
  45. package/corpus/core/docs/content/locales/zh-TW/evals.mdx +7 -0
  46. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +1 -1
  47. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +1 -1
  48. package/corpus/core/docs/content/template-chat.mdx +1 -1
  49. package/corpus/core/package.json +1 -1
  50. package/corpus/core/src/agent/engine/builtin.ts +1 -1
  51. package/corpus/core/src/agent/engine/output-tokens.ts +1 -1
  52. package/corpus/core/src/agent/harness/acp-adapter.ts +28 -4
  53. package/corpus/core/src/agent/harness/ai-sdk-adapter.ts +3 -0
  54. package/corpus/core/src/agent/harness/translate.ts +3 -0
  55. package/corpus/core/src/agent/harness/types.ts +1 -0
  56. package/corpus/core/src/agent/model-config.ts +34 -13
  57. package/corpus/core/src/agent/production-agent.ts +87 -10
  58. package/corpus/core/src/agent/thread-data-builder.ts +29 -4
  59. package/corpus/core/src/agent/tool-call-journal.ts +109 -48
  60. package/corpus/core/src/agent/types.ts +6 -1
  61. package/corpus/core/src/cli/design-connect.ts +106 -0
  62. package/corpus/core/src/cli/gateway-helpers.ts +17 -0
  63. package/corpus/core/src/cli/recap.ts +0 -2
  64. package/corpus/core/src/cli/skills.ts +54 -16
  65. package/corpus/core/src/cli/workspace-dev.ts +29 -5
  66. package/corpus/core/src/client/AssistantChat.tsx +89 -42
  67. package/corpus/core/src/client/DefaultSpinner.tsx +8 -1
  68. package/corpus/core/src/client/chat/message-components.tsx +49 -1
  69. package/corpus/core/src/client/chat/repo-helpers.ts +71 -0
  70. package/corpus/core/src/client/chat/run-recovery.tsx +15 -5
  71. package/corpus/core/src/client/components/ApiKeySettings.tsx +8 -8
  72. package/corpus/core/src/client/components/CodeRequiredDialog.tsx +26 -15
  73. package/corpus/core/src/client/components/MissingKeyCard.tsx +13 -6
  74. package/corpus/core/src/client/composer/TiptapComposer.tsx +4 -3
  75. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +0 -1
  76. package/corpus/core/src/client/guided-questions.tsx +21 -27
  77. package/corpus/core/src/client/integrations/IntegrationCard.tsx +1 -1
  78. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +1 -1
  79. package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +2 -2
  80. package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +23 -19
  81. package/corpus/core/src/client/resources/ResourceEditor.tsx +18 -10
  82. package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
  83. package/corpus/core/src/client/settings/SettingsPanel.tsx +8 -3
  84. package/corpus/core/src/client/settings/useBuilderStatus.ts +8 -41
  85. package/corpus/core/src/client/useProductionAgent.ts +6 -2
  86. package/corpus/core/src/deploy/build.ts +1 -1
  87. package/corpus/core/src/eval/define-eval.ts +4 -1
  88. package/corpus/core/src/eval/report.ts +23 -8
  89. package/corpus/core/src/eval/runner.ts +41 -6
  90. package/corpus/core/src/eval/types.ts +11 -0
  91. package/corpus/core/src/observability/traces.ts +3 -3
  92. package/corpus/core/src/onboarding/default-steps.ts +1 -1
  93. package/corpus/core/src/scripts/agent-engines/manage-agent-engine.ts +1 -1
  94. package/corpus/core/src/scripts/agent-engines/set-agent-engine.ts +1 -1
  95. package/corpus/core/src/server/agent-chat-plugin.ts +177 -81
  96. package/corpus/core/src/server/core-routes-plugin.ts +7 -1
  97. package/corpus/core/src/server/open-route.ts +59 -40
  98. package/corpus/core/src/shared/reasoning-effort.ts +2 -0
  99. package/corpus/core/src/sharing/access.ts +22 -2
  100. package/corpus/core/src/sharing/registry.ts +18 -0
  101. package/corpus/core/src/styles/agent-native.css +104 -20
  102. package/corpus/core/src/styles/rich-markdown-editor.css +11 -10
  103. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +10 -10
  104. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +10 -10
  105. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +6 -5
  106. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +9 -9
  107. package/corpus/templates/analytics/app/global.css +4 -0
  108. package/corpus/templates/analytics/app/lib/chart-theme.ts +13 -0
  109. package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +22 -24
  110. package/corpus/templates/analytics/changelog/2026-06-30-dashboard-charts-now-use-theme-aware-tooltip-and-grid-colors.md +6 -0
  111. package/corpus/templates/analytics/changelog/2026-06-30-fixed-ask-composer-spacing-so-the-chat-field-has-a-comfortab.md +6 -0
  112. package/corpus/templates/calendar/AGENTS.md +4 -0
  113. package/corpus/templates/calendar/actions/connect-google-calendar.ts +80 -0
  114. package/corpus/templates/calendar/changelog/2026-06-30-calendar-now-gives-the-agent-a-safe-google-connection-link-i.md +6 -0
  115. package/corpus/templates/calendar/server/plugins/agent-chat.ts +4 -0
  116. package/corpus/templates/content/AGENTS.md +9 -2
  117. package/corpus/templates/content/actions/_database-row-batch.ts +230 -0
  118. package/corpus/templates/content/actions/_database-utils.ts +17 -9
  119. package/corpus/templates/content/actions/_notion-action-utils.ts +26 -0
  120. package/corpus/templates/content/actions/connect-notion-status.ts +13 -4
  121. package/corpus/templates/content/actions/create-and-link-notion-page.ts +23 -0
  122. package/corpus/templates/content/actions/delete-database-items.ts +55 -0
  123. package/corpus/templates/content/actions/delete-document.ts +4 -4
  124. package/corpus/templates/content/actions/disconnect-notion.ts +16 -0
  125. package/corpus/templates/content/actions/duplicate-database-item.ts +1 -1
  126. package/corpus/templates/content/actions/duplicate-database-items.ts +191 -0
  127. package/corpus/templates/content/actions/link-notion-page.ts +10 -7
  128. package/corpus/templates/content/actions/list-notion-links.ts +3 -4
  129. package/corpus/templates/content/actions/pull-notion-page.ts +7 -9
  130. package/corpus/templates/content/actions/push-notion-page.ts +7 -9
  131. package/corpus/templates/content/actions/refresh-notion-sync-status.ts +24 -0
  132. package/corpus/templates/content/actions/resolve-notion-sync-conflict.ts +23 -0
  133. package/corpus/templates/content/actions/search-notion-pages.ts +67 -0
  134. package/corpus/templates/content/actions/unlink-notion-page.ts +23 -0
  135. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
  136. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +27 -34
  137. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +16 -13
  138. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +10 -10
  139. package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +1 -1
  140. package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +18 -9
  141. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +27 -34
  142. package/corpus/templates/content/app/components/editor/database/navigation-state.ts +10 -4
  143. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +32 -17
  144. package/corpus/templates/content/app/global.css +6 -5
  145. package/corpus/templates/content/app/hooks/use-content-database.ts +35 -0
  146. package/corpus/templates/content/app/hooks/use-notion.ts +108 -99
  147. package/corpus/templates/content/changelog/2026-06-30-editor-floating-toolbars-now-use-theme-aware-colors-in-light.md +6 -0
  148. package/corpus/templates/content/package.json +3 -0
  149. package/corpus/templates/content/parity/README.md +69 -0
  150. package/corpus/templates/content/parity/eval-scenarios.ts +118 -0
  151. package/corpus/templates/content/parity/exceptions.allowlist.ts +17 -0
  152. package/corpus/templates/content/parity/matrix.md +28 -0
  153. package/corpus/templates/content/parity/matrix.ts +606 -0
  154. package/corpus/templates/content/parity/matrix.types.ts +42 -0
  155. package/corpus/templates/content/parity/parity-evals.eval.ts +4 -0
  156. package/corpus/templates/content/parity/render-matrix.ts +90 -0
  157. package/corpus/templates/content/parity/scenario-to-eval.ts +57 -0
  158. package/corpus/templates/content/shared/api.ts +11 -0
  159. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +6 -1
  160. package/corpus/templates/design/actions/add-localhost-screens.ts +63 -8
  161. package/corpus/templates/design/actions/apply-motion-edit.ts +12 -46
  162. package/corpus/templates/design/actions/list-design-native-assets.ts +2 -1
  163. package/corpus/templates/design/actions/migrate-board-objects-to-file.ts +49 -1
  164. package/corpus/templates/design/actions/navigate.ts +3 -12
  165. package/corpus/templates/design/actions/open-visual-edit.ts +341 -0
  166. package/corpus/templates/design/actions/view-screen.ts +1 -1
  167. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
  168. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +345 -14
  169. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +71 -91
  170. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +25 -27
  171. package/corpus/templates/design/app/components/design/DeviceFrame.tsx +1 -1
  172. package/corpus/templates/design/app/components/design/DrawOverlay.tsx +2 -2
  173. package/corpus/templates/design/app/components/design/EditPanel.tsx +1111 -570
  174. package/corpus/templates/design/app/components/design/LayersPanel.tsx +162 -32
  175. package/corpus/templates/design/app/components/design/MotionDock.tsx +268 -240
  176. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1038 -150
  177. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +1 -1
  178. package/corpus/templates/design/app/components/design/ReviewPanel.tsx +81 -102
  179. package/corpus/templates/design/app/components/design/StatesPanel.tsx +6 -6
  180. package/corpus/templates/design/app/components/design/TokensPanel.tsx +11 -11
  181. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -7
  182. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1129 -155
  183. package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +130 -37
  184. package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +24 -11
  185. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +184 -162
  186. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +137 -79
  187. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +13 -13
  188. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +8 -8
  189. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +2 -2
  190. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +4 -4
  191. package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +3 -3
  192. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +13 -7
  193. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -11
  194. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +4 -4
  195. package/corpus/templates/design/app/components/design/inspector/index.ts +2 -0
  196. package/corpus/templates/design/app/components/design/types.ts +19 -0
  197. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +61 -78
  198. package/corpus/templates/design/app/components/layout/Header.tsx +0 -1
  199. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -2
  200. package/corpus/templates/design/app/components/layout/Sidebar.tsx +0 -2
  201. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +5 -4
  202. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +1 -1
  203. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +2 -2
  204. package/corpus/templates/design/app/global.css +56 -0
  205. package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -5
  206. package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -7
  207. package/corpus/templates/design/app/hooks/use-question-flow.ts +3 -2
  208. package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +6 -4
  209. package/corpus/templates/design/app/i18n/zh-TW.ts +5 -14
  210. package/corpus/templates/design/app/i18n-data.ts +63 -188
  211. package/corpus/templates/design/app/lib/agent-chat.ts +13 -0
  212. package/corpus/templates/design/app/pages/DesignEditor.tsx +1428 -384
  213. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +9 -5
  214. package/corpus/templates/design/app/pages/DesignSystems.tsx +2 -2
  215. package/corpus/templates/design/app/pages/Index.tsx +49 -26
  216. package/corpus/templates/design/app/pages/NotFound.tsx +25 -8
  217. package/corpus/templates/design/app/pages/VisualEdit.tsx +17 -5
  218. package/corpus/templates/design/app/routes/examples.tsx +1 -7
  219. package/corpus/templates/design/app/routes/templates.tsx +7 -4
  220. package/corpus/templates/design/changelog/2026-06-30-board-shapes-and-auto-layout-controls-are-clearer.md +6 -0
  221. package/corpus/templates/design/changelog/2026-06-30-component-selections-now-use-purple-component-chrome-and-sho.md +6 -0
  222. package/corpus/templates/design/changelog/2026-06-30-constraints-now-stay-tucked-into-a-compact-inspector-preview.md +6 -0
  223. package/corpus/templates/design/changelog/2026-06-30-creating-a-component-now-opens-in-a-compact-inspector-popove.md +6 -0
  224. package/corpus/templates/design/changelog/2026-06-30-design-cards-no-longer-show-legacy-project-type-badges.md +6 -0
  225. package/corpus/templates/design/changelog/2026-06-30-design-chat-now-keeps-new-turns-in-the-visible-design-agent-.md +6 -0
  226. package/corpus/templates/design/changelog/2026-06-30-design-editor-panels-now-keep-their-compact-text-sizing-cons.md +6 -0
  227. package/corpus/templates/design/changelog/2026-06-30-design-no-longer-shows-the-connected-local-code-warning-bann.md +6 -0
  228. package/corpus/templates/design/changelog/2026-06-30-design-now-opens-to-the-files-panel-unless-a-generation-is-a.md +6 -0
  229. package/corpus/templates/design/changelog/2026-06-30-design-opens-with-a-cleaner-empty-canvas-and-loading-preview.md +6 -0
  230. package/corpus/templates/design/changelog/2026-06-30-design-tools-use-simpler-less-decorative-icons.md +6 -0
  231. package/corpus/templates/design/changelog/2026-06-30-dragging-absolute-elements-no-longer-shows-coordinate-labels.md +6 -0
  232. package/corpus/templates/design/changelog/2026-06-30-fixed-all-screens-opening-too-zoomed-in-by-default.md +6 -0
  233. package/corpus/templates/design/changelog/2026-06-30-fixed-the-public-design-assets-sidebar-so-native-components-.md +6 -0
  234. package/corpus/templates/design/changelog/2026-06-30-fixed-the-screen-overview-board-so-empty-board-space-no-long.md +6 -0
  235. package/corpus/templates/design/changelog/2026-06-30-full-view-screens-can-now-scroll-while-remaining-editable.md +6 -0
  236. package/corpus/templates/design/changelog/2026-06-30-inspector-element-headers-show-the-selected-html-tag-and-the.md +6 -0
  237. package/corpus/templates/design/changelog/2026-06-30-inspector-inputs-stay-compact-across-desktop-breakpoints.md +6 -0
  238. package/corpus/templates/design/changelog/2026-06-30-layers-can-be-multi-selected-from-the-canvas-and-edited-toge.md +6 -0
  239. package/corpus/templates/design/changelog/2026-06-30-local-visual-edit-links-can-edit-localhost-frames-without-si.md +6 -0
  240. package/corpus/templates/design/changelog/2026-06-30-localhost-visual-edit-frames-can-now-be-selected-and-edited.md +6 -0
  241. package/corpus/templates/design/changelog/2026-06-30-marquee-selection-now-works-inside-screens-multi-selected-la.md +6 -0
  242. package/corpus/templates/design/changelog/2026-06-30-motion-is-now-available-from-the-persistent-left-rail-and-th.md +6 -0
  243. package/corpus/templates/design/changelog/2026-06-30-motion-timeline-collapse-and-reopen-animations-feel-smoother.md +6 -0
  244. package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +6 -0
  245. package/corpus/templates/design/changelog/2026-06-30-new-board-shapes-now-start-with-neutral-gray-styling.md +6 -0
  246. package/corpus/templates/design/changelog/2026-06-30-new-designs-open-into-a-steadier-loading-state-before-the-ed.md +6 -0
  247. package/corpus/templates/design/changelog/2026-06-30-new-designs-show-a-loading-state-during-handoff-and-keep-edi.md +6 -0
  248. package/corpus/templates/design/changelog/2026-06-30-public-visual-edit-design-links-now-open-directly-instead-of.md +6 -0
  249. package/corpus/templates/design/changelog/2026-06-30-removed-the-confusing-states-section-from-the-design-editor-.md +6 -0
  250. package/corpus/templates/design/changelog/2026-06-30-removed-the-templates-gallery-from-design-navigation.md +6 -0
  251. package/corpus/templates/design/changelog/2026-06-30-share-stays-visible-as-soon-as-editable-designs-load.md +6 -0
  252. package/corpus/templates/design/changelog/2026-06-30-signed-out-save-and-share-controls-use-simpler-labels-and-op.md +6 -0
  253. package/corpus/templates/design/changelog/2026-06-30-text-added-on-the-canvas-now-focuses-cleanly-with-the-right-.md +6 -0
  254. package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-is-simpler-and-its-bottom.md +6 -0
  255. package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-now-follows-the-current-t.md +6 -0
  256. package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-child-layout-controls-o.md +6 -0
  257. package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-the-ask-ai-section-abov.md +6 -0
  258. package/corpus/templates/design/changelog/2026-06-30-the-design-review-panel-no-longer-shows-a-separate-inline-au.md +6 -0
  259. package/corpus/templates/design/changelog/2026-06-30-the-empty-designs-page-now-focuses-on-a-single-primary-new-d.md +6 -0
  260. package/corpus/templates/design/changelog/2026-06-30-the-layers-panel-header-stays-as-layers-while-multiple-items.md +6 -0
  261. package/corpus/templates/design/changelog/2026-06-30-the-missing-design-screen-now-uses-a-neutral-back-button.md +6 -0
  262. package/corpus/templates/design/changelog/2026-06-30-the-motion-timeline-now-closes-without-squeezing-the-canvas-.md +6 -0
  263. package/corpus/templates/design/changelog/2026-06-30-the-new-design-connect-ai-setup-now-lines-up-with-the-compos.md +6 -0
  264. package/corpus/templates/design/changelog/2026-06-30-the-screen-overview-board-now-blends-into-the-canvas-and-new.md +6 -0
  265. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-drops-now-show-screen-guides.md +6 -0
  266. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-keep-a-transparent-backdrop-and-.md +6 -0
  267. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-select-reliably-from-all-screens.md +6 -0
  268. package/corpus/templates/design/changelog/2026-06-30-visual-edit-can-open-and-refresh-localhost-screens-in-one-au.md +6 -0
  269. package/corpus/templates/design/e2e/helpers.ts +15 -4
  270. package/corpus/templates/design/server/db/index.ts +52 -0
  271. package/corpus/templates/design/server/plugins/agent-chat.ts +5 -0
  272. package/corpus/templates/design/server/plugins/auth.ts +1 -0
  273. package/corpus/templates/design/server/plugins/core-routes.ts +4 -0
  274. package/corpus/templates/design/shared/board-file.ts +380 -5
  275. package/corpus/templates/design/shared/board-objects.ts +2 -2
  276. package/corpus/templates/design/shared/code-layer.ts +50 -6
  277. package/corpus/templates/design/shared/motion-compiler.ts +27 -0
  278. package/corpus/templates/macros/app/components/DailyProgress.tsx +41 -37
  279. package/corpus/templates/macros/app/components/ExerciseCard.tsx +2 -2
  280. package/corpus/templates/macros/app/components/MealCard.tsx +2 -2
  281. package/corpus/templates/macros/app/components/VoiceDictation.tsx +1 -1
  282. package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -1
  283. package/corpus/templates/macros/app/components/WeightCard.tsx +2 -2
  284. package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
  285. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -1
  286. package/corpus/templates/macros/app/routes/_index.tsx +5 -5
  287. package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
  288. package/corpus/templates/macros/changelog/2026-06-30-dashboard-loading-and-chart-surfaces-now-use-theme-aware-col.md +6 -0
  289. package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +14 -11
  290. package/corpus/templates/mail/app/global.css +3 -2
  291. package/corpus/templates/mail/changelog/2026-06-30-compose-floating-toolbars-now-use-theme-aware-colors-in-ligh.md +6 -0
  292. package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
  293. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +3 -3
  294. package/corpus/templates/slides/app/global.css +10 -0
  295. package/corpus/templates/slides/app/pages/Index.tsx +55 -51
  296. package/corpus/templates/slides/changelog/2026-06-30-deck-thumbnails-collapse-cleanly-to-one-column-when-the-chat.md +6 -0
  297. package/dist/agent/engine/anthropic-engine.d.ts +2 -2
  298. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  299. package/dist/agent/engine/builder-engine.d.ts +2 -2
  300. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  301. package/dist/agent/engine/builtin.js +1 -1
  302. package/dist/agent/engine/builtin.js.map +1 -1
  303. package/dist/agent/engine/output-tokens.js +1 -1
  304. package/dist/agent/engine/output-tokens.js.map +1 -1
  305. package/dist/agent/harness/acp-adapter.d.ts +4 -1
  306. package/dist/agent/harness/acp-adapter.d.ts.map +1 -1
  307. package/dist/agent/harness/acp-adapter.js +19 -2
  308. package/dist/agent/harness/acp-adapter.js.map +1 -1
  309. package/dist/agent/harness/ai-sdk-adapter.d.ts.map +1 -1
  310. package/dist/agent/harness/ai-sdk-adapter.js +3 -0
  311. package/dist/agent/harness/ai-sdk-adapter.js.map +1 -1
  312. package/dist/agent/harness/translate.d.ts.map +1 -1
  313. package/dist/agent/harness/translate.js +3 -0
  314. package/dist/agent/harness/translate.js.map +1 -1
  315. package/dist/agent/harness/types.d.ts +1 -0
  316. package/dist/agent/harness/types.d.ts.map +1 -1
  317. package/dist/agent/harness/types.js.map +1 -1
  318. package/dist/agent/model-config.d.ts +21 -20
  319. package/dist/agent/model-config.d.ts.map +1 -1
  320. package/dist/agent/model-config.js +31 -13
  321. package/dist/agent/model-config.js.map +1 -1
  322. package/dist/agent/production-agent.d.ts.map +1 -1
  323. package/dist/agent/production-agent.js +85 -10
  324. package/dist/agent/production-agent.js.map +1 -1
  325. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  326. package/dist/agent/thread-data-builder.js +27 -6
  327. package/dist/agent/thread-data-builder.js.map +1 -1
  328. package/dist/agent/tool-call-journal.d.ts +11 -9
  329. package/dist/agent/tool-call-journal.d.ts.map +1 -1
  330. package/dist/agent/tool-call-journal.js +92 -40
  331. package/dist/agent/tool-call-journal.js.map +1 -1
  332. package/dist/agent/types.d.ts +5 -1
  333. package/dist/agent/types.d.ts.map +1 -1
  334. package/dist/agent/types.js.map +1 -1
  335. package/dist/cli/design-connect.d.ts.map +1 -1
  336. package/dist/cli/design-connect.js +84 -0
  337. package/dist/cli/design-connect.js.map +1 -1
  338. package/dist/cli/gateway-helpers.d.ts +4 -0
  339. package/dist/cli/gateway-helpers.d.ts.map +1 -1
  340. package/dist/cli/gateway-helpers.js +9 -0
  341. package/dist/cli/gateway-helpers.js.map +1 -1
  342. package/dist/cli/recap.d.ts.map +1 -1
  343. package/dist/cli/recap.js +0 -2
  344. package/dist/cli/recap.js.map +1 -1
  345. package/dist/cli/skills.d.ts.map +1 -1
  346. package/dist/cli/skills.js +54 -16
  347. package/dist/cli/skills.js.map +1 -1
  348. package/dist/cli/workspace-dev.d.ts.map +1 -1
  349. package/dist/cli/workspace-dev.js +33 -6
  350. package/dist/cli/workspace-dev.js.map +1 -1
  351. package/dist/client/AssistantChat.d.ts.map +1 -1
  352. package/dist/client/AssistantChat.js +72 -26
  353. package/dist/client/AssistantChat.js.map +1 -1
  354. package/dist/client/DefaultSpinner.d.ts.map +1 -1
  355. package/dist/client/DefaultSpinner.js +8 -1
  356. package/dist/client/DefaultSpinner.js.map +1 -1
  357. package/dist/client/chat/message-components.d.ts +7 -1
  358. package/dist/client/chat/message-components.d.ts.map +1 -1
  359. package/dist/client/chat/message-components.js +37 -1
  360. package/dist/client/chat/message-components.js.map +1 -1
  361. package/dist/client/chat/repo-helpers.d.ts +1 -0
  362. package/dist/client/chat/repo-helpers.d.ts.map +1 -1
  363. package/dist/client/chat/repo-helpers.js +59 -0
  364. package/dist/client/chat/repo-helpers.js.map +1 -1
  365. package/dist/client/chat/run-recovery.d.ts.map +1 -1
  366. package/dist/client/chat/run-recovery.js +4 -4
  367. package/dist/client/chat/run-recovery.js.map +1 -1
  368. package/dist/client/components/ApiKeySettings.js +8 -8
  369. package/dist/client/components/ApiKeySettings.js.map +1 -1
  370. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  371. package/dist/client/components/CodeRequiredDialog.js +24 -15
  372. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  373. package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
  374. package/dist/client/components/MissingKeyCard.js +11 -6
  375. package/dist/client/components/MissingKeyCard.js.map +1 -1
  376. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  377. package/dist/client/composer/TiptapComposer.js +4 -3
  378. package/dist/client/composer/TiptapComposer.js.map +1 -1
  379. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  380. package/dist/client/extensions/ExtensionsSidebarSection.js +1 -1
  381. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  382. package/dist/client/guided-questions.d.ts.map +1 -1
  383. package/dist/client/guided-questions.js +6 -6
  384. package/dist/client/guided-questions.js.map +1 -1
  385. package/dist/client/integrations/IntegrationCard.js +1 -1
  386. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  387. package/dist/client/integrations/IntegrationsPanel.js +1 -1
  388. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  389. package/dist/client/onboarding/OnboardingBanner.js +2 -2
  390. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  391. package/dist/client/onboarding/OnboardingPanel.js +23 -19
  392. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  393. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  394. package/dist/client/resources/ResourceEditor.js +13 -10
  395. package/dist/client/resources/ResourceEditor.js.map +1 -1
  396. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  397. package/dist/client/resources/ResourcesPanel.js +2 -1
  398. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  399. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  400. package/dist/client/settings/SettingsPanel.js +8 -3
  401. package/dist/client/settings/SettingsPanel.js.map +1 -1
  402. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  403. package/dist/client/settings/useBuilderStatus.js +6 -38
  404. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  405. package/dist/client/useProductionAgent.d.ts +2 -1
  406. package/dist/client/useProductionAgent.d.ts.map +1 -1
  407. package/dist/client/useProductionAgent.js.map +1 -1
  408. package/dist/collab/awareness.d.ts +2 -2
  409. package/dist/collab/awareness.d.ts.map +1 -1
  410. package/dist/collab/routes.d.ts +1 -1
  411. package/dist/deploy/build.js +1 -1
  412. package/dist/deploy/build.js.map +1 -1
  413. package/dist/eval/define-eval.d.ts.map +1 -1
  414. package/dist/eval/define-eval.js +2 -1
  415. package/dist/eval/define-eval.js.map +1 -1
  416. package/dist/eval/report.d.ts.map +1 -1
  417. package/dist/eval/report.js +19 -4
  418. package/dist/eval/report.js.map +1 -1
  419. package/dist/eval/runner.d.ts.map +1 -1
  420. package/dist/eval/runner.js +38 -6
  421. package/dist/eval/runner.js.map +1 -1
  422. package/dist/eval/types.d.ts +11 -0
  423. package/dist/eval/types.d.ts.map +1 -1
  424. package/dist/eval/types.js.map +1 -1
  425. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  426. package/dist/notifications/routes.d.ts +3 -3
  427. package/dist/observability/routes.d.ts +5 -5
  428. package/dist/observability/traces.d.ts.map +1 -1
  429. package/dist/observability/traces.js.map +1 -1
  430. package/dist/onboarding/default-steps.js +1 -1
  431. package/dist/onboarding/default-steps.js.map +1 -1
  432. package/dist/progress/routes.d.ts +1 -1
  433. package/dist/resources/handlers.d.ts +1 -1
  434. package/dist/scripts/agent-engines/manage-agent-engine.js +1 -1
  435. package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
  436. package/dist/scripts/agent-engines/set-agent-engine.js +1 -1
  437. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
  438. package/dist/server/agent-chat-plugin.d.ts +3 -0
  439. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  440. package/dist/server/agent-chat-plugin.js +134 -72
  441. package/dist/server/agent-chat-plugin.js.map +1 -1
  442. package/dist/server/core-routes-plugin.d.ts +3 -0
  443. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  444. package/dist/server/core-routes-plugin.js +4 -1
  445. package/dist/server/core-routes-plugin.js.map +1 -1
  446. package/dist/server/open-route.d.ts +9 -0
  447. package/dist/server/open-route.d.ts.map +1 -1
  448. package/dist/server/open-route.js +48 -38
  449. package/dist/server/open-route.js.map +1 -1
  450. package/dist/shared/reasoning-effort.js +3 -0
  451. package/dist/shared/reasoning-effort.js.map +1 -1
  452. package/dist/sharing/access.d.ts.map +1 -1
  453. package/dist/sharing/access.js +18 -2
  454. package/dist/sharing/access.js.map +1 -1
  455. package/dist/sharing/registry.d.ts +10 -0
  456. package/dist/sharing/registry.d.ts.map +1 -1
  457. package/dist/sharing/registry.js.map +1 -1
  458. package/dist/styles/agent-native.css +104 -20
  459. package/dist/styles/rich-markdown-editor.css +11 -10
  460. package/docs/content/cloneable-saas.mdx +2 -2
  461. package/docs/content/evals.mdx +34 -12
  462. package/docs/content/faq.mdx +1 -1
  463. package/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
  464. package/docs/content/locales/ar-SA/evals.mdx +7 -0
  465. package/docs/content/locales/ar-SA/faq.mdx +1 -1
  466. package/docs/content/locales/ar-SA/template-chat.mdx +1 -1
  467. package/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
  468. package/docs/content/locales/de-DE/evals.mdx +8 -0
  469. package/docs/content/locales/de-DE/faq.mdx +1 -1
  470. package/docs/content/locales/de-DE/template-chat.mdx +1 -1
  471. package/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
  472. package/docs/content/locales/es-ES/evals.mdx +8 -0
  473. package/docs/content/locales/es-ES/faq.mdx +1 -1
  474. package/docs/content/locales/es-ES/template-chat.mdx +1 -1
  475. package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  476. package/docs/content/locales/fr-FR/evals.mdx +8 -0
  477. package/docs/content/locales/fr-FR/faq.mdx +1 -1
  478. package/docs/content/locales/fr-FR/template-chat.mdx +1 -1
  479. package/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
  480. package/docs/content/locales/hi-IN/evals.mdx +8 -0
  481. package/docs/content/locales/hi-IN/faq.mdx +1 -1
  482. package/docs/content/locales/hi-IN/template-chat.mdx +1 -1
  483. package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  484. package/docs/content/locales/ja-JP/evals.mdx +7 -0
  485. package/docs/content/locales/ja-JP/faq.mdx +1 -1
  486. package/docs/content/locales/ja-JP/template-chat.mdx +1 -1
  487. package/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
  488. package/docs/content/locales/ko-KR/evals.mdx +7 -0
  489. package/docs/content/locales/ko-KR/faq.mdx +1 -1
  490. package/docs/content/locales/ko-KR/template-chat.mdx +1 -1
  491. package/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
  492. package/docs/content/locales/pt-BR/evals.mdx +8 -0
  493. package/docs/content/locales/pt-BR/faq.mdx +1 -1
  494. package/docs/content/locales/pt-BR/template-chat.mdx +1 -1
  495. package/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
  496. package/docs/content/locales/zh-CN/evals.mdx +7 -0
  497. package/docs/content/locales/zh-CN/faq.mdx +1 -1
  498. package/docs/content/locales/zh-CN/template-chat.mdx +1 -1
  499. package/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
  500. package/docs/content/locales/zh-TW/evals.mdx +7 -0
  501. package/docs/content/locales/zh-TW/faq.mdx +1 -1
  502. package/docs/content/locales/zh-TW/template-chat.mdx +1 -1
  503. package/docs/content/template-chat.mdx +1 -1
  504. package/package.json +1 -1
  505. package/corpus/templates/content/server/routes/api/notion/disconnect.post.ts +0 -12
  506. package/corpus/templates/design/app/components/design/LocalSourceEditBanner.tsx +0 -157
  507. package/corpus/templates/design/app/lib/design-templates.ts +0 -1305
  508. package/corpus/templates/design/app/pages/Templates.tsx +0 -279
@@ -56,6 +56,24 @@ export interface ShareableResourceRegistration {
56
56
  * Default: `true` (matches the historical behavior — most resources can be public).
57
57
  */
58
58
  allowPublic?: boolean;
59
+ /**
60
+ * Optional role granted by a public-by-link read. Most resources should omit
61
+ * this so public visibility remains viewer-only. Use narrowly for local or
62
+ * otherwise constrained resources where the resource owner intentionally wants
63
+ * unauthenticated link holders to do more than view.
64
+ */
65
+ publicAccessRole?:
66
+ | "viewer"
67
+ | "editor"
68
+ | "admin"
69
+ | ((
70
+ resource: any,
71
+ ctx: { userEmail?: string; orgId?: string },
72
+ ) =>
73
+ | "viewer"
74
+ | "editor"
75
+ | "admin"
76
+ | Promise<"viewer" | "editor" | "admin">);
59
77
  /**
60
78
  * When `true`, individual user shares (`principalType: "user"`) must target
61
79
  * an email that is already a member of the same org as the resource, OR has
@@ -167,17 +167,6 @@
167
167
  container: agent-native-main / inline-size;
168
168
  }
169
169
 
170
- .agent-layout-main-surface::before,
171
- .agent-sidebar-main-surface::before {
172
- content: "";
173
- position: absolute;
174
- inset: 0;
175
- z-index: 20;
176
- pointer-events: none;
177
- border-radius: inherit;
178
- box-shadow: var(--agent-native-raised-outline);
179
- }
180
-
181
170
  .agent-layout-shell
182
171
  :where(.agent-layout-main-surface, .agent-sidebar-main-surface)
183
172
  > :first-child
@@ -537,6 +526,57 @@
537
526
  }
538
527
  }
539
528
 
529
+ /* Guided questions size themselves from the rendered container, not viewport
530
+ breakpoints, so they stay readable in narrow chat sidebars. */
531
+ .guided-question-flow {
532
+ container-type: inline-size;
533
+ container-name: guided-question-flow;
534
+ }
535
+
536
+ .guided-question-flow-options {
537
+ grid-template-columns: minmax(0, 1fr);
538
+ }
539
+
540
+ @container guided-question-flow (min-width: 42rem) {
541
+ .guided-question-flow-inner {
542
+ padding: 2rem;
543
+ }
544
+
545
+ .guided-question-flow-header {
546
+ margin-bottom: 1.5rem;
547
+ }
548
+
549
+ .guided-question-flow-title {
550
+ font-size: 1.5rem;
551
+ line-height: 2rem;
552
+ }
553
+
554
+ .guided-question-flow-options {
555
+ grid-template-columns: repeat(2, minmax(0, 1fr));
556
+ }
557
+
558
+ .guided-question-flow-footer {
559
+ margin-top: 1.25rem;
560
+ padding-top: 1rem;
561
+ }
562
+ }
563
+
564
+ @container guided-question-flow (max-width: 24rem) {
565
+ .guided-question-flow-description {
566
+ font-size: 0.8125rem;
567
+ line-height: 1.25rem;
568
+ }
569
+
570
+ .guided-question-flow-footer {
571
+ align-items: stretch;
572
+ flex-direction: column;
573
+ }
574
+
575
+ .guided-question-flow-footer > :last-child {
576
+ justify-content: flex-end;
577
+ }
578
+ }
579
+
540
580
  /* Connect AI card: use the card width, not the viewport, so narrow embedded
541
581
  sidebars stack the copy and actions before the secondary button clips. */
542
582
  .agent-builder-setup-card {
@@ -548,6 +588,32 @@
548
588
  container-name: agent-builder-setup;
549
589
  }
550
590
 
591
+ .agent-builder-setup-card--sidebar .agent-builder-setup-card__actions {
592
+ gap: 0.25rem;
593
+ }
594
+
595
+ .agent-builder-setup-card--sidebar .agent-builder-setup-card__builder-button {
596
+ justify-content: center;
597
+ min-height: 2rem;
598
+ }
599
+
600
+ .agent-builder-setup-card--sidebar .agent-builder-setup-card__key-button {
601
+ align-self: center;
602
+ justify-content: center;
603
+ width: auto;
604
+ min-height: 1.5rem;
605
+ height: 1.5rem;
606
+ border: 0;
607
+ background: transparent;
608
+ color: hsl(var(--muted-foreground));
609
+ padding-inline: 0.25rem;
610
+ }
611
+
612
+ .agent-builder-setup-card--sidebar .agent-builder-setup-card__key-button:hover {
613
+ background: transparent;
614
+ color: hsl(var(--foreground));
615
+ }
616
+
551
617
  @container agent-builder-setup (max-width: 560px) {
552
618
  .agent-builder-setup-card__content {
553
619
  align-items: stretch;
@@ -564,23 +630,19 @@
564
630
 
565
631
  .agent-builder-setup-card__builder-cta {
566
632
  align-items: stretch;
567
- flex: 1 1 11rem;
633
+ flex: 0 1 auto;
568
634
  }
569
635
 
570
- .agent-builder-setup-card__builder-button,
571
- .agent-builder-setup-card__key-button {
636
+ .agent-builder-setup-card__builder-button {
572
637
  justify-content: center;
573
638
  min-width: 0;
574
639
  width: 100%;
575
640
  }
576
641
 
577
642
  .agent-builder-setup-card__key-button {
578
- border: 1px solid hsl(var(--border));
579
- background: hsl(var(--background));
580
- color: hsl(var(--foreground));
581
- flex: 1 1 8rem;
582
- height: 2rem;
583
- padding-inline: 0.75rem;
643
+ flex: 0 0 auto;
644
+ min-width: 0;
645
+ width: auto;
584
646
  }
585
647
  }
586
648
 
@@ -629,6 +691,28 @@
629
691
  overflow: visible;
630
692
  }
631
693
 
694
+ [data-agent-empty-state="compact-setup"] > .agent-chat-scroll {
695
+ flex: 0 0 auto;
696
+ overflow: visible;
697
+ }
698
+
699
+ [data-agent-empty-state="compact-setup"] .agent-empty-state {
700
+ height: auto;
701
+ min-height: 5rem;
702
+ gap: 0.5rem;
703
+ padding-block: 0.875rem;
704
+ }
705
+
706
+ [data-agent-empty-state="compact-setup"] .agent-empty-state > div:first-child {
707
+ width: 2rem;
708
+ height: 2rem;
709
+ }
710
+
711
+ [data-agent-empty-state="compact-setup"] .agent-empty-state svg {
712
+ width: 1rem;
713
+ height: 1rem;
714
+ }
715
+
632
716
  .agent-thinking-indicator {
633
717
  display: inline-flex;
634
718
  align-items: center;
@@ -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