@agent-native/core 0.97.0 → 0.98.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 (844) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +32 -0
  3. package/corpus/core/docs/content/authentication.mdx +3 -3
  4. package/corpus/core/docs/content/doctor.mdx +170 -0
  5. package/corpus/core/docs/content/external-agents.mdx +8 -7
  6. package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +2 -2
  7. package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +8 -7
  8. package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
  9. package/corpus/core/docs/content/locales/ar-SA/security.mdx +2 -0
  10. package/corpus/core/docs/content/locales/de-DE/authentication.mdx +1 -1
  11. package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +8 -7
  12. package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
  13. package/corpus/core/docs/content/locales/de-DE/security.mdx +2 -0
  14. package/corpus/core/docs/content/locales/es-ES/authentication.mdx +2 -2
  15. package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +8 -7
  16. package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
  17. package/corpus/core/docs/content/locales/es-ES/security.mdx +2 -0
  18. package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +1 -1
  19. package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +8 -7
  20. package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
  21. package/corpus/core/docs/content/locales/fr-FR/security.mdx +2 -0
  22. package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +2 -2
  23. package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +8 -7
  24. package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
  25. package/corpus/core/docs/content/locales/hi-IN/security.mdx +2 -0
  26. package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +2 -2
  27. package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +8 -7
  28. package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
  29. package/corpus/core/docs/content/locales/ja-JP/security.mdx +2 -0
  30. package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +2 -2
  31. package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +8 -7
  32. package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
  33. package/corpus/core/docs/content/locales/ko-KR/security.mdx +2 -0
  34. package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +2 -2
  35. package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +8 -7
  36. package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
  37. package/corpus/core/docs/content/locales/pt-BR/security.mdx +2 -0
  38. package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +2 -2
  39. package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +8 -7
  40. package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
  41. package/corpus/core/docs/content/locales/zh-CN/security.mdx +2 -0
  42. package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +2 -2
  43. package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +8 -7
  44. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
  45. package/corpus/core/docs/content/locales/zh-TW/security.mdx +2 -0
  46. package/corpus/core/docs/content/mcp-protocol.mdx +1 -1
  47. package/corpus/core/docs/content/security.mdx +2 -0
  48. package/corpus/core/package.json +5 -1
  49. package/corpus/core/scripts/finalize-build.mjs +63 -3
  50. package/corpus/core/scripts/materialize-source-corpus.mjs +101 -15
  51. package/corpus/core/src/action.ts +42 -0
  52. package/corpus/core/src/agent/engine/builder-engine.ts +3 -0
  53. package/corpus/core/src/agent/engine/context-directives-transform.ts +69 -0
  54. package/corpus/core/src/agent/engine/continuation-dispatch-retry.ts +168 -0
  55. package/corpus/core/src/agent/engine/tool-call-journal-seed.ts +85 -0
  56. package/corpus/core/src/agent/production-agent.ts +129 -244
  57. package/corpus/core/src/cli/doctor.ts +9 -3
  58. package/corpus/core/src/cli/plan-local.ts +10 -2
  59. package/corpus/core/src/cli/skills-content/assets-skill.ts +83 -0
  60. package/corpus/core/src/cli/skills-content/canvas.ts +153 -0
  61. package/corpus/core/src/cli/skills-content/connection.ts +52 -0
  62. package/corpus/core/src/cli/skills-content/content-skill.ts +109 -0
  63. package/corpus/core/src/cli/skills-content/design-exploration-skill.ts +118 -0
  64. package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +228 -0
  65. package/corpus/core/src/cli/skills-content/document-quality.ts +196 -0
  66. package/corpus/core/src/cli/skills-content/exemplar.ts +69 -0
  67. package/corpus/core/src/cli/skills-content/help.ts +77 -0
  68. package/corpus/core/src/cli/skills-content/index.ts +22 -0
  69. package/corpus/core/src/cli/skills-content/local-files.ts +95 -0
  70. package/corpus/core/src/cli/skills-content/plan-setup-auth.ts +80 -0
  71. package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +470 -0
  72. package/corpus/core/src/cli/skills-content/visual-recap-skill.ts +547 -0
  73. package/corpus/core/src/cli/skills-content/visualize-repo-skill.ts +93 -0
  74. package/corpus/core/src/cli/skills-content/wireframe.ts +349 -0
  75. package/corpus/core/src/cli/skills.ts +27 -2733
  76. package/corpus/core/src/client/AgentPanel.tsx +6 -5
  77. package/corpus/core/src/client/CommandMenu.tsx +16 -5
  78. package/corpus/core/src/client/FeedbackButton.tsx +2 -2
  79. package/corpus/core/src/client/app-providers.tsx +18 -5
  80. package/corpus/core/src/client/chat/tool-call-display.tsx +3 -3
  81. package/corpus/core/src/client/composer/PastedTextChip.tsx +1 -1
  82. package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +143 -45
  83. package/corpus/core/src/client/composer/TiptapComposer.tsx +1 -1
  84. package/corpus/core/src/client/composer/VoiceButton.tsx +21 -5
  85. package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +107 -10
  86. package/corpus/core/src/client/context-xray/ContextXRayPanel.tsx +5 -2
  87. package/corpus/core/src/client/extensions/ExtensionEditor.tsx +37 -4
  88. package/corpus/core/src/client/extensions/ExtensionQueryErrorState.tsx +47 -0
  89. package/corpus/core/src/client/extensions/ExtensionSlot.tsx +39 -10
  90. package/corpus/core/src/client/extensions/ExtensionViewer.tsx +44 -6
  91. package/corpus/core/src/client/extensions/ExtensionsListPage.tsx +12 -3
  92. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +49 -11
  93. package/corpus/core/src/client/index.ts +0 -13
  94. package/corpus/core/src/client/progress/RunsTray.tsx +10 -3
  95. package/corpus/core/src/client/settings/SettingsTabsPage.tsx +7 -0
  96. package/corpus/core/src/client/settings/useBuilderStatus.ts +6 -0
  97. package/corpus/core/src/client/tool-cells/EditCell.tsx +19 -16
  98. package/corpus/core/src/client/tool-cells/FilesChangedSummary.tsx +26 -23
  99. package/corpus/core/src/client/tool-cells/WriteCell.tsx +19 -16
  100. package/corpus/core/src/client/visual-style-controls.tsx +1 -1
  101. package/corpus/core/src/deploy/build.ts +36 -14
  102. package/corpus/core/src/integrations/google-docs-poller.ts +23 -2
  103. package/corpus/core/src/integrations/plugin.ts +10 -0
  104. package/corpus/core/src/integrations/webhook-handler.ts +27 -2
  105. package/corpus/core/src/jobs/scheduler.ts +28 -2
  106. package/corpus/core/src/localization/default-messages.ts +8 -1
  107. package/corpus/core/src/mcp/oauth-token.ts +6 -1
  108. package/corpus/core/src/observability/routes.ts +36 -0
  109. package/corpus/core/src/observability/sentiment.ts +261 -0
  110. package/corpus/core/src/observability/store.ts +23 -0
  111. package/corpus/core/src/observability/traces.ts +49 -63
  112. package/corpus/core/src/observability/tracking-identity.ts +55 -0
  113. package/corpus/core/src/observability/types.ts +13 -0
  114. package/corpus/core/src/secrets/storage.ts +67 -3
  115. package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +199 -0
  116. package/corpus/core/src/server/agent-chat/browser-team-tools.ts +510 -0
  117. package/corpus/core/src/server/agent-chat/context-tools.ts +595 -0
  118. package/corpus/core/src/server/agent-chat/framework-prompts.ts +470 -0
  119. package/corpus/core/src/server/agent-chat/lazy-fs.ts +11 -0
  120. package/corpus/core/src/server/agent-chat/mcp-glue.ts +91 -0
  121. package/corpus/core/src/server/agent-chat/plugin-options.ts +350 -0
  122. package/corpus/core/src/server/agent-chat/process-run-failure.ts +62 -0
  123. package/corpus/core/src/server/agent-chat/prompt-resources.ts +688 -0
  124. package/corpus/core/src/server/agent-chat/recurring-jobs-runtime.ts +80 -0
  125. package/corpus/core/src/server/agent-chat/request-surface.ts +71 -0
  126. package/corpus/core/src/server/agent-chat/run-code-tools.ts +67 -0
  127. package/corpus/core/src/server/agent-chat/script-entries.ts +779 -0
  128. package/corpus/core/src/server/agent-chat/shared-thread.ts +301 -0
  129. package/corpus/core/src/server/agent-chat/skill-frontmatter.ts +41 -0
  130. package/corpus/core/src/server/agent-chat-plugin.ts +364 -4182
  131. package/corpus/core/src/server/agent-teams.ts +26 -3
  132. package/corpus/core/src/server/auth.ts +55 -57
  133. package/corpus/core/src/server/credential-provider.ts +22 -25
  134. package/corpus/core/src/server/edge.ts +1 -0
  135. package/corpus/core/src/server/onboarding-html.ts +1 -16
  136. package/corpus/core/src/server/realtime-voice.ts +40 -5
  137. package/corpus/core/src/server/request-origin.ts +6 -2
  138. package/corpus/core/src/server/ssr-handler.ts +55 -2
  139. package/corpus/core/src/sharing/access.ts +155 -11
  140. package/corpus/core/src/sharing/registry.ts +7 -0
  141. package/corpus/core/src/styles/agent-native.css +15 -14
  142. package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  143. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +6 -0
  144. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +6 -0
  145. package/corpus/core/src/templates/default/app/i18n/en-US.ts +6 -0
  146. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +6 -0
  147. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +6 -0
  148. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +6 -0
  149. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +6 -0
  150. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +6 -0
  151. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +6 -0
  152. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +6 -0
  153. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +6 -0
  154. package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
  155. package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
  156. package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  157. package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
  158. package/corpus/core/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
  159. package/corpus/core/src/templates/workspace-core/src/server/index.ts +4 -2
  160. package/corpus/core/src/testing.ts +26 -0
  161. package/corpus/core/src/triggers/dispatcher.ts +23 -2
  162. package/corpus/core/src/vite/client.ts +126 -2
  163. package/corpus/core/tsconfig.cli.json +1 -1
  164. package/corpus/core/tsconfig.json +5 -1
  165. package/corpus/templates/analytics/.agents/skills/bigquery/SKILL.md +2 -2
  166. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +1 -1
  167. package/corpus/templates/analytics/AGENTS.md +19 -6
  168. package/corpus/templates/analytics/actions/install-dashboard-template.ts +79 -43
  169. package/corpus/templates/analytics/actions/list-explorer-dashboards.ts +3 -3
  170. package/corpus/templates/analytics/actions/list-sql-dashboards.ts +8 -3
  171. package/corpus/templates/analytics/actions/rename-analysis.ts +8 -2
  172. package/corpus/templates/analytics/actions/rename-dashboard.ts +8 -7
  173. package/corpus/templates/analytics/actions/view-screen.ts +4 -23
  174. package/corpus/templates/analytics/app/components/ResourceLoadError.tsx +42 -0
  175. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +85 -70
  176. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +107 -89
  177. package/corpus/templates/analytics/app/components/layout/SidebarLoadError.tsx +24 -0
  178. package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +15 -5
  179. package/corpus/templates/analytics/app/i18n/zh-TW.ts +4 -0
  180. package/corpus/templates/analytics/app/i18n-data.ts +40 -0
  181. package/corpus/templates/analytics/app/pages/Settings.tsx +6 -2
  182. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +36 -20
  183. package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +34 -20
  184. package/corpus/templates/analytics/app/pages/adhoc/explorer/use-explorer-config.ts +42 -41
  185. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +43 -36
  186. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +11 -2
  187. package/corpus/templates/analytics/app/root.tsx +13 -1
  188. package/corpus/templates/analytics/app/routes/_index.tsx +14 -2
  189. package/corpus/templates/analytics/changelog/2026-07-03-agent-llm-observability-dashboard.md +1 -1
  190. package/corpus/templates/analytics/changelog/2026-07-11-agent-feedback-sentiment-dashboard.md +6 -0
  191. package/corpus/templates/analytics/changelog/2026-07-11-analytics-chats-now-start-faster-by-loading-metric-definitio.md +6 -0
  192. package/corpus/templates/analytics/changelog/2026-07-11-command-and-sql-previews-now-respond-without-lag.md +6 -0
  193. package/corpus/templates/analytics/changelog/2026-07-11-command-search-now-reports-loading-failures-and-lets-you-ret.md +6 -0
  194. package/corpus/templates/analytics/changelog/2026-07-11-dashboard-navigation-now-loads-faster-and-reports-request-fa.md +6 -0
  195. package/corpus/templates/analytics/changelog/2026-07-11-inferred-message-sentiment-dashboard.md +6 -0
  196. package/corpus/templates/analytics/changelog/2026-07-11-microphone-settings-from-realtime-voice-mode-now-open-the-vo.md +6 -0
  197. package/corpus/templates/analytics/changelog/2026-07-11-more-dashboard-edit-paths-are-now-safe-against-simultaneous-.md +6 -0
  198. package/corpus/templates/analytics/changelog/2026-07-11-renaming-a-dashboard-is-now-safe-against-simultaneous-agent-.md +6 -0
  199. package/corpus/templates/analytics/changelog/2026-07-11-renaming-an-analysis-is-now-safe-against-simultaneous-edits.md +6 -0
  200. package/corpus/templates/analytics/changelog/2026-07-11-workspace-mounted-analytics-now-opens-ask-reliably-and-route.md +6 -0
  201. package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +37 -3
  202. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +339 -1
  203. package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +1 -24
  204. package/corpus/templates/analytics/server/lib/dashboard-seeds.ts +0 -5
  205. package/corpus/templates/analytics/server/lib/dashboards-store.ts +289 -20
  206. package/corpus/templates/analytics/server/lib/data-dictionary-context.ts +106 -34
  207. package/corpus/templates/analytics/server/lib/demo-dashboards.ts +4 -1
  208. package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -39
  209. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +1 -1
  210. package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +30 -4
  211. package/corpus/templates/assets/app/routes/library.tsx +49 -5
  212. package/corpus/templates/assets/changelog/2026-07-11-library-load-failures-now-show-a-retry-action.md +6 -0
  213. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +1 -1
  214. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +1 -1
  215. package/corpus/templates/calendar/.env.example +5 -0
  216. package/corpus/templates/calendar/app/components/calendar/EventCard.tsx +2 -2
  217. package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
  218. package/corpus/templates/calendar/app/i18n-data.ts +20 -0
  219. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +37 -1
  220. package/corpus/templates/calendar/app/pages/BookingsList.tsx +20 -3
  221. package/corpus/templates/calendar/changelog/2026-07-11-booking-load-failures-now-show-a-retry-action.md +6 -0
  222. package/corpus/templates/calendar/changelog/2026-07-11-event-cards-give-subtle-press-feedback-and-smoother-hover.md +6 -0
  223. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
  224. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +1 -1
  225. package/corpus/templates/clips/actions/decline-invite.ts +8 -0
  226. package/corpus/templates/clips/app/components/library/folder-tree.tsx +209 -187
  227. package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +2 -2
  228. package/corpus/templates/clips/app/components/player/reactions-tray.tsx +17 -5
  229. package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -3
  230. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +2 -2
  231. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +119 -95
  232. package/corpus/templates/clips/app/global.css +45 -0
  233. package/corpus/templates/clips/app/root.tsx +4 -0
  234. package/corpus/templates/clips/app/routes/_app.notifications.tsx +23 -2
  235. package/corpus/templates/clips/app/routes/_app.trash.tsx +24 -2
  236. package/corpus/templates/clips/changelog/2026-07-11-controls-and-folders-now-move-more-smoothly.md +6 -0
  237. package/corpus/templates/clips/changelog/2026-07-11-declining-an-invitation-now-requires-being-its-recipient.md +6 -0
  238. package/corpus/templates/clips/changelog/2026-07-11-recording-overlays-are-lighter-weight-and-no-longer-cause-pa.md +6 -0
  239. package/corpus/templates/clips/changelog/2026-07-11-workspace-load-failures-now-show-a-retry-action.md +6 -0
  240. package/corpus/templates/clips/chrome-extension/src/overlay.css +34 -5
  241. package/corpus/templates/clips/chrome-extension/src/styles.css +2 -2
  242. package/corpus/templates/clips/desktop/src/styles.css +71 -26
  243. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +1 -1
  244. package/corpus/templates/content/actions/move-document.ts +34 -18
  245. package/corpus/templates/content/app/components/QueryErrorState.tsx +39 -0
  246. package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +1 -1
  247. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +225 -1435
  248. package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +368 -0
  249. package/corpus/templates/content/app/components/editor/database/ListView.tsx +353 -0
  250. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +580 -0
  251. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +11 -2
  252. package/corpus/templates/content/app/global.css +19 -19
  253. package/corpus/templates/content/app/root.tsx +2 -2
  254. package/corpus/templates/content/app/routes/_app._index.tsx +11 -1
  255. package/corpus/templates/content/changelog/2026-07-11-document-load-failures-now-show-a-retry-action.md +6 -0
  256. package/corpus/templates/content/changelog/2026-07-11-editor-toggle-feedback-now-feels-more-responsive.md +6 -0
  257. package/corpus/templates/content/changelog/2026-07-11-moving-documents-at-the-same-time-no-longer-scrambles-their-.md +6 -0
  258. package/corpus/templates/content/changelog/2026-07-11-public-document-chats-now-start-faster-while-keeping-full-do.md +6 -0
  259. package/corpus/templates/content/changelog/2026-07-11-reopening-a-comment-now-uses-consistent-permissions-everywhe.md +6 -0
  260. package/corpus/templates/content/changelog/2026-07-11-sidebar-resizing-now-tracks-your-cursor-instantly-instead-of.md +6 -0
  261. package/corpus/templates/content/server/lib/public-documents.ts +47 -10
  262. package/corpus/templates/content/server/routes/api/comments/[id].patch.ts +24 -24
  263. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +1 -1
  264. package/corpus/templates/design/app/components/QueryErrorState.tsx +24 -0
  265. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
  266. package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +5 -2
  267. package/corpus/templates/design/app/components/design/EditPanel.tsx +326 -319
  268. package/corpus/templates/design/app/components/design/LayersPanel.tsx +198 -193
  269. package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +11 -4
  270. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +1 -1
  271. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
  272. package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -1
  273. package/corpus/templates/design/app/pages/Index.tsx +14 -2
  274. package/corpus/templates/design/app/pages/Present.tsx +16 -3
  275. package/corpus/templates/design/app/pages/Templates.tsx +10 -4
  276. package/corpus/templates/design/app/pages/design-editor/canvas-primitive-insert.ts +484 -0
  277. package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +378 -0
  278. package/corpus/templates/design/app/pages/design-editor/design-data-geometry-utils.ts +138 -0
  279. package/corpus/templates/design/app/pages/design-editor/dom-utils.ts +15 -0
  280. package/corpus/templates/design/app/pages/design-editor/generation-prompt-directives.ts +180 -0
  281. package/corpus/templates/design/app/pages/design-editor/html-layer-positioning.ts +226 -0
  282. package/corpus/templates/design/app/pages/design-editor/png-export-render.ts +348 -0
  283. package/corpus/templates/design/app/pages/design-editor/screen-command-utils.ts +160 -0
  284. package/corpus/templates/design/app/pages/design-editor/text-edit-utils.ts +238 -0
  285. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +23 -1
  286. package/corpus/templates/design/app/pages/design-editor/types.ts +25 -0
  287. package/corpus/templates/design/app/root.tsx +10 -1
  288. package/corpus/templates/design/changelog/2026-07-11-canvas-context-menus-now-open-without-motion-jitter.md +6 -0
  289. package/corpus/templates/design/changelog/2026-07-11-design-load-failures-now-show-a-retry-action.md +6 -0
  290. package/corpus/templates/design/changelog/2026-07-11-inspector-tooltips-appear-instantly-as-you-sweep-across-icon.md +6 -0
  291. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +1 -1
  292. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +10 -0
  293. package/corpus/templates/dispatch/app/i18n-data.ts +123 -0
  294. package/corpus/templates/dispatch/app/routes/integrations.tsx +163 -144
  295. package/corpus/templates/dispatch/changelog/2026-07-11-dispatch-mcp-connections-now-start-with-safer-app-access-and.md +6 -0
  296. package/corpus/templates/dispatch/changelog/2026-07-11-overview-and-chat-now-share-a-cleaner-more-stable-flow.md +6 -0
  297. package/corpus/templates/dispatch/changelog/2026-07-11-query-errors-now-show-a-retry-option.md +6 -0
  298. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +1 -1
  299. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
  300. package/corpus/templates/forms/app/root.tsx +34 -8
  301. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +1 -1
  302. package/corpus/templates/macros/app/components/DailyProgress.tsx +25 -5
  303. package/corpus/templates/macros/app/components/QueryErrorState.tsx +31 -0
  304. package/corpus/templates/macros/app/components/WeightTracker.tsx +5 -1
  305. package/corpus/templates/macros/app/components/ui/button.tsx +1 -1
  306. package/corpus/templates/macros/app/components/ui/progress.tsx +1 -1
  307. package/corpus/templates/macros/app/components/ui/tabs.tsx +1 -1
  308. package/corpus/templates/macros/app/i18n/ar-SA.ts +2 -0
  309. package/corpus/templates/macros/app/i18n/de-DE.ts +2 -0
  310. package/corpus/templates/macros/app/i18n/en-US.ts +2 -0
  311. package/corpus/templates/macros/app/i18n/es-ES.ts +2 -0
  312. package/corpus/templates/macros/app/i18n/fr-FR.ts +2 -0
  313. package/corpus/templates/macros/app/i18n/hi-IN.ts +2 -0
  314. package/corpus/templates/macros/app/i18n/ja-JP.ts +2 -0
  315. package/corpus/templates/macros/app/i18n/ko-KR.ts +2 -0
  316. package/corpus/templates/macros/app/i18n/pt-BR.ts +2 -0
  317. package/corpus/templates/macros/app/i18n/zh-CN.ts +2 -0
  318. package/corpus/templates/macros/app/i18n/zh-TW.ts +2 -0
  319. package/corpus/templates/macros/app/routes/_index.tsx +22 -12
  320. package/corpus/templates/macros/app/routes/analytics.tsx +31 -10
  321. package/corpus/templates/macros/changelog/2026-07-11-daily-tracking-now-loads-and-updates-more-quickly.md +6 -0
  322. package/corpus/templates/macros/changelog/2026-07-11-data-load-failures-now-show-a-clear-error-with-a-retry-actio.md +6 -0
  323. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +1 -1
  324. package/corpus/templates/mail/.env.example +16 -11
  325. package/corpus/templates/mail/actions/list-emails.ts +39 -35
  326. package/corpus/templates/mail/app/components/email/ComposeModal.tsx +58 -6
  327. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +35 -2
  328. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +113 -104
  329. package/corpus/templates/mail/app/root.tsx +8 -10
  330. package/corpus/templates/mail/changelog/2026-07-11-compose-and-navigation-motion-now-feel-faster-and-smoother.md +6 -0
  331. package/corpus/templates/mail/changelog/2026-07-11-swipe-to-archive-or-snooze-now-responds-to-quick-flicks-not-.md +6 -0
  332. package/corpus/templates/mail/changelog/2026-07-11-the-assistant-now-sees-the-same-inbox-you-do-snoozed-mail-st.md +6 -0
  333. package/corpus/templates/mail/server/handlers/emails.ts +25 -69
  334. package/corpus/templates/mail/server/lib/list-inbox-emails.ts +169 -0
  335. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +1 -1
  336. package/corpus/templates/plan/.env.example +4 -0
  337. package/corpus/templates/plan/actions/create-plan-design.ts +89 -81
  338. package/corpus/templates/plan/actions/create-prototype-plan.ts +72 -59
  339. package/corpus/templates/plan/actions/create-ui-plan.ts +70 -55
  340. package/corpus/templates/plan/actions/create-visual-plan.ts +65 -51
  341. package/corpus/templates/plan/actions/update-local-plan-folder.ts +43 -30
  342. package/corpus/templates/plan/actions/update-visual-plan.ts +81 -64
  343. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +17 -0
  344. package/corpus/templates/plan/app/components/ui/tabs.tsx +1 -1
  345. package/corpus/templates/plan/app/i18n/ar-SA.ts +10 -0
  346. package/corpus/templates/plan/app/i18n/de-DE.ts +10 -0
  347. package/corpus/templates/plan/app/i18n/en-US.ts +10 -0
  348. package/corpus/templates/plan/app/i18n/es-ES.ts +10 -0
  349. package/corpus/templates/plan/app/i18n/fr-FR.ts +10 -0
  350. package/corpus/templates/plan/app/i18n/hi-IN.ts +10 -0
  351. package/corpus/templates/plan/app/i18n/ja-JP.ts +10 -0
  352. package/corpus/templates/plan/app/i18n/ko-KR.ts +10 -0
  353. package/corpus/templates/plan/app/i18n/pt-BR.ts +10 -0
  354. package/corpus/templates/plan/app/i18n/zh-CN.ts +10 -0
  355. package/corpus/templates/plan/app/i18n/zh-TW.ts +10 -0
  356. package/corpus/templates/plan/app/lib/plan-local-bridge.ts +80 -1
  357. package/corpus/templates/plan/app/pages/PlansPage.tsx +152 -4
  358. package/corpus/templates/plan/app/root.tsx +11 -0
  359. package/corpus/templates/plan/changelog/2026-07-11-local-plans-now-explain-and-recover-from-browser-permission-.md +6 -0
  360. package/corpus/templates/plan/changelog/2026-07-11-plan-edits-now-save-atomically-and-can-no-longer-partially-a.md +6 -0
  361. package/corpus/templates/plan/changelog/2026-07-11-plan-lists-now-show-a-clear-error-with-a-retry-action-when-t.md +6 -0
  362. package/corpus/templates/plan/shared/plan-content.ts +546 -260
  363. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +1 -1
  364. package/corpus/templates/slides/actions/delete-slide-comment.ts +49 -0
  365. package/corpus/templates/slides/actions/update-slide-comment.ts +93 -0
  366. package/corpus/templates/slides/actions/view-screen.ts +14 -6
  367. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +33 -10
  368. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +1 -1
  369. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +1 -1
  370. package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +2 -2
  371. package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +4 -2
  372. package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +4 -3
  373. package/corpus/templates/slides/app/context/DeckContext.tsx +9 -0
  374. package/corpus/templates/slides/app/i18n/ar-SA.ts +6 -0
  375. package/corpus/templates/slides/app/i18n/de-DE.ts +6 -0
  376. package/corpus/templates/slides/app/i18n/en-US.ts +6 -0
  377. package/corpus/templates/slides/app/i18n/es-ES.ts +6 -0
  378. package/corpus/templates/slides/app/i18n/fr-FR.ts +6 -0
  379. package/corpus/templates/slides/app/i18n/hi-IN.ts +6 -0
  380. package/corpus/templates/slides/app/i18n/ja-JP.ts +6 -0
  381. package/corpus/templates/slides/app/i18n/ko-KR.ts +6 -0
  382. package/corpus/templates/slides/app/i18n/pt-BR.ts +6 -0
  383. package/corpus/templates/slides/app/i18n/zh-CN.ts +5 -0
  384. package/corpus/templates/slides/app/i18n/zh-TW.ts +5 -0
  385. package/corpus/templates/slides/app/pages/DesignSystems.tsx +23 -2
  386. package/corpus/templates/slides/app/pages/Index.tsx +29 -1
  387. package/corpus/templates/slides/changelog/2026-07-11-comment-load-failures-now-show-a-retry-action-instead-of-say.md +6 -0
  388. package/corpus/templates/slides/changelog/2026-07-11-comment-pins-now-clear-with-a-faster-smoother-confirmation.md +6 -0
  389. package/corpus/templates/slides/changelog/2026-07-11-deck-and-design-system-load-failures-now-show-a-retry-action.md +6 -0
  390. package/corpus/templates/slides/changelog/2026-07-11-editor-toggles-and-toolbar-menus-now-animate-smoothly.md +6 -0
  391. package/corpus/templates/slides/changelog/2026-07-11-the-assistant-can-now-resolve-reopen-and-delete-slide-commen.md +6 -0
  392. package/corpus/templates/slides/changelog/2026-07-11-viewing-slides-no-longer-loads-every-deck-s-full-contents-in.md +6 -0
  393. package/corpus/templates/slides/server/routes/api/comments/[id].delete.ts +29 -48
  394. package/corpus/templates/slides/server/routes/api/comments/[id].patch.ts +29 -65
  395. package/dist/action.d.ts +23 -0
  396. package/dist/action.d.ts.map +1 -1
  397. package/dist/action.js +13 -0
  398. package/dist/action.js.map +1 -1
  399. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  400. package/dist/agent/engine/builder-engine.js +3 -0
  401. package/dist/agent/engine/builder-engine.js.map +1 -1
  402. package/dist/agent/engine/context-directives-transform.d.ts +25 -0
  403. package/dist/agent/engine/context-directives-transform.d.ts.map +1 -0
  404. package/dist/agent/engine/context-directives-transform.js +53 -0
  405. package/dist/agent/engine/context-directives-transform.js.map +1 -0
  406. package/dist/agent/engine/continuation-dispatch-retry.d.ts +40 -0
  407. package/dist/agent/engine/continuation-dispatch-retry.d.ts.map +1 -0
  408. package/dist/agent/engine/continuation-dispatch-retry.js +109 -0
  409. package/dist/agent/engine/continuation-dispatch-retry.js.map +1 -0
  410. package/dist/agent/engine/tool-call-journal-seed.d.ts +46 -0
  411. package/dist/agent/engine/tool-call-journal-seed.d.ts.map +1 -0
  412. package/dist/agent/engine/tool-call-journal-seed.js +60 -0
  413. package/dist/agent/engine/tool-call-journal-seed.js.map +1 -0
  414. package/dist/agent/production-agent.d.ts +7 -0
  415. package/dist/agent/production-agent.d.ts.map +1 -1
  416. package/dist/agent/production-agent.js +102 -222
  417. package/dist/agent/production-agent.js.map +1 -1
  418. package/dist/cli/doctor.d.ts.map +1 -1
  419. package/dist/cli/doctor.js +7 -3
  420. package/dist/cli/doctor.js.map +1 -1
  421. package/dist/cli/plan-local.d.ts.map +1 -1
  422. package/dist/cli/plan-local.js +8 -2
  423. package/dist/cli/plan-local.js.map +1 -1
  424. package/dist/cli/skills-content/assets-skill.d.ts +2 -0
  425. package/dist/cli/skills-content/assets-skill.d.ts.map +1 -0
  426. package/dist/cli/skills-content/assets-skill.js +84 -0
  427. package/dist/cli/skills-content/assets-skill.js.map +1 -0
  428. package/dist/cli/skills-content/canvas.d.ts +4 -0
  429. package/dist/cli/skills-content/canvas.d.ts.map +1 -0
  430. package/dist/cli/skills-content/canvas.js +152 -0
  431. package/dist/cli/skills-content/canvas.js.map +1 -0
  432. package/dist/cli/skills-content/connection.d.ts +2 -0
  433. package/dist/cli/skills-content/connection.d.ts.map +1 -0
  434. package/dist/cli/skills-content/connection.js +53 -0
  435. package/dist/cli/skills-content/connection.js.map +1 -0
  436. package/dist/cli/skills-content/content-skill.d.ts +2 -0
  437. package/dist/cli/skills-content/content-skill.d.ts.map +1 -0
  438. package/dist/cli/skills-content/content-skill.js +110 -0
  439. package/dist/cli/skills-content/content-skill.js.map +1 -0
  440. package/dist/cli/skills-content/design-exploration-skill.d.ts +2 -0
  441. package/dist/cli/skills-content/design-exploration-skill.d.ts.map +1 -0
  442. package/dist/cli/skills-content/design-exploration-skill.js +119 -0
  443. package/dist/cli/skills-content/design-exploration-skill.js.map +1 -0
  444. package/dist/cli/skills-content/design-visual-edit-skill.d.ts +2 -0
  445. package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -0
  446. package/dist/cli/skills-content/design-visual-edit-skill.js +229 -0
  447. package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -0
  448. package/dist/cli/skills-content/document-quality.d.ts +4 -0
  449. package/dist/cli/skills-content/document-quality.d.ts.map +1 -0
  450. package/dist/cli/skills-content/document-quality.js +195 -0
  451. package/dist/cli/skills-content/document-quality.js.map +1 -0
  452. package/dist/cli/skills-content/exemplar.d.ts +4 -0
  453. package/dist/cli/skills-content/exemplar.d.ts.map +1 -0
  454. package/dist/cli/skills-content/exemplar.js +68 -0
  455. package/dist/cli/skills-content/exemplar.js.map +1 -0
  456. package/dist/cli/skills-content/help.d.ts +2 -0
  457. package/dist/cli/skills-content/help.d.ts.map +1 -0
  458. package/dist/cli/skills-content/help.js +78 -0
  459. package/dist/cli/skills-content/help.js.map +1 -0
  460. package/dist/cli/skills-content/index.d.ts +23 -0
  461. package/dist/cli/skills-content/index.d.ts.map +1 -0
  462. package/dist/cli/skills-content/index.js +23 -0
  463. package/dist/cli/skills-content/index.js.map +1 -0
  464. package/dist/cli/skills-content/local-files.d.ts +2 -0
  465. package/dist/cli/skills-content/local-files.d.ts.map +1 -0
  466. package/dist/cli/skills-content/local-files.js +96 -0
  467. package/dist/cli/skills-content/local-files.js.map +1 -0
  468. package/dist/cli/skills-content/plan-setup-auth.d.ts +9 -0
  469. package/dist/cli/skills-content/plan-setup-auth.d.ts.map +1 -0
  470. package/dist/cli/skills-content/plan-setup-auth.js +81 -0
  471. package/dist/cli/skills-content/plan-setup-auth.js.map +1 -0
  472. package/dist/cli/skills-content/visual-plan-skill.d.ts +2 -0
  473. package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -0
  474. package/dist/cli/skills-content/visual-plan-skill.js +471 -0
  475. package/dist/cli/skills-content/visual-plan-skill.js.map +1 -0
  476. package/dist/cli/skills-content/visual-recap-skill.d.ts +2 -0
  477. package/dist/cli/skills-content/visual-recap-skill.d.ts.map +1 -0
  478. package/dist/cli/skills-content/visual-recap-skill.js +548 -0
  479. package/dist/cli/skills-content/visual-recap-skill.js.map +1 -0
  480. package/dist/cli/skills-content/visualize-repo-skill.d.ts +2 -0
  481. package/dist/cli/skills-content/visualize-repo-skill.d.ts.map +1 -0
  482. package/dist/cli/skills-content/visualize-repo-skill.js +94 -0
  483. package/dist/cli/skills-content/visualize-repo-skill.js.map +1 -0
  484. package/dist/cli/skills-content/wireframe.d.ts +4 -0
  485. package/dist/cli/skills-content/wireframe.d.ts.map +1 -0
  486. package/dist/cli/skills-content/wireframe.js +347 -0
  487. package/dist/cli/skills-content/wireframe.js.map +1 -0
  488. package/dist/cli/skills.d.ts +2 -10
  489. package/dist/cli/skills.d.ts.map +1 -1
  490. package/dist/cli/skills.js +2 -2710
  491. package/dist/cli/skills.js.map +1 -1
  492. package/dist/client/AgentPanel.d.ts.map +1 -1
  493. package/dist/client/AgentPanel.js +4 -2
  494. package/dist/client/AgentPanel.js.map +1 -1
  495. package/dist/client/CommandMenu.d.ts.map +1 -1
  496. package/dist/client/CommandMenu.js +15 -3
  497. package/dist/client/CommandMenu.js.map +1 -1
  498. package/dist/client/FeedbackButton.js +2 -2
  499. package/dist/client/FeedbackButton.js.map +1 -1
  500. package/dist/client/app-providers.d.ts +13 -5
  501. package/dist/client/app-providers.d.ts.map +1 -1
  502. package/dist/client/app-providers.js +9 -6
  503. package/dist/client/app-providers.js.map +1 -1
  504. package/dist/client/chat/tool-call-display.d.ts +4 -0
  505. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  506. package/dist/client/chat/tool-call-display.js +3 -3
  507. package/dist/client/chat/tool-call-display.js.map +1 -1
  508. package/dist/client/composer/PastedTextChip.js +1 -1
  509. package/dist/client/composer/PastedTextChip.js.map +1 -1
  510. package/dist/client/composer/RealtimeVoiceMode.d.ts +3 -1
  511. package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
  512. package/dist/client/composer/RealtimeVoiceMode.js +35 -14
  513. package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
  514. package/dist/client/composer/TiptapComposer.js +1 -1
  515. package/dist/client/composer/TiptapComposer.js.map +1 -1
  516. package/dist/client/composer/VoiceButton.d.ts +2 -0
  517. package/dist/client/composer/VoiceButton.d.ts.map +1 -1
  518. package/dist/client/composer/VoiceButton.js +9 -3
  519. package/dist/client/composer/VoiceButton.js.map +1 -1
  520. package/dist/client/composer/useRealtimeVoiceMode.d.ts +5 -0
  521. package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
  522. package/dist/client/composer/useRealtimeVoiceMode.js +91 -12
  523. package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
  524. package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
  525. package/dist/client/context-xray/ContextXRayPanel.js +4 -1
  526. package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
  527. package/dist/client/extensions/ExtensionEditor.d.ts.map +1 -1
  528. package/dist/client/extensions/ExtensionEditor.js +15 -5
  529. package/dist/client/extensions/ExtensionEditor.js.map +1 -1
  530. package/dist/client/extensions/ExtensionQueryErrorState.d.ts +8 -0
  531. package/dist/client/extensions/ExtensionQueryErrorState.d.ts.map +1 -0
  532. package/dist/client/extensions/ExtensionQueryErrorState.js +11 -0
  533. package/dist/client/extensions/ExtensionQueryErrorState.js.map +1 -0
  534. package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
  535. package/dist/client/extensions/ExtensionSlot.js +17 -7
  536. package/dist/client/extensions/ExtensionSlot.js.map +1 -1
  537. package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
  538. package/dist/client/extensions/ExtensionViewer.js +17 -7
  539. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  540. package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
  541. package/dist/client/extensions/ExtensionsListPage.js +5 -3
  542. package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
  543. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  544. package/dist/client/extensions/ExtensionsSidebarSection.js +21 -8
  545. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  546. package/dist/client/index.d.ts +0 -2
  547. package/dist/client/index.d.ts.map +1 -1
  548. package/dist/client/index.js +0 -5
  549. package/dist/client/index.js.map +1 -1
  550. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  551. package/dist/client/progress/RunsTray.js +7 -3
  552. package/dist/client/progress/RunsTray.js.map +1 -1
  553. package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
  554. package/dist/client/settings/SettingsTabsPage.js +4 -0
  555. package/dist/client/settings/SettingsTabsPage.js.map +1 -1
  556. package/dist/client/settings/useBuilderStatus.d.ts +2 -0
  557. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  558. package/dist/client/settings/useBuilderStatus.js +4 -0
  559. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  560. package/dist/client/tool-cells/EditCell.d.ts.map +1 -1
  561. package/dist/client/tool-cells/EditCell.js +2 -1
  562. package/dist/client/tool-cells/EditCell.js.map +1 -1
  563. package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -1
  564. package/dist/client/tool-cells/FilesChangedSummary.js +2 -1
  565. package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -1
  566. package/dist/client/tool-cells/WriteCell.d.ts.map +1 -1
  567. package/dist/client/tool-cells/WriteCell.js +2 -1
  568. package/dist/client/tool-cells/WriteCell.js.map +1 -1
  569. package/dist/client/visual-style-controls.js +1 -1
  570. package/dist/client/visual-style-controls.js.map +1 -1
  571. package/dist/collab/routes.d.ts +1 -1
  572. package/dist/deploy/build.d.ts.map +1 -1
  573. package/dist/deploy/build.js +36 -14
  574. package/dist/deploy/build.js.map +1 -1
  575. package/dist/integrations/google-docs-poller.d.ts +7 -0
  576. package/dist/integrations/google-docs-poller.d.ts.map +1 -1
  577. package/dist/integrations/google-docs-poller.js +13 -3
  578. package/dist/integrations/google-docs-poller.js.map +1 -1
  579. package/dist/integrations/plugin.d.ts.map +1 -1
  580. package/dist/integrations/plugin.js +10 -0
  581. package/dist/integrations/plugin.js.map +1 -1
  582. package/dist/integrations/webhook-handler.d.ts +11 -0
  583. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  584. package/dist/integrations/webhook-handler.js +16 -4
  585. package/dist/integrations/webhook-handler.js.map +1 -1
  586. package/dist/jobs/scheduler.d.ts +12 -0
  587. package/dist/jobs/scheduler.d.ts.map +1 -1
  588. package/dist/jobs/scheduler.js +13 -3
  589. package/dist/jobs/scheduler.js.map +1 -1
  590. package/dist/localization/default-messages.d.ts +7 -0
  591. package/dist/localization/default-messages.d.ts.map +1 -1
  592. package/dist/localization/default-messages.js +8 -1
  593. package/dist/localization/default-messages.js.map +1 -1
  594. package/dist/mcp/oauth-token.d.ts +1 -1
  595. package/dist/mcp/oauth-token.d.ts.map +1 -1
  596. package/dist/mcp/oauth-token.js +6 -1
  597. package/dist/mcp/oauth-token.js.map +1 -1
  598. package/dist/notifications/routes.d.ts +2 -2
  599. package/dist/observability/routes.d.ts.map +1 -1
  600. package/dist/observability/routes.js +32 -0
  601. package/dist/observability/routes.js.map +1 -1
  602. package/dist/observability/sentiment.d.ts +42 -0
  603. package/dist/observability/sentiment.d.ts.map +1 -0
  604. package/dist/observability/sentiment.js +196 -0
  605. package/dist/observability/sentiment.js.map +1 -0
  606. package/dist/observability/store.d.ts +5 -0
  607. package/dist/observability/store.d.ts.map +1 -1
  608. package/dist/observability/store.js +17 -0
  609. package/dist/observability/store.js.map +1 -1
  610. package/dist/observability/traces.d.ts +2 -0
  611. package/dist/observability/traces.d.ts.map +1 -1
  612. package/dist/observability/traces.js +42 -57
  613. package/dist/observability/traces.js.map +1 -1
  614. package/dist/observability/tracking-identity.d.ts +3 -0
  615. package/dist/observability/tracking-identity.d.ts.map +1 -0
  616. package/dist/observability/tracking-identity.js +51 -0
  617. package/dist/observability/tracking-identity.js.map +1 -0
  618. package/dist/observability/types.d.ts +10 -0
  619. package/dist/observability/types.d.ts.map +1 -1
  620. package/dist/observability/types.js +3 -0
  621. package/dist/observability/types.js.map +1 -1
  622. package/dist/progress/routes.d.ts +1 -1
  623. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  624. package/dist/resources/handlers.d.ts +1 -1
  625. package/dist/secrets/storage.d.ts +6 -0
  626. package/dist/secrets/storage.d.ts.map +1 -1
  627. package/dist/secrets/storage.js +61 -3
  628. package/dist/secrets/storage.js.map +1 -1
  629. package/dist/server/agent-chat/action-filters-a2a.d.ts +50 -0
  630. package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -0
  631. package/dist/server/agent-chat/action-filters-a2a.js +127 -0
  632. package/dist/server/agent-chat/action-filters-a2a.js.map +1 -0
  633. package/dist/server/agent-chat/browser-team-tools.d.ts +21 -0
  634. package/dist/server/agent-chat/browser-team-tools.d.ts.map +1 -0
  635. package/dist/server/agent-chat/browser-team-tools.js +417 -0
  636. package/dist/server/agent-chat/browser-team-tools.js.map +1 -0
  637. package/dist/server/agent-chat/context-tools.d.ts +33 -0
  638. package/dist/server/agent-chat/context-tools.d.ts.map +1 -0
  639. package/dist/server/agent-chat/context-tools.js +520 -0
  640. package/dist/server/agent-chat/context-tools.js.map +1 -0
  641. package/dist/server/agent-chat/framework-prompts.d.ts +65 -0
  642. package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -0
  643. package/dist/server/agent-chat/framework-prompts.js +403 -0
  644. package/dist/server/agent-chat/framework-prompts.js.map +1 -0
  645. package/dist/server/agent-chat/lazy-fs.d.ts +2 -0
  646. package/dist/server/agent-chat/lazy-fs.d.ts.map +1 -0
  647. package/dist/server/agent-chat/lazy-fs.js +11 -0
  648. package/dist/server/agent-chat/lazy-fs.js.map +1 -0
  649. package/dist/server/agent-chat/mcp-glue.d.ts +9 -0
  650. package/dist/server/agent-chat/mcp-glue.d.ts.map +1 -0
  651. package/dist/server/agent-chat/mcp-glue.js +63 -0
  652. package/dist/server/agent-chat/mcp-glue.js.map +1 -0
  653. package/dist/server/agent-chat/plugin-options.d.ts +322 -0
  654. package/dist/server/agent-chat/plugin-options.d.ts.map +1 -0
  655. package/dist/server/agent-chat/plugin-options.js +2 -0
  656. package/dist/server/agent-chat/plugin-options.js.map +1 -0
  657. package/dist/server/agent-chat/process-run-failure.d.ts +12 -0
  658. package/dist/server/agent-chat/process-run-failure.d.ts.map +1 -0
  659. package/dist/server/agent-chat/process-run-failure.js +24 -0
  660. package/dist/server/agent-chat/process-run-failure.js.map +1 -0
  661. package/dist/server/agent-chat/prompt-resources.d.ts +28 -0
  662. package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -0
  663. package/dist/server/agent-chat/prompt-resources.js +514 -0
  664. package/dist/server/agent-chat/prompt-resources.js.map +1 -0
  665. package/dist/server/agent-chat/recurring-jobs-runtime.d.ts +5 -0
  666. package/dist/server/agent-chat/recurring-jobs-runtime.d.ts.map +1 -0
  667. package/dist/server/agent-chat/recurring-jobs-runtime.js +53 -0
  668. package/dist/server/agent-chat/recurring-jobs-runtime.js.map +1 -0
  669. package/dist/server/agent-chat/request-surface.d.ts +8 -0
  670. package/dist/server/agent-chat/request-surface.d.ts.map +1 -0
  671. package/dist/server/agent-chat/request-surface.js +56 -0
  672. package/dist/server/agent-chat/request-surface.js.map +1 -0
  673. package/dist/server/agent-chat/run-code-tools.d.ts +17 -0
  674. package/dist/server/agent-chat/run-code-tools.d.ts.map +1 -0
  675. package/dist/server/agent-chat/run-code-tools.js +55 -0
  676. package/dist/server/agent-chat/run-code-tools.js.map +1 -0
  677. package/dist/server/agent-chat/script-entries.d.ts +47 -0
  678. package/dist/server/agent-chat/script-entries.d.ts.map +1 -0
  679. package/dist/server/agent-chat/script-entries.js +633 -0
  680. package/dist/server/agent-chat/script-entries.js.map +1 -0
  681. package/dist/server/agent-chat/shared-thread.d.ts +33 -0
  682. package/dist/server/agent-chat/shared-thread.d.ts.map +1 -0
  683. package/dist/server/agent-chat/shared-thread.js +242 -0
  684. package/dist/server/agent-chat/shared-thread.js.map +1 -0
  685. package/dist/server/agent-chat/skill-frontmatter.d.ts +7 -0
  686. package/dist/server/agent-chat/skill-frontmatter.d.ts.map +1 -0
  687. package/dist/server/agent-chat/skill-frontmatter.js +26 -0
  688. package/dist/server/agent-chat/skill-frontmatter.js.map +1 -0
  689. package/dist/server/agent-chat-plugin.d.ts +45 -486
  690. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  691. package/dist/server/agent-chat-plugin.js +173 -3005
  692. package/dist/server/agent-chat-plugin.js.map +1 -1
  693. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  694. package/dist/server/agent-teams.d.ts +10 -0
  695. package/dist/server/agent-teams.d.ts.map +1 -1
  696. package/dist/server/agent-teams.js +13 -3
  697. package/dist/server/agent-teams.js.map +1 -1
  698. package/dist/server/auth.d.ts.map +1 -1
  699. package/dist/server/auth.js +50 -52
  700. package/dist/server/auth.js.map +1 -1
  701. package/dist/server/credential-provider.d.ts.map +1 -1
  702. package/dist/server/credential-provider.js +22 -21
  703. package/dist/server/credential-provider.js.map +1 -1
  704. package/dist/server/edge.d.ts +1 -0
  705. package/dist/server/edge.d.ts.map +1 -1
  706. package/dist/server/edge.js +1 -0
  707. package/dist/server/edge.js.map +1 -1
  708. package/dist/server/onboarding-html.d.ts.map +1 -1
  709. package/dist/server/onboarding-html.js +1 -16
  710. package/dist/server/onboarding-html.js.map +1 -1
  711. package/dist/server/realtime-voice.d.ts +3 -0
  712. package/dist/server/realtime-voice.d.ts.map +1 -1
  713. package/dist/server/realtime-voice.js +29 -5
  714. package/dist/server/realtime-voice.js.map +1 -1
  715. package/dist/server/request-origin.d.ts.map +1 -1
  716. package/dist/server/request-origin.js +6 -3
  717. package/dist/server/request-origin.js.map +1 -1
  718. package/dist/server/ssr-handler.d.ts.map +1 -1
  719. package/dist/server/ssr-handler.js +47 -2
  720. package/dist/server/ssr-handler.js.map +1 -1
  721. package/dist/sharing/access.d.ts +63 -3
  722. package/dist/sharing/access.d.ts.map +1 -1
  723. package/dist/sharing/access.js +53 -15
  724. package/dist/sharing/access.js.map +1 -1
  725. package/dist/sharing/registry.d.ts +7 -0
  726. package/dist/sharing/registry.d.ts.map +1 -1
  727. package/dist/sharing/registry.js.map +1 -1
  728. package/dist/styles/agent-native.css +15 -14
  729. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  730. package/dist/templates/default/app/i18n/ar-SA.ts +6 -0
  731. package/dist/templates/default/app/i18n/de-DE.ts +6 -0
  732. package/dist/templates/default/app/i18n/en-US.ts +6 -0
  733. package/dist/templates/default/app/i18n/es-ES.ts +6 -0
  734. package/dist/templates/default/app/i18n/fr-FR.ts +6 -0
  735. package/dist/templates/default/app/i18n/hi-IN.ts +6 -0
  736. package/dist/templates/default/app/i18n/ja-JP.ts +6 -0
  737. package/dist/templates/default/app/i18n/ko-KR.ts +6 -0
  738. package/dist/templates/default/app/i18n/pt-BR.ts +6 -0
  739. package/dist/templates/default/app/i18n/zh-CN.ts +6 -0
  740. package/dist/templates/default/app/i18n/zh-TW.ts +6 -0
  741. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
  742. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
  743. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  744. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
  745. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
  746. package/dist/templates/workspace-core/src/server/index.ts +4 -2
  747. package/dist/testing.d.ts +16 -0
  748. package/dist/testing.d.ts.map +1 -0
  749. package/dist/testing.js +16 -0
  750. package/dist/testing.js.map +1 -0
  751. package/dist/triggers/dispatcher.d.ts +7 -0
  752. package/dist/triggers/dispatcher.d.ts.map +1 -1
  753. package/dist/triggers/dispatcher.js +13 -3
  754. package/dist/triggers/dispatcher.js.map +1 -1
  755. package/dist/vite/client.d.ts +16 -1
  756. package/dist/vite/client.d.ts.map +1 -1
  757. package/dist/vite/client.js +105 -2
  758. package/dist/vite/client.js.map +1 -1
  759. package/docs/content/authentication.mdx +3 -3
  760. package/docs/content/doctor.mdx +170 -0
  761. package/docs/content/external-agents.mdx +8 -7
  762. package/docs/content/locales/ar-SA/authentication.mdx +2 -2
  763. package/docs/content/locales/ar-SA/external-agents.mdx +8 -7
  764. package/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
  765. package/docs/content/locales/ar-SA/security.mdx +2 -0
  766. package/docs/content/locales/de-DE/authentication.mdx +1 -1
  767. package/docs/content/locales/de-DE/external-agents.mdx +8 -7
  768. package/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
  769. package/docs/content/locales/de-DE/security.mdx +2 -0
  770. package/docs/content/locales/es-ES/authentication.mdx +2 -2
  771. package/docs/content/locales/es-ES/external-agents.mdx +8 -7
  772. package/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
  773. package/docs/content/locales/es-ES/security.mdx +2 -0
  774. package/docs/content/locales/fr-FR/authentication.mdx +1 -1
  775. package/docs/content/locales/fr-FR/external-agents.mdx +8 -7
  776. package/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
  777. package/docs/content/locales/fr-FR/security.mdx +2 -0
  778. package/docs/content/locales/hi-IN/authentication.mdx +2 -2
  779. package/docs/content/locales/hi-IN/external-agents.mdx +8 -7
  780. package/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
  781. package/docs/content/locales/hi-IN/security.mdx +2 -0
  782. package/docs/content/locales/ja-JP/authentication.mdx +2 -2
  783. package/docs/content/locales/ja-JP/external-agents.mdx +8 -7
  784. package/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
  785. package/docs/content/locales/ja-JP/security.mdx +2 -0
  786. package/docs/content/locales/ko-KR/authentication.mdx +2 -2
  787. package/docs/content/locales/ko-KR/external-agents.mdx +8 -7
  788. package/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
  789. package/docs/content/locales/ko-KR/security.mdx +2 -0
  790. package/docs/content/locales/pt-BR/authentication.mdx +2 -2
  791. package/docs/content/locales/pt-BR/external-agents.mdx +8 -7
  792. package/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
  793. package/docs/content/locales/pt-BR/security.mdx +2 -0
  794. package/docs/content/locales/zh-CN/authentication.mdx +2 -2
  795. package/docs/content/locales/zh-CN/external-agents.mdx +8 -7
  796. package/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
  797. package/docs/content/locales/zh-CN/security.mdx +2 -0
  798. package/docs/content/locales/zh-TW/authentication.mdx +2 -2
  799. package/docs/content/locales/zh-TW/external-agents.mdx +8 -7
  800. package/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
  801. package/docs/content/locales/zh-TW/security.mdx +2 -0
  802. package/docs/content/mcp-protocol.mdx +1 -1
  803. package/docs/content/security.mdx +2 -0
  804. package/package.json +6 -2
  805. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  806. package/src/templates/default/app/i18n/ar-SA.ts +6 -0
  807. package/src/templates/default/app/i18n/de-DE.ts +6 -0
  808. package/src/templates/default/app/i18n/en-US.ts +6 -0
  809. package/src/templates/default/app/i18n/es-ES.ts +6 -0
  810. package/src/templates/default/app/i18n/fr-FR.ts +6 -0
  811. package/src/templates/default/app/i18n/hi-IN.ts +6 -0
  812. package/src/templates/default/app/i18n/ja-JP.ts +6 -0
  813. package/src/templates/default/app/i18n/ko-KR.ts +6 -0
  814. package/src/templates/default/app/i18n/pt-BR.ts +6 -0
  815. package/src/templates/default/app/i18n/zh-CN.ts +6 -0
  816. package/src/templates/default/app/i18n/zh-TW.ts +6 -0
  817. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
  818. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
  819. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  820. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
  821. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
  822. package/src/templates/workspace-core/src/server/index.ts +4 -2
  823. package/corpus/core/src/client/ProductionAgentPanel.tsx +0 -9
  824. package/corpus/core/src/client/auth-redirect-url.ts +0 -23
  825. package/corpus/core/src/client/useProductionAgent.ts +0 -253
  826. package/corpus/core/src/shared/auth-redirect-url.ts +0 -1
  827. package/corpus/templates/analytics/app/pages/Index.tsx +0 -16
  828. package/corpus/templates/analytics/seeds/dashboards/agent-observability-llm.json +0 -173
  829. package/dist/client/ProductionAgentPanel.d.ts +0 -6
  830. package/dist/client/ProductionAgentPanel.d.ts.map +0 -1
  831. package/dist/client/ProductionAgentPanel.js +0 -6
  832. package/dist/client/ProductionAgentPanel.js.map +0 -1
  833. package/dist/client/auth-redirect-url.d.ts +0 -2
  834. package/dist/client/auth-redirect-url.d.ts.map +0 -1
  835. package/dist/client/auth-redirect-url.js +0 -19
  836. package/dist/client/auth-redirect-url.js.map +0 -1
  837. package/dist/client/useProductionAgent.d.ts +0 -24
  838. package/dist/client/useProductionAgent.d.ts.map +0 -1
  839. package/dist/client/useProductionAgent.js +0 -179
  840. package/dist/client/useProductionAgent.js.map +0 -1
  841. package/dist/shared/auth-redirect-url.d.ts +0 -2
  842. package/dist/shared/auth-redirect-url.d.ts.map +0 -1
  843. package/dist/shared/auth-redirect-url.js +0 -2
  844. package/dist/shared/auth-redirect-url.js.map +0 -1
@@ -0,0 +1,153 @@
1
+ // Canvas/artboard placement mechanics. Used only by visual-plan modes
2
+ // (visual-recap renders standalone wireframes, not a canvas).
3
+ export const CANVAS_SURFACE_CORE = `<!-- SHARED-CORE:canvas-surface START -->
4
+
5
+ **The coordinate rule.** The \`surface\` locks each artboard's footprint and
6
+ aspect — never set artboard width/height and never use coordinates inside the
7
+ wireframe HTML; board-level artboard \`x\`/\`y\` IS allowed when it creates clear
8
+ lanes. Let canvas auto-placement handle simple one-row boards.
9
+
10
+ **Lay out mixed canvases in lanes.** When a canvas contains broad browser /
11
+ desktop frames plus compact \`mobile\`, \`popover\`, or \`panel\` surfaces, do not put
12
+ everything in one horizontal strip. Use board-level artboard \`x\`/\`y\` to reserve
13
+ lanes with generous empty space: main flow on one row, compact surfaces in their
14
+ own column or row, and loading/error states in a lower row. Keep at least 96px
15
+ between rendered artboard rectangles plus room for annotation gutters; when a
16
+ broad browser/desktop frame sits beside a compact panel/popover, leave at least
17
+ 160px so frame borders, labels, and hover controls never touch. Connect only
18
+ neighboring steps; never draw a long connector that skips across unrelated
19
+ frames. Connector labels must sit in open canvas space. If the label would touch
20
+ or cross either artboard, remove the label and explain the transition with a
21
+ nearby annotation instead. Before handoff, inspect the top canvas at default zoom
22
+ and move any frame whose label, connector, or annotation crosses another frame.
23
+
24
+ **Board-unit spacing defaults.** The canvas coordinate system uses approximately 2 board units per screen pixel. \`browser\` frames occupy roughly 700 × 600 board units; \`desktop\` frames roughly 900 × 700 board units. Apply these minimum x/y gaps when placing frames explicitly — any less and frames will touch or overlap:
25
+
26
+ - x-gap between \`browser\` frames: **≥ 1100** (700-unit frame + 400-unit gutter)
27
+ - x-gap between \`desktop\` frames: **≥ 1300** (900-unit frame + 400-unit gutter)
28
+ - y-gap between rows of any surface: **≥ 1400** (includes frame height + section header + buffer)
29
+
30
+ When in doubt, use larger values — the canvas auto-zooms to fit everything.
31
+
32
+ **Canvas annotations are designer notes on the artboard.** When a top canvas is
33
+ present, sprinkle design-review notes near the frames they explain: a short
34
+ heading, supporting text, and bullets — plain text layers, never bordered or
35
+ shadowed cards, and never a box around a frame. The renderer spaces notes away
36
+ from frames, so place each note by the frame it describes. Use an arrow only to
37
+ point at one specific control or transition; for a broad frame-level note, write
38
+ text beside the frame with no connector. Connectors are for real sequences only —
39
+ never fake "Step 1 → Step 2" lines between independent states.
40
+
41
+ **Do not create overlapping annotations.** Anchor each ordinary note to the
42
+ frame it explains with \`targetId\` + \`placement\` (top/right/bottom/left), and
43
+ omit \`type\` or use \`type: "note"\`. The renderer parks notes in a gutter beside
44
+ the frame and lays them out automatically. Do not use \`type: "callout"\`,
45
+ \`type: "text"\`, \`type: "arrow"\`, x/y, or points for ordinary notes; those are
46
+ freeform review-markup layers and must be reserved for intentional markup in
47
+ open canvas space. Reserve arrows for a note that must point at one specific
48
+ control inside a frame; a note that simply sits beside its frame needs no arrow.
49
+
50
+ **Patching.** Edit one wireframe, canvas annotation, diagram, or block with targeted \`contentPatches\`
51
+ (for example \`patch-wireframe-html\`, \`patch-diagram-html\`, \`update-block\`,
52
+ \`replace-blocks\`, \`update-canvas-annotation\`) rather
53
+ than regenerating the whole plan. \`contentPatches\` are part of the public MCP
54
+ action schema, so Claude Code, Codex, Cursor, and other hosts can make surgical
55
+ edits. If an agent is working from exported source files, use
56
+ \`read-visual-plan-source\` / \`patch-visual-plan-source\`: \`plan.mdx\` holds
57
+ frontmatter plus markdown/document blocks, \`canvas.mdx\` holds
58
+ \`<DesignBoard>/<Section>/<Artboard>/<Screen>/<Annotation>/<Connector>\`, and the
59
+ patch action normalizes the MDX back into the same JSON runtime model. JSON is
60
+ the canonical runtime shape; MDX is the repo-friendly authoring/export surface.
61
+ In the browser, humans edit \`rich-text\` prose inline; agents should still use
62
+ \`update-rich-text\` content patches or source patches for prose, and use
63
+ comments/structured patches for canvas, artboard, wireframe, and diagram edits.
64
+ Never send a partial top-level \`content\` object as a shortcut to add a canvas,
65
+ frame, or block: \`content\` is a full structured replacement, so omitted blocks
66
+ or surfaces can disappear. If a full replacement is truly unavoidable, read the
67
+ complete source/JSON first, include every existing block and surface in the new
68
+ payload, and verify the source/export immediately after the update.
69
+
70
+ **Never emit a titled artboard with no interior wireframe content.** Every artboard
71
+ you place on the canvas must carry an \`html\` wireframe or reference a wireframe
72
+ block via \`blockId\`; when using \`blockId\`, the referenced \`wireframe\` /
73
+ \`legacy-wireframe\` block must remain in the plan. If you remove a duplicate
74
+ wireframe from the document body, first move its \`data\` inline onto the
75
+ corresponding \`content.canvas.frames[*].wireframe\` / \`legacyWireframe\`. A
76
+ label-only frame or a frame pointing at a deleted block renders empty and is
77
+ rejected at parse time. If you only have a title, write it as a section header or
78
+ annotation, not an empty artboard.
79
+
80
+ **UI mockups belong in the top visual review area.** Static UI/product visuals
81
+ live on the canvas; multi-step UI flows get both canvas wireframes and a
82
+ prototype. When the user asks for a mockup, UI state, loading state, layout,
83
+ screen, or visual comparison, make the canvas the primary home for that static
84
+ visual. When the user asks for a prototype or the plan contains a sequence the
85
+ reviewer must feel, keep the canvas artboards and add \`content.prototype\` so the
86
+ top surface shows Wireframes / Prototype tabs. Architecture/code diagrams stay
87
+ inline in the document (the SKILL.md Visual Surface Choice section owns that
88
+ rule) unless the user explicitly asks for a spatial board. Document blocks
89
+ can explain, compare, or map implementation, but they should not host the
90
+ primary UI mockup or prototype just because \`custom-html\`, screenshots, or prose
91
+ are easier to produce. If the canvas/prototype surface cannot represent the
92
+ requested UI fidelity, still keep the closest top-surface representation and
93
+ call out or extend the needed renderer capability. A skeleton/loading mockup
94
+ also lives in a canvas artboard — never move a mockup out of the canvas.
95
+
96
+ **Storyboards are canvas artifacts, not document diagrams.** When the requested
97
+ output is a product flow, onboarding journey, "light storyboard", or canvas
98
+ wireframe, author the flow as multiple top-canvas artboards with real screen
99
+ content and neighboring connectors. Keep document-body \`diagram\` blocks for
100
+ architecture and mechanics that are not themselves user-visible screens. A
101
+ storyboard made from a single inline HTML diagram is the wrong surface.
102
+
103
+ For abstract product concepts, use the canvas to create the first "I get it"
104
+ moment: one real app state near the top showing how the concept appears to a
105
+ user, followed by separate annotations or diagrams for mechanics. Do not make
106
+ the first artboard a hybrid of app UI and architecture notes; the app screen
107
+ should be inspectable as product UI on its own.
108
+
109
+ **Legacy kit tree.** Older plans set a \`screen\` array of \`{ el, ...props }\` kit
110
+ nodes instead of \`html\`; the renderer still accepts and displays it so saved
111
+ plans round-trip, but new plans emit \`html\`. Do not author fresh kit-tree
112
+ screens, and do not put nested kit components such as \`<FrameScreen>\`, \`<Card>\`,
113
+ \`<Row>\`, \`<Title>\`, or \`<Btn>\` inside a canvas \`<Screen>\`. A new canvas artboard
114
+ with kit-tree children is a defect: replace it with
115
+ \`<Screen surface="..." html={...} />\` using the HTML wireframe rules. The HTML
116
+ path is the one that gets the renderer-owned surface sizing, theme tokens,
117
+ sketch/clean toggle, and safe text layout used by good document-body
118
+ wireframes. Likewise, old or imported plans may carry coordinate-based regions
119
+ or free-float x/y on notes; those are legacy escape hatches the renderer still
120
+ shows but you must never produce. The gutter parks notes by \`targetId\` +
121
+ \`placement\`, and the coordinate rule at the top of this file governs all
122
+ new-plan placement.
123
+
124
+ <!-- SHARED-CORE:canvas-surface END -->`;
125
+
126
+ // Progressive-disclosure reference files. Like `WIREFRAME_REFERENCE_MD`, each of
127
+ // the canvas / document-quality / exemplar cores is the single source of truth
128
+ // for its topic and is materialized verbatim into a sibling `references/*.md`
129
+ // file in the visual-plan skill dir instead of being interpolated inline into
130
+ // the SKILL.md body. The body carries only the matching `*_REFERENCE_POINTER`.
131
+ // Keeping each reference body byte-identical to its core (markers included) lets
132
+ // the sync guard assert the on-disk copies never drift from the constant.
133
+ export const CANVAS_REFERENCE_MD = `# Canvas & artboard placement — single source of truth
134
+
135
+ This file is the canonical guide for how the visual-plan canvas works: artboard
136
+ placement, lane layout, annotations, patching, and the legacy kit tree. Read it
137
+ in full before authoring or editing any canvas/artboard content; do not author
138
+ canvas layouts from memory or paraphrase these rules per mode.
139
+
140
+ ${CANVAS_SURFACE_CORE}
141
+ `;
142
+
143
+ // Short pointers that replace the inline canvas / document-quality / exemplar
144
+ // cores in the SKILL.md body. Authoring detail lives in the sibling reference
145
+ // files so the SKILL.md stays lean (progressive disclosure); the agent loads the
146
+ // detail on demand.
147
+ export const CANVAS_REFERENCE_POINTER = `The canvas is the single source of truth for static UI mockups: the \`surface\`
148
+ locks each artboard's footprint, mixed surfaces lay out
149
+ in lanes, annotations are plain-text designer notes anchored by
150
+ \`targetId\`/\`placement\`, and edits are surgical \`contentPatches\`. Before
151
+ authoring or editing ANY canvas, artboard, or annotation, READ
152
+ \`references/canvas.md\` in this skill directory — it is the single source of truth
153
+ for canvas/artboard mechanics. Do not author canvas layouts from memory.`;
@@ -0,0 +1,52 @@
1
+ export const CONNECTION_REFERENCE_MD = `# Connecting & publishing — single source of truth
2
+
3
+ This file is the canonical rule for the never-inline deliverable, finding the
4
+ Plan MCP connector, and restoring it when its tools are missing. It is shared
5
+ word for word by \`/visual-plan\` and \`/visual-recap\`. Read it when you are about
6
+ to publish, or whenever a connector or auth error appears; do not improvise an
7
+ inline fallback from memory.
8
+
9
+ <!-- SHARED-CORE:connection START -->
10
+
11
+ **The deliverable is ALWAYS a published Agent-Native Plan, never inline chat
12
+ content.** Do not hand the plan or recap to the user as Markdown prose, an ASCII
13
+ sketch, a table, a fenced "wireframe", or a "here's the summary" paragraph. The
14
+ entire value is the hosted, interactive, annotatable Plan; an inline summary is
15
+ the thing a Plan replaces, not a degraded version of one. The only supported
16
+ output is to publish through the Plan MCP connector and return its absolute URL.
17
+ Local-files privacy mode (\`references/local-files.md\`) is the one exception.
18
+
19
+ **The connector is usually the \`plan\` server**, but older installed agents may
20
+ expose the same hosted connector as \`agent-native-plans\` — both names are valid,
21
+ so never report the connector as missing just because it is named
22
+ \`agent-native-plans\` instead of \`plan\`. Some clients also lazy-load connector
23
+ tools through a deferred tool registry instead of showing the namespace upfront.
24
+ Before declaring the connector missing, search/load tools with the host's
25
+ discovery surface (\`tool_search\` when available) for \`create_visual_plan\`,
26
+ \`create_visual_recap\`, or \`get_plan_blocks\`, then use the tools it exposes.
27
+
28
+ **If the tools are still missing after discovery, do NOT fall back to inline
29
+ output.** The usual cause is a connector that did not finish connecting this
30
+ session (it registers zero tools), NOT necessarily an auth problem — so do not
31
+ assume the user must re-authenticate. Stop and give the user the exact restore
32
+ step for their current client:
33
+
34
+ - **Codex / Codex Desktop:** run
35
+ \`npx -y @agent-native/core@latest reconnect https://plan.agent-native.com --client codex\`
36
+ and start a new Codex session.
37
+ - **Claude Code:** run \`/mcp\` and choose Authenticate/Reconnect, or run the same
38
+ reconnect command with \`--client claude-code\` and restart Claude.
39
+
40
+ The same applies when a Plan tool returns \`needs auth\`, \`Unauthorized\`, or
41
+ \`Session terminated\`: stop retrying the tool and give the reconnect step instead.
42
+
43
+ Auth is stored per client config/session, so one client's reconnect does not make
44
+ another running client load tools. \`--client all\` refreshes every local client
45
+ config that already has the Plan entry, but each running client still has to
46
+ reload its MCP tools afterward. Reconnect re-authenticates WITHOUT reinstalling
47
+ and finds the entry by URL regardless of connector name — never reinstall from
48
+ scratch just to fix auth. Publish once the tool is reachable. Falling back to
49
+ inline content is a defect, not a degraded mode.
50
+
51
+ <!-- SHARED-CORE:connection END -->
52
+ `;
@@ -0,0 +1,109 @@
1
+ export const CONTENT_SKILL_MD = `---
2
+ name: content
3
+ description: >-
4
+ Use Content for repo-backed Markdown/MDX docs, blogs, resources, rich
5
+ document editing, local components, shareable copies, and Content local-file
6
+ workspaces. Prefer Content actions over raw filesystem writes when available.
7
+ metadata:
8
+ visibility: exported
9
+ ---
10
+
11
+ # Content
12
+
13
+ Use the Content app when a workflow is about authoring, editing, reviewing, or
14
+ publishing Markdown/MDX documents: docs sites, blogs, resource libraries,
15
+ marketing pages, internal notes, and local MDX components. Content gives the
16
+ agent a document tree, a rich editor, normal document actions, and optional
17
+ local-file source of truth.
18
+
19
+ ## Choose The Path
20
+
21
+ - Use Content actions when the Content MCP/action tools are available:
22
+ \`list-documents\`, \`search-documents\`, \`get-document\`,
23
+ \`pull-document\`, \`create-document\`, \`edit-document\`,
24
+ \`update-document\`, \`delete-document\`, \`share-local-file-document\`,
25
+ \`list-local-component-files\`, and \`write-local-component-file\`.
26
+ - Use \`pull-document\` or \`get-document\` before editing a page. Use
27
+ \`edit-document\` for precise find/replace changes and \`update-document\`
28
+ for full rewrites or new content.
29
+ - In Local File Mode, Content actions read and write the repo files declared in
30
+ \`agent-native.json\`; SQL remains cache/history/search glue, not the source of
31
+ truth for those pages.
32
+ - If Content tools are not visible and no local Content app or Desktop bridge is
33
+ running, treat this skill as repo-editing guidance. Edit configured
34
+ \`.md\`/\`.mdx\` files directly, preserve frontmatter and MDX imports, and tell
35
+ the user the Content action surface was not available.
36
+
37
+ ## Action Examples
38
+
39
+ Prefer JSON input for action calls:
40
+
41
+ \`\`\`bash
42
+ pnpm action list-documents
43
+ pnpm action get-document '{"id":"local-file:..."}'
44
+ pnpm action edit-document '{"id":"local-file:...","find":"old copy","replace":"new copy"}'
45
+ pnpm action update-document '{"id":"local-file:...","content":"# Updated\\n\\nBody"}'
46
+ pnpm action share-local-file-document '{"id":"local-file:..."}'
47
+ \`\`\`
48
+
49
+ Run \`refresh-list\` after create/update/delete operations when you need the
50
+ open Content UI sidebar to repaint immediately.
51
+
52
+ ## Local File Mode
53
+
54
+ Install into an existing repo with:
55
+
56
+ \`\`\`bash
57
+ npx @agent-native/core@latest skills add content --mode local-files --scope project
58
+ \`\`\`
59
+
60
+ The installer copies this skill and writes or updates \`agent-native.json\` with
61
+ Content roots for \`docs/\`, \`blog/\`, \`content/\`, and \`resources/\`, plus a
62
+ \`components/\` folder for local MDX components. A typical manifest looks like:
63
+
64
+ \`\`\`json
65
+ {
66
+ "version": 1,
67
+ "apps": {
68
+ "content": {
69
+ "mode": "local-files",
70
+ "roots": [
71
+ { "name": "Docs", "path": "docs", "kind": "docs", "extensions": [".md", ".mdx"] },
72
+ { "name": "Blog", "path": "blog", "kind": "blog", "extensions": [".md", ".mdx"] },
73
+ { "name": "Content", "path": "content", "kind": "content", "extensions": [".md", ".mdx"] },
74
+ { "name": "Resources", "path": "resources", "kind": "resources", "extensions": [".md", ".mdx"] }
75
+ ],
76
+ "components": "components",
77
+ "extensions": "extensions",
78
+ "hide": ["**/_*.md", "**/_*.mdx"]
79
+ }
80
+ }
81
+ }
82
+ \`\`\`
83
+
84
+ Local File Mode does not make the host language model local, and the hosted
85
+ Content app cannot read private repo files by itself. File access requires a
86
+ local Content app, Agent Native Desktop, or another trusted local bridge.
87
+
88
+ ## MDX And Components
89
+
90
+ - Preserve frontmatter keys you do not understand. Preserve MDX imports,
91
+ exports, JSX, and expression props unless the user explicitly asks to change
92
+ them.
93
+ - Use local components from the configured \`components\` folder. Components
94
+ should be PascalCase exports from \`.tsx\` files; simple editable input metadata
95
+ can live next to them as \`ComponentNameInputs\`.
96
+ - Use \`list-local-component-files\` and \`write-local-component-file\` for
97
+ component source changes when Content tools are available. Otherwise edit the
98
+ component files directly like normal repo source.
99
+
100
+ ## Boundaries
101
+
102
+ - Moving, renaming, and reordering local-file pages are not first-class Content
103
+ UI operations yet. Use normal file operations when the user asks for those,
104
+ then let Content rediscover the file tree.
105
+ - Do not push/pull Notion, Builder.io, or other provider-backed content unless
106
+ the user explicitly asks for provider sync.
107
+ - Do not paste secrets, private provider data, or credential-looking values into
108
+ docs, generated pages, frontmatter, examples, or local components.
109
+ `;
@@ -0,0 +1,118 @@
1
+ export const DESIGN_EXPLORATION_SKILL_MD = `---
2
+ name: design-exploration
3
+ description: >-
4
+ Use Design for UI/UX exploration, side-by-side design directions,
5
+ interactive prototype previews, user selection, iteration, and design-to-code
6
+ handoff through the hosted Design MCP app.
7
+ metadata:
8
+ visibility: exported
9
+ ---
10
+
11
+ # Design Exploration
12
+
13
+ Use the Design app when a workflow needs visual UI exploration, prototype
14
+ iteration, or a human-in-the-loop choice among design directions.
15
+
16
+ ## Choose The Path
17
+
18
+ - Use \`create-design\` first to create a project shell. Do not report the
19
+ design as ready until it has renderable HTML.
20
+ - For open-ended UX exploration, generate distinct, compact, complete HTML
21
+ directions (2-5, three by default) and call \`present-design-variants\`. Each
22
+ direction should be one representative screen or directional snapshot, not a
23
+ full app per variant. Design saves every option as a normal screen on the
24
+ overview board and renders an inline chat choice with one button per screen
25
+ name. After the user picks, delete the unchosen variant screens and continue
26
+ from the kept screen by first calling \`get-design-snapshot\` with that
27
+ screen's \`fileId\`, then calling \`edit-design\` on that same \`fileId\` in a
28
+ bounded single-file pass. Use \`mode: "replace-file"\` when expanding the
29
+ representative placeholder into the full chosen direction. Do not call
30
+ \`generate-design\` after a variant pick.
31
+ - If the chat choice buttons are not available in the host, ask the user to
32
+ tell you the screen name they prefer. The variants are already real screens
33
+ on the board, so do not ask them to paste HTML or copy a generated handoff
34
+ summary.
35
+ - For direct refinements to an already chosen direction, call
36
+ \`get-design-snapshot\`, edit from the current tuned HTML, and use
37
+ \`edit-design\` for surgical changes or \`mode: "replace-file"\` for a bounded
38
+ selected-file replacement. Use \`generate-design\` for new files only.
39
+ - Use \`export-coding-handoff\` when the user wants to implement the chosen
40
+ design in a codebase.
41
+
42
+ ## Exploration Defaults
43
+
44
+ 1. Default to three variants unless the user asks for a different count
45
+ (\`present-design-variants\` accepts 2-5; three is the sweet spot).
46
+ 2. Make variants structurally and stylistically distinct, not just color swaps.
47
+ 3. Each variant must be a compact, complete standalone HTML document that
48
+ renders without a build step.
49
+ 4. For product UI redesigns, prefer cleaner hierarchy, progressive disclosure,
50
+ and realistic controls over decorative mockups.
51
+ 5. After \`present-design-variants\`, wait for the user's pick before
52
+ generating the next version. Keep the chosen screen, delete the other
53
+ variant screens, call \`get-design-snapshot\` with \`fileId\` for the kept
54
+ screen, then call \`edit-design\` on that same \`fileId\` in a bounded pass.
55
+ Use \`mode: "replace-file"\` when expanding the representative placeholder
56
+ into the full chosen direction. Do not call \`generate-design\` after a
57
+ variant pick. Stop after the first successful \`edit-design\` save.
58
+
59
+ ## Design Quality Bar
60
+
61
+ Generic "AI slop" comes from letting one prompt set taste, explore, and emit code
62
+ at once — so the model returns the training-average (Inter, an indigo/violet
63
+ gradient, a centered hero, three rounded cards). The variant flow above exists to
64
+ separate those jobs; use it, and hold this bar:
65
+
66
+ - Before generating, name the concrete audience, the screen's primary job, and
67
+ the visual thesis. If the brief is vague, make a reasonable choice and state
68
+ it instead of producing a generic dashboard/landing-page default.
69
+ - Refuse the defaults, and pair every "don't" with a "do" (banning Inter alone
70
+ just makes you reach for Roboto). Avoid Inter/Roboto/system fonts, the
71
+ indigo/violet slop palette (\`#6366F1\`/\`#8B5CF6\`/\`#A855F7\`) and purple-on-white
72
+ gradients, and centered-hero + three-icon-card layouts; instead pick a
73
+ distinctive font pairing, one non-default palette family with a single decisive
74
+ accent, and an asymmetric layout with a clear focal point.
75
+ - Make each direction distinct in structure and behavior, not just palette.
76
+ Give every variant one memorable signature choice, then keep the surrounding
77
+ chrome disciplined. Even your creative picks converge (Space Grotesk
78
+ everywhere) — vary deliberately so two directions never share a fingerprint.
79
+ - For existing products, inspect the current screen, design system, tokens, and
80
+ component language before inventing a new direction. Treat any drift back to a
81
+ default as a missing token to pin, and vary layout per screen so on-brand does
82
+ not become same-in-your-colors.
83
+ - Treat copy, data, and imagery as design material. Use realistic domain
84
+ content and first-party/generated assets when images matter; avoid lorem
85
+ ipsum, vague SaaS filler, and decorative placeholder boxes.
86
+ - Build to a quiet quality floor: responsive desktop/mobile layout, visible
87
+ keyboard focus, useful loading/empty/error states for app UI, and reduced
88
+ motion support when custom motion is present.
89
+ - After broad generation or refinement, inspect the rendered Design surface or
90
+ a screenshot-capable host before calling it ready. Fix obvious hierarchy,
91
+ overflow, contrast, broken interaction, and placeholder-content issues first.
92
+
93
+ ## Cross-App Use
94
+
95
+ - Hosted default: connect \`https://design.agent-native.com/_agent-native/mcp\`.
96
+ Do not put shared secrets in skill files.
97
+ - For CLI/code-editor clients, keep any \`npx @agent-native/core@latest connect\` command
98
+ running until browser authorization finishes. Stopping it early can leave the
99
+ browser approved but the local MCP config unwritten. Restart or reload the
100
+ agent client after installing or connecting if Design tools do not appear in
101
+ the live session.
102
+ - Dispatch can expose Design alongside other apps. Use Design for UI/UX design
103
+ tasks, Assets for image/media selection, Slides for decks, and so on.
104
+ - Keep the loop visual: surface the inline MCP App or the returned "Open
105
+ design" link instead of pasting large HTML blobs into chat.
106
+ - If a Design tool call returns \`Session terminated\`, \`needs auth\`, or
107
+ another connector/session error, do not keep retrying the tool. Stop and give
108
+ the user the reconnect step: in Claude Code run \`/mcp\` and choose
109
+ Authenticate/Reconnect for the Design connector; from any terminal run
110
+ \`npx -y @agent-native/core@latest reconnect https://design.agent-native.com\` — this
111
+ re-authenticates WITHOUT reinstalling. Never reinstall from scratch just to fix
112
+ auth. Continue once the connector is available.
113
+ - Do not hand-roll MCP HTTP requests with curl from the agent session. Use the
114
+ host-exposed Design tools after restart/reload, or use the returned
115
+ browser/deep-link fallback.
116
+ - If you inspect local MCP config, redact \`Authorization\`, \`http_headers\`,
117
+ and token values. Never paste bearer tokens into chat or logs.
118
+ `;
@@ -0,0 +1,228 @@
1
+ export const DESIGN_VISUAL_EDIT_SKILL_MD = `---
2
+ name: visual-edit
3
+ description: >-
4
+ Open a running local app in Design overview mode as URL-backed iframe screens
5
+ for visual editing, flow review, duplication, and route-state exploration.
6
+ Use when the user asks to inspect, compare, or edit a real local app visually
7
+ in Design.
8
+ metadata:
9
+ visibility: exported
10
+ ---
11
+
12
+ # Visual Edit
13
+
14
+ Use \`/visual-edit\` when the user wants to inspect or edit a real local app
15
+ visually instead of generating standalone Alpine HTML. The source of truth is
16
+ the running localhost app plus its route URLs. Design shows those routes as
17
+ iframe-backed screens on the infinite canvas.
18
+
19
+ ## Core Model
20
+
21
+ - Each screen is a URL-backed iframe, not copied HTML.
22
+ - Each screen keeps URL metadata: \`connectionId\`, \`routeId\`, \`path\`,
23
+ \`url\`, \`bridgeUrl\`, title, and viewport size.
24
+ - Start in Design's screen overview mode. In overview, screens are static
25
+ design frames; full-screen focus is for scrolling and app interaction.
26
+ - Alt-drag duplicates a screen. For localhost screens, duplication copies the
27
+ iframe frame and URL metadata; change the copy's path/query for a new state.
28
+ - Flow visualization is multiple URL states: \`/checkout?step=shipping\`,
29
+ \`/checkout?step=payment\`, \`/checkout?step=done\`, etc.
30
+ - When the user gives a named flow or numbered screen list, preserve that order
31
+ and create one screen per URL/path. Shorthand like
32
+ \`localhost:1234/onboarding/1\` means
33
+ \`http://localhost:1234/onboarding/1\`.
34
+
35
+ ## Review Quality
36
+
37
+ - Treat the running app as the truth. Preserve its component language, tokens,
38
+ route state, and real content unless the user explicitly asks for a new visual
39
+ direction.
40
+ - Use multiple URL states to reveal meaningful UX moments: empty/loading/error
41
+ states, focused panels, modals, responsive breakpoints, and completed flow
42
+ steps when those matter to the review.
43
+ - For visual edits, compare before/after at the relevant viewport sizes and
44
+ check key hover/focus/scroll states when the app exposes them.
45
+
46
+ ## Account And Sharing Model
47
+
48
+ - The \`/visual-edit\` entry route can open before the viewer signs in. Public
49
+ \`/design/:id\` editor links can also render read-only public designs without a
50
+ session.
51
+ - Prefer links returned by Design actions or \`/_agent-native/open\` deep links.
52
+ Do not surface URLs with \`_session=\` tokens. Query sessions are only a
53
+ fallback after normal cookie resolution, so an existing browser session can
54
+ still open the design as a different user and show "Design not found".
55
+ - Do not attempt anonymous write actions. Bridge registration, design creation,
56
+ screen placement, generation, saving, and sharing are account-backed. If a
57
+ signed-out visitor wants to save or share, send them through the framework
58
+ sign-in return flow, then save or copy the design into that account before
59
+ opening the share dialog.
60
+
61
+ ## Required Local Bridge
62
+
63
+ The live-edit bridge is unlocked by a shared secret (the "bridge token") that
64
+ must match on two sides: the local bridge process, and the user's connection row
65
+ in Design (which the browser reads to authorize \`/live-edit-bridge\`,
66
+ \`/read-file\`, \`/write-file\`). Get them to match by letting the
67
+ **authenticated** \`open-visual-edit\` action mint the token, then starting the
68
+ bridge with it. This is the only ordering that works for the remote-MCP flow —
69
+ the bridge cannot push its own token to the server without a CLI auth token, so
70
+ the server mints instead and the bridge adopts.
71
+
72
+ From the target app repo, make sure its dev server is running, then:
73
+
74
+ **1. Discover routes without starting a durable bridge** (one-shot, exits):
75
+
76
+ \`\`\`bash
77
+ npx @agent-native/core@latest design connect --url http://localhost:5173 --root . --json
78
+ \`\`\`
79
+
80
+ This prints the manifest (routes + capabilities). Parse it to build
81
+ \`routeManifest\` for the next step. (Skip this if the user already gave explicit
82
+ paths/URLs to place.)
83
+
84
+ **2. Call \`open-visual-edit\`** (see Action Flow below) with NO \`bridgeToken\`.
85
+ The server mints one, stores it on the user's connection row, copies it into the
86
+ placed screens' metadata, and returns it to you as \`bridgeToken\`. Capture it.
87
+
88
+ **3. Start the persistent bridge adopting that token** (single line; prefer the
89
+ env var so the secret does not appear in \`ps\`):
90
+
91
+ \`\`\`bash
92
+ AGENT_NATIVE_BRIDGE_TOKEN="<bridgeToken from step 2>" npx @agent-native/core@latest design connect --url http://localhost:5173 --root . --daemon
93
+ \`\`\`
94
+
95
+ (Equivalently, pass \`--bridge-token <token>\`.) This starts a detached bridge on
96
+ \`http://127.0.0.1:7331\`, adopts the server-minted token — so bridge and row
97
+ agree and live-edit authorizes with no self-registration — and stays alive after
98
+ the command exits.
99
+
100
+ For a manual health/manifest check on the running bridge:
101
+
102
+ \`\`\`bash
103
+ curl http://127.0.0.1:7331/manifest.json
104
+ \`\`\`
105
+
106
+ Only use \`--json\` for the step-1 route probe. Never use \`--json\`, \`--once\`,
107
+ or \`--dry-run\` for the durable step-3 bridge: they print the manifest and exit,
108
+ so Design falls back to a non-editable live iframe.
109
+
110
+ ## Action Flow
111
+
112
+ Prefer the single authenticated \`open-visual-edit\` action. It registers or
113
+ refreshes the localhost bridge connection, mints and stores the bridge token,
114
+ creates or reuses a Design project, places URL-backed screens, stores the active
115
+ visual-edit context, and navigates to overview mode in one call. This avoids
116
+ creating a private design under a synthetic CLI user and then handing the browser
117
+ a tokenized URL that may be shadowed by an existing session.
118
+
119
+ Call it BEFORE starting the durable bridge (step 3 above): it does not contact
120
+ the bridge, so the bridge need not be running yet, and you need its returned
121
+ \`bridgeToken\` to start the bridge with a matching secret. Omit \`bridgeToken\`
122
+ on the call so the server mints one.
123
+
124
+ \`\`\`bash
125
+ pnpm action open-visual-edit '{
126
+ "title": "Docs homepage visual edit",
127
+ "devServerUrl": "http://localhost:5173",
128
+ "bridgeUrl": "http://127.0.0.1:7331",
129
+ "rootPath": "/absolute/path/to/app",
130
+ "routeManifest": { "...": "from /manifest.json" },
131
+ "paths": ["/", "/pricing", "/checkout?step=payment"]
132
+ }'
133
+ \`\`\`
134
+
135
+ The action returns \`designId\`, \`connectionId\`, \`bridgeToken\`, \`screens\`,
136
+ \`urlPath\`, and \`openUrl\`. Keep \`designId\`/\`connectionId\` in the chat context
137
+ for follow-ups, and pass \`bridgeToken\` to \`design connect\` (step 3) to start
138
+ the bridge. On follow-up calls reusing an existing \`connectionId\`, the same
139
+ token is returned (it is minted once and reused), so the running bridge stays
140
+ valid.
141
+
142
+ For a numbered flow the user describes in chat, keep the labels and order:
143
+
144
+ \`\`\`bash
145
+ pnpm action open-visual-edit '{
146
+ "designId": "<existing-design-id>",
147
+ "connectionId": "<existing-connection-id>",
148
+ "devServerUrl": "http://localhost:1234",
149
+ "routes": [
150
+ { "url": "localhost:1234/onboarding/1", "title": "Screen 1" },
151
+ { "url": "localhost:1234/onboarding/2", "title": "Screen 2" },
152
+ { "url": "localhost:1234/onboarding/3", "title": "Screen 3" }
153
+ ]
154
+ }'
155
+ \`\`\`
156
+
157
+ For responsive follow-ups, call \`open-visual-edit\` again with the same
158
+ \`designId\` and \`connectionId\`, plus explicit viewport dimensions:
159
+
160
+ \`\`\`bash
161
+ pnpm action open-visual-edit '{
162
+ "designId": "<existing-design-id>",
163
+ "connectionId": "<existing-connection-id>",
164
+ "devServerUrl": "http://localhost:5173",
165
+ "paths": ["/"],
166
+ "defaultWidth": 390,
167
+ "defaultHeight": 844,
168
+ "startX": 1600,
169
+ "startY": 0
170
+ }'
171
+ \`\`\`
172
+
173
+ If no \`routes\` or \`paths\` are supplied, \`open-visual-edit\` uses every route
174
+ from the localhost manifest.
175
+
176
+ Fallback, only when \`open-visual-edit\` is unavailable:
177
+
178
+ 1. Register or refresh the bridge with \`connect-localhost\`, passing the
179
+ \`/manifest.json\` result as \`routeManifest\` and \`capabilities\`.
180
+ 2. Create or reuse a Design project with \`create-design\`.
181
+ 3. Place URL-backed screens with \`add-localhost-screens\`.
182
+ 4. Navigate to overview mode with \`navigate\`.
183
+
184
+ ## Open The Design Surface
185
+
186
+ - Use the \`link\`, \`deepLink\`, or MCP App embed returned by Design actions so
187
+ the user sees the canvas. In Codex Desktop or VS Code, prefer opening that
188
+ Design URL in the available preview/webview panel; otherwise surface the
189
+ "Open design" link.
190
+ - Return or open the \`openUrl\` / action link, not a hand-built
191
+ \`/design/:id?_session=...\` URL.
192
+ - If the user is working in VS Code, the Agent Native extension can open the
193
+ same URL via
194
+ \`vscode://builder.agent-native/open?url=<encoded-design-url>\`. Its
195
+ \`Agent Native: Open Design Canvas\` command also starts the local bridge and
196
+ opens hosted Design in the VS Code side panel.
197
+ - After \`add-localhost-screens\`, confirm the Design editor is in overview mode
198
+ with the requested URL-backed frames visible. Do not stop at "screens added"
199
+ when the user asked to inspect or edit visually.
200
+
201
+ ## Editing URLs
202
+
203
+ Keep localhost screens as URL files plus \`screenMetadata[fileId]\`. Do not
204
+ replace them with copied \`srcdoc\` HTML unless the user explicitly asks for a
205
+ frozen snapshot. To change a state, rerun \`add-localhost-screens\` with the new
206
+ path/query or duplicate the screen and update the copy's URL metadata.
207
+
208
+ ## React Source Writeback
209
+
210
+ - Use compiler/debug provenance (project-relative file, line, column,
211
+ component, and runtime multiplicity) to locate React/TSX source. Treat it as
212
+ evidence, not as permission for a generic AST structural transform.
213
+ - Reparenting, grouping/ungrouping, wrappers, dynamic expressions, repeated
214
+ \`.map()\` instances, shared components, and cross-file changes go through the
215
+ coding agent with exact subject/target anchors and their runtime
216
+ relationship.
217
+ - Before each write, read the file and pass its exact \`versionHash\` to
218
+ \`write-local-file\` with \`requireExpectedVersionHash: true\`; on conflict,
219
+ re-read and re-plan. Keep the optimistic preview until HMR/runtime confirms
220
+ the result. Human write consent remains mandatory and agents cannot grant it.
221
+
222
+ ## Verification
223
+
224
+ - \`list-localhost-connections\` returns the expected connection and routes.
225
+ - The Design editor opens in overview mode.
226
+ - Every requested screen renders the intended localhost URL.
227
+ - Alt-dragging a screen copies the URL-backed frame, not an inline HTML clone.
228
+ `;