@agent-native/core 0.79.27 → 0.80.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 (346) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +26 -0
  3. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +41 -0
  4. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +51 -0
  5. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +50 -0
  6. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +49 -0
  7. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +44 -0
  8. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +46 -0
  9. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +44 -0
  10. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +48 -0
  11. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +36 -0
  12. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +38 -0
  13. package/corpus/core/docs/content/template-design.mdx +45 -0
  14. package/corpus/core/package.json +2 -1
  15. package/corpus/core/src/agent/engine/index.ts +1 -0
  16. package/corpus/core/src/agent/engine/registry.ts +40 -0
  17. package/corpus/core/src/agent/production-agent.ts +6 -2
  18. package/corpus/core/src/cli/design-connect.ts +490 -0
  19. package/corpus/core/src/cli/index.ts +16 -0
  20. package/corpus/core/src/cli/skills.ts +126 -3
  21. package/corpus/core/src/client/AssistantChat.tsx +43 -7
  22. package/corpus/core/src/client/agent-chat.ts +27 -3
  23. package/corpus/core/src/client/blocks/library/MermaidBlock.tsx +1 -1
  24. package/corpus/core/src/client/blocks/library/diagram.tsx +2 -2
  25. package/corpus/core/src/client/blocks/library/wireframe.tsx +1 -1
  26. package/corpus/core/src/client/chat/message-components.tsx +1 -1
  27. package/corpus/core/src/client/chat-model-groups.ts +1 -2
  28. package/corpus/core/src/client/components/LiveCursorOverlay.tsx +33 -66
  29. package/corpus/core/src/client/composer/TiptapComposer.tsx +99 -24
  30. package/corpus/core/src/client/composer/useVoiceDictation.ts +429 -260
  31. package/corpus/core/src/client/frame-protocol.ts +17 -2
  32. package/corpus/core/src/client/rich-markdown-editor/RegistryBlockNode.tsx +2 -2
  33. package/corpus/core/src/client/sharing/ShareButton.tsx +20 -15
  34. package/corpus/core/src/client/use-agent-engine-configured.ts +80 -28
  35. package/corpus/core/src/server/transcribe-voice.ts +57 -22
  36. package/corpus/core/src/shared/mcp-embed-headers.ts +23 -1
  37. package/corpus/core/src/styles/agent-native.css +56 -7
  38. package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
  39. package/corpus/core/src/vite/client.ts +2 -0
  40. package/corpus/core/src/voice/index.ts +18 -0
  41. package/corpus/core/src/voice/voice-cleanup-prompt.ts +38 -0
  42. package/corpus/core/src/voice/voice-context.ts +217 -0
  43. package/corpus/core/src/voice/voice-replacements.ts +75 -0
  44. package/corpus/templates/analytics/AGENTS.md +4 -3
  45. package/corpus/templates/analytics/actions/list-session-recordings.ts +6 -1
  46. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +557 -400
  47. package/corpus/templates/analytics/app/global.css +0 -4
  48. package/corpus/templates/analytics/app/i18n/zh-TW.ts +2 -0
  49. package/corpus/templates/analytics/app/i18n-data.ts +20 -0
  50. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +33 -8
  51. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +7 -0
  52. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +7 -0
  53. package/corpus/templates/analytics/changelog/2026-06-28-ask-tab-now-matches-the-darker-app-background.md +6 -0
  54. package/corpus/templates/analytics/changelog/2026-06-28-dashboard-email-reports-now-use-cleaner-light-mode-snapshots.md +6 -0
  55. package/corpus/templates/analytics/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  56. package/corpus/templates/analytics/changelog/2026-06-28-sessions-now-show-only-signed-in-recordings-with-playable-re.md +6 -0
  57. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +3 -3
  58. package/corpus/templates/analytics/server/lib/dashboard-report.ts +29 -7
  59. package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +5 -2
  60. package/corpus/templates/analytics/server/lib/session-replay.ts +24 -4
  61. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -4
  62. package/corpus/templates/assets/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  63. package/corpus/templates/brain/app/components/layout/Layout.tsx +29 -2
  64. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +131 -42
  65. package/corpus/templates/brain/app/i18n/zh-TW.ts +2 -0
  66. package/corpus/templates/brain/app/i18n-data.ts +20 -0
  67. package/corpus/templates/brain/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  68. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +29 -1
  69. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +417 -299
  70. package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
  71. package/corpus/templates/calendar/app/i18n-data.ts +20 -0
  72. package/corpus/templates/calendar/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  73. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +6 -19
  74. package/corpus/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  75. package/corpus/templates/clips/AGENTS.md +4 -0
  76. package/corpus/templates/clips/actions/cleanup-transcript.ts +39 -9
  77. package/corpus/templates/clips/actions/finalize-meeting.ts +81 -12
  78. package/corpus/templates/clips/actions/lib/agents-md-context.ts +4 -1
  79. package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
  80. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +1 -1
  81. package/corpus/templates/clips/app/components/player/share-dialog.tsx +2 -2
  82. package/corpus/templates/clips/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
  83. package/corpus/templates/clips/desktop/src/lib/personal-vocabulary.ts +13 -8
  84. package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +60 -1
  85. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +1 -1
  86. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +1 -1
  87. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +5 -5
  88. package/corpus/templates/content/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  89. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +137 -0
  90. package/corpus/templates/design/AGENTS.md +95 -5
  91. package/corpus/templates/design/DESIGN.md +82 -0
  92. package/corpus/templates/design/DEVELOPING.md +43 -0
  93. package/corpus/templates/design/actions/add-localhost-screens.ts +426 -0
  94. package/corpus/templates/design/actions/apply-shader.ts +277 -0
  95. package/corpus/templates/design/actions/apply-visual-edit.ts +303 -0
  96. package/corpus/templates/design/actions/connect-localhost.ts +183 -0
  97. package/corpus/templates/design/actions/edit-design.ts +195 -42
  98. package/corpus/templates/design/actions/generate-design.ts +71 -1
  99. package/corpus/templates/design/actions/generate-screens.ts +193 -0
  100. package/corpus/templates/design/actions/get-code-layer-projection.ts +191 -0
  101. package/corpus/templates/design/actions/get-shader.ts +119 -0
  102. package/corpus/templates/design/actions/list-localhost-connections.ts +95 -0
  103. package/corpus/templates/design/actions/navigate.ts +55 -2
  104. package/corpus/templates/design/actions/view-screen.ts +68 -1
  105. package/corpus/templates/design/agent-native.app-skill.json +10 -0
  106. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +761 -0
  107. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +2057 -103
  108. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +74 -38
  109. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +399 -0
  110. package/corpus/templates/design/app/components/design/EditPanel.tsx +3185 -439
  111. package/corpus/templates/design/app/components/design/LayersPanel.tsx +1124 -0
  112. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +3116 -147
  113. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +700 -13
  114. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +107 -63
  115. package/corpus/templates/design/app/components/design/index.ts +0 -5
  116. package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +286 -0
  117. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +699 -0
  118. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +461 -0
  119. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +166 -0
  120. package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +1420 -0
  121. package/corpus/templates/design/app/components/design/inspector/SHADER_INTEGRATION.md +420 -0
  122. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +215 -0
  123. package/corpus/templates/design/app/components/design/inspector/ShaderControls.stories.tsx +71 -0
  124. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +518 -0
  125. package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +106 -0
  126. package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +361 -0
  127. package/corpus/templates/design/app/components/design/inspector/index.ts +60 -0
  128. package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +201 -0
  129. package/corpus/templates/design/app/components/design/types.ts +23 -0
  130. package/corpus/templates/design/app/components/layout/Layout.tsx +24 -13
  131. package/corpus/templates/design/app/components/layout/Sidebar.tsx +4 -4
  132. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +474 -36
  133. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +22 -5
  134. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +24 -11
  135. package/corpus/templates/design/app/global.css +121 -3
  136. package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -0
  137. package/corpus/templates/design/app/hooks/use-navigation-state.ts +130 -8
  138. package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +329 -0
  139. package/corpus/templates/design/app/i18n/zh-TW.ts +264 -0
  140. package/corpus/templates/design/app/i18n-data.ts +2790 -1
  141. package/corpus/templates/design/app/pages/DesignEditor.tsx +5108 -851
  142. package/corpus/templates/design/changelog/2026-06-28-annotate-mode-now-combines-drawing-and-comment-pins-in-one-c.md +6 -0
  143. package/corpus/templates/design/changelog/2026-06-28-design-editor-panel-borders-are-cleaner-so-the-canvas-edge-s.md +6 -0
  144. package/corpus/templates/design/changelog/2026-06-28-drawing-prompts-now-reliably-open-and-submit-to-the-design-a.md +6 -0
  145. package/corpus/templates/design/changelog/2026-06-28-editor-app-menus-now-use-an-outline-agent-native-mark-with-b.md +6 -0
  146. package/corpus/templates/design/changelog/2026-06-28-figma-style-code-design-mode.md +6 -0
  147. package/corpus/templates/design/changelog/2026-06-28-layer-selection-now-updates-chat-context-without-opening-the.md +6 -0
  148. package/corpus/templates/design/changelog/2026-06-28-layer-selections-now-preserve-hidden-and-locked-canvas-state.md +6 -0
  149. package/corpus/templates/design/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  150. package/corpus/templates/design/changelog/2026-06-28-live-cursors-now-keep-names-beside-a-cleaner-pointer-marker.md +6 -0
  151. package/corpus/templates/design/changelog/2026-06-28-mode-switching-now-lives-in-a-compact-bottom-right-icon-dock.md +6 -0
  152. package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-handles-zooming-drawing-opening-and-dele.md +6 -0
  153. package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-selects-screens-on-click-and-opens-them-.md +6 -0
  154. package/corpus/templates/design/changelog/2026-06-28-screen-overview-zooms-into-the-active-screen-with-smoother-e.md +6 -0
  155. package/corpus/templates/design/changelog/2026-06-28-selected-element-chips-in-chat-are-shorter-and-easier-to-sca.md +6 -0
  156. package/corpus/templates/design/changelog/2026-06-28-the-design-editor-toolbar-is-more-compact-and-the-app-menu-m.md +6 -0
  157. package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-at-the-top-of-the-design-sidebar-instead-of-.md +6 -0
  158. package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-in-the-right-inspector-beside-the-design-tab.md +6 -0
  159. package/corpus/templates/design/changelog/2026-06-29-active-sidebar-rows-use-soft-highlights.md +6 -0
  160. package/corpus/templates/design/changelog/2026-06-29-agents-can-now-open-screen-overview-focus-screens-and-add.md +6 -0
  161. package/corpus/templates/design/changelog/2026-06-29-design-agents-now-edit-broad-copy-changes-more-reliably.md +6 -0
  162. package/corpus/templates/design/changelog/2026-06-29-design-editor-extensions-now-run-inline-beside-the-artboard.md +6 -0
  163. package/corpus/templates/design/changelog/2026-06-29-sidebars-use-darker-chrome-and-chat-warns-immediately.md +6 -0
  164. package/corpus/templates/design/changelog/2026-06-29-visual-edit-can-open-localhost-routes-as-url-backed-screens.md +6 -0
  165. package/corpus/templates/design/package.json +1 -0
  166. package/corpus/templates/design/server/db/schema.ts +26 -0
  167. package/corpus/templates/design/server/lib/design-snapshot.ts +1 -1
  168. package/corpus/templates/design/server/plugins/agent-chat.ts +3 -0
  169. package/corpus/templates/design/shared/api.ts +27 -0
  170. package/corpus/templates/design/shared/canvas-frames.ts +103 -0
  171. package/corpus/templates/design/shared/canvas-math.ts +1058 -0
  172. package/corpus/templates/design/shared/code-layer.ts +2212 -0
  173. package/corpus/templates/design/shared/color-utils.ts +180 -0
  174. package/corpus/templates/design/shared/generation-session.ts +61 -0
  175. package/corpus/templates/design/shared/shader-presets.ts +782 -0
  176. package/corpus/templates/design/shared/shader-safety.ts +137 -0
  177. package/corpus/templates/design/shared/source-mode.ts +237 -0
  178. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +149 -6
  179. package/corpus/templates/forms/app/i18n/ar-SA.ts +2 -0
  180. package/corpus/templates/forms/app/i18n/de-DE.ts +2 -0
  181. package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
  182. package/corpus/templates/forms/app/i18n/es-ES.ts +2 -0
  183. package/corpus/templates/forms/app/i18n/fr-FR.ts +2 -0
  184. package/corpus/templates/forms/app/i18n/hi-IN.ts +2 -0
  185. package/corpus/templates/forms/app/i18n/ja-JP.ts +2 -0
  186. package/corpus/templates/forms/app/i18n/ko-KR.ts +2 -0
  187. package/corpus/templates/forms/app/i18n/pt-BR.ts +2 -0
  188. package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
  189. package/corpus/templates/forms/app/i18n/zh-TW.ts +2 -0
  190. package/corpus/templates/forms/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  191. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +2 -2
  192. package/corpus/templates/macros/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
  193. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +408 -247
  194. package/corpus/templates/mail/app/i18n/ar-SA.ts +4 -0
  195. package/corpus/templates/mail/app/i18n/de-DE.ts +4 -0
  196. package/corpus/templates/mail/app/i18n/en-US.ts +4 -0
  197. package/corpus/templates/mail/app/i18n/es-ES.ts +4 -0
  198. package/corpus/templates/mail/app/i18n/fr-FR.ts +4 -0
  199. package/corpus/templates/mail/app/i18n/hi-IN.ts +4 -0
  200. package/corpus/templates/mail/app/i18n/ja-JP.ts +4 -0
  201. package/corpus/templates/mail/app/i18n/ko-KR.ts +4 -0
  202. package/corpus/templates/mail/app/i18n/pt-BR.ts +4 -0
  203. package/corpus/templates/mail/app/i18n/zh-CN.ts +4 -0
  204. package/corpus/templates/mail/app/i18n/zh-TW.ts +4 -0
  205. package/corpus/templates/mail/changelog/2026-06-28-pinned-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  206. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +6 -8
  207. package/corpus/templates/plan/app/components/plan/wireframe/Wireframe.tsx +1 -1
  208. package/corpus/templates/plan/app/global.css +61 -78
  209. package/corpus/templates/plan/app/pages/PlansPage.tsx +8 -0
  210. package/corpus/templates/plan/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  211. package/corpus/templates/plan/changelog/2026-06-28-plans-use-the-shared-neutral-light-and-dark-theme.md +6 -0
  212. package/corpus/templates/plan/changelog/2026-06-28-sending-open-feedback-from-a-plan-now-opens-the-inline-plan-.md +6 -0
  213. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
  214. package/corpus/templates/slides/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  215. package/corpus/templates/videos/app/components/Sidebar.tsx +2 -2
  216. package/corpus/templates/videos/app/components/layout/Layout.tsx +29 -2
  217. package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +113 -30
  218. package/corpus/templates/videos/app/i18n/ar-SA.ts +2 -0
  219. package/corpus/templates/videos/app/i18n/de-DE.ts +2 -0
  220. package/corpus/templates/videos/app/i18n/en-US.ts +2 -0
  221. package/corpus/templates/videos/app/i18n/es-ES.ts +2 -0
  222. package/corpus/templates/videos/app/i18n/fr-FR.ts +2 -0
  223. package/corpus/templates/videos/app/i18n/hi-IN.ts +2 -0
  224. package/corpus/templates/videos/app/i18n/ja-JP.ts +2 -0
  225. package/corpus/templates/videos/app/i18n/ko-KR.ts +2 -0
  226. package/corpus/templates/videos/app/i18n/pt-BR.ts +2 -0
  227. package/corpus/templates/videos/app/i18n/zh-CN.ts +2 -0
  228. package/corpus/templates/videos/app/i18n/zh-TW.ts +2 -0
  229. package/corpus/templates/videos/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
  230. package/dist/agent/engine/index.d.ts +1 -1
  231. package/dist/agent/engine/index.d.ts.map +1 -1
  232. package/dist/agent/engine/index.js +1 -1
  233. package/dist/agent/engine/index.js.map +1 -1
  234. package/dist/agent/engine/registry.d.ts +9 -0
  235. package/dist/agent/engine/registry.d.ts.map +1 -1
  236. package/dist/agent/engine/registry.js +37 -0
  237. package/dist/agent/engine/registry.js.map +1 -1
  238. package/dist/agent/production-agent.d.ts.map +1 -1
  239. package/dist/agent/production-agent.js +4 -3
  240. package/dist/agent/production-agent.js.map +1 -1
  241. package/dist/cli/design-connect.d.ts +52 -0
  242. package/dist/cli/design-connect.d.ts.map +1 -0
  243. package/dist/cli/design-connect.js +409 -0
  244. package/dist/cli/design-connect.js.map +1 -0
  245. package/dist/cli/index.js +15 -0
  246. package/dist/cli/index.js.map +1 -1
  247. package/dist/cli/skills.d.ts +3 -0
  248. package/dist/cli/skills.d.ts.map +1 -1
  249. package/dist/cli/skills.js +121 -3
  250. package/dist/cli/skills.js.map +1 -1
  251. package/dist/client/AssistantChat.d.ts.map +1 -1
  252. package/dist/client/AssistantChat.js +38 -8
  253. package/dist/client/AssistantChat.js.map +1 -1
  254. package/dist/client/agent-chat.d.ts +6 -0
  255. package/dist/client/agent-chat.d.ts.map +1 -1
  256. package/dist/client/agent-chat.js +17 -3
  257. package/dist/client/agent-chat.js.map +1 -1
  258. package/dist/client/blocks/library/MermaidBlock.js +1 -1
  259. package/dist/client/blocks/library/MermaidBlock.js.map +1 -1
  260. package/dist/client/blocks/library/diagram.js +1 -1
  261. package/dist/client/blocks/library/diagram.js.map +1 -1
  262. package/dist/client/blocks/library/wireframe.js +1 -1
  263. package/dist/client/blocks/library/wireframe.js.map +1 -1
  264. package/dist/client/chat/message-components.js +1 -1
  265. package/dist/client/chat/message-components.js.map +1 -1
  266. package/dist/client/chat-model-groups.d.ts.map +1 -1
  267. package/dist/client/chat-model-groups.js +1 -2
  268. package/dist/client/chat-model-groups.js.map +1 -1
  269. package/dist/client/components/LiveCursorOverlay.d.ts +1 -2
  270. package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
  271. package/dist/client/components/LiveCursorOverlay.js +19 -40
  272. package/dist/client/components/LiveCursorOverlay.js.map +1 -1
  273. package/dist/client/composer/TiptapComposer.d.ts +3 -1
  274. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  275. package/dist/client/composer/TiptapComposer.js +86 -24
  276. package/dist/client/composer/TiptapComposer.js.map +1 -1
  277. package/dist/client/composer/useVoiceDictation.d.ts +9 -0
  278. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
  279. package/dist/client/composer/useVoiceDictation.js +154 -32
  280. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  281. package/dist/client/frame-protocol.d.ts +17 -2
  282. package/dist/client/frame-protocol.d.ts.map +1 -1
  283. package/dist/client/frame-protocol.js.map +1 -1
  284. package/dist/client/rich-markdown-editor/RegistryBlockNode.js +2 -2
  285. package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
  286. package/dist/client/sharing/ShareButton.d.ts +2 -0
  287. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  288. package/dist/client/sharing/ShareButton.js +7 -6
  289. package/dist/client/sharing/ShareButton.js.map +1 -1
  290. package/dist/client/use-agent-engine-configured.d.ts +5 -0
  291. package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
  292. package/dist/client/use-agent-engine-configured.js +51 -25
  293. package/dist/client/use-agent-engine-configured.js.map +1 -1
  294. package/dist/collab/awareness.d.ts +2 -2
  295. package/dist/collab/awareness.d.ts.map +1 -1
  296. package/dist/collab/routes.d.ts +1 -1
  297. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  298. package/dist/notifications/routes.d.ts +3 -3
  299. package/dist/observability/routes.d.ts +8 -8
  300. package/dist/progress/routes.d.ts +1 -1
  301. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  302. package/dist/server/transcribe-voice.d.ts.map +1 -1
  303. package/dist/server/transcribe-voice.js +40 -24
  304. package/dist/server/transcribe-voice.js.map +1 -1
  305. package/dist/shared/mcp-embed-headers.d.ts +1 -0
  306. package/dist/shared/mcp-embed-headers.d.ts.map +1 -1
  307. package/dist/shared/mcp-embed-headers.js +20 -1
  308. package/dist/shared/mcp-embed-headers.js.map +1 -1
  309. package/dist/styles/agent-native.css +56 -7
  310. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
  311. package/dist/vite/client.d.ts.map +1 -1
  312. package/dist/vite/client.js +2 -0
  313. package/dist/vite/client.js.map +1 -1
  314. package/dist/voice/index.d.ts +5 -0
  315. package/dist/voice/index.d.ts.map +1 -0
  316. package/dist/voice/index.js +4 -0
  317. package/dist/voice/index.js.map +1 -0
  318. package/dist/voice/voice-cleanup-prompt.d.ts +6 -0
  319. package/dist/voice/voice-cleanup-prompt.d.ts.map +1 -0
  320. package/dist/voice/voice-cleanup-prompt.js +26 -0
  321. package/dist/voice/voice-cleanup-prompt.js.map +1 -0
  322. package/dist/voice/voice-context.d.ts +25 -0
  323. package/dist/voice/voice-context.d.ts.map +1 -0
  324. package/dist/voice/voice-context.js +156 -0
  325. package/dist/voice/voice-context.js.map +1 -0
  326. package/dist/voice/voice-replacements.d.ts +4 -0
  327. package/dist/voice/voice-replacements.d.ts.map +1 -0
  328. package/dist/voice/voice-replacements.js +52 -0
  329. package/dist/voice/voice-replacements.js.map +1 -0
  330. package/docs/content/locales/ar-SA/template-design.mdx +41 -0
  331. package/docs/content/locales/de-DE/template-design.mdx +51 -0
  332. package/docs/content/locales/es-ES/template-design.mdx +50 -0
  333. package/docs/content/locales/fr-FR/template-design.mdx +49 -0
  334. package/docs/content/locales/hi-IN/template-design.mdx +44 -0
  335. package/docs/content/locales/ja-JP/template-design.mdx +46 -0
  336. package/docs/content/locales/ko-KR/template-design.mdx +44 -0
  337. package/docs/content/locales/pt-BR/template-design.mdx +48 -0
  338. package/docs/content/locales/zh-CN/template-design.mdx +36 -0
  339. package/docs/content/locales/zh-TW/template-design.mdx +38 -0
  340. package/docs/content/template-design.mdx +45 -0
  341. package/package.json +2 -1
  342. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
  343. package/corpus/templates/design/app/components/design/DesignToolbar.tsx +0 -339
  344. package/corpus/templates/design/app/components/design/PresentMode.tsx +0 -68
  345. package/corpus/templates/design/app/components/design/ViewportTabs.tsx +0 -149
  346. package/corpus/templates/design/app/components/design/ZoomControls.tsx +0 -157
package/corpus/README.md CHANGED
@@ -27,5 +27,5 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
27
27
 
28
28
  ## Generated Counts
29
29
 
30
- - core files: 2038
31
- - template files: 4461
30
+ - core files: 2043
31
+ - template files: 4533
@@ -1,5 +1,31 @@
1
1
  # @agent-native/core
2
2
 
3
+ ## 0.80.0
4
+
5
+ ### Minor Changes
6
+
7
+ - aa345cc: Add `agent-native design connect` foundations for localhost Design bridge manifests.
8
+
9
+ ### Patch Changes
10
+
11
+ - aa345cc: App shells use an outline-style raised surface ring and Dispatch left navigation can collapse to an animated icon rail.
12
+ - aa345cc: Live cursors now use Figma-style pointer markers with adjacent participant labels.
13
+ - aa345cc: Surface missing LLM provider connections before agent chat starts a run, including Builder and AI SDK engines.
14
+ - aa345cc: Fix Chrome visual glitchiness (blank/stale regions on scroll, pan, and zoom) in
15
+ plan documents and canvases by removing `backdrop-filter` (`backdrop-blur`) from
16
+ always-rendered per-block controls. A long plan rendered 40+ per-block edit
17
+ triggers, each forcing its own composited backdrop layer; Chrome re-samples every
18
+ backdrop snapshot on each scroll frame and its backdrop-filter invalidation drops
19
+ tiles, leaving regions blank until the next repaint. The tiny hover-trigger chips
20
+ now use an opaque background, which is visually identical but eliminates the
21
+ composited backdrop layers. Affects the block edit trigger, diagram/mermaid
22
+ expand/style triggers, and wireframe style trigger.
23
+ - aa345cc: Allow embedded MCP App controls to target their own local agent sidebar instead of relaying every submitted prompt to the host chat.
24
+ - aa345cc: Respect silent chat context staging across app/frame boundaries so selection context can update without opening the agent sidebar.
25
+ - aa345cc: Polish the shared chat thinking status with capitalized text and a subtle shine animation.
26
+ - aa345cc: Add the Design `/visual-edit` skill and route it through the built-in skill installers so agents can open localhost routes as URL-backed Design screens.
27
+ - aa345cc: Improve voice transcription and cleanup with bounded voice context packs for active composer context, learned vocabulary, and transcript cleanup prompts.
28
+
3
29
  ## 0.79.27
4
30
 
5
31
  ### Patch Changes
@@ -350,6 +350,47 @@ pnpm dev
350
350
 
351
351
  نظرًا لأن التصميم هو مجرد ملفات HTML/JSX مستقلة، يقوم الوكيل بتحرير نفس المصدر الذي يعرضه iframe ويأتي منه كل تصدير - لا يوجد تنسيق "AI mockup" منفصل لترجمته. يوفر نظام التصميم المرتبط الرموز المميزة ويكرم الوكيل `custom_instructions` في كل تذكرة جيل. حدد نصًا أو منطقة في المعاينة واضغط على Cmd+I لتركيز الوكيل على هذا الجزء بالضبط.
352
352
 
353
+ ### نموذج المحرر
354
+
355
+ يعتمد Design على النظرة العامة أولاً عند العمل على شاشات متعددة. بعد الإنشاء
356
+ أو التحديثات الواسعة، يفتح المحرر النظرة العامة للشاشات: لوحة لا نهائية تكون
357
+ فيها كل شاشة إطارًا ثابتًا يمكن تحديده أو نقله أو تغيير حجمه أو إسقاطه أو
358
+ تكراره. انقر نقرًا مزدوجًا على إطار للتركيز على شاشة واحدة.
359
+
360
+ وضع الشاشة الواحدة مخصص للتمرير، والتفاعل مع سلوك النموذج الأولي، وتحرير
361
+ طبقات DOM/الكود داخل ملف واحد معروض. تعكس لوحة الطبقات هذا التقسيم: الشاشات
362
+ إطارات من المستوى الأعلى، وتحت الشاشة النشطة تظهر طبقات DOM/الكود المتداخلة.
363
+
364
+ لأسماء طبقات مستقرة، أضف `data-agent-native-layer-name` إلى العناصر المهمة.
365
+ يستخدمه Design قبل البدائل الدلالية/النصية، ويمكنه حفظ إعادة تسمية الطبقات عبر
366
+ تحرير هذا السمة. يدعم HTML المضمن تحرير طبقات الكود محليًا للنصوص والأصناف
367
+ والأنماط والسمات وترتيب المصدر والتغييرات البنيوية الصغيرة؛ وتقتصر التعديلات
368
+ المرئية لطبقات الكود حاليًا على HTML. يستطيع وضع مصدر localhost تسجيل لوحات
369
+ عمل المسارات المحلية وحلها، لكن قراءة/كتابة الملفات المحلية تبقى عقد جسر إلى
370
+ أن يتم تعزيز عناصر التحكم الصريحة في الأذونات.
371
+
372
+ ### ملحقات محرر Design
373
+
374
+ يتضمن المحرر علامة تبويب المفتش **Extensions** بعد **Tweaks**. تعمل
375
+ كمسار إضافات خاص بـ Design: يمكن للمستخدمين النقر على **+ Extension** ليطلبوا
376
+ من الوكيل بناء ملحق، أو تثبيت ملحق يعلن فتحة `design.editor.inspector`.
377
+
378
+ تُعرض ملحقات Design مضمّنة بجانب لوحة العمل عبر صندوق رمل الملحقات القياسي.
379
+ يمرر المضيف تحديثات `window.slotContext` و`window.onSlotContext(...)` مع
380
+ `designId` الحالي، والملف النشط، وقائمة الشاشات، ومعرفات الشاشات المحددة،
381
+ وبيانات العنصر المحدد، ووضع العرض، والتكبير، والأداة النشطة، وقيم التعديلات.
382
+ يسمح ذلك للملحق بعرض معلومات عن التحديد الحالي، أو تقديم عناصر تحكم في النمط،
383
+ أو بناء تدفقات عمل صغيرة حول التصميم المفتوح.
384
+
385
+ للعمل الحتمي، يمكن للملحقات استدعاء إجراءات التطبيق من خلال جسر الملحقات.
386
+ وللتغييرات المدفوعة بالذكاء الاصطناعي، اجعل الملحق يستدعي
387
+ `agentNative.chat.send(...)` مع محدد العنصر/معرف المصدر والتغيير المطلوب. يجب
388
+ أن يستدعي الوكيل `view-screen` أولاً، ثم يستخدم `apply-visual-edit` لتغييرات
389
+ نمط العنصر أو الصنف أو النص أو الحركة، أو يستخدم `update-design` /
390
+ `generate-design` مع `canvasFrames` لتغييرات موضع لوحة العمل. راجع
391
+ [Extensions](/docs/extensions#what-an-extension-can-do) لمعرفة صندوق الرمل
392
+ والحالة المستمرة وواجهات جسر الملحقات.
393
+
353
394
  ### تخصيصه
354
395
 
355
396
  التصميم عبارة عن قالب كامل وقابل للاستنساخ. بعض الأفكار الإضافية العملية:
@@ -348,6 +348,57 @@ Der Agent weiß immer, was Sie offen haben. Das aktuelle Design, die geöffnete
348
348
 
349
349
  Da es sich bei einem Design lediglich um eigenständige HTML/JSX-Dateien handelt, bearbeitet der Agent dieselbe Quelle, die der Iframe rendert, und jeder Export stammt aus – es gibt kein separates „AI-Mockup“-Format zum Übersetzen. Ein verknüpftes Designsystem liefert Token und `custom_instructions`, die der Agent bei jedem Generationsdurchlauf ehrt. Wählen Sie in der Vorschau Text oder einen Bereich aus und drücken Sie Befehl+I, um den Agenten genau auf diesen Teil zu konzentrieren.
350
350
 
351
+ ### Editor-Modell
352
+
353
+ Design ist bei Arbeit mit mehreren Bildschirmen übersichtsorientiert. Nach der
354
+ Generierung oder größeren Aktualisierungen öffnet der Editor die
355
+ Bildschirmübersicht: eine unendliche Arbeitsfläche, auf der jeder Bildschirm ein
356
+ statischer Rahmen ist, den Sie auswählen, verschieben, skalieren, ablegen oder
357
+ duplizieren können. Verwenden Sie die Vollansicht-Schaltfläche des Rahmens, wenn ein Bildschirm
358
+ fokussiertes Scrollen oder Prototypinteraktion benötigt.
359
+
360
+ Der Einzelbildschirmmodus ist für Scrollen, Interaktion mit Prototypverhalten
361
+ und Bearbeitung der DOM-/Code-Ebenen in einer gerenderten Datei gedacht. Das
362
+ Ebenenfenster spiegelt diese Trennung wider: Bildschirme sind Rahmen der
363
+ obersten Ebene, darunter liegen die DOM-/Code-Ebenen des aktiven Bildschirms.
364
+
365
+ Für stabile Ebenennamen fügen Sie wichtigen Elementen
366
+ `data-agent-native-layer-name` hinzu. Design verwendet dies vor
367
+ semantischen/textbasierten Fallbacks und kann Umbenennungen durch Bearbeiten
368
+ dieses Attributs speichern. Inline-HTML unterstützt lokale Code-Ebenen-Edits
369
+ für Text, Klassen, Stile, Attribute, Quellreihenfolge und kleine strukturelle
370
+ Änderungen; visuelle Code-Ebenen-Edits sind heute HTML-only. Der
371
+ localhost-Quellmodus kann lokale Routen-Artboards registrieren und auflösen,
372
+ aber lokale Datei-Lese-/Schreibvorgänge bleiben ein Bridge-Vertrag, bis
373
+ explizite Berechtigungskontrollen gehärtet sind.
374
+
375
+ ### Erweiterungen im Design-Editor
376
+
377
+ Der Editor enthält nach **Tweaks** eine **Extensions**-Inspektorregisterkarte.
378
+ Sie funktioniert wie eine Design-spezifische Plugin-Spur: Benutzer können auf
379
+ **+ Extension** klicken, um den Agenten eine Erweiterung erstellen zu lassen,
380
+ oder eine Erweiterung installieren, die den Slot `design.editor.inspector`
381
+ deklariert.
382
+
383
+ Design-Erweiterungen werden über die Standard-Erweiterungssandbox inline neben
384
+ der Arbeitsfläche gerendert. Der Host übergibt `window.slotContext` und
385
+ `window.onSlotContext(...)`-Updates mit der aktuellen `designId`, der aktiven
386
+ Datei, der Bildschirmliste, ausgewählten Bildschirm-IDs, Metadaten des
387
+ ausgewählten Elements, Ansichtsmodus, Zoom, aktivem Werkzeug und Tweak-Werten.
388
+ So kann eine Erweiterung Informationen zur aktuellen Auswahl anzeigen,
389
+ Stilsteuerungen anbieten oder kompakte Workflows rund um das geöffnete Design
390
+ erstellen.
391
+
392
+ Für deterministische Arbeit können Erweiterungen App-Aktionen über die
393
+ Erweiterungsbrücke aufrufen. Für KI-gesteuerte Änderungen sollte die Erweiterung
394
+ `agentNative.chat.send(...)` mit dem Selektor/Quell-ID des ausgewählten Elements
395
+ und der gewünschten Änderung aufrufen. Der Agent sollte zuerst `view-screen`
396
+ aufrufen und dann `apply-visual-edit` für Stil-, Klassen-, Text- oder
397
+ Verschiebungsänderungen an Elementen verwenden, oder `update-design` /
398
+ `generate-design` mit `canvasFrames` für Änderungen an der Platzierung der
399
+ Arbeitsfläche. Siehe [Extensions](/docs/extensions#what-an-extension-can-do)
400
+ für Sandbox, persistente Daten und Bridge-APIs.
401
+
351
402
  ### Anpassen
352
403
 
353
404
  Design ist eine vollständige, klonbare Vorlage. Einige praktische Erweiterungsideen:
@@ -348,6 +348,56 @@ El agente siempre sabe lo que tienes abierto. `view-screen` devuelve el diseño
348
348
 
349
349
  Debido a que un diseño son solo archivos HTML/JSX independientes, el agente edita la misma fuente que representa el iframe y de donde proviene cada exportación; no hay un formato de "maqueta de IA" independiente para traducir. Un sistema de diseño vinculado proporciona tokens y `custom_instructions` el agente honra en cada paso de generación. Seleccione texto o una región en la vista previa y presione Cmd+I para enfocar al agente exactamente en esa parte.
350
350
 
351
+ ### Modelo del editor
352
+
353
+ Design prioriza la vista general para el trabajo con varias pantallas. Después
354
+ de generar o aplicar actualizaciones amplias, el editor abre la vista general de
355
+ pantallas: un lienzo infinito donde cada pantalla es un marco estático que se
356
+ puede seleccionar, mover, redimensionar, soltar o duplicar. Usa el botón de vista completa del marco cuando una pantalla necesite
357
+ desplazamiento enfocado o interacción de prototipo.
358
+
359
+ El modo de una sola pantalla sirve para desplazarse, interactuar con el
360
+ comportamiento del prototipo y editar las capas DOM/código dentro de un archivo
361
+ renderizado. El panel de capas refleja esa división: las pantallas son marcos de
362
+ nivel superior, con capas DOM/código anidadas para la pantalla activa.
363
+
364
+ Para nombres de capa estables, agrega `data-agent-native-layer-name` a los
365
+ elementos importantes. Design lo usa antes de los respaldos semánticos/de texto
366
+ y puede persistir cambios de nombre editando ese atributo. HTML inline admite
367
+ ediciones locales de capas de código para texto, clases, estilos, atributos,
368
+ orden del código fuente y pequeños cambios estructurales; las ediciones visuales
369
+ de capas de código solo admiten HTML por ahora. El modo de fuente localhost
370
+ puede registrar y resolver artboards de rutas locales, pero las lecturas y
371
+ escrituras de archivos locales siguen siendo un contrato de puente hasta que se
372
+ endurezcan los controles explícitos de permisos.
373
+
374
+ ### Extensiones del editor de Design
375
+
376
+ El editor incluye una pestaña de inspector **Extensions** después de
377
+ **Tweaks**. Funciona como un carril de plugins específico de Design: los
378
+ usuarios pueden hacer clic en **+ Extension** para pedirle al agente que cree
379
+ una extensión, o instalar una extensión que declare el slot
380
+ `design.editor.inspector`.
381
+
382
+ Las extensiones de Design se renderizan en línea junto al artboard mediante el
383
+ sandbox estándar de extensiones. El host pasa actualizaciones de
384
+ `window.slotContext` y `window.onSlotContext(...)` con el `designId` actual, el
385
+ archivo activo, la lista de pantallas, los ids de pantalla seleccionados, los
386
+ metadatos del elemento seleccionado, el modo de vista, el zoom, la herramienta
387
+ activa y los valores de tweaks. Eso permite que una extensión muestre
388
+ información sobre la selección actual, ofrezca controles de estilo o construya
389
+ flujos compactos alrededor del diseño abierto.
390
+
391
+ Para trabajo determinista, las extensiones pueden llamar acciones de la app a
392
+ través del puente de extensiones. Para cambios impulsados por IA, haz que la
393
+ extensión llame `agentNative.chat.send(...)` con el selector/id de origen del
394
+ elemento seleccionado y el cambio solicitado. El agente debe llamar primero
395
+ `view-screen`, luego usar `apply-visual-edit` para cambios de estilo, clase,
396
+ texto o movimiento de elementos, o `update-design` / `generate-design` con
397
+ `canvasFrames` para cambios de colocación del artboard. Consulta
398
+ [Extensions](/docs/extensions#what-an-extension-can-do) para el sandbox, el
399
+ estado persistente y las APIs del puente.
400
+
351
401
  ### Personalizarlo
352
402
 
353
403
  El diseño es una plantilla completa y clonable. Algunas ideas prácticas de extensión:
@@ -348,6 +348,55 @@ L'agent sait toujours ce que vous avez ouvert. La conception actuelle, le fichie
348
348
 
349
349
  Étant donné qu'une conception n'est constituée que de fichiers HTML/JSX autonomes, l'agent édite la même source que celle du rendu iframe et celle d'où provient chaque exportation : il n'existe pas de format de « maquette IA » distinct à traduire. Un système de conception lié fournit des jetons et `custom_instructions` que l'agent honore à chaque passage de génération. Sélectionnez du texte ou une région dans l'aperçu et appuyez sur Cmd+I pour concentrer l'agent exactement sur cette partie.
350
350
 
351
+ ### Modèle d'éditeur
352
+
353
+ Design privilégie la vue d'ensemble pour le travail multi-écran. Après une
354
+ génération ou une mise à jour large, l'éditeur ouvre la vue d'ensemble des
355
+ écrans : un canevas infini où chaque écran est un cadre statique que vous pouvez
356
+ sélectionner, déplacer, redimensionner, déposer ou dupliquer. Utilisez le bouton de vue complète du cadre lorsqu’un écran nécessite un
357
+ défilement ciblé ou une interaction de prototype.
358
+
359
+ Le mode écran unique sert à faire défiler, interagir avec le comportement du
360
+ prototype et modifier les couches DOM/code dans un fichier rendu. Le panneau des
361
+ couches reflète cette séparation : les écrans sont des cadres de niveau
362
+ supérieur, avec les couches DOM/code imbriquées pour l'écran actif.
363
+
364
+ Pour des noms de couche stables, ajoutez `data-agent-native-layer-name` aux
365
+ éléments importants. Design l'utilise avant les replis sémantiques/textuels et
366
+ peut persister les renommages en modifiant cet attribut. Le HTML inline prend en
367
+ charge les modifications locales de couches de code pour le texte, les classes,
368
+ les styles, les attributs, l'ordre source et les petits changements structurels;
369
+ les modifications visuelles de couches de code sont uniquement HTML aujourd'hui.
370
+ Le mode source localhost peut enregistrer et résoudre des artboards de routes
371
+ locales, mais les lectures/écritures de fichiers locaux restent un contrat de
372
+ pont jusqu'au durcissement des contrôles d'autorisation explicites.
373
+
374
+ ### Extensions de l'éditeur Design
375
+
376
+ L'éditeur inclut un onglet d'inspecteur **Extensions** après **Tweaks**. Il
377
+ fonctionne comme une piste de plugins propre à Design : les utilisateurs peuvent
378
+ cliquer sur **+ Extension** pour demander à l'agent de créer une extension, ou
379
+ installer une extension qui déclare le slot `design.editor.inspector`.
380
+
381
+ Les extensions Design s'affichent en ligne à côté de l'artboard via le bac à
382
+ sable standard des extensions. L'hôte transmet les mises à jour
383
+ `window.slotContext` et `window.onSlotContext(...)` avec le `designId` actuel,
384
+ le fichier actif, la liste des écrans, les ids d'écran sélectionnés, les
385
+ métadonnées de l'élément sélectionné, le mode d'affichage, le zoom, l'outil
386
+ actif et les valeurs de tweaks. Cela permet à une extension d'afficher des
387
+ informations sur la sélection actuelle, d'offrir des contrôles de style ou de
388
+ créer des workflows compacts autour du design ouvert.
389
+
390
+ Pour un travail déterministe, les extensions peuvent appeler les actions de
391
+ l'app via le pont d'extension. Pour les changements pilotés par l'IA,
392
+ l'extension doit appeler `agentNative.chat.send(...)` avec le sélecteur/id source
393
+ de l'élément sélectionné et la modification demandée. L'agent doit d'abord
394
+ appeler `view-screen`, puis utiliser `apply-visual-edit` pour les changements de
395
+ style, classe, texte ou déplacement d'élément, ou `update-design` /
396
+ `generate-design` avec `canvasFrames` pour les changements de placement de
397
+ l'artboard. Consultez [Extensions](/docs/extensions#what-an-extension-can-do)
398
+ pour le bac à sable, l'état persistant et les APIs du pont.
399
+
351
400
  ### Le personnaliser
352
401
 
353
402
  Design est un modèle complet et clonable. Quelques idées d'extension pratiques :
@@ -348,6 +348,50 @@ UI में रूट `templates/design/app/routes/` के अंतर्ग
348
348
 
349
349
  क्योंकि एक डिज़ाइन केवल स्टैंडअलोन HTML/JSX फ़ाइलें है, एजेंट उसी स्रोत को संपादित करता है जो iframe प्रस्तुत करता है और प्रत्येक निर्यात आता है - अनुवाद करने के लिए कोई अलग "AI मॉकअप" प्रारूप नहीं है। एक लिंक्ड डिज़ाइन सिस्टम टोकन की आपूर्ति करता है और एजेंट हर जेनरेशन पास पर `custom_instructions` का सम्मान करता है। पूर्वावलोकन में टेक्स्ट या एक क्षेत्र का चयन करें और एजेंट को ठीक उसी हिस्से पर केंद्रित करने के लिए Cmd+I दबाएं।
350
350
 
351
+ ### संपादक मॉडल
352
+
353
+ कई स्क्रीन वाले काम के लिए Design पहले overview खोलता है। generation या बड़े
354
+ updates के बाद editor screen overview खोलता है: एक infinite canvas जहां हर
355
+ screen एक static frame है जिसे select, move, resize, drop या duplicate किया जा
356
+ सकता है। जब किसी screen को focused scrolling या prototype interaction चाहिए, तो frame के full-view button का उपयोग करें।
357
+
358
+ Single-screen mode scrolling, prototype behavior से interact करने, और एक
359
+ rendered file के अंदर DOM/code layers edit करने के लिए है। Layers panel यही
360
+ model दिखाता है: screens top-level frames हैं, और active screen के नीचे nested
361
+ DOM/code layers होते हैं।
362
+
363
+ Stable layer names के लिए meaningful elements पर
364
+ `data-agent-native-layer-name` जोड़ें। Design semantic/text fallbacks से पहले
365
+ इसे उपयोग करता है और इसी attribute को edit करके layer renames persist कर सकता
366
+ है। Inline HTML text, classes, styles, attributes, source order, और छोटे
367
+ structural changes के लिए local code-layer edits support करता है; visual
368
+ code-layer edits आज केवल HTML files के लिए हैं। Localhost source mode local
369
+ route artboards register और resolve कर सकता है, लेकिन local file reads/writes
370
+ explicit permission controls harden होने तक bridge contract ही हैं।
371
+
372
+ ### Design संपादक एक्सटेंशन
373
+
374
+ संपादक में **Tweaks** के बाद एक **Extensions** इंस्पेक्टर टैब शामिल है। यह
375
+ Design-विशिष्ट plugin lane की तरह काम करता है: उपयोगकर्ता **+ Extension** पर
376
+ क्लिक करके एजेंट से एक्सटेंशन बनवा सकते हैं, या ऐसा एक्सटेंशन इंस्टॉल कर सकते
377
+ हैं जो `design.editor.inspector` slot घोषित करता है।
378
+
379
+ Design एक्सटेंशन मानक extension sandbox के माध्यम से artboard के बगल में inline
380
+ render होते हैं। host `window.slotContext` और `window.onSlotContext(...)`
381
+ updates में वर्तमान `designId`, सक्रिय फ़ाइल, screen list, selected screen ids,
382
+ selected element metadata, view mode, zoom, active tool, और tweak values भेजता
383
+ है। इससे एक्सटेंशन वर्तमान selection की जानकारी दिखा सकता है, style controls
384
+ दे सकता है, या खुले design के आसपास compact workflows बना सकता है।
385
+
386
+ Deterministic काम के लिए, एक्सटेंशन extension bridge के माध्यम से app actions
387
+ कॉल कर सकते हैं। AI-driven बदलावों के लिए, एक्सटेंशन से
388
+ `agentNative.chat.send(...)` कॉल करवाएं जिसमें selected element selector/source
389
+ id और मांगा गया बदलाव शामिल हो। एजेंट को पहले `view-screen` कॉल करना चाहिए,
390
+ फिर element style, class, text, या move changes के लिए `apply-visual-edit`, या
391
+ artboard placement changes के लिए `canvasFrames` के साथ `update-design` /
392
+ `generate-design` का उपयोग करना चाहिए। sandbox, persistent state, और bridge
393
+ APIs के लिए [Extensions](/docs/extensions#what-an-extension-can-do) देखें।
394
+
351
395
  ### इसे अनुकूलित करना
352
396
 
353
397
  डिज़ाइन एक पूर्ण, क्लोन करने योग्य टेम्पलेट है। कुछ व्यावहारिक विस्तार विचार:
@@ -350,6 +350,52 @@ UI のルートは `templates/design/app/routes/` の下にあります: `_index
350
350
 
351
351
  デザインは単なるスタンドアロンの HTML/JSX ファイルであるため、エージェントは iframe がレンダリングし、すべてのエクスポート元と同じソースを編集します。変換する個別の「AI モックアップ」形式はありません。リンクされた設計システムはトークンと `custom_instructions` を提供し、エージェントは世代パスごとにそれを尊重します。プレビューでテキストまたは領域を選択し、Cmd+I を押して、エージェントをその部分に正確に集中させます。
352
352
 
353
+ ### エディターモデル
354
+
355
+ Design は複数画面の作業では概要を最初に使います。生成後または大きな更
356
+ 新後、エディターは画面概要を開きます。これは無限キャンバスで、各画面は
357
+ 選択、移動、リサイズ、ドロップ、複製できる静的フレームです。集中スクロールやプロトタイプ操作が必要な画面では、フレームのフルビューボタンを使用します。
358
+
359
+ 単一画面モードは、スクロール、プロトタイプ動作とのインタラクション、1
360
+ つのレンダリング済みファイル内の DOM/コードレイヤー編集に使います。レ
361
+ イヤーパネルもこの分離を反映します。画面は最上位フレームで、アクティブ
362
+ 画面の下に DOM/コードレイヤーがネストされます。
363
+
364
+ 安定したレイヤー名には、意味のある要素に
365
+ `data-agent-native-layer-name` を追加します。Design はセマンティック/テ
366
+ キストのフォールバックより先にこれを使い、この属性を編集してレイヤー名
367
+ 変更を永続化できます。Inline HTML は、テキスト、class、style、attribute、
368
+ ソース順、小さな構造変更のローカルコードレイヤー編集をサポートします。
369
+ ビジュアルコードレイヤー編集は現在 HTML のみです。Localhost source mode
370
+ はローカル route artboard を登録・解決できますが、ローカルファイルの読
371
+ み書きは明示的な権限制御が強化されるまで bridge contract のままです。
372
+
373
+ ### Design エディター拡張機能
374
+
375
+ エディターには **Tweaks** の後に **Extensions** インスペクタータブがあり
376
+ ます。これは Design 専用のプラグインレーンのように機能します。ユーザー
377
+ は **+ Extension** をクリックしてエージェントに拡張機能を作成させるか、
378
+ `design.editor.inspector` スロットを宣言する拡張機能をインストールできま
379
+ す。
380
+
381
+ Design 拡張機能は、標準の拡張機能サンドボックスを通じてアートボードの
382
+ 横にインライン表示されます。ホストは `window.slotContext` と
383
+ `window.onSlotContext(...)` の更新として、現在の `designId`、アクティブ
384
+ なファイル、画面一覧、選択中の画面 ID、選択中の要素メタデータ、表示モー
385
+ ド、ズーム、アクティブツール、tweak 値を渡します。これにより、拡張機能
386
+ は現在の選択に関する情報を表示したり、スタイル操作を提供したり、開いて
387
+ いるデザインの周辺に小さなワークフローを構築したりできます。
388
+
389
+ 決定的な処理では、拡張機能は拡張機能ブリッジ経由で app actions を呼び
390
+ 出せます。AI 主導の変更では、選択中の要素 selector/source id と要求され
391
+ た変更を含めて `agentNative.chat.send(...)` を呼び出すようにします。エー
392
+ ジェントはまず `view-screen` を呼び出し、要素の style、class、text、move
393
+ 変更には `apply-visual-edit` を、アートボード配置の変更には `canvasFrames`
394
+ 付きの `update-design` / `generate-design` を使うべきです。サンドボックス、
395
+ 永続状態、ブリッジ API については
396
+ [Extensions](/docs/extensions#what-an-extension-can-do) を参照してくださ
397
+ い。
398
+
353
399
  ### カスタマイズ
354
400
 
355
401
  デザインは完全な複製可能なテンプレートです。いくつかの実践的な拡張アイデア:
@@ -348,6 +348,50 @@ UI의 경로는 `templates/design/app/routes/` 아래에 있습니다: `_index.t
348
348
 
349
349
  디자인은 독립형 HTML/JSX 파일이므로 에이전트는 iframe이 렌더링하고 모든 내보내기가 시작되는 동일한 소스를 편집합니다. 번역할 별도의 "AI 모형" 형식은 없습니다. 연결된 디자인 시스템은 에이전트가 모든 세대 패스에서 존중하는 토큰과 `custom_instructions`를 제공합니다. 미리보기에서 텍스트나 영역을 선택하고 Cmd+I를 눌러 상담사가 정확히 해당 부분에 집중하도록 합니다.
350
350
 
351
+ ### 편집기 모델
352
+
353
+ Design은 여러 화면 작업에서 overview를 우선합니다. 생성 또는 넓은 업데이트
354
+ 후 편집기는 screen overview를 엽니다. 이곳은 각 화면이 선택, 이동, 크기 조정,
355
+ 드롭, 복제 가능한 정적 frame으로 배치되는 infinite canvas입니다. frame을 두
356
+ 번 클릭하면 단일 화면에 집중합니다.
357
+
358
+ Single-screen mode는 스크롤, prototype behavior와의 상호작용, 하나의 렌더링된
359
+ 파일 안의 DOM/code layers 편집에 사용합니다. Layers panel도 같은 구조를
360
+ 반영합니다. screens는 top-level frames이고, active screen 아래에 nested
361
+ DOM/code layers가 표시됩니다.
362
+
363
+ 안정적인 layer name을 위해 의미 있는 요소에 `data-agent-native-layer-name`을
364
+ 추가하세요. Design은 semantic/text fallback보다 이것을 먼저 사용하며, 해당
365
+ attribute를 편집해 layer rename을 persist할 수 있습니다. Inline HTML은 text,
366
+ classes, styles, attributes, source order, 작은 structural changes에 대한 local
367
+ code-layer edits를 지원합니다. visual code-layer edits는 현재 HTML-only입니다.
368
+ Localhost source mode는 local route artboards를 register/resolve할 수 있지만,
369
+ local file reads/writes는 explicit permission controls가 harden될 때까지 bridge
370
+ contract로 남아 있습니다.
371
+
372
+ ### Design 편집기 확장
373
+
374
+ 편집기에는 **Tweaks** 뒤에 **Extensions** 검사기 탭이 있습니다. Design 전용
375
+ 플러그인 레인처럼 작동합니다. 사용자는 **+ Extension**을 클릭해 에이전트에게
376
+ 확장을 만들게 하거나 `design.editor.inspector` 슬롯을 선언한 확장을 설치할
377
+ 수 있습니다.
378
+
379
+ Design 확장은 표준 확장 sandbox를 통해 artboard 옆에 inline으로 렌더링됩니다.
380
+ 호스트는 현재 `designId`, 활성 파일, 화면 목록, 선택된 화면 id, 선택된 요소
381
+ 메타데이터, 보기 모드, zoom, 활성 도구, tweak 값을 `window.slotContext`와
382
+ `window.onSlotContext(...)` 업데이트로 전달합니다. 이를 통해 확장은 현재
383
+ selection 정보를 표시하고, 스타일 컨트롤을 제공하거나, 열린 디자인 주변의
384
+ 작은 워크플로를 만들 수 있습니다.
385
+
386
+ 결정적인 작업의 경우 확장은 extension bridge를 통해 app actions를 호출할 수
387
+ 있습니다. AI 기반 변경의 경우 선택된 요소 selector/source id와 요청한 변경을
388
+ 담아 `agentNative.chat.send(...)`를 호출하게 하세요. 에이전트는 먼저
389
+ `view-screen`을 호출한 다음 요소 style, class, text, move 변경에는
390
+ `apply-visual-edit`를, artboard placement 변경에는 `canvasFrames`와 함께
391
+ `update-design` / `generate-design`를 사용해야 합니다. sandbox, persistent
392
+ state, bridge APIs는 [Extensions](/docs/extensions#what-an-extension-can-do)를
393
+ 참조하세요.
394
+
351
395
  ### 맞춤 설정
352
396
 
353
397
  디자인은 완전하고 복제 가능한 템플릿입니다. 실용적인 확장 아이디어:
@@ -348,6 +348,54 @@ O agente sempre sabe o que você tem em aberto. O design atual, o arquivo aberto
348
348
 
349
349
  Como um design consiste apenas em arquivos HTML/JSX independentes, o agente edita a mesma fonte que o iframe renderiza e de onde vem cada exportação — não há um formato de "maquete de IA" separado para traduzir. Um sistema de design vinculado fornece tokens e `custom_instructions` que o agente homenageia em cada passagem de geração. Selecione o texto ou uma região na visualização e pressione Cmd+I para focar o agente exatamente nessa parte.
350
350
 
351
+ ### Modelo do editor
352
+
353
+ Design prioriza a visão geral para trabalhos com várias telas. Depois da
354
+ geração ou de atualizações amplas, o editor abre a visão geral de telas: uma
355
+ tela infinita onde cada tela é um frame estático que pode ser selecionado,
356
+ movido, redimensionado, solto ou duplicado. Use o botão de visualização completa
357
+ do frame quando uma tela precisar de rolagem focada ou interação de protótipo.
358
+
359
+ O modo de tela única serve para rolar, interagir com o comportamento do
360
+ protótipo e editar as camadas DOM/código dentro de um arquivo renderizado. O
361
+ painel de camadas reflete essa divisão: telas são frames de nível superior, com
362
+ camadas DOM/código aninhadas para a tela ativa.
363
+
364
+ Para nomes de camada estáveis, adicione `data-agent-native-layer-name` a
365
+ elementos importantes. O Design usa isso antes de fallbacks semânticos/de texto
366
+ e pode persistir renomeações editando esse atributo. HTML inline aceita edições
367
+ locais de camadas de código para texto, classes, estilos, atributos, ordem do
368
+ código-fonte e pequenas mudanças estruturais; edições visuais de camadas de
369
+ código são somente HTML hoje. O modo de fonte localhost pode registrar e
370
+ resolver artboards de rotas locais, mas leituras/escritas de arquivos locais
371
+ continuam sendo um contrato de bridge até que controles explícitos de permissão
372
+ sejam fortalecidos.
373
+
374
+ ### Extensões do editor de Design
375
+
376
+ O editor inclui uma aba de inspetor **Extensions** depois de **Tweaks**. Ela
377
+ funciona como uma faixa de plugins específica do Design: os usuários podem
378
+ clicar em **+ Extension** para pedir ao agente que crie uma extensão, ou
379
+ instalar uma extensão que declare o slot `design.editor.inspector`.
380
+
381
+ As extensões do Design são renderizadas inline ao lado do artboard pelo sandbox
382
+ padrão de extensões. O host passa atualizações de `window.slotContext` e
383
+ `window.onSlotContext(...)` com o `designId` atual, arquivo ativo, lista de
384
+ telas, ids de telas selecionadas, metadados do elemento selecionado, modo de
385
+ visualização, zoom, ferramenta ativa e valores de tweaks. Isso permite que uma
386
+ extensão mostre informações sobre a seleção atual, ofereça controles de estilo
387
+ ou crie fluxos compactos ao redor do design aberto.
388
+
389
+ Para trabalho determinístico, as extensões podem chamar ações do app pelo
390
+ bridge de extensões. Para mudanças guiadas por IA, faça a extensão chamar
391
+ `agentNative.chat.send(...)` com o seletor/id de origem do elemento selecionado
392
+ e a mudança solicitada. O agente deve chamar `view-screen` primeiro e depois
393
+ usar `apply-visual-edit` para mudanças de estilo, classe, texto ou movimento de
394
+ elementos, ou `update-design` / `generate-design` com `canvasFrames` para
395
+ mudanças de posicionamento do artboard. Veja
396
+ [Extensions](/docs/extensions#what-an-extension-can-do) para o sandbox, estado
397
+ persistente e APIs do bridge.
398
+
351
399
  ### Personalizando
352
400
 
353
401
  Design é um modelo completo e clonável. Algumas ideias práticas de extensão:
@@ -348,6 +348,42 @@ UI 中的路由位于 `templates/design/app/routes/` 下:`_index.tsx`(列表
348
348
 
349
349
  因为设计只是独立的 HTML/JSX 文件,所以代理编辑 iframe 渲染和每个导出来自的相同源 - 没有单独的“AI 模型”格式需要翻译。链接设计系统提供代币和代理在每一代通行证上兑现的 `custom_instructions`。在预览中选择文本或区域,然后按 Cmd+I 将代理集中在该部分上。
350
350
 
351
+ ### 编辑器模型
352
+
353
+ Design 对多屏工作采用概览优先。生成或进行大范围更新后,编辑器会打开屏幕
354
+ 概览:一个无限画布,其中每个屏幕都是可选择、移动、调整大小、拖放或复制的
355
+ 静态框架。需要聚焦滚动或原型交互时,请使用框架的完整视图按钮。
356
+
357
+ 单屏模式用于滚动、与原型行为交互,以及编辑一个已渲染文件内的 DOM/代码
358
+ 层。图层面板也反映这种分工:屏幕是顶层框架,活动屏幕下嵌套 DOM/代码层。
359
+
360
+ 为了获得稳定的图层名称,请在有意义的元素上添加
361
+ `data-agent-native-layer-name`。Design 会优先使用它,然后才使用语义/文本回
362
+ 退,并且可以通过编辑该属性来持久保存图层重命名。Inline HTML 支持本地代
363
+ 码层编辑,包括文本、class、style、attribute、源顺序和小型结构调整;可视
364
+ 代码层编辑目前仅支持 HTML。Localhost source mode 可以注册并解析本地路由
365
+ artboard,但本地文件读写仍是桥接合同,直到显式权限控制完成加固。
366
+
367
+ ### Design 编辑器扩展
368
+
369
+ 编辑器在 **Tweaks** 之后包含一个 **Extensions** 检查器标签。它像 Design
370
+ 专属的插件通道:用户可以点击 **+ Extension** 让代理创建扩展,也可以安装声
371
+ 明 `design.editor.inspector` slot 的扩展。
372
+
373
+ Design 扩展通过标准扩展 sandbox 内嵌渲染在 artboard 旁边。宿主会通过
374
+ `window.slotContext` 和 `window.onSlotContext(...)` 更新传入当前
375
+ `designId`、活动文件、屏幕列表、已选屏幕 id、已选元素元数据、视图模式、
376
+ 缩放、活动工具和 tweak 值。这样扩展就可以显示当前选择的信息、提供样式控
377
+ 件,或围绕打开的设计构建紧凑工作流。
378
+
379
+ 对于确定性的工作,扩展可以通过扩展桥调用 app actions。对于 AI 驱动的变
380
+ 更,让扩展调用 `agentNative.chat.send(...)`,并附带已选元素的 selector/source
381
+ id 和请求的更改。代理应先调用 `view-screen`,然后用 `apply-visual-edit`
382
+ 处理元素 style、class、text 或 move 更改,或用带 `canvasFrames` 的
383
+ `update-design` / `generate-design` 处理 artboard placement 更改。有关
384
+ sandbox、持久状态和桥接 API,请参阅
385
+ [Extensions](/docs/extensions#what-an-extension-can-do)。
386
+
351
387
  ### 自定义它
352
388
 
353
389
  设计是一个完整的、可克隆的模板。一些实用的扩展想法:
@@ -348,6 +348,44 @@ UI 中的路由位於 `templates/design/app/routes/` 下:`_index.tsx`(清單
348
348
 
349
349
  因為設計只是獨立的 HTML/JSX 檔案,所以代理編輯 iframe 渲染和每個匯出來自的相同來源 - 沒有單獨的“AI 模型”格式需要翻譯。連結設計系統提供代幣和代理在每一代通行證上兌現的 `custom_instructions`。在預覽中選取文字或區域,然後按 Cmd+I 將代理集中在該部分上。
350
350
 
351
+ ### 編輯器模型
352
+
353
+ Design 對多畫面工作採用概覽優先。產生或進行大範圍更新後,編輯器會開啟
354
+ 畫面概覽:一個無限畫布,其中每個畫面都是可選取、移動、調整大小、拖放或
355
+ 複製的靜態框架。需要聚焦捲動或原型互動時,請使用框架的完整檢視按鈕。
356
+
357
+ 單畫面模式用於捲動、與原型行為互動,以及編輯一個已渲染檔案內的 DOM/程
358
+ 式碼圖層。圖層面板也反映這種分工:畫面是頂層框架,作用中畫面下嵌套
359
+ DOM/程式碼圖層。
360
+
361
+ 若要取得穩定的圖層名稱,請在有意義的元素上加入
362
+ `data-agent-native-layer-name`。Design 會優先使用它,然後才使用語意/文字
363
+ 後備,並且可以透過編輯該屬性來持久保存圖層重新命名。Inline HTML 支援本
364
+ 機程式碼圖層編輯,包括文字、class、style、attribute、來源順序和小型結構
365
+ 調整;視覺程式碼圖層編輯目前僅支援 HTML。Localhost source mode 可以註冊
366
+ 並解析本機路由 artboard,但本機檔案讀寫仍是橋接合約,直到明確權限控制
367
+ 完成加固。
368
+
369
+ ### Design 編輯器擴充功能
370
+
371
+ 編輯器在 **Tweaks** 之後包含一個 **Extensions** 檢查器標籤。它像 Design
372
+ 專屬的外掛通道:使用者可以點擊 **+ Extension** 讓代理建立擴充功能,也可
373
+ 以安裝宣告 `design.editor.inspector` slot 的擴充功能。
374
+
375
+ Design 擴充功能會透過標準擴充 sandbox 內嵌渲染在 artboard 旁邊。host 會
376
+ 透過 `window.slotContext` 和 `window.onSlotContext(...)` 更新傳入目前的
377
+ `designId`、作用中檔案、畫面清單、已選畫面 id、已選元素中繼資料、檢視模
378
+ 式、縮放、作用中工具和 tweak 值。這讓擴充功能可以顯示目前選取項目的資
379
+ 訊、提供樣式控制,或圍繞開啟的設計建立精簡工作流程。
380
+
381
+ 對於確定性的工作,擴充功能可以透過擴充橋接呼叫 app actions。對於 AI 驅
382
+ 動的變更,讓擴充功能呼叫 `agentNative.chat.send(...)`,並附上已選元素的
383
+ selector/source id 和要求的變更。代理應先呼叫 `view-screen`,再用
384
+ `apply-visual-edit` 處理元素 style、class、text 或 move 變更,或用帶有
385
+ `canvasFrames` 的 `update-design` / `generate-design` 處理 artboard placement
386
+ 變更。關於 sandbox、持久狀態和橋接 API,請參閱
387
+ [Extensions](/docs/extensions#what-an-extension-can-do)。
388
+
351
389
  ### 自訂它
352
390
 
353
391
  設計是一個完整的、可克隆的範本。一些實用的擴充功能想法:
@@ -348,6 +348,51 @@ The agent always knows what you have open. The current design, the open file, th
348
348
 
349
349
  Because a design is just standalone HTML/JSX files, the agent edits the same source the iframe renders and every export comes from — there is no separate "AI mockup" format to translate. A linked design system supplies tokens and `custom_instructions` the agent honors on every generation pass. Select text or a region in the preview and hit Cmd+I to focus the agent on exactly that part.
350
350
 
351
+ ### Editor model
352
+
353
+ Design is overview-first for multi-screen work. After generation or broad
354
+ updates, the editor opens the screen overview: an infinite canvas where each
355
+ screen is a static frame you can select, move, resize, drop, or duplicate.
356
+ Use a frame's full-view button when one screen needs focused scrolling or
357
+ prototype interaction.
358
+
359
+ Single-screen mode is for scrolling, interacting with prototype behavior, and
360
+ editing the DOM/code layers inside one rendered file. The layers panel reflects
361
+ that split: screens are top-level frames, with nested DOM/code layers for the
362
+ active screen.
363
+
364
+ For stable layer names, add `data-agent-native-layer-name` to meaningful
365
+ elements. Design uses it before semantic/text fallbacks and can persist layer
366
+ renames by editing that attribute. Inline HTML supports local code-layer edits
367
+ for text, classes, styles, attributes, source order, and small structural
368
+ changes; visual code-layer edits are HTML-only today. Localhost source mode can
369
+ register and resolve local route artboards, but local file reads/writes remain a
370
+ bridge contract until explicit permission controls are hardened.
371
+
372
+ ### Design editor extensions
373
+
374
+ The editor includes an **Extensions** inspector tab after **Tweaks**. It works
375
+ like a Design-specific plugin lane: users can click **+ Extension** to ask the
376
+ agent to build an extension, or install an extension that declares the
377
+ `design.editor.inspector` slot.
378
+
379
+ Design extensions render inline beside the artboard through the standard
380
+ extension sandbox. The host passes `window.slotContext` and
381
+ `window.onSlotContext(...)` updates with the current `designId`, active file,
382
+ screen list, selected screen ids, selected element metadata, view mode, zoom,
383
+ active tool, and tweak values. That lets an extension show information about
384
+ the current selection, offer style controls, or build compact workflows around
385
+ the open design.
386
+
387
+ For deterministic work, extensions can call app actions through the extension
388
+ bridge. For AI-driven changes, have the extension call
389
+ `agentNative.chat.send(...)` with the selected element selector/source id and
390
+ requested change. The agent should call `view-screen` first, then use
391
+ `apply-visual-edit` for element style, class, text, or move changes, or
392
+ `update-design` / `generate-design` with `canvasFrames` for artboard placement
393
+ changes. See [Extensions](/docs/extensions#what-an-extension-can-do) for the
394
+ sandbox, persistent state, and bridge APIs.
395
+
351
396
  ### Customizing it
352
397
 
353
398
  Design is a complete, cloneable template. Some practical extension ideas: