@agent-native/core 0.80.0 → 0.80.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +8 -0
  3. package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
  4. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +14 -1
  5. package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +5 -0
  6. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +15 -1
  7. package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +5 -0
  8. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +15 -1
  9. package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
  10. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +15 -1
  11. package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
  12. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +15 -1
  13. package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
  14. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +16 -1
  15. package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
  16. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +14 -1
  17. package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
  18. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +14 -1
  19. package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
  20. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +14 -1
  21. package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
  22. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +14 -1
  23. package/corpus/core/docs/content/skills-guide.mdx +5 -0
  24. package/corpus/core/docs/content/template-design.mdx +14 -1
  25. package/corpus/core/package.json +1 -1
  26. package/corpus/core/src/application-state/handlers.ts +1 -1
  27. package/corpus/core/src/brand-kit/index.ts +1 -1
  28. package/corpus/core/src/cli/skills.ts +18 -0
  29. package/corpus/core/src/client/AgentPanel.tsx +1 -1
  30. package/corpus/core/src/client/MultiTabAssistantChat.tsx +1 -1
  31. package/corpus/core/src/client/extensions/portable-extension.ts +1 -1
  32. package/corpus/core/src/code-agents/transcript-normalizer.ts +1 -1
  33. package/corpus/core/src/extensions/path.ts +1 -4
  34. package/corpus/core/src/integrations/a2a-continuation-processor.ts +1 -1
  35. package/corpus/core/src/mcp/build-server.ts +1 -1
  36. package/corpus/core/src/org/handlers.ts +5 -5
  37. package/corpus/core/src/org/plugin.ts +2 -2
  38. package/corpus/core/src/scripts/call-agent.ts +1 -1
  39. package/corpus/core/src/scripts/db/safety.ts +1 -1
  40. package/corpus/core/src/server/auth.ts +3 -0
  41. package/corpus/core/src/server/builder-design-systems.ts +308 -0
  42. package/corpus/core/src/server/core-routes-plugin.ts +29 -3
  43. package/corpus/core/src/server/index.ts +8 -0
  44. package/corpus/core/src/styles/agent-native.css +14 -7
  45. package/corpus/core/src/usage/store.ts +2 -2
  46. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +298 -15
  47. package/corpus/templates/analytics/actions/get-sql-dashboard.ts +9 -4
  48. package/corpus/templates/analytics/actions/mutate-dashboard.ts +18 -2
  49. package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +12 -2
  50. package/corpus/templates/analytics/app/hooks/use-replay-storage-status.ts +66 -0
  51. package/corpus/templates/analytics/app/i18n/zh-TW.ts +37 -0
  52. package/corpus/templates/analytics/app/i18n-data.ts +404 -0
  53. package/corpus/templates/analytics/app/pages/Settings.tsx +333 -0
  54. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +2 -1
  55. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +121 -3
  56. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +49 -26
  57. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +137 -36
  58. package/corpus/templates/analytics/changelog/2026-06-29-analytics-agents-can-now-place-new-charts-into-requested-das.md +6 -0
  59. package/corpus/templates/analytics/changelog/2026-06-29-analytics-queries-now-report-failed-source-query-errors-inst.md +6 -0
  60. package/corpus/templates/analytics/changelog/2026-06-29-charts-can-now-be-dropped-between-full-dashboard-rows-to-cre.md +6 -0
  61. package/corpus/templates/analytics/changelog/2026-06-29-dashboard-email-reports-include-the-full-dashboard-image-wit.md +6 -0
  62. package/corpus/templates/analytics/changelog/2026-06-29-main-surface-border-reaches-the-top.md +6 -0
  63. package/corpus/templates/analytics/changelog/2026-06-29-session-replay-now-records-playable-sessions-in-production-a.md +6 -0
  64. package/corpus/templates/analytics/changelog/2026-06-29-set-up-session-replay-storage-from-settings-connect-builder-.md +6 -0
  65. package/corpus/templates/analytics/scripts/cleanup-empty-session-recordings.ts +102 -0
  66. package/corpus/templates/analytics/server/lib/dashboard-report.ts +49 -26
  67. package/corpus/templates/analytics/server/lib/real-data-actions.ts +81 -20
  68. package/corpus/templates/analytics/server/lib/replay-storage.ts +79 -0
  69. package/corpus/templates/analytics/server/lib/s3-upload-provider.ts +255 -0
  70. package/corpus/templates/analytics/server/lib/session-replay.ts +29 -8
  71. package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -2
  72. package/corpus/templates/analytics/server/plugins/onboarding.ts +97 -0
  73. package/corpus/templates/clips/desktop/src/lib/recorder.ts +24 -0
  74. package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +105 -5
  75. package/corpus/templates/content/actions/set-image-alt-text.ts +1 -1
  76. package/corpus/templates/content/shared/document-export.ts +1 -1
  77. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -18
  78. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +17 -0
  79. package/corpus/templates/design/actions/add-localhost-screens.ts +32 -5
  80. package/corpus/templates/design/actions/index-design-system-with-builder.ts +259 -0
  81. package/corpus/templates/design/actions/update-file.ts +9 -2
  82. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +33 -75
  83. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +72 -9
  84. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +41 -39
  85. package/corpus/templates/design/app/components/design/EditPanel.tsx +1029 -249
  86. package/corpus/templates/design/app/components/design/LayersPanel.tsx +450 -101
  87. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +978 -154
  88. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +7 -9
  89. package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +133 -66
  90. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +1234 -344
  91. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +144 -94
  92. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +301 -72
  93. package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +876 -286
  94. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +601 -0
  95. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +242 -0
  96. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +30 -7
  97. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +212 -155
  98. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +423 -0
  99. package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +487 -107
  100. package/corpus/templates/design/app/components/design/inspector/index.ts +27 -0
  101. package/corpus/templates/design/app/global.css +29 -3
  102. package/corpus/templates/design/app/i18n/zh-TW.ts +13 -0
  103. package/corpus/templates/design/app/i18n-data.ts +239 -1
  104. package/corpus/templates/design/app/pages/DesignEditor.tsx +1023 -353
  105. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +57 -221
  106. package/corpus/templates/design/changelog/2026-06-29-canvas-selection-no-longer-flashes-broken-prototype-html-whe.md +6 -0
  107. package/corpus/templates/design/changelog/2026-06-29-command-menu-selections-are-clearer-in-dark-mode.md +6 -0
  108. package/corpus/templates/design/changelog/2026-06-29-design-mode-top-chrome-now-groups-collaborators-preview-shar.md +6 -0
  109. package/corpus/templates/design/changelog/2026-06-29-element-selection-now-stays-on-the-intended-layer-after-sele.md +6 -0
  110. package/corpus/templates/design/changelog/2026-06-29-screen-overview-full-view-controls-now-sit-above-frames-inst.md +6 -0
  111. package/corpus/templates/design/changelog/2026-06-29-screen-overview-tools-can-draw-shapes-create-screens-and-kee.md +6 -0
  112. package/corpus/templates/design/changelog/2026-06-29-the-pen-tool-now-creates-anchor-based-bezier-vectors-with-ha.md +6 -0
  113. package/corpus/templates/design/server/handlers/import-figma-system.ts +38 -85
  114. package/corpus/templates/design/server/lib/design-snapshot.ts +9 -1
  115. package/corpus/templates/design/shared/code-layer.ts +209 -9
  116. package/corpus/templates/design/shared/html-content.ts +21 -0
  117. package/corpus/templates/design/shared/pen-path.ts +207 -0
  118. package/corpus/templates/mail/app/lib/utils.ts +2 -2
  119. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -10
  120. package/corpus/templates/slides/AGENTS.md +3 -2
  121. package/corpus/templates/slides/actions/import-file.ts +26 -17
  122. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +259 -0
  123. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +35 -167
  124. package/corpus/templates/slides/app/components/design-system/fig-import-response.ts +9 -13
  125. package/corpus/templates/slides/app/context/DeckContext.tsx +1 -1
  126. package/corpus/templates/slides/app/i18n/ar-SA.ts +9 -37
  127. package/corpus/templates/slides/app/i18n/de-DE.ts +10 -25
  128. package/corpus/templates/slides/app/i18n/en-US.ts +9 -26
  129. package/corpus/templates/slides/app/i18n/es-ES.ts +10 -28
  130. package/corpus/templates/slides/app/i18n/fr-FR.ts +10 -28
  131. package/corpus/templates/slides/app/i18n/hi-IN.ts +9 -26
  132. package/corpus/templates/slides/app/i18n/ja-JP.ts +10 -22
  133. package/corpus/templates/slides/app/i18n/ko-KR.ts +9 -23
  134. package/corpus/templates/slides/app/i18n/pt-BR.ts +10 -28
  135. package/corpus/templates/slides/app/i18n/zh-CN.ts +9 -22
  136. package/corpus/templates/slides/app/i18n/zh-TW.ts +9 -22
  137. package/corpus/templates/slides/server/handlers/import-figma-system.ts +44 -12
  138. package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
  139. package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +1 -1
  140. package/dist/application-state/handlers.js +1 -1
  141. package/dist/application-state/handlers.js.map +1 -1
  142. package/dist/brand-kit/index.d.ts +1 -1
  143. package/dist/brand-kit/index.js +1 -1
  144. package/dist/brand-kit/index.js.map +1 -1
  145. package/dist/cli/skills.d.ts.map +1 -1
  146. package/dist/cli/skills.js +18 -0
  147. package/dist/cli/skills.js.map +1 -1
  148. package/dist/client/AgentPanel.js +1 -1
  149. package/dist/client/AgentPanel.js.map +1 -1
  150. package/dist/client/MultiTabAssistantChat.js +1 -1
  151. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  152. package/dist/client/extensions/portable-extension.d.ts +1 -1
  153. package/dist/client/extensions/portable-extension.d.ts.map +1 -1
  154. package/dist/client/extensions/portable-extension.js.map +1 -1
  155. package/dist/code-agents/transcript-normalizer.js +1 -1
  156. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  157. package/dist/collab/awareness.d.ts +2 -2
  158. package/dist/collab/awareness.d.ts.map +1 -1
  159. package/dist/extensions/path.d.ts +1 -1
  160. package/dist/extensions/path.d.ts.map +1 -1
  161. package/dist/extensions/path.js.map +1 -1
  162. package/dist/integrations/a2a-continuation-processor.js +1 -1
  163. package/dist/integrations/a2a-continuation-processor.js.map +1 -1
  164. package/dist/mcp/build-server.d.ts +1 -1
  165. package/dist/mcp/build-server.d.ts.map +1 -1
  166. package/dist/mcp/build-server.js.map +1 -1
  167. package/dist/observability/routes.d.ts +3 -3
  168. package/dist/org/handlers.js +5 -5
  169. package/dist/org/handlers.js.map +1 -1
  170. package/dist/org/plugin.js +2 -2
  171. package/dist/org/plugin.js.map +1 -1
  172. package/dist/progress/routes.d.ts +1 -1
  173. package/dist/scripts/call-agent.js +1 -1
  174. package/dist/scripts/call-agent.js.map +1 -1
  175. package/dist/scripts/db/safety.js +1 -1
  176. package/dist/scripts/db/safety.js.map +1 -1
  177. package/dist/server/auth.d.ts.map +1 -1
  178. package/dist/server/auth.js +3 -0
  179. package/dist/server/auth.js.map +1 -1
  180. package/dist/server/builder-design-systems.d.ts +28 -0
  181. package/dist/server/builder-design-systems.d.ts.map +1 -0
  182. package/dist/server/builder-design-systems.js +217 -0
  183. package/dist/server/builder-design-systems.js.map +1 -0
  184. package/dist/server/core-routes-plugin.d.ts +1 -0
  185. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  186. package/dist/server/core-routes-plugin.js +20 -3
  187. package/dist/server/core-routes-plugin.js.map +1 -1
  188. package/dist/server/index.d.ts +1 -0
  189. package/dist/server/index.d.ts.map +1 -1
  190. package/dist/server/index.js +1 -0
  191. package/dist/server/index.js.map +1 -1
  192. package/dist/server/transcribe-voice.d.ts +1 -1
  193. package/dist/styles/agent-native.css +14 -7
  194. package/dist/usage/store.js +2 -2
  195. package/dist/usage/store.js.map +1 -1
  196. package/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
  197. package/docs/content/locales/ar-SA/template-design.mdx +14 -1
  198. package/docs/content/locales/de-DE/skills-guide.mdx +5 -0
  199. package/docs/content/locales/de-DE/template-design.mdx +15 -1
  200. package/docs/content/locales/es-ES/skills-guide.mdx +5 -0
  201. package/docs/content/locales/es-ES/template-design.mdx +15 -1
  202. package/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
  203. package/docs/content/locales/fr-FR/template-design.mdx +15 -1
  204. package/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
  205. package/docs/content/locales/hi-IN/template-design.mdx +15 -1
  206. package/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
  207. package/docs/content/locales/ja-JP/template-design.mdx +16 -1
  208. package/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
  209. package/docs/content/locales/ko-KR/template-design.mdx +14 -1
  210. package/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
  211. package/docs/content/locales/pt-BR/template-design.mdx +14 -1
  212. package/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
  213. package/docs/content/locales/zh-CN/template-design.mdx +14 -1
  214. package/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
  215. package/docs/content/locales/zh-TW/template-design.mdx +14 -1
  216. package/docs/content/skills-guide.mdx +5 -0
  217. package/docs/content/template-design.mdx +14 -1
  218. package/package.json +1 -1
  219. package/corpus/templates/design/actions/import-figma-file.ts +0 -166
  220. package/corpus/templates/slides/server/lib/fig-design-system.ts +0 -110
@@ -118,6 +118,10 @@ Skills, `.agents/skills/<name>/SKILL.md` पर लाइव है और इ
118
118
 
119
119
  ## ऐप-समर्थित skills {#app-backed-skills}
120
120
 
121
+ मौजूदा app-backed skills में Plan के `visual-plan` और `visual-recap`, Design का
122
+ `visual-edit`, Assets का `assets`, और repo-backed docs/blog/MDX editing के लिए
123
+ `content` शामिल हैं.
124
+
121
125
  ऐप-समर्थित skills एक कौशल बाज़ार आर्टिफैक्ट के रूप में एक एजेंट-मूल ऐप को पैकेज करता है। बंडल में एजेंट निर्देश, निर्यातित skills, MCP कनेक्टर मेटाडेटा, होस्टेड/स्थानीय लॉन्च निर्देश और UI सतह जैसे MCP ऐप्स शामिल हो सकते हैं।
122
126
 
123
127
  > **पूर्ण विवरण नीचे:** ऐप-समर्थित skills (प्रकट प्रारूप, CLI कमांड, मार्केटप्लेस एडाप्टर, ऑटो-अपडेट हैशिंग) के यांत्रिकी [App-backed skills — full details](#app-backed-skills-full) में शामिल हैं।
@@ -328,6 +332,7 @@ scope: dev
328
332
  ```bash
329
333
  # शुभ पथ: निर्यात किए गए निर्देश और होस्ट किए गए MCP कनेक्टर।
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # रेपो-प्रथम Content docs/blog/MDX संपादन।
@@ -338,7 +338,7 @@ UI में रूट `templates/design/app/routes/` के अंतर्ग
338
338
  - **डिज़ाइन** - `create-design` (खाली शेल), `generate-design` (लाइव बनाए रखने के लिए HTML/JSX सामग्री लिखें), `update-design`, `get-design`, `list-designs`, `duplicate-design`, `delete-design`, और `apply-tweaks` ट्विक-नॉब मान (उच्चारण रंग, घनत्व, आदि)।
339
339
  - **फ़ाइलें** - एक डिज़ाइन प्रोजेक्ट के अंदर फ़ाइलों के लिए `create-file`, `update-file`, `list-files`, `delete-file`।
340
340
  - **डिज़ाइन सिस्टम** - विश्लेषण से पहले ब्रांड डेटा इकट्ठा करने के लिए `create-design-system`, `update-design-system`, `get-design-system`, `list-design-systems`, `delete-design-system`, `set-default-design-system`, और `analyze-brand-assets`।
341
- - **आयात** - `import-code`, `import-figma`, `import-github`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), और `import-design-project` किसी मौजूदा प्रोजेक्ट से डिज़ाइन सिस्टम को हटाने के लिए।
341
+ - **आयात** `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
342
342
  - **निर्यात और हैंडऑफ़** - किसी डिज़ाइन को कोडिंग-टूल हैंडऑफ़ में बदलने के लिए `export-html`, `export-pdf`, `export-svg`, `export-zip`, और `export-coding-handoff`।
343
343
  - **संदर्भ और नेविगेशन** - `view-screen` (वर्तमान डिज़ाइन, खुली फ़ाइल, दृश्य, लंबित प्रश्न या भिन्न ग्रिड), `get-design-snapshot` (बाहरी एजेंट के लिए वर्तमान स्थिति जारी रखने के लिए), और `navigate`।
344
344
 
@@ -360,6 +360,20 @@ rendered file के अंदर DOM/code layers edit करने के ल
360
360
  model दिखाता है: screens top-level frames हैं, और active screen के नीचे nested
361
361
  DOM/code layers होते हैं।
362
362
 
363
+ जब coding agent को standalone prototype HTML बनाने के बजाय running local app को
364
+ Design में खोलना हो, तब `/visual-edit` install करें:
365
+
366
+ ```bash
367
+ npx @agent-native/core@latest skills add visual-edit
368
+ ```
369
+
370
+ Target app dev server चलने के बाद, `/visual-edit`
371
+ `npx @agent-native/core@latest design connect` और `add-localhost-screens` का
372
+ उपयोग करके हर requested path या URL को अपने URL-backed iframe screen के रूप में
373
+ place करता है। `localhost:1234/onboarding/1`, `/onboarding/2`, और
374
+ `/onboarding/3` जैसे numbered flows overview mode में separate ordered screens
375
+ रहते हैं।
376
+
363
377
  Stable layer names के लिए meaningful elements पर
364
378
  `data-agent-native-layer-name` जोड़ें। Design semantic/text fallbacks से पहले
365
379
  इसे उपयोग करता है और इसी attribute को edit करके layer renames persist कर सकता
@@ -118,6 +118,10 @@ Skills は `.agents/skills/<name>/SKILL.md` にあり、エージェント向け
118
118
 
119
119
  ## アプリベースの skills {#app-backed-skills}
120
120
 
121
+ 現在の app-backed skills には、Plan の `visual-plan` と `visual-recap`、
122
+ Design の `visual-edit`、Assets の `assets`、repo-backed docs/blog/MDX
123
+ 編集用の `content` があります。
124
+
121
125
  アプリベースの skills は、エージェント ネイティブ アプリをスキル マーケットプレイス アーティファクトとしてパッケージ化します。バンドルには、エージェントの指示、エクスポートされた skills、MCP コネクタ メタデータ、ホスト/ローカルの起動指示、MCP アプリなどの UI サーフェスを含めることができます。
122
126
 
123
127
  > **詳細は以下の通り:** アプリベースの skills の仕組み (マニフェスト形式、CLI コマンド、マーケットプレイス アダプター、自動更新ハッシュ) は、[App-backed skills — full details](#app-backed-skills-full) で説明されています。
@@ -328,6 +332,7 @@ Hosted はデフォルトのインストール パスです。ローカル起動
328
332
  ```bash
329
333
  # ハッピー パス: エクスポートされた命令とホストされた MCP コネクタ。
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # リポジトリ優先コンテンツ docs/blog/MDX 編集。
@@ -340,7 +340,7 @@ UI のルートは `templates/design/app/routes/` の下にあります: `_index
340
340
  - **デザイン** — `create-design` (空のシェル)、`generate-design` (生成された HTML/JSX コンテンツを書き込む)、`update-design`、`get-design`、`list-designs`、`duplicate-design`、`delete-design`、および `apply-tweaks` (ライブ永続化用)ノブの値を調整します (アクセントカラー、濃度など)。
341
341
  - **ファイル** — 設計プロジェクト内のファイルの `create-file`、`update-file`、`list-files`、`delete-file`。
342
342
  - **デザイン システム** — 分析に先立ってブランド データを収集するための `create-design-system`、`update-design-system`、`get-design-system`、`list-design-systems`、`delete-design-system`、`set-default-design-system`、および `analyze-brand-assets`。
343
- - **インポート** — `import-code`、`import-figma`、`import-github`、`import-from-url`、`import-document` (DOCX/PPTX/PDF/XLSX)、および `import-design-project` を使用して、既存のプロジェクトからデザイン システムを取り出します。
343
+ - **インポート** — `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
344
344
  - **エクスポートとハンドオフ** — デザインをコーディング ツールのハンドオフに変換するための `export-html`、`export-pdf`、`export-svg`、`export-zip`、および `export-coding-handoff`。
345
345
  - **コンテキストとナビゲーション** — `view-screen` (現在のデザイン、開いているファイル、ビュー、保留中の質問またはバリアント グリッド)、`get-design-snapshot` (外部エージェントが続行する現在の状態)、および `navigate`。
346
346
 
@@ -361,6 +361,21 @@ Design は複数画面の作業では概要を最初に使います。生成後
361
361
  イヤーパネルもこの分離を反映します。画面は最上位フレームで、アクティブ
362
362
  画面の下に DOM/コードレイヤーがネストされます。
363
363
 
364
+ コーディングエージェントがスタンドアロンのプロトタイプ HTML を生成する
365
+ 代わりに、実行中のローカルアプリを Design で開く必要がある場合は
366
+ `/visual-edit` をインストールします。
367
+
368
+ ```bash
369
+ npx @agent-native/core@latest skills add visual-edit
370
+ ```
371
+
372
+ 対象アプリの dev server が起動したら、`/visual-edit` は
373
+ `npx @agent-native/core@latest design connect` と `add-localhost-screens` を
374
+ 使い、要求された各 path または URL を URL ベースの iframe 画面として配置
375
+ します。`localhost:1234/onboarding/1`、`/onboarding/2`、`/onboarding/3`
376
+ のような番号付きフローは、overview mode で個別の順序付き画面として保持
377
+ されます。
378
+
364
379
  安定したレイヤー名には、意味のある要素に
365
380
  `data-agent-native-layer-name` を追加します。Design はセマンティック/テ
366
381
  キストのフォールバックより先にこれを使い、この属性を編集してレイヤー名
@@ -118,6 +118,10 @@ Skills는 `.agents/skills/<name>/SKILL.md`에 거주하며 상담원을 위한
118
118
 
119
119
  ## 앱 지원 skills {#app-backed-skills}
120
120
 
121
+ 현재 app-backed skills에는 Plan의 `visual-plan`과 `visual-recap`, Design의
122
+ `visual-edit`, Assets의 `assets`, repo-backed docs/blog/MDX editing을 위한
123
+ `content`가 포함됩니다.
124
+
121
125
  앱 지원 skills는 에이전트 기반 앱을 스킬 마켓플레이스 아티팩트로 패키지합니다. 번들에는 에이전트 지침, 내보낸 skills, MCP 커넥터 메타데이터, 호스팅/로컬 실행 지침 및 MCP 앱과 같은 UI 표면이 포함될 수 있습니다.
122
126
 
123
127
  > **아래 전체 세부정보:** 앱 지원 skills의 메커니즘(매니페스트 형식, CLI 명령, 마켓플레이스 어댑터, 자동 업데이트 해싱)은 [App-backed skills — full details](#app-backed-skills-full)에서 다룹니다.
@@ -328,6 +332,7 @@ scope: dev
328
332
  ```bash
329
333
  # 해피 경로: 내보낸 지침과 호스팅된 MCP 커넥터.
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # Repo-first 콘텐츠 docs/blog/MDX 편집.
@@ -338,7 +338,7 @@ UI의 경로는 `templates/design/app/routes/` 아래에 있습니다: `_index.t
338
338
  - **설계** — `create-design`(빈 셸), `generate-design`(생성된 HTML/JSX 콘텐츠 쓰기), `update-design`, `get-design`, `list-designs`, `duplicate-design`, `delete-design` 및 `apply-tweaks` - 실시간 조정 손잡이 값 유지 (악센트 색상, 밀도 등).
339
339
  - **파일** — 디자인 프로젝트 내부 파일의 경우 `create-file`, `update-file`, `list-files`, `delete-file`.
340
340
  - **디자인 시스템** — 분석에 앞서 브랜드 데이터를 수집하기 위한 `create-design-system`, `update-design-system`, `get-design-system`, `list-design-systems`, `delete-design-system`, `set-default-design-system` 및 `analyze-brand-assets`.
341
- - **가져오기** — `import-code`, `import-figma`, `import-github`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX) `import-design-project`는 기존 프로젝트에서 디자인 시스템을 끌어올립니다.
341
+ - **가져오기** — `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
342
342
  - **내보내기 및 핸드오프** — `export-html`, `export-pdf`, `export-svg`, `export-zip` 및 `export-coding-handoff` - 설계를 코딩 도구 핸드오프로 전환합니다.
343
343
  - **컨텍스트 및 탐색** — `view-screen`(현재 디자인, 열린 파일, 보기, 보류 중인 질문 또는 변형 그리드), `get-design-snapshot`(계속할 외부 에이전트의 현재 상태) 및 `navigate`.
344
344
 
@@ -360,6 +360,19 @@ Single-screen mode는 스크롤, prototype behavior와의 상호작용, 하나
360
360
  반영합니다. screens는 top-level frames이고, active screen 아래에 nested
361
361
  DOM/code layers가 표시됩니다.
362
362
 
363
+ 코딩 에이전트가 독립형 prototype HTML을 생성하는 대신 실행 중인 로컬 앱을
364
+ Design에서 열어야 할 때 `/visual-edit`를 설치하세요:
365
+
366
+ ```bash
367
+ npx @agent-native/core@latest skills add visual-edit
368
+ ```
369
+
370
+ 대상 앱 dev server가 실행된 뒤 `/visual-edit`는
371
+ `npx @agent-native/core@latest design connect`와 `add-localhost-screens`를
372
+ 사용해 요청된 각 path 또는 URL을 URL-backed iframe screen으로 배치합니다.
373
+ `localhost:1234/onboarding/1`, `/onboarding/2`, `/onboarding/3` 같은 번호가
374
+ 붙은 흐름은 overview mode에서 분리된 순서 있는 화면으로 유지됩니다.
375
+
363
376
  안정적인 layer name을 위해 의미 있는 요소에 `data-agent-native-layer-name`을
364
377
  추가하세요. Design은 semantic/text fallback보다 이것을 먼저 사용하며, 해당
365
378
  attribute를 편집해 layer rename을 persist할 수 있습니다. Inline HTML은 text,
@@ -118,6 +118,10 @@ O domínio skills segue o mesmo formato do framework skills. Eles codificam padr
118
118
 
119
119
  ## skills com suporte de aplicativo {#app-backed-skills}
120
120
 
121
+ As skills com suporte de app atuais incluem `visual-plan` e `visual-recap` do
122
+ Plan, `visual-edit` do Design, `assets` do Assets e `content` para editar
123
+ docs/blog/MDX a partir do repositório.
124
+
121
125
  O skills apoiado por aplicativo empacota um aplicativo nativo do agente como um artefato do mercado de habilidades. O pacote pode incluir instruções do agente, metadados exportados do conector skills, MCP, instruções de inicialização hospedadas/locais e superfícies UI, como aplicativos MCP.
122
126
 
123
127
  > **Detalhes completos abaixo:** a mecânica do skills baseado em aplicativo (formato de manifesto, comandos CLI, adaptadores de mercado, hash de atualização automática) é abordada em [App-backed skills — full details](#app-backed-skills-full).
@@ -328,6 +332,7 @@ trabalho off-line ou uso sensível à privacidade.
328
332
  ```bash
329
333
  # Caminho feliz: instruções exportadas mais conector MCP hospedado.
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # Edição de Content docs/blog/MDX com repo como fonte primária.
@@ -338,7 +338,7 @@ Cada operação que pode ser chamada pelo agente é um arquivo TypeScript em `te
338
338
  - **Designs** — `create-design` (shell vazio), `generate-design` (gravação de conteúdo HTML/JSX gerado), `update-design`, `get-design`, `list-designs`, `duplicate-design`, `delete-design` e `apply-tweaks` para valores de botão de ajuste ao vivo persistentes (cor de destaque, densidade, etc.).
339
339
  - **Arquivos** — `create-file`, `update-file`, `list-files`, `delete-file` para os arquivos dentro de um projeto de design.
340
340
  - **Sistemas de design** — `create-design-system`, `update-design-system`, `get-design-system`, `list-design-systems`, `delete-design-system`, `set-default-design-system` e `analyze-brand-assets` para coletar dados da marca antes da análise.
341
- - **Importar** — `import-code`, `import-figma`, `import-github`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX) e `import-design-project` para extrair um sistema de design de um projeto existente.
341
+ - **Importar** — `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
342
342
  - **Exportação e transferência** — `export-html`, `export-pdf`, `export-svg`, `export-zip` e `export-coding-handoff` para transformar um design em uma transferência de ferramenta de codificação.
343
343
  - **Contexto e navegação** — `view-screen` (design atual, arquivo aberto, visualização, pergunta pendente ou grade de variantes), `get-design-snapshot` (estado atual para um agente externo continuar) e `navigate`.
344
344
 
@@ -361,6 +361,19 @@ protótipo e editar as camadas DOM/código dentro de um arquivo renderizado. O
361
361
  painel de camadas reflete essa divisão: telas são frames de nível superior, com
362
362
  camadas DOM/código aninhadas para a tela ativa.
363
363
 
364
+ Instale `/visual-edit` quando um agente de código precisar abrir um app local em
365
+ execução no Design em vez de gerar HTML de protótipo independente:
366
+
367
+ ```bash
368
+ npx @agent-native/core@latest skills add visual-edit
369
+ ```
370
+
371
+ Depois que o dev server do app alvo estiver rodando, `/visual-edit` usa
372
+ `npx @agent-native/core@latest design connect` junto com `add-localhost-screens`
373
+ para posicionar cada path ou URL solicitado como sua própria tela iframe baseada
374
+ em URL. Fluxos numerados como `localhost:1234/onboarding/1`, `/onboarding/2` e
375
+ `/onboarding/3` permanecem como telas separadas e ordenadas no modo overview.
376
+
364
377
  Para nomes de camada estáveis, adicione `data-agent-native-layer-name` a
365
378
  elementos importantes. O Design usa isso antes de fallbacks semânticos/de texto
366
379
  e pode persistir renomeações editando esse atributo. HTML inline aceita edições
@@ -118,6 +118,10 @@ Skills 位于 `.agents/skills/<name>/SKILL.md`,包含针对代理的详细指
118
118
 
119
119
  ## 应用程序支持的 skills {#app-backed-skills}
120
120
 
121
+ 当前应用支持的 skills 包括 Plan 的 `visual-plan` 和 `visual-recap`、Design
122
+ 的 `visual-edit`、Assets 的 `assets`,以及用于仓库内 docs/blog/MDX 编辑的
123
+ `content`。
124
+
121
125
  应用程序支持的 skills 将代理本机应用程序打包为技能市场工件。该捆绑包可以包含代理指令、导出的 skills、MCP 连接器元数据、托管/本地启动指令和 UI 表面(例如 MCP 应用程序)。
122
126
 
123
127
  > **完整详细信息如下:** [App-backed skills — full details](#app-backed-skills-full) 中介绍了应用程序支持的 skills 的机制(清单格式、CLI 命令、市场适配器、自动更新哈希)。
@@ -328,6 +332,7 @@ Hosted 是默认安装路径。本地启动是明确的定制,
328
332
  ```bash
329
333
  # 愉快的路径:导出的指令加上托管的 MCP 连接器。
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # 回购优先内容 docs/blog/MDX 编辑。
@@ -338,7 +338,7 @@ UI 中的路由位于 `templates/design/app/routes/` 下:`_index.tsx`(列表
338
338
  - **设计** - `create-design`(空壳)、`generate-design`(写入生成的 HTML/JSX 内容)、`update-design`、`get-design`、`list-designs`、`duplicate-design`、`delete-design` 和 `apply-tweaks` 用于持久保存实时调整旋钮值(强调色、密度等)。
339
339
  - **文件** - `create-file`、`update-file`、`list-files`、`delete-file` 用于设计项目内的文件。
340
340
  - **设计系统** - `create-design-system`、`update-design-system`、`get-design-system`、`list-design-systems`、`delete-design-system`、`set-default-design-system` 和 `analyze-brand-assets` 用于在分析之前收集品牌数据。
341
- - **导入** - `import-code`、`import-figma`、`import-github`、`import-from-url`、`import-document` (DOCX/PPTX/PDF/XLSX) `import-design-project` 将设计系统从现有项目中提升出来。
341
+ - **导入** `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
342
342
  - **导出和移交** - `export-html`、`export-pdf`、`export-svg`、`export-zip` 和 `export-coding-handoff` 将设计转变为编码工具移交。
343
343
  - **上下文和导航** - `view-screen`(当前设计、打开的文件、视图、待决问题或变体网格)、`get-design-snapshot`(外部代理继续的当前状态)和 `navigate`。
344
344
 
@@ -357,6 +357,19 @@ Design 对多屏工作采用概览优先。生成或进行大范围更新后,
357
357
  单屏模式用于滚动、与原型行为交互,以及编辑一个已渲染文件内的 DOM/代码
358
358
  层。图层面板也反映这种分工:屏幕是顶层框架,活动屏幕下嵌套 DOM/代码层。
359
359
 
360
+ 当编码代理需要在 Design 中打开正在运行的本地应用,而不是生成独立原型 HTML
361
+ 时,请安装 `/visual-edit`:
362
+
363
+ ```bash
364
+ npx @agent-native/core@latest skills add visual-edit
365
+ ```
366
+
367
+ 目标应用的开发服务器运行后,`/visual-edit` 会结合
368
+ `npx @agent-native/core@latest design connect` 和 `add-localhost-screens`,把每个
369
+ 请求的 path 或 URL 放置为独立的 URL-backed iframe 屏幕。像
370
+ `localhost:1234/onboarding/1`、`/onboarding/2`、`/onboarding/3` 这样的编号流程
371
+ 会在 overview 模式中保持为分开的有序屏幕。
372
+
360
373
  为了获得稳定的图层名称,请在有意义的元素上添加
361
374
  `data-agent-native-layer-name`。Design 会优先使用它,然后才使用语义/文本回
362
375
  退,并且可以通过编辑该属性来持久保存图层重命名。Inline HTML 支持本地代
@@ -118,6 +118,10 @@ Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指
118
118
 
119
119
  ## 應用程式支援的 skills {#app-backed-skills}
120
120
 
121
+ 目前應用支援的 skills 包括 Plan 的 `visual-plan` 和 `visual-recap`、Design
122
+ 的 `visual-edit`、Assets 的 `assets`,以及用於儲存庫內 docs/blog/MDX 編輯的
123
+ `content`。
124
+
121
125
  應用程式支援的 skills 將 Agent-Native 應用程式打包為技能市場工件。該捆綁包可以包含代理指令、匯出的 skills、MCP 連線器中繼資料、託管/本機啟動指令和 UI 表面(例如 MCP 應用程式)。
122
126
 
123
127
  > **完整詳細資訊如下:** [App-backed skills — full details](#app-backed-skills-full) 中介紹了應用程式支援的 skills 的機制(清單格式、CLI 指令、市場轉接器、自動更新哈希)。
@@ -328,6 +332,7 @@ Hosted 是預設安裝路徑。本機啟動是明確的定制,
328
332
  ```bash
329
333
  # 愉快的路徑:匯出的指令加上託管的 MCP 連線器。
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # 回購優先內容 docs/blog/MDX 編輯。
@@ -338,7 +338,7 @@ UI 中的路由位於 `templates/design/app/routes/` 下:`_index.tsx`(清單
338
338
  - **設計** - `create-design`(空殼)、`generate-design`(寫入產生的 HTML/JSX 內容)、`update-design`、`get-design`、`list-designs`、`duplicate-design`、`delete-design` 和 `apply-tweaks` 用於持久儲存即時調整旋鈕值(強調色、密度等)。
339
339
  - **檔案** - `create-file`、`update-file`、`list-files`、`delete-file` 用於設計專案內的檔案。
340
340
  - **設計系統** - `create-design-system`、`update-design-system`、`get-design-system`、`list-design-systems`、`delete-design-system`、`set-default-design-system` 和 `analyze-brand-assets` 用於在分析之前收集品牌資料。
341
- - **匯入** - `import-code`、`import-figma`、`import-github`、`import-from-url`、`import-document` (DOCX/PPTX/PDF/XLSX) `import-design-project` 將設計系統從現有專案中提升出來。
341
+ - **匯入** `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
342
342
  - **匯出和移交** - `export-html`、`export-pdf`、`export-svg`、`export-zip` 和 `export-coding-handoff` 將設計轉變為編碼工具移交。
343
343
  - **脈絡和導覽** - `view-screen`(目前設計、開啟的檔案、檢視、待決問題或變體網格)、`get-design-snapshot`(外部代理繼續的目前狀態)和 `navigate`。
344
344
 
@@ -358,6 +358,19 @@ Design 對多畫面工作採用概覽優先。產生或進行大範圍更新後
358
358
  式碼圖層。圖層面板也反映這種分工:畫面是頂層框架,作用中畫面下嵌套
359
359
  DOM/程式碼圖層。
360
360
 
361
+ 當編碼代理需要在 Design 中開啟正在執行的本機應用,而不是產生獨立原型 HTML
362
+ 時,請安裝 `/visual-edit`:
363
+
364
+ ```bash
365
+ npx @agent-native/core@latest skills add visual-edit
366
+ ```
367
+
368
+ 目標應用的開發伺服器執行後,`/visual-edit` 會結合
369
+ `npx @agent-native/core@latest design connect` 和 `add-localhost-screens`,把每個
370
+ 要求的 path 或 URL 放置為獨立的 URL-backed iframe 畫面。像
371
+ `localhost:1234/onboarding/1`、`/onboarding/2`、`/onboarding/3` 這樣的編號流程
372
+ 會在 overview 模式中保持為分開的有序畫面。
373
+
361
374
  若要取得穩定的圖層名稱,請在有意義的元素上加入
362
375
  `data-agent-native-layer-name`。Design 會優先使用它,然後才使用語意/文字
363
376
  後備,並且可以透過編輯該屬性來持久保存圖層重新命名。Inline HTML 支援本
@@ -120,6 +120,10 @@ Domain skills follow the same format as framework skills. They encode patterns s
120
120
 
121
121
  App-backed skills package an agent-native app as a skill marketplace artifact. The bundle can include agent instructions, exported skills, MCP connector metadata, hosted/local launch instructions, and UI surfaces such as MCP Apps.
122
122
 
123
+ Current app-backed skills include `visual-plan` and `visual-recap` from Plan,
124
+ `visual-edit` from Design, `assets` from Assets, and `content` for repo-backed
125
+ docs/blog/MDX editing.
126
+
123
127
  > **Full details below:** the mechanics of app-backed skills (manifest format, CLI commands, marketplace adapters, auto-update hashing) are covered in [App-backed skills — full details](#app-backed-skills-full).
124
128
 
125
129
  ## Creating custom skills {#creating-skills}
@@ -328,6 +332,7 @@ offline work, or privacy-sensitive use.
328
332
  ```bash
329
333
  # Happy path: exported instructions plus hosted MCP connector.
330
334
  npx @agent-native/core@latest skills add visual-plan
335
+ npx @agent-native/core@latest skills add visual-edit
331
336
  npx @agent-native/core@latest skills add assets
332
337
 
333
338
  # Repo-first Content docs/blog/MDX editing.
@@ -338,7 +338,7 @@ Every agent-callable operation is a TypeScript file in `templates/design/actions
338
338
  - **Designs** — `create-design` (empty shell), `generate-design` (write generated HTML/JSX content), `update-design`, `get-design`, `list-designs`, `duplicate-design`, `delete-design`, and `apply-tweaks` for persisting live tweak-knob values (accent color, density, etc.).
339
339
  - **Files** — `create-file`, `update-file`, `list-files`, `delete-file` for the files inside a design project.
340
340
  - **Design systems** — `create-design-system`, `update-design-system`, `get-design-system`, `list-design-systems`, `delete-design-system`, `set-default-design-system`, and `analyze-brand-assets` for gathering brand data ahead of analysis.
341
- - **Import** — `import-code`, `import-figma`, `import-github`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` to lift a design system out of an existing project.
341
+ - **Import** — `index-design-system-with-builder` for Builder-backed code/GitHub design-system indexing, plus `import-figma`, `import-from-url`, `import-document` (DOCX/PPTX/PDF/XLSX), and `import-design-project` for other sources.
342
342
  - **Export & handoff** — `export-html`, `export-pdf`, `export-svg`, `export-zip`, and `export-coding-handoff` to turn a design into a coding-tool handoff.
343
343
  - **Context & navigation** — `view-screen` (current design, open file, view, pending question or variant grid), `get-design-snapshot` (current state for an external agent to continue from), and `navigate`.
344
344
 
@@ -361,6 +361,19 @@ editing the DOM/code layers inside one rendered file. The layers panel reflects
361
361
  that split: screens are top-level frames, with nested DOM/code layers for the
362
362
  active screen.
363
363
 
364
+ Install `/visual-edit` when a coding agent should open a running local app in
365
+ Design instead of generating standalone prototype HTML:
366
+
367
+ ```bash
368
+ npx @agent-native/core@latest skills add visual-edit
369
+ ```
370
+
371
+ After the target app dev server is running, `/visual-edit` uses
372
+ `npx @agent-native/core@latest design connect` plus `add-localhost-screens` to
373
+ place each requested path or URL as its own URL-backed iframe screen. Numbered
374
+ flows such as `localhost:1234/onboarding/1`, `/onboarding/2`, and
375
+ `/onboarding/3` stay as separate ordered screens in overview mode.
376
+
364
377
  For stable layer names, add `data-agent-native-layer-name` to meaningful
365
378
  elements. Design uses it before semantic/text fallbacks and can persist layer
366
379
  renames by editing that attribute. Inline HTML supports local code-layer edits
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.80.0",
3
+ "version": "0.80.1",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -1,166 +0,0 @@
1
- import { defineAction } from "@agent-native/core";
2
- import {
3
- buildImageMap,
4
- decodeFig,
5
- extractDesignSystemFromFig,
6
- renderHtmlTemplates,
7
- } from "@agent-native/core/brand-kit/fig";
8
- import { z } from "zod";
9
-
10
- /** Per-frame HTML is capped so the tool result stays a manageable size. The
11
- * agent can re-run with a smaller selection or fetch the full design via the
12
- * editor if it needs the complete markup. */
13
- const MAX_FRAMES = 24;
14
- const MAX_HTML_BYTES = 120 * 1024; // ~120 KB per frame
15
- const MAX_FIG_BYTES = 80 * 1024 * 1024; // 80 MB upload guard
16
-
17
- /** Accepts either a bare base64 string or a `data:...;base64,<payload>` URL
18
- * and returns the decoded bytes. */
19
- function decodeBase64Input(input: string): Buffer {
20
- const trimmed = input.trim();
21
- const comma = trimmed.indexOf(",");
22
- const payload =
23
- trimmed.startsWith("data:") && comma >= 0
24
- ? trimmed.slice(comma + 1)
25
- : trimmed;
26
- return Buffer.from(payload, "base64");
27
- }
28
-
29
- export default defineAction({
30
- description:
31
- "Deeply parse an uploaded Figma `.fig` binary (modern fig-kiwi or legacy " +
32
- "zip format) entirely in-process — no Figma account or MCP needed. " +
33
- "Decodes the document node tree, renders each top-level frame to " +
34
- "standalone HTML, and extracts a design-system token set (colors, " +
35
- "typography, spacing, border radius, shadows). " +
36
- "Provide the file as a base64 string or data URL in `fileBase64` (or " +
37
- "`fileDataUrl`). This is read-only and writes nothing. " +
38
- "WORKFLOW: (1) call this action with the .fig contents; (2) review the " +
39
- "returned `designSystem` tokens and call `create-design-system` with them " +
40
- "(optionally set as default); (3) review the returned `frames` and call " +
41
- "`create-design` + `generate-design` with the frame HTML to import screens. " +
42
- "Convert nothing yourself — the colors are already hex, effects already " +
43
- "CSS, and spacing already snapped to a 4/8px scale.",
44
- schema: z
45
- .object({
46
- fileBase64: z
47
- .string()
48
- .optional()
49
- .describe(
50
- "The .fig file contents as a base64 string (or a data: URL). " +
51
- "Either fileBase64 or fileDataUrl is required.",
52
- ),
53
- fileDataUrl: z
54
- .string()
55
- .optional()
56
- .describe(
57
- "The .fig file as a data URL (data:application/octet-stream;base64,...). " +
58
- "Alias for fileBase64.",
59
- ),
60
- title: z
61
- .string()
62
- .optional()
63
- .describe("Optional title for the design being imported."),
64
- })
65
- .refine((v) => !!(v.fileBase64 || v.fileDataUrl), {
66
- message: "Provide the .fig file in fileBase64 or fileDataUrl",
67
- }),
68
- readOnly: true,
69
- run: async ({ fileBase64, fileDataUrl, title }) => {
70
- const raw = (fileBase64 ?? fileDataUrl) as string;
71
- let buffer: Buffer;
72
- try {
73
- buffer = decodeBase64Input(raw);
74
- } catch {
75
- throw new Error("Could not decode the provided base64 .fig payload.");
76
- }
77
- if (buffer.length === 0) {
78
- throw new Error("The provided .fig payload was empty.");
79
- }
80
- if (buffer.length > MAX_FIG_BYTES) {
81
- throw new Error(
82
- `The .fig file is too large to parse in-process (${buffer.length} bytes > ${MAX_FIG_BYTES}).`,
83
- );
84
- }
85
-
86
- let decoded;
87
- try {
88
- decoded = decodeFig(buffer);
89
- } catch (err) {
90
- throw new Error(
91
- `Failed to decode .fig file: ${err instanceof Error ? err.message : String(err)}`,
92
- );
93
- }
94
-
95
- if (!decoded.document) {
96
- throw new Error(
97
- "The .fig file decoded, but its document payload was empty or " +
98
- "malformed (no node tree). It may be an unsupported format version.",
99
- );
100
- }
101
-
102
- // Render frames. Image URLs line up with the hash-based filenames the
103
- // decoder emits, so a downstream importer can attach the images under an
104
- // `images/` directory if desired.
105
- const imageMap = buildImageMap(decoded.images);
106
- const rendered = renderHtmlTemplates(decoded.document, {
107
- imageMap,
108
- imageRefBase: "images",
109
- });
110
-
111
- const allFrames = rendered.frames;
112
- const truncatedFrames = allFrames.slice(0, MAX_FRAMES).map((frame) => {
113
- const safeName = frame.relativePath.replace(/\//g, ".");
114
- let html = frame.html;
115
- let truncated = false;
116
- if (Buffer.byteLength(html, "utf8") > MAX_HTML_BYTES) {
117
- html = html.slice(0, MAX_HTML_BYTES);
118
- truncated = true;
119
- }
120
- return {
121
- filename: safeName,
122
- pageName: frame.pageName,
123
- frameName: frame.frameName,
124
- html,
125
- ...(truncated ? { truncated: true } : {}),
126
- };
127
- });
128
-
129
- const designSystem = extractDesignSystemFromFig(decoded.document);
130
-
131
- const thumbnailDataUrl = decoded.thumbnail
132
- ? `data:image/png;base64,${decoded.thumbnail.toString("base64")}`
133
- : undefined;
134
-
135
- return {
136
- source: "fig-file",
137
- title: title ?? null,
138
- format: decoded.format,
139
- version: decoded.version ?? null,
140
- frames: truncatedFrames,
141
- frameCount: rendered.frameCount,
142
- pageCount: rendered.pageCount,
143
- framesTruncated: allFrames.length > MAX_FRAMES,
144
- designSystem,
145
- imageCount: decoded.images.length,
146
- images: decoded.images.map((img) => ({
147
- filename: `${img.hash}.${img.ext}`,
148
- ext: img.ext,
149
- sizeBytes: img.bytes.length,
150
- })),
151
- thumbnailDataUrl,
152
- instructions: [
153
- "Parsed the .fig file in-process. Next steps:",
154
- "1. Build the design system: call create-design-system using the " +
155
- "`designSystem` tokens above (colors are hex, effects are CSS, " +
156
- "spacing is snapped to a 4/8px scale). Set it as default if the " +
157
- "user wants it applied to new designs.",
158
- "2. Import screens: call create-design, then generate-design with the " +
159
- "`frames` HTML (one file per frame, or the most relevant frames). " +
160
- "Each frame is complete standalone HTML.",
161
- "3. Image fills reference `images/<hash>.<ext>` — upload those bytes " +
162
- "as design assets if you need the images to render.",
163
- ].join("\n"),
164
- };
165
- },
166
- });
@@ -1,110 +0,0 @@
1
- import type {
2
- BrandKitData,
3
- BrandKitDefaults,
4
- } from "@agent-native/core/brand-kit";
5
- import {
6
- extractFigBrandKit,
7
- looksLikeFigFile,
8
- type FigBrandKitPreview,
9
- } from "@agent-native/core/brand-kit/fig";
10
-
11
- import type { DesignSystemData } from "../../shared/api.js";
12
-
13
- export const MAX_FIG_BYTES = 200 * 1024 * 1024;
14
-
15
- export interface SlidesFigDesignSystemResult {
16
- ok: true;
17
- suggestedTitle: string;
18
- data: DesignSystemData;
19
- customInstructions: string;
20
- preview: FigBrandKitPreview;
21
- format: "kiwi" | "zip";
22
- version: number | null;
23
- }
24
-
25
- function titleFromFilename(filename: string | undefined): string {
26
- return (
27
- (filename || "Imported brand")
28
- .replace(/\.fig$/i, "")
29
- .replace(/[-_]+/g, " ")
30
- .trim() || "Imported brand"
31
- );
32
- }
33
-
34
- export function withSlidesDesignSystemDefaults(
35
- partial: Partial<BrandKitData> & { defaults?: BrandKitDefaults },
36
- ): DesignSystemData {
37
- const inferredDefaults = partial.defaults;
38
- const dark = inferredDefaults?.background === "dark";
39
- const colors = {
40
- primary: "#609FF8",
41
- secondary: "#4ADE80",
42
- accent: "#00E5FF",
43
- background: dark ? "#000000" : "#FFFFFF",
44
- surface: dark ? "#0a0a0a" : "#F8FAFC",
45
- text: dark ? "#ffffff" : "#0F172A",
46
- textMuted: dark ? "rgba(255,255,255,0.55)" : "#64748B",
47
- ...partial.colors,
48
- };
49
-
50
- return {
51
- colors,
52
- typography: {
53
- headingFont: "Poppins",
54
- bodyFont: "Poppins",
55
- headingWeight: "900",
56
- bodyWeight: "400",
57
- headingSizes: { h1: "64px", h2: "40px", h3: "28px" },
58
- ...partial.typography,
59
- },
60
- spacing: {
61
- slidePadding:
62
- partial.spacing?.slidePadding ??
63
- partial.spacing?.pagePadding ??
64
- "80px 110px",
65
- elementGap: partial.spacing?.elementGap ?? "20px",
66
- },
67
- borders: { radius: "12px", accentWidth: "4px", ...partial.borders },
68
- slideDefaults: {
69
- background: colors.background,
70
- labelStyle: inferredDefaults?.labelStyle ?? "uppercase",
71
- },
72
- logos: partial.logos ?? [],
73
- ...(partial.imageStyle ? { imageStyle: partial.imageStyle } : {}),
74
- ...(partial.customCSS ? { customCSS: partial.customCSS } : {}),
75
- ...(partial.notes ? { notes: partial.notes } : {}),
76
- };
77
- }
78
-
79
- export function parseSlidesFigDesignSystem(args: {
80
- data: Uint8Array;
81
- filename?: string;
82
- }): SlidesFigDesignSystemResult {
83
- if (args.data.length > MAX_FIG_BYTES) {
84
- throw new Error(
85
- `File too large (max ${Math.round(MAX_FIG_BYTES / 1024 / 1024)} MB).`,
86
- );
87
- }
88
- if (!looksLikeFigFile(args.data)) {
89
- throw new Error("That doesn't look like a Figma .fig file.");
90
- }
91
-
92
- const extracted = extractFigBrandKit(args.data);
93
- const data = withSlidesDesignSystemDefaults(extracted.data);
94
- if (extracted.preview.thumbnailDataUrl) {
95
- data.imageStyle = {
96
- referenceUrls: [extracted.preview.thumbnailDataUrl],
97
- styleDescription: data.imageStyle?.styleDescription ?? "",
98
- };
99
- }
100
-
101
- return {
102
- ok: true,
103
- suggestedTitle: titleFromFilename(args.filename),
104
- data,
105
- customInstructions: extracted.customInstructions,
106
- preview: extracted.preview,
107
- format: extracted.format,
108
- version: extracted.version,
109
- };
110
- }