@agent-native/core 0.92.10 → 0.92.12

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 (354) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +29 -0
  3. package/corpus/core/package.json +1 -1
  4. package/corpus/core/src/agent/production-agent.ts +214 -17
  5. package/corpus/core/src/agent/run-manager.ts +72 -14
  6. package/corpus/core/src/agent/run-store.ts +152 -27
  7. package/corpus/core/src/cli/design-connect.ts +433 -151
  8. package/corpus/core/src/cli/skills.ts +14 -0
  9. package/corpus/core/src/client/AssistantChat.tsx +25 -0
  10. package/corpus/core/src/client/MultiTabAssistantChat.tsx +40 -6
  11. package/corpus/core/src/client/agent-chat-adapter.ts +56 -12
  12. package/corpus/core/src/client/agent-chat.ts +165 -1
  13. package/corpus/core/src/client/chat/index.ts +9 -1
  14. package/corpus/core/src/client/extensions/EmbeddedExtension.tsx +38 -2
  15. package/corpus/core/src/client/index.ts +5 -0
  16. package/corpus/core/src/client/rich-markdown-editor/useCollabReconcile.ts +18 -7
  17. package/corpus/core/src/collab/awareness-store.ts +23 -12
  18. package/corpus/core/src/collab/client.ts +16 -5
  19. package/corpus/core/src/collab/index.ts +4 -0
  20. package/corpus/core/src/collab/recent-edits.ts +65 -2
  21. package/corpus/core/src/index.browser.ts +1 -0
  22. package/corpus/core/src/server/agent-chat-plugin.ts +98 -11
  23. package/corpus/core/src/server/builder-design-systems.ts +30 -4
  24. package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +1 -1
  25. package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +12 -6
  26. package/corpus/templates/clips/AGENTS.md +4 -0
  27. package/corpus/templates/clips/actions/create-recording.ts +2 -0
  28. package/corpus/templates/clips/actions/lib/create-recording-schema.ts +5 -3
  29. package/corpus/templates/clips/actions/request-transcript.ts +102 -33
  30. package/corpus/templates/clips/app/components/library/library-grid.tsx +1 -0
  31. package/corpus/templates/clips/app/components/player/share-dialog.tsx +59 -19
  32. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +75 -9
  33. package/corpus/templates/clips/app/components/player/video-player.tsx +17 -12
  34. package/corpus/templates/clips/app/hooks/use-player-shortcuts.ts +1 -0
  35. package/corpus/templates/clips/app/i18n/ar-SA.ts +1 -0
  36. package/corpus/templates/clips/app/i18n/de-DE.ts +1 -0
  37. package/corpus/templates/clips/app/i18n/en-US.ts +1 -0
  38. package/corpus/templates/clips/app/i18n/es-ES.ts +1 -0
  39. package/corpus/templates/clips/app/i18n/fr-FR.ts +1 -0
  40. package/corpus/templates/clips/app/i18n/hi-IN.ts +1 -0
  41. package/corpus/templates/clips/app/i18n/ja-JP.ts +1 -0
  42. package/corpus/templates/clips/app/i18n/ko-KR.ts +1 -0
  43. package/corpus/templates/clips/app/i18n/pt-BR.ts +1 -0
  44. package/corpus/templates/clips/app/i18n/zh-CN.ts +1 -0
  45. package/corpus/templates/clips/app/i18n/zh-TW.ts +1 -0
  46. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +70 -37
  47. package/corpus/templates/clips/app/routes/record.tsx +17 -4
  48. package/corpus/templates/clips/app/routes/share.$shareId.tsx +2 -0
  49. package/corpus/templates/clips/changelog/2026-07-09-desktop-popover-sits-closer-to-the-menu-bar.md +6 -0
  50. package/corpus/templates/clips/changelog/2026-07-09-desktop-recording-optimization-progress-stays-visible-until-the-clip-opens.md +6 -0
  51. package/corpus/templates/clips/changelog/2026-07-09-fixed-large-video-file-uploads-failing-before-their-resumabl.md +6 -0
  52. package/corpus/templates/clips/changelog/2026-07-09-fixed-new-video-uploads-defaulting-to-private.md +6 -0
  53. package/corpus/templates/clips/changelog/2026-07-09-long-recordings-now-get-enough-time-to-download-their-media-.md +6 -0
  54. package/corpus/templates/clips/changelog/2026-07-09-meeting-notes-no-longer-lowers-your-microphone-volume-for-ot.md +6 -0
  55. package/corpus/templates/clips/changelog/2026-07-09-on-mobile-tapping-a-playing-clip-reveals-playback-controls-w.md +6 -0
  56. package/corpus/templates/clips/changelog/2026-07-09-regenerate-any-clip-transcript-from-its-saved-recording-or-r.md +6 -0
  57. package/corpus/templates/clips/changelog/2026-07-09-slack-previews-now-show-the-clip-length-alongside-its-descri.md +6 -0
  58. package/corpus/templates/clips/changelog/2026-07-10-fixed-copying-agent-responses-and-transcript-text-from-recor.md +6 -0
  59. package/corpus/templates/clips/desktop/src/app.tsx +12 -2
  60. package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +8 -1
  61. package/corpus/templates/clips/desktop/src/lib/recorder.ts +8 -5
  62. package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +5 -5
  63. package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +3 -0
  64. package/corpus/templates/clips/desktop/src/styles.css +6 -3
  65. package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +29 -11
  66. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +1 -1
  67. package/corpus/templates/clips/desktop/src-tauri/src/system_audio.rs +103 -21
  68. package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +117 -39
  69. package/corpus/templates/clips/server/lib/slack-unfurls.ts +20 -1
  70. package/corpus/templates/clips/server/lib/streaming-upload-mode.ts +10 -4
  71. package/corpus/templates/clips/shared/recording-core.ts +12 -0
  72. package/corpus/templates/content/AGENTS.md +7 -6
  73. package/corpus/templates/content/actions/_builder-cms-read-client.ts +82 -7
  74. package/corpus/templates/content/actions/_database-source-utils.ts +149 -30
  75. package/corpus/templates/content/actions/_document-flush.ts +132 -17
  76. package/corpus/templates/content/actions/_notion-action-utils.ts +15 -0
  77. package/corpus/templates/content/actions/add-content-database-source-field-property.ts +4 -7
  78. package/corpus/templates/content/actions/attach-content-database-source.ts +41 -17
  79. package/corpus/templates/content/actions/change-content-database-source-role.ts +46 -8
  80. package/corpus/templates/content/actions/create-and-link-notion-page.ts +2 -0
  81. package/corpus/templates/content/actions/link-notion-page.ts +2 -0
  82. package/corpus/templates/content/actions/pull-document.ts +5 -7
  83. package/corpus/templates/content/actions/pull-notion-page.ts +2 -0
  84. package/corpus/templates/content/actions/push-notion-page.ts +10 -0
  85. package/corpus/templates/content/actions/resolve-notion-sync-conflict.ts +2 -0
  86. package/corpus/templates/content/actions/suggest-source-join-key.ts +8 -1
  87. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +88 -23
  88. package/corpus/templates/content/app/components/editor/VisualEditor.tsx +32 -2
  89. package/corpus/templates/content/app/hooks/use-notion.ts +6 -6
  90. package/corpus/templates/content/app/i18n/zh-TW.ts +1 -0
  91. package/corpus/templates/content/app/i18n-data.ts +18 -0
  92. package/corpus/templates/content/changelog/2026-07-09-builder-source-refreshes-now-keep-mapped-fields-such-as-topi.md +6 -0
  93. package/corpus/templates/content/changelog/2026-07-09-notion-conflict-choices-and-version-restores-preserve-docume.md +6 -0
  94. package/corpus/templates/content/server/lib/notion-sync.ts +80 -64
  95. package/corpus/templates/content/shared/api.ts +1 -0
  96. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +29 -2
  97. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +86 -0
  98. package/corpus/templates/design/.agents/skills/export-handoff/SKILL.md +57 -0
  99. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +11 -0
  100. package/corpus/templates/design/AGENTS.md +45 -10
  101. package/corpus/templates/design/actions/add-localhost-screens.ts +66 -13
  102. package/corpus/templates/design/actions/apply-component-prop-edit.ts +45 -36
  103. package/corpus/templates/design/actions/apply-motion-edit.ts +25 -31
  104. package/corpus/templates/design/actions/apply-shader-fill.ts +29 -42
  105. package/corpus/templates/design/actions/detach-component-instance.ts +337 -0
  106. package/corpus/templates/design/actions/export-design-as-figma-svg.ts +219 -0
  107. package/corpus/templates/design/actions/generate-design.ts +79 -12
  108. package/corpus/templates/design/actions/generate-screens.ts +57 -12
  109. package/corpus/templates/design/actions/get-figma-styles.ts +115 -0
  110. package/corpus/templates/design/actions/go-to-main-component.ts +254 -0
  111. package/corpus/templates/design/actions/grant-localhost-write-consent.ts +4 -3
  112. package/corpus/templates/design/actions/import-design-source.ts +4 -31
  113. package/corpus/templates/design/actions/import-figma-clipboard.ts +134 -0
  114. package/corpus/templates/design/actions/import-figma-frame.ts +95 -0
  115. package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -1
  116. package/corpus/templates/design/actions/list-design-components.ts +104 -0
  117. package/corpus/templates/design/actions/list-figma-library-assets.ts +1 -24
  118. package/corpus/templates/design/actions/open-component-source.ts +2 -4
  119. package/corpus/templates/design/actions/present-design-variants.ts +412 -16
  120. package/corpus/templates/design/actions/preview-source-edit.ts +14 -1
  121. package/corpus/templates/design/actions/run-design-audit.ts +25 -3
  122. package/corpus/templates/design/actions/show-design-questions.ts +10 -0
  123. package/corpus/templates/design/actions/swap-component-instance.ts +544 -0
  124. package/corpus/templates/design/actions/take-design-screenshot.ts +45 -60
  125. package/corpus/templates/design/actions/write-local-file.ts +25 -1
  126. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +152 -0
  127. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +1077 -58
  128. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +5 -5
  129. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +73 -21
  130. package/corpus/templates/design/app/components/design/EditPanel.tsx +16 -11
  131. package/corpus/templates/design/app/components/design/KeyboardShortcutsPanel.tsx +364 -0
  132. package/corpus/templates/design/app/components/design/LayersPanel.tsx +180 -53
  133. package/corpus/templates/design/app/components/design/LocalhostWriteConsentDialog.tsx +0 -2
  134. package/corpus/templates/design/app/components/design/MotionDock.tsx +144 -21
  135. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1152 -167
  136. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +27 -5
  137. package/corpus/templates/design/app/components/design/ReviewPanel.tsx +23 -2
  138. package/corpus/templates/design/app/components/design/TokensPanel.tsx +63 -49
  139. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1293 -54
  140. package/corpus/templates/design/app/components/design/bridge/embedded-wheel.bridge.ts +7 -0
  141. package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +6 -1
  142. package/corpus/templates/design/app/components/design/bridge/motion-preview.bridge.ts +23 -6
  143. package/corpus/templates/design/app/components/design/bridge/sample.bridge.ts +7 -0
  144. package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +5 -0
  145. package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +14 -2
  146. package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +37 -2
  147. package/corpus/templates/design/app/components/design/code-workbench/format/format-on-open-guard.ts +25 -0
  148. package/corpus/templates/design/app/components/design/code-workbench/format/format-on-open.ts +19 -1
  149. package/corpus/templates/design/app/components/design/code-workbench/model-registry.ts +43 -5
  150. package/corpus/templates/design/app/components/design/code-workbench/search/SearchView.tsx +27 -2
  151. package/corpus/templates/design/app/components/design/code-workbench/search/search-engine.ts +10 -1
  152. package/corpus/templates/design/app/components/design/code-workbench/store.tsx +19 -2
  153. package/corpus/templates/design/app/components/design/design-canvas/annotation-snapshot.ts +265 -0
  154. package/corpus/templates/design/app/components/design/design-canvas/annotation-submit.ts +16 -5
  155. package/corpus/templates/design/app/components/design/design-canvas/coordinate-transforms.ts +16 -2
  156. package/corpus/templates/design/app/components/design/design-canvas/embedded-frame.ts +7 -2
  157. package/corpus/templates/design/app/components/design/design-canvas/iframe-events.ts +3 -1
  158. package/corpus/templates/design/app/components/design/edit-panel/code-inspect-helpers.tsx +78 -8
  159. package/corpus/templates/design/app/components/design/edit-panel/component-section.tsx +451 -73
  160. package/corpus/templates/design/app/components/design/edit-panel/document-colors.ts +12 -4
  161. package/corpus/templates/design/app/components/design/edit-panel/effects-properties.tsx +398 -272
  162. package/corpus/templates/design/app/components/design/edit-panel/element-classification.ts +41 -7
  163. package/corpus/templates/design/app/components/design/edit-panel/element-identity.ts +16 -3
  164. package/corpus/templates/design/app/components/design/edit-panel/field-primitives.tsx +24 -4
  165. package/corpus/templates/design/app/components/design/edit-panel/fill-gradient-helpers.ts +222 -4
  166. package/corpus/templates/design/app/components/design/edit-panel/fill-properties.tsx +171 -78
  167. package/corpus/templates/design/app/components/design/edit-panel/inspector-controls.tsx +45 -5
  168. package/corpus/templates/design/app/components/design/edit-panel/layout-properties.tsx +299 -28
  169. package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +120 -150
  170. package/corpus/templates/design/app/components/design/edit-panel/position-helpers.ts +53 -1
  171. package/corpus/templates/design/app/components/design/edit-panel/position-layout-properties.tsx +284 -117
  172. package/corpus/templates/design/app/components/design/edit-panel/selection-helpers.ts +81 -0
  173. package/corpus/templates/design/app/components/design/edit-panel/stroke-properties.tsx +19 -14
  174. package/corpus/templates/design/app/components/design/edit-panel/style-options.ts +7 -0
  175. package/corpus/templates/design/app/components/design/edit-panel/typography-helpers.ts +155 -0
  176. package/corpus/templates/design/app/components/design/edit-panel/typography-properties.tsx +268 -46
  177. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +350 -31
  178. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +13 -4
  179. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +233 -23
  180. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +72 -2
  181. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +51 -11
  182. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +84 -11
  183. package/corpus/templates/design/app/components/design/inspector/index.ts +3 -0
  184. package/corpus/templates/design/app/components/design/keyboard-shortcuts.ts +552 -0
  185. package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +157 -0
  186. package/corpus/templates/design/app/components/design/multi-screen/frame-geometry.ts +53 -0
  187. package/corpus/templates/design/app/components/design/multi-screen/overview-layout.ts +184 -0
  188. package/corpus/templates/design/app/components/design/multi-screen/primitive-drop-target.ts +403 -26
  189. package/corpus/templates/design/app/components/design/multi-screen/types.ts +20 -1
  190. package/corpus/templates/design/app/components/design/types.ts +33 -0
  191. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +59 -7
  192. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +119 -17
  193. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +275 -63
  194. package/corpus/templates/design/app/hooks/use-question-flow.ts +14 -3
  195. package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +67 -10
  196. package/corpus/templates/design/app/i18n/zh-TW.ts +91 -1
  197. package/corpus/templates/design/app/i18n-data.ts +1217 -10
  198. package/corpus/templates/design/app/i18n-keyboard-shortcuts.ts +577 -0
  199. package/corpus/templates/design/app/lib/agent-chat.ts +23 -0
  200. package/corpus/templates/design/app/lib/design-import.ts +24 -0
  201. package/corpus/templates/design/app/lib/figma-clipboard.ts +157 -0
  202. package/corpus/templates/design/app/lib/figma-svg-copy.ts +221 -0
  203. package/corpus/templates/design/app/pages/design-editor/code-layer-state.ts +143 -30
  204. package/corpus/templates/design/app/pages/design-editor/collab-sync.ts +15 -0
  205. package/corpus/templates/design/app/pages/design-editor/editor-session.ts +33 -0
  206. package/corpus/templates/design/app/pages/design-editor/editor-state.ts +38 -0
  207. package/corpus/templates/design/app/pages/design-editor/overview-annotation-context.ts +157 -0
  208. package/corpus/templates/design/app/pages/design-editor/overview-camera.ts +62 -6
  209. package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +245 -0
  210. package/corpus/templates/design/app/pages/design-editor/react-semantic-handoff.ts +586 -0
  211. package/corpus/templates/design/app/pages/design-editor/screen-auto-layout.ts +169 -0
  212. package/corpus/templates/design/app/pages/design-editor/selection-state.ts +201 -1
  213. package/corpus/templates/design/changelog/2026-07-09-added-underline-strikethrough-and-text-case-uppercase-lowerc.md +6 -0
  214. package/corpus/templates/design/changelog/2026-07-09-annotate-now-draws-across-the-all-screens-canvas-without-swi.md +6 -0
  215. package/corpus/templates/design/changelog/2026-07-09-auto-layout-children-can-now-be-dragged-into-freeform-screen.md +6 -0
  216. package/corpus/templates/design/changelog/2026-07-09-board-shapes-now-stay-visible-and-nest-correctly-across-the-.md +6 -0
  217. package/corpus/templates/design/changelog/2026-07-09-component-source-navigation-now-opens-reliably-from-the-insp.md +6 -0
  218. package/corpus/templates/design/changelog/2026-07-09-cross-screen-local-react-layer-moves-now-hand-off-exact-sour.md +6 -0
  219. package/corpus/templates/design/changelog/2026-07-09-cross-screen-moves-undo-and-redo-now-keep-both-screens-stabl.md +6 -0
  220. package/corpus/templates/design/changelog/2026-07-09-detach-a-component-instance-into-plain-editable-eleme.md +6 -0
  221. package/corpus/templates/design/changelog/2026-07-09-dragging-layers-into-auto-layout-now-respects-ignore-auto-la.md +6 -0
  222. package/corpus/templates/design/changelog/2026-07-09-drawing-annotations-sent-to-the-agent-now-include-a-rendered.md +6 -0
  223. package/corpus/templates/design/changelog/2026-07-09-editor-sidebars-now-use-figma-matched-default-widths-for-a-r.md +6 -0
  224. package/corpus/templates/design/changelog/2026-07-09-empty-frames-and-rectangles-now-expose-full-auto-layout-cont.md +6 -0
  225. package/corpus/templates/design/changelog/2026-07-09-export-any-design-screen-as-a-real-vector-svg-for-figma-with.md +6 -0
  226. package/corpus/templates/design/changelog/2026-07-09-grid-auto-layout-now-uses-true-responsive-rows-and-columns-w.md +6 -0
  227. package/corpus/templates/design/changelog/2026-07-09-hidden-and-locked-screens-now-behave-consistently-between-la.md +6 -0
  228. package/corpus/templates/design/changelog/2026-07-09-image-fills-now-preserve-valid-urls-and-layered-fit-settings.md +6 -0
  229. package/corpus/templates/design/changelog/2026-07-09-import-figma-frames-as-pixel-accurate-design-screens-via-a-s.md +6 -0
  230. package/corpus/templates/design/changelog/2026-07-09-inspect-code-now-hides-internal-styling-metadata-and-wraps-l.md +6 -0
  231. package/corpus/templates/design/changelog/2026-07-09-inspector-blur-and-shadow-effects-now-preserve-other-effects.md +6 -0
  232. package/corpus/templates/design/changelog/2026-07-09-jump-to-a-components-other-instances-from-the-inspecto.md +6 -0
  233. package/corpus/templates/design/changelog/2026-07-09-keyboard-shortcuts-are-now-discoverable-in-a-figma-style-bot.md +6 -0
  234. package/corpus/templates/design/changelog/2026-07-09-layer-selection-now-keeps-cmd-or-ctrl-toggles-and-shift-rang.md +6 -0
  235. package/corpus/templates/design/changelog/2026-07-09-layers-dropped-into-auto-layout-now-participate-correctly-in.md +6 -0
  236. package/corpus/templates/design/changelog/2026-07-09-local-live-edit-screens-now-enter-and-leave-full-view-withou.md +6 -0
  237. package/corpus/templates/design/changelog/2026-07-09-local-preview-urls-now-live-in-the-inspector-instead-of-taki.md +6 -0
  238. package/corpus/templates/design/changelog/2026-07-09-local-react-layers-can-now-be-hidden-and-locked-from-layers-.md +6 -0
  239. package/corpus/templates/design/changelog/2026-07-09-local-react-layers-now-keep-exact-source-provenance-and-supp.md +6 -0
  240. package/corpus/templates/design/changelog/2026-07-09-local-react-visual-editing-now-loads-reliably-and-shows-live.md +6 -0
  241. package/corpus/templates/design/changelog/2026-07-09-paste-from-figma-cmd-v-now-imports-exact-editable-nodes-when.md +6 -0
  242. package/corpus/templates/design/changelog/2026-07-09-pressing-escape-after-selecting-a-screen-now-reveals-page-pr.md +6 -0
  243. package/corpus/templates/design/changelog/2026-07-09-right-click-overlapping-or-nested-objects-to-choose-the-exac.md +6 -0
  244. package/corpus/templates/design/changelog/2026-07-09-scale-edge-stretch-and-center-constraints-now-preserve-layer.md +6 -0
  245. package/corpus/templates/design/changelog/2026-07-09-screen-rows-can-now-be-reordered-in-layers-with-matching-can.md +6 -0
  246. package/corpus/templates/design/changelog/2026-07-09-screen-selection-stays-responsive-in-designs-with-hundreds-o.md +6 -0
  247. package/corpus/templates/design/changelog/2026-07-09-shift-a-now-enables-auto-layout-on-a-selected-screen-with-fl.md +6 -0
  248. package/corpus/templates/design/changelog/2026-07-09-swap-a-component-instance-for-another-from-the-libra.md +6 -0
  249. package/corpus/templates/design/changelog/2026-07-10-drawing-annotations-now-stay-available-to-retry-when-the.md +6 -0
  250. package/corpus/templates/design/e2e/global-setup.ts +3 -6
  251. package/corpus/templates/design/e2e/helpers.ts +27 -6
  252. package/corpus/templates/design/server/lib/design-to-figma-svg.ts +1412 -0
  253. package/corpus/templates/design/server/lib/figma-clipboard-match.ts +196 -0
  254. package/corpus/templates/design/server/lib/figma-node-import.ts +311 -0
  255. package/corpus/templates/design/server/lib/figma-node-to-html.ts +1334 -0
  256. package/corpus/templates/design/server/lib/figma-paste-fallback.ts +64 -0
  257. package/corpus/templates/design/server/lib/playwright-runtime.ts +78 -0
  258. package/corpus/templates/design/server/plugins/db.ts +41 -0
  259. package/corpus/templates/design/server/source-workspace.ts +64 -0
  260. package/corpus/templates/design/shared/board-file.ts +13 -2
  261. package/corpus/templates/design/shared/canvas-math.ts +231 -33
  262. package/corpus/templates/design/shared/code-layer.ts +122 -8
  263. package/corpus/templates/design/shared/component-library.ts +161 -0
  264. package/corpus/templates/design/shared/db-conflict.ts +27 -0
  265. package/corpus/templates/design/shared/design-source-capabilities.ts +2 -1
  266. package/corpus/templates/design/shared/figma-url.ts +149 -0
  267. package/corpus/templates/design/shared/pen-path.ts +16 -7
  268. package/corpus/templates/design/shared/source-mode.ts +1 -0
  269. package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +7 -19
  270. package/corpus/templates/plan/changelog/2026-07-09-canvas-panning-now-keeps-zoom-fixed-even-at-the-edges.md +6 -0
  271. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +16 -1
  272. package/corpus/templates/slides/app/context/DeckContext.tsx +311 -70
  273. package/corpus/templates/slides/changelog/2026-07-09-fixed-the-slide-rail-going-permanently-stale-during-a-long-a.md +6 -0
  274. package/dist/agent/production-agent.d.ts +82 -7
  275. package/dist/agent/production-agent.d.ts.map +1 -1
  276. package/dist/agent/production-agent.js +180 -17
  277. package/dist/agent/production-agent.js.map +1 -1
  278. package/dist/agent/run-manager.d.ts.map +1 -1
  279. package/dist/agent/run-manager.js +63 -14
  280. package/dist/agent/run-manager.js.map +1 -1
  281. package/dist/agent/run-store.d.ts +46 -0
  282. package/dist/agent/run-store.d.ts.map +1 -1
  283. package/dist/agent/run-store.js +129 -22
  284. package/dist/agent/run-store.js.map +1 -1
  285. package/dist/cli/design-connect.d.ts +6 -0
  286. package/dist/cli/design-connect.d.ts.map +1 -1
  287. package/dist/cli/design-connect.js +336 -139
  288. package/dist/cli/design-connect.js.map +1 -1
  289. package/dist/cli/skills.d.ts.map +1 -1
  290. package/dist/cli/skills.js +14 -0
  291. package/dist/cli/skills.js.map +1 -1
  292. package/dist/client/AssistantChat.d.ts +2 -0
  293. package/dist/client/AssistantChat.d.ts.map +1 -1
  294. package/dist/client/AssistantChat.js +19 -3
  295. package/dist/client/AssistantChat.js.map +1 -1
  296. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  297. package/dist/client/MultiTabAssistantChat.js +38 -18
  298. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  299. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  300. package/dist/client/agent-chat-adapter.js +48 -12
  301. package/dist/client/agent-chat-adapter.js.map +1 -1
  302. package/dist/client/agent-chat.d.ts +60 -0
  303. package/dist/client/agent-chat.d.ts.map +1 -1
  304. package/dist/client/agent-chat.js +122 -1
  305. package/dist/client/agent-chat.js.map +1 -1
  306. package/dist/client/chat/index.d.ts +1 -1
  307. package/dist/client/chat/index.d.ts.map +1 -1
  308. package/dist/client/chat/index.js +1 -1
  309. package/dist/client/chat/index.js.map +1 -1
  310. package/dist/client/extensions/EmbeddedExtension.d.ts +12 -0
  311. package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
  312. package/dist/client/extensions/EmbeddedExtension.js +36 -2
  313. package/dist/client/extensions/EmbeddedExtension.js.map +1 -1
  314. package/dist/client/index.d.ts +1 -1
  315. package/dist/client/index.d.ts.map +1 -1
  316. package/dist/client/index.js +1 -1
  317. package/dist/client/index.js.map +1 -1
  318. package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
  319. package/dist/client/rich-markdown-editor/useCollabReconcile.js +18 -6
  320. package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
  321. package/dist/collab/awareness-store.d.ts +5 -0
  322. package/dist/collab/awareness-store.d.ts.map +1 -1
  323. package/dist/collab/awareness-store.js +19 -12
  324. package/dist/collab/awareness-store.js.map +1 -1
  325. package/dist/collab/awareness.d.ts +2 -2
  326. package/dist/collab/awareness.d.ts.map +1 -1
  327. package/dist/collab/client.d.ts.map +1 -1
  328. package/dist/collab/client.js +13 -5
  329. package/dist/collab/client.js.map +1 -1
  330. package/dist/collab/index.d.ts +1 -0
  331. package/dist/collab/index.d.ts.map +1 -1
  332. package/dist/collab/index.js +1 -0
  333. package/dist/collab/index.js.map +1 -1
  334. package/dist/collab/recent-edits.d.ts +3 -1
  335. package/dist/collab/recent-edits.d.ts.map +1 -1
  336. package/dist/collab/recent-edits.js +57 -2
  337. package/dist/collab/recent-edits.js.map +1 -1
  338. package/dist/collab/struct-routes.d.ts +1 -1
  339. package/dist/index.browser.d.ts +1 -1
  340. package/dist/index.browser.d.ts.map +1 -1
  341. package/dist/index.browser.js +1 -1
  342. package/dist/index.browser.js.map +1 -1
  343. package/dist/observability/routes.d.ts +5 -5
  344. package/dist/progress/routes.d.ts +1 -1
  345. package/dist/resources/handlers.d.ts +3 -3
  346. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  347. package/dist/server/agent-chat-plugin.js +87 -10
  348. package/dist/server/agent-chat-plugin.js.map +1 -1
  349. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  350. package/dist/server/builder-design-systems.d.ts +15 -0
  351. package/dist/server/builder-design-systems.d.ts.map +1 -1
  352. package/dist/server/builder-design-systems.js +9 -4
  353. package/dist/server/builder-design-systems.js.map +1 -1
  354. package/package.json +1 -1
@@ -144,6 +144,11 @@ export interface UseDesignHotkeysProps {
144
144
  onZoomToSelection?: DesignHotkeyHandler;
145
145
  /** Figma's Cmd+Alt+K — create component from the current selection. */
146
146
  onCreateComponent?: DesignHotkeyHandler;
147
+ /**
148
+ * Figma's Cmd+Alt+B — Detach instance: convert the selected component
149
+ * instance into a plain, unlinked element.
150
+ */
151
+ onDetachInstance?: DesignHotkeyHandler;
147
152
  /**
148
153
  * Figma's plain digit 1-9 / 0 — set selection opacity (10-90%, 0 = 100%).
149
154
  * Only fires when a layer is selected (caller decides via presence of the
@@ -156,6 +161,12 @@ export interface UseDesignHotkeysProps {
156
161
  onToggleHidden?: DesignHotkeyHandler;
157
162
  /** Figma's Cmd+Shift+L — toggle lock/unlock for the current selection. */
158
163
  onToggleLocked?: DesignHotkeyHandler;
164
+ /** Figma's Cmd+U — toggle underline on the current text selection. */
165
+ onToggleUnderline?: DesignHotkeyHandler;
166
+ /** Figma's Cmd+Shift+X — toggle strikethrough on the current text
167
+ * selection. Checked before plain Cmd+X (cut) so the shift-held combo
168
+ * doesn't fall through to cut. */
169
+ onToggleStrikethrough?: DesignHotkeyHandler;
159
170
  /** Figma's Shift+H — flip the current selection horizontally. */
160
171
  onFlipHorizontal?: DesignHotkeyHandler;
161
172
  /** Figma's Shift+V — flip the current selection vertically. */
@@ -197,6 +208,8 @@ export interface UseDesignHotkeysProps {
197
208
  onToggleUi?: DesignHotkeyHandler;
198
209
  /** Figma's Shift+C — toggle Show/Hide comments (comment pins). */
199
210
  onToggleComments?: DesignHotkeyHandler;
211
+ /** Figma's Ctrl+Shift+? — open the keyboard-shortcuts reference panel. */
212
+ onShowKeyboardShortcuts?: DesignHotkeyHandler;
200
213
  }
201
214
 
202
215
  const TOOL_SHORTCUTS: Record<
@@ -269,6 +282,15 @@ export function isDesignHotkeyEditableTarget(target: EventTarget | null) {
269
282
  return tagName === "input" || tagName === "textarea" || tagName === "select";
270
283
  }
271
284
 
285
+ export function isShowKeyboardShortcutsHotkey(event: KeyboardEvent) {
286
+ return (
287
+ (event.ctrlKey || event.metaKey) &&
288
+ event.shiftKey &&
289
+ !event.altKey &&
290
+ normalizedKey(event) === "?"
291
+ );
292
+ }
293
+
272
294
  function isFocusableChromeTarget(target: EventTarget | null) {
273
295
  if (!target || typeof Element === "undefined") return false;
274
296
  if (!(target instanceof Element)) return false;
@@ -317,7 +339,8 @@ export function useDesignHotkeys(props: UseDesignHotkeysProps) {
317
339
  return;
318
340
  if (
319
341
  current.ignoreEditableTargets !== false &&
320
- isDesignHotkeyEditableTarget(event.target)
342
+ isDesignHotkeyEditableTarget(event.target) &&
343
+ !isShowKeyboardShortcutsHotkey(event)
321
344
  ) {
322
345
  return;
323
346
  }
@@ -336,7 +359,7 @@ export function useDesignHotkeys(props: UseDesignHotkeysProps) {
336
359
  }, [props.capture, props.enabled, props.target]);
337
360
  }
338
361
 
339
- function handleDesignHotkey(
362
+ export function handleDesignHotkey(
340
363
  event: KeyboardEvent,
341
364
  props: UseDesignHotkeysProps,
342
365
  ) {
@@ -398,6 +421,12 @@ function handleDesignHotkey(
398
421
  return true;
399
422
  };
400
423
 
424
+ // Keep shortcut help global, including while an inspector field or code
425
+ // editor owns focus. No other editing shortcut bypasses the editable guard.
426
+ if (isShowKeyboardShortcutsHotkey(event)) {
427
+ return run(props.onShowKeyboardShortcuts);
428
+ }
429
+
401
430
  if (!primary && !event.altKey && event.shiftKey) {
402
431
  // H1: shift+key variant (e.g. Shift+L → arrow tool) takes priority over
403
432
  // the base binding for the same key while shift is held.
@@ -425,7 +454,18 @@ function handleDesignHotkey(
425
454
  }
426
455
 
427
456
  if (event.key === "Escape") return run(props.onEscape);
428
- if (event.key === "Enter") return run(props.onEnter);
457
+ if (event.key === "Enter") {
458
+ // Figma: Enter drills into the selection (selects its first child /
459
+ // begins text editing); Shift+Enter is its sibling — select the
460
+ // selection's PARENT. Checked before the plain onEnter fallback so
461
+ // Shift+Enter doesn't just drill in again; falls back to onEnter when
462
+ // onSelectParent isn't wired so callers that haven't adopted it yet see
463
+ // unchanged behavior.
464
+ if (event.shiftKey && props.onSelectParent) {
465
+ return run(props.onSelectParent);
466
+ }
467
+ return run(props.onEnter);
468
+ }
429
469
  if (!primary && !event.altKey && !event.shiftKey && key === "\\") {
430
470
  return run(props.onSelectParent);
431
471
  }
@@ -450,9 +490,9 @@ function handleDesignHotkey(
450
490
  return run(props.onDelete);
451
491
  }
452
492
 
453
- // Current Figma: Cmd+Backspace ungroups. This intentionally differs from
454
- // the historical Shift+Cmd+G binding and must be checked after plain
455
- // Backspace deletion has been ruled out.
493
+ // Current Figma: Cmd+Backspace ungroups. Checked after plain Backspace
494
+ // deletion has been ruled out. Shift+Cmd+G (below, in the Cmd+G family) is
495
+ // a second, equally-supported binding for the same onUngroup handler.
456
496
  if (primary && !event.altKey && !event.shiftKey && key === "Backspace") {
457
497
  return run(props.onUngroup);
458
498
  }
@@ -476,7 +516,16 @@ function handleDesignHotkey(
476
516
  if (primary && !event.altKey && !event.shiftKey && key === "a") {
477
517
  return run(props.onSelectAll);
478
518
  }
519
+ // Figma's Cmd+Shift+X — toggle strikethrough. Must be checked before plain
520
+ // Cmd+X (cut) below, since that check doesn't itself gate on shiftKey.
521
+ if (primary && event.shiftKey && key === "x") {
522
+ return run(props.onToggleStrikethrough);
523
+ }
479
524
  if (primary && key === "x") return run(props.onCut);
525
+ // Figma's Cmd+U — toggle underline. No existing binding claims plain "u".
526
+ if (primary && !event.altKey && !event.shiftKey && key === "u") {
527
+ return run(props.onToggleUnderline);
528
+ }
480
529
 
481
530
  // Current Figma: Ctrl+Alt+H / Ctrl+Alt+V — distribute evenly. These use
482
531
  // literal Control even on macOS, so resolve them before the primary+V
@@ -527,11 +576,14 @@ function handleDesignHotkey(
527
576
  return run(props.onToggleLocked);
528
577
  }
529
578
  if (primary && key === "g") {
530
- // Figma: ⌥⌘G is "Frame selection". Current Figma ungroups with
531
- // Cmd+Backspace, so the historical Shift+Cmd+G binding is deliberately
532
- // left unhandled.
579
+ // Figma: ⌥⌘G is "Frame selection". Current Figma's primary ungroup chord
580
+ // is Cmd+Backspace (see below), but Shift+Cmd+G is the long-standing
581
+ // historical ungroup binding and the app's own context-menu "Ungroup"
582
+ // item performs the identical action (handleUngroupSelection) — leaving
583
+ // this chord dead while the menu item works is a regression users hit,
584
+ // not an intentional gap. Support both bindings for ungroup.
533
585
  if (event.altKey) return run(props.onFrameSelection);
534
- if (event.shiftKey) return false;
586
+ if (event.shiftKey) return run(props.onUngroup);
535
587
  return run(props.onGroup);
536
588
  }
537
589
 
@@ -563,6 +615,11 @@ function handleDesignHotkey(
563
615
  return run(props.onCreateComponent);
564
616
  }
565
617
 
618
+ // Figma's Cmd+Alt+B — Detach instance.
619
+ if (primary && event.altKey && key === "b") {
620
+ return run(props.onDetachInstance);
621
+ }
622
+
566
623
  const digit = digitFromEvent(event);
567
624
  // Figma navigation tabs use literal Option/Alt, on both platforms. Resolve
568
625
  // these before digit opacity so the physical Digit1/Digit2 keys never leak
@@ -1,3 +1,9 @@
1
+ import {
2
+ attachLocalizedKeyboardShortcuts,
3
+ keyboardKeyLabels,
4
+ keyboardShortcutLabels,
5
+ } from "../i18n-keyboard-shortcuts";
6
+
1
7
  const messages = {
2
8
  root: {
3
9
  commandActions: "操作",
@@ -256,6 +262,22 @@ const messages = {
256
262
  right: "正確的",
257
263
  justify: "證明合法",
258
264
  },
265
+ textDecorations: {
266
+ underline: "底線",
267
+ strikethrough: "刪除線",
268
+ },
269
+ textCases: {
270
+ none: "無",
271
+ uppercase: "大寫",
272
+ lowercase: "小寫",
273
+ capitalize: "單字首字母大寫",
274
+ },
275
+ typographyDetails: {
276
+ basicsTab: "基本",
277
+ detailsTab: "詳細資料",
278
+ decorationLabel: "文字裝飾",
279
+ caseLabel: "大小寫",
280
+ },
259
281
  flexDirections: {
260
282
  row: "排",
261
283
  column: "柱子",
@@ -322,6 +344,41 @@ const messages = {
322
344
  },
323
345
  designEditor: {
324
346
  askAgent: "詢問代理",
347
+ componentInstances: {
348
+ selectLayer: "選取圖層",
349
+ goToMain: "前往主要元件",
350
+ swap: "交換實例",
351
+ detach: "卸離實例",
352
+ searchComponents: "搜尋元件…",
353
+ loading: "載入中…",
354
+ noOtherComponents: "找不到其他元件",
355
+ goToMainUnavailable: "目前無法前往主要元件。",
356
+ onlyKnownInstance: "這是此元件唯一已知的實例。",
357
+ resolveMainFailed: "無法解析主要元件。",
358
+ detachFailed: "無法卸離此實例。",
359
+ detached: "實例已卸離。",
360
+ swapFailed: "無法交換此實例。",
361
+ swappedFor: "已交換為「{{name}}」。",
362
+ openPanelNudge: "請使用「元件」面板中的「交換實例」選擇器。",
363
+ openPanelFailed: "無法開啟元件面板。",
364
+ },
365
+ makeItRealCard: {
366
+ open: "開啟",
367
+ choose: "選擇",
368
+ connect: "連接",
369
+ generating: "生成中",
370
+ generate: "生成",
371
+ migrationFailed: "遷移失敗,請再試一次。",
372
+ },
373
+ componentProps: {
374
+ alpineTooComplexToEdit:
375
+ "無法安全地就地編輯此屬性——此元件的 Alpine 狀態過於複雜。請改為編輯原始碼。",
376
+ label: "屬性",
377
+ },
378
+ componentSource: {
379
+ editSource: "編輯元件原始碼",
380
+ needsConnectedApp: "跳轉原始碼需要連接應用程式",
381
+ },
325
382
  breakpointBar: {
326
383
  base: "基礎",
327
384
  editBaseWidth: "編輯基礎寬度",
@@ -427,6 +484,11 @@ const messages = {
427
484
  figmaPasteDescription:
428
485
  "在 Figma 複製畫框或圖層,然後貼到 Design 畫布。Design 會匯入可見的剪貼簿 HTML。",
429
486
  figmaPasteTarget: "貼到畫布",
487
+ figmaPasteApiKeyHint: "連結您的 Figma 存取權杖以取得精確的節點匯入。",
488
+ figmaPasteMatchGuidance:
489
+ "無法比對到特定的 Figma 節點。請改貼上畫框連結以進行精確匯入。",
490
+ figmaPasteRestLabel: "透過 Figma API 匯入",
491
+ figmaPasteHtmlLabel: "從剪貼簿預覽匯入",
430
492
  figUploadTitle: "上傳 .fig",
431
493
  figUploadDescription:
432
494
  "只匯出需要的畫框。含有許多嵌入圖片的大型檔案可能超過匯入限制。",
@@ -648,6 +710,12 @@ const messages = {
648
710
  openScreenSvg: "匯出 SVG 前請先開啟一個螢幕",
649
711
  svgDownloaded: "SVG 已下載",
650
712
  svgExportError: "無法匯出 SVG",
713
+ figmaSvgCopied: "已複製為 Figma SVG",
714
+ figmaSvgUnsupported: "此瀏覽器無法將 SVG 圖像複製到剪貼簿",
715
+ figmaSvgBlocked: "請允許存取剪貼簿以複製此 SVG",
716
+ figmaSvgWriteError: "無法將 SVG 複製到剪貼簿",
717
+ figmaSvgRenderError: "無法建立 Figma SVG",
718
+ figmaSvgExportError: "無法匯出 Figma SVG",
651
719
  screenDuplicated: "畫面已複製",
652
720
  screenDuplicateError: "無法複製畫面",
653
721
  copied: "已複製",
@@ -665,6 +733,8 @@ const messages = {
665
733
  undoSkippedConcurrentEdit: "已略過復原 — 其他人移動了該項目",
666
734
  redoSkippedConcurrentEdit: "已略過重做 — 其他人移動了該項目",
667
735
  autoLayoutScreensUnsupported: "新增自動布局不適用於畫面",
736
+ reactSourceAnchorsLoading:
737
+ "React 原始碼錨點仍在載入中。請等本機應用程式完成渲染後再試一次。",
668
738
  },
669
739
  },
670
740
  layersPanel: {
@@ -701,6 +771,14 @@ const messages = {
701
771
  frameSelection: "將選取範圍建立畫框",
702
772
  flipHorizontal: "水平翻轉",
703
773
  flipVertical: "垂直翻轉",
774
+ dragGhostCount: "{{count}} 個圖層",
775
+ },
776
+ designCanvas: {
777
+ localBridge: {
778
+ confirmationRetryExhausted: "多次嘗試後,即時編輯器橋接器仍未確認連線。",
779
+ connectionNotConfirmed:
780
+ "即時編輯器橋接器未確認連線。本機開發伺服器是否仍在執行?",
781
+ },
704
782
  },
705
783
  multiScreenCanvas: {
706
784
  duplicate: "複製",
@@ -756,6 +834,8 @@ const messages = {
756
834
  assetsNoImageUrl: "Assets 未回傳圖片 URL。",
757
835
  assetAdded: "新增資產",
758
836
  failedToUploadFile: "上傳檔案失敗",
837
+ failedToSubmitPrompt: "無法提交提示",
838
+ skipPrompt: "略過提示",
759
839
  designSystem: "Design系統",
760
840
  noDesignSystem: "沒有設計系統",
761
841
  newDesignSystem: "新",
@@ -784,8 +864,11 @@ const messages = {
784
864
  offline: "離線",
785
865
  saving: "儲存...",
786
866
  clearedAllAnnotations: "已清除所有批注",
867
+ annotationsDiscardedOnViewChange:
868
+ "離開此檢視畫面時,{{count}} 則未傳送的批注已被捨棄。",
787
869
  undo: "復原",
788
870
  send: "傳送",
871
+ sendingDrawing: "正在傳送…",
789
872
  commentSent: "評論已傳送",
790
873
  comment: "評論",
791
874
  annotationQueue: "註記佇列",
@@ -799,6 +882,9 @@ const messages = {
799
882
  nearText: "靠近「{{text}}」",
800
883
  submitShortcut: "{{mod}}+Enter 送出",
801
884
  queue: "排隊",
885
+ queuedCommentsDiscarded:
886
+ "{{count}} 個未傳送的評論草稿已在你離開此檢視時捨棄。",
887
+ staleAnchorDetail: "在畫布上已找不到原始元素。",
802
888
  pinStatus: {
803
889
  deterministic: {
804
890
  label: "確定性",
@@ -1085,4 +1171,8 @@ const messages = {
1085
1171
  },
1086
1172
  };
1087
1173
 
1088
- export default messages;
1174
+ export default attachLocalizedKeyboardShortcuts(
1175
+ messages,
1176
+ keyboardShortcutLabels["zh-TW"],
1177
+ keyboardKeyLabels["zh-TW"],
1178
+ );