@agent-native/core 0.79.27 → 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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +34 -0
- package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +55 -1
- package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +66 -1
- package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +65 -1
- package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +64 -1
- package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +59 -1
- package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +62 -1
- package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +58 -1
- package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +62 -1
- package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +50 -1
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +52 -1
- package/corpus/core/docs/content/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/template-design.mdx +59 -1
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/agent/engine/index.ts +1 -0
- package/corpus/core/src/agent/engine/registry.ts +40 -0
- package/corpus/core/src/agent/production-agent.ts +6 -2
- package/corpus/core/src/application-state/handlers.ts +1 -1
- package/corpus/core/src/brand-kit/index.ts +1 -1
- package/corpus/core/src/cli/design-connect.ts +490 -0
- package/corpus/core/src/cli/index.ts +16 -0
- package/corpus/core/src/cli/skills.ts +144 -3
- package/corpus/core/src/client/AgentPanel.tsx +1 -1
- package/corpus/core/src/client/AssistantChat.tsx +43 -7
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +1 -1
- package/corpus/core/src/client/agent-chat.ts +27 -3
- package/corpus/core/src/client/blocks/library/MermaidBlock.tsx +1 -1
- package/corpus/core/src/client/blocks/library/diagram.tsx +2 -2
- package/corpus/core/src/client/blocks/library/wireframe.tsx +1 -1
- package/corpus/core/src/client/chat/message-components.tsx +1 -1
- package/corpus/core/src/client/chat-model-groups.ts +1 -2
- package/corpus/core/src/client/components/LiveCursorOverlay.tsx +33 -66
- package/corpus/core/src/client/composer/TiptapComposer.tsx +99 -24
- package/corpus/core/src/client/composer/useVoiceDictation.ts +429 -260
- package/corpus/core/src/client/extensions/portable-extension.ts +1 -1
- package/corpus/core/src/client/frame-protocol.ts +17 -2
- package/corpus/core/src/client/rich-markdown-editor/RegistryBlockNode.tsx +2 -2
- package/corpus/core/src/client/sharing/ShareButton.tsx +20 -15
- package/corpus/core/src/client/use-agent-engine-configured.ts +80 -28
- package/corpus/core/src/code-agents/transcript-normalizer.ts +1 -1
- package/corpus/core/src/extensions/path.ts +1 -4
- package/corpus/core/src/integrations/a2a-continuation-processor.ts +1 -1
- package/corpus/core/src/mcp/build-server.ts +1 -1
- package/corpus/core/src/org/handlers.ts +5 -5
- package/corpus/core/src/org/plugin.ts +2 -2
- package/corpus/core/src/scripts/call-agent.ts +1 -1
- package/corpus/core/src/scripts/db/safety.ts +1 -1
- package/corpus/core/src/server/auth.ts +3 -0
- package/corpus/core/src/server/builder-design-systems.ts +308 -0
- package/corpus/core/src/server/core-routes-plugin.ts +29 -3
- package/corpus/core/src/server/index.ts +8 -0
- package/corpus/core/src/server/transcribe-voice.ts +57 -22
- package/corpus/core/src/shared/mcp-embed-headers.ts +23 -1
- package/corpus/core/src/styles/agent-native.css +60 -4
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- package/corpus/core/src/usage/store.ts +2 -2
- package/corpus/core/src/vite/client.ts +2 -0
- package/corpus/core/src/voice/index.ts +18 -0
- package/corpus/core/src/voice/voice-cleanup-prompt.ts +38 -0
- package/corpus/core/src/voice/voice-context.ts +217 -0
- package/corpus/core/src/voice/voice-replacements.ts +75 -0
- package/corpus/templates/analytics/AGENTS.md +4 -3
- package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +298 -15
- package/corpus/templates/analytics/actions/get-sql-dashboard.ts +9 -4
- package/corpus/templates/analytics/actions/list-session-recordings.ts +6 -1
- package/corpus/templates/analytics/actions/mutate-dashboard.ts +18 -2
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +12 -2
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +557 -400
- package/corpus/templates/analytics/app/global.css +0 -4
- package/corpus/templates/analytics/app/hooks/use-replay-storage-status.ts +66 -0
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +39 -0
- package/corpus/templates/analytics/app/i18n-data.ts +424 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +333 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +121 -3
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +82 -34
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +7 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +144 -36
- package/corpus/templates/analytics/changelog/2026-06-28-ask-tab-now-matches-the-darker-app-background.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-dashboard-email-reports-now-use-cleaner-light-mode-snapshots.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-sessions-now-show-only-signed-in-recordings-with-playable-re.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-analytics-agents-can-now-place-new-charts-into-requested-das.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-analytics-queries-now-report-failed-source-query-errors-inst.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-charts-can-now-be-dropped-between-full-dashboard-rows-to-cre.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-dashboard-email-reports-include-the-full-dashboard-image-wit.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-main-surface-border-reaches-the-top.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-session-replay-now-records-playable-sessions-in-production-a.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-set-up-session-replay-storage-from-settings-connect-builder-.md +6 -0
- package/corpus/templates/analytics/scripts/cleanup-empty-session-recordings.ts +102 -0
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +3 -3
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +75 -30
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +5 -2
- package/corpus/templates/analytics/server/lib/real-data-actions.ts +81 -20
- package/corpus/templates/analytics/server/lib/replay-storage.ts +79 -0
- package/corpus/templates/analytics/server/lib/s3-upload-provider.ts +255 -0
- package/corpus/templates/analytics/server/lib/session-replay.ts +53 -12
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -2
- package/corpus/templates/analytics/server/plugins/onboarding.ts +97 -0
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -4
- package/corpus/templates/assets/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +29 -2
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +131 -42
- package/corpus/templates/brain/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/brain/app/i18n-data.ts +20 -0
- package/corpus/templates/brain/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +29 -1
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +417 -299
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/calendar/app/i18n-data.ts +20 -0
- package/corpus/templates/calendar/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +6 -19
- package/corpus/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/clips/AGENTS.md +4 -0
- package/corpus/templates/clips/actions/cleanup-transcript.ts +39 -9
- package/corpus/templates/clips/actions/finalize-meeting.ts +81 -12
- package/corpus/templates/clips/actions/lib/agents-md-context.ts +4 -1
- package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
- package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +1 -1
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +2 -2
- package/corpus/templates/clips/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
- package/corpus/templates/clips/desktop/src/lib/personal-vocabulary.ts +13 -8
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +24 -0
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +105 -5
- package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +60 -1
- package/corpus/templates/content/actions/set-image-alt-text.ts +1 -1
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +1 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +1 -1
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +5 -5
- package/corpus/templates/content/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/content/shared/document-export.ts +1 -1
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -18
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +154 -0
- package/corpus/templates/design/AGENTS.md +95 -5
- package/corpus/templates/design/DESIGN.md +82 -0
- package/corpus/templates/design/DEVELOPING.md +43 -0
- package/corpus/templates/design/actions/add-localhost-screens.ts +453 -0
- package/corpus/templates/design/actions/apply-shader.ts +277 -0
- package/corpus/templates/design/actions/apply-visual-edit.ts +303 -0
- package/corpus/templates/design/actions/connect-localhost.ts +183 -0
- package/corpus/templates/design/actions/edit-design.ts +195 -42
- package/corpus/templates/design/actions/generate-design.ts +71 -1
- package/corpus/templates/design/actions/generate-screens.ts +193 -0
- package/corpus/templates/design/actions/get-code-layer-projection.ts +191 -0
- package/corpus/templates/design/actions/get-shader.ts +119 -0
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +259 -0
- package/corpus/templates/design/actions/list-localhost-connections.ts +95 -0
- package/corpus/templates/design/actions/navigate.ts +55 -2
- package/corpus/templates/design/actions/update-file.ts +9 -2
- package/corpus/templates/design/actions/view-screen.ts +68 -1
- package/corpus/templates/design/agent-native.app-skill.json +10 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +719 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +2120 -103
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +74 -38
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +401 -0
- package/corpus/templates/design/app/components/design/EditPanel.tsx +3966 -440
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +1473 -0
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +3940 -147
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +700 -13
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +105 -63
- package/corpus/templates/design/app/components/design/index.ts +0 -5
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +353 -0
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +1589 -0
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +511 -0
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +395 -0
- package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +2010 -0
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +601 -0
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +242 -0
- package/corpus/templates/design/app/components/design/inspector/SHADER_INTEGRATION.md +420 -0
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +238 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.stories.tsx +71 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +575 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +106 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +423 -0
- package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +741 -0
- package/corpus/templates/design/app/components/design/inspector/index.ts +87 -0
- package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +201 -0
- package/corpus/templates/design/app/components/design/types.ts +23 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +24 -13
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +4 -4
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +474 -36
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +22 -5
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +24 -11
- package/corpus/templates/design/app/global.css +149 -5
- package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -0
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +130 -8
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +329 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +277 -0
- package/corpus/templates/design/app/i18n-data.ts +3028 -1
- package/corpus/templates/design/app/pages/DesignEditor.tsx +5831 -904
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +57 -221
- package/corpus/templates/design/changelog/2026-06-28-annotate-mode-now-combines-drawing-and-comment-pins-in-one-c.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-design-editor-panel-borders-are-cleaner-so-the-canvas-edge-s.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-drawing-prompts-now-reliably-open-and-submit-to-the-design-a.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-editor-app-menus-now-use-an-outline-agent-native-mark-with-b.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-figma-style-code-design-mode.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-layer-selection-now-updates-chat-context-without-opening-the.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-layer-selections-now-preserve-hidden-and-locked-canvas-state.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-live-cursors-now-keep-names-beside-a-cleaner-pointer-marker.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-mode-switching-now-lives-in-a-compact-bottom-right-icon-dock.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-handles-zooming-drawing-opening-and-dele.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-selects-screens-on-click-and-opens-them-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-screen-overview-zooms-into-the-active-screen-with-smoother-e.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-selected-element-chips-in-chat-are-shorter-and-easier-to-sca.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-the-design-editor-toolbar-is-more-compact-and-the-app-menu-m.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-at-the-top-of-the-design-sidebar-instead-of-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-in-the-right-inspector-beside-the-design-tab.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-active-sidebar-rows-use-soft-highlights.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-agents-can-now-open-screen-overview-focus-screens-and-add.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-canvas-selection-no-longer-flashes-broken-prototype-html-whe.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-command-menu-selections-are-clearer-in-dark-mode.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-agents-now-edit-broad-copy-changes-more-reliably.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-editor-extensions-now-run-inline-beside-the-artboard.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-mode-top-chrome-now-groups-collaborators-preview-shar.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-element-selection-now-stays-on-the-intended-layer-after-sele.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-full-view-controls-now-sit-above-frames-inst.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-tools-can-draw-shapes-create-screens-and-kee.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-sidebars-use-darker-chrome-and-chat-warns-immediately.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-pen-tool-now-creates-anchor-based-bezier-vectors-with-ha.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-visual-edit-can-open-localhost-routes-as-url-backed-screens.md +6 -0
- package/corpus/templates/design/package.json +1 -0
- package/corpus/templates/design/server/db/schema.ts +26 -0
- package/corpus/templates/design/server/handlers/import-figma-system.ts +38 -85
- package/corpus/templates/design/server/lib/design-snapshot.ts +9 -1
- package/corpus/templates/design/server/plugins/agent-chat.ts +3 -0
- package/corpus/templates/design/shared/api.ts +27 -0
- package/corpus/templates/design/shared/canvas-frames.ts +103 -0
- package/corpus/templates/design/shared/canvas-math.ts +1058 -0
- package/corpus/templates/design/shared/code-layer.ts +2412 -0
- package/corpus/templates/design/shared/color-utils.ts +180 -0
- package/corpus/templates/design/shared/generation-session.ts +61 -0
- package/corpus/templates/design/shared/html-content.ts +21 -0
- package/corpus/templates/design/shared/pen-path.ts +207 -0
- package/corpus/templates/design/shared/shader-presets.ts +782 -0
- package/corpus/templates/design/shared/shader-safety.ts +137 -0
- package/corpus/templates/design/shared/source-mode.ts +237 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +149 -6
- package/corpus/templates/forms/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/forms/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
- package/corpus/templates/forms/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/forms/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/forms/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/forms/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/forms/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/forms/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/forms/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +2 -2
- package/corpus/templates/macros/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +408 -247
- package/corpus/templates/mail/app/i18n/ar-SA.ts +4 -0
- package/corpus/templates/mail/app/i18n/de-DE.ts +4 -0
- package/corpus/templates/mail/app/i18n/en-US.ts +4 -0
- package/corpus/templates/mail/app/i18n/es-ES.ts +4 -0
- package/corpus/templates/mail/app/i18n/fr-FR.ts +4 -0
- package/corpus/templates/mail/app/i18n/hi-IN.ts +4 -0
- package/corpus/templates/mail/app/i18n/ja-JP.ts +4 -0
- package/corpus/templates/mail/app/i18n/ko-KR.ts +4 -0
- package/corpus/templates/mail/app/i18n/pt-BR.ts +4 -0
- package/corpus/templates/mail/app/i18n/zh-CN.ts +4 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/mail/app/lib/utils.ts +2 -2
- package/corpus/templates/mail/changelog/2026-06-28-pinned-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +6 -8
- package/corpus/templates/plan/app/components/plan/wireframe/Wireframe.tsx +1 -1
- package/corpus/templates/plan/app/global.css +61 -78
- package/corpus/templates/plan/app/pages/PlansPage.tsx +8 -0
- package/corpus/templates/plan/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-plans-use-the-shared-neutral-light-and-dark-theme.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-sending-open-feedback-from-a-plan-now-opens-the-inline-plan-.md +6 -0
- package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -10
- package/corpus/templates/slides/AGENTS.md +3 -2
- package/corpus/templates/slides/actions/import-file.ts +26 -17
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +259 -0
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +35 -167
- package/corpus/templates/slides/app/components/design-system/fig-import-response.ts +9 -13
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/slides/app/context/DeckContext.tsx +1 -1
- package/corpus/templates/slides/app/i18n/ar-SA.ts +9 -37
- package/corpus/templates/slides/app/i18n/de-DE.ts +10 -25
- package/corpus/templates/slides/app/i18n/en-US.ts +9 -26
- package/corpus/templates/slides/app/i18n/es-ES.ts +10 -28
- package/corpus/templates/slides/app/i18n/fr-FR.ts +10 -28
- package/corpus/templates/slides/app/i18n/hi-IN.ts +9 -26
- package/corpus/templates/slides/app/i18n/ja-JP.ts +10 -22
- package/corpus/templates/slides/app/i18n/ko-KR.ts +9 -23
- package/corpus/templates/slides/app/i18n/pt-BR.ts +10 -28
- package/corpus/templates/slides/app/i18n/zh-CN.ts +9 -22
- package/corpus/templates/slides/app/i18n/zh-TW.ts +9 -22
- package/corpus/templates/slides/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/slides/server/handlers/import-figma-system.ts +44 -12
- package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
- package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +1 -1
- package/corpus/templates/videos/app/components/Sidebar.tsx +2 -2
- package/corpus/templates/videos/app/components/layout/Layout.tsx +29 -2
- package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +113 -30
- package/corpus/templates/videos/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/videos/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/videos/app/i18n/en-US.ts +2 -0
- package/corpus/templates/videos/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/videos/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/videos/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/videos/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/videos/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/videos/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/videos/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/videos/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/videos/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +9 -0
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +37 -0
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +4 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/application-state/handlers.js +1 -1
- package/dist/application-state/handlers.js.map +1 -1
- package/dist/brand-kit/index.d.ts +1 -1
- package/dist/brand-kit/index.js +1 -1
- package/dist/brand-kit/index.js.map +1 -1
- package/dist/cli/design-connect.d.ts +52 -0
- package/dist/cli/design-connect.d.ts.map +1 -0
- package/dist/cli/design-connect.js +409 -0
- package/dist/cli/design-connect.js.map +1 -0
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/skills.d.ts +3 -0
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +139 -3
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +38 -8
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +6 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +17 -3
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/blocks/library/MermaidBlock.js +1 -1
- package/dist/client/blocks/library/MermaidBlock.js.map +1 -1
- package/dist/client/blocks/library/diagram.js +1 -1
- package/dist/client/blocks/library/diagram.js.map +1 -1
- package/dist/client/blocks/library/wireframe.js +1 -1
- package/dist/client/blocks/library/wireframe.js.map +1 -1
- package/dist/client/chat/message-components.js +1 -1
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat-model-groups.d.ts.map +1 -1
- package/dist/client/chat-model-groups.js +1 -2
- package/dist/client/chat-model-groups.js.map +1 -1
- package/dist/client/components/LiveCursorOverlay.d.ts +1 -2
- package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
- package/dist/client/components/LiveCursorOverlay.js +19 -40
- package/dist/client/components/LiveCursorOverlay.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +3 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +86 -24
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/useVoiceDictation.d.ts +9 -0
- package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
- package/dist/client/composer/useVoiceDictation.js +154 -32
- package/dist/client/composer/useVoiceDictation.js.map +1 -1
- package/dist/client/extensions/portable-extension.d.ts +1 -1
- package/dist/client/extensions/portable-extension.d.ts.map +1 -1
- package/dist/client/extensions/portable-extension.js.map +1 -1
- package/dist/client/frame-protocol.d.ts +17 -2
- package/dist/client/frame-protocol.d.ts.map +1 -1
- package/dist/client/frame-protocol.js.map +1 -1
- package/dist/client/rich-markdown-editor/RegistryBlockNode.js +2 -2
- package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts +2 -0
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +7 -6
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/use-agent-engine-configured.d.ts +5 -0
- package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
- package/dist/client/use-agent-engine-configured.js +51 -25
- package/dist/client/use-agent-engine-configured.js.map +1 -1
- package/dist/code-agents/transcript-normalizer.js +1 -1
- package/dist/code-agents/transcript-normalizer.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/extensions/path.d.ts +1 -1
- package/dist/extensions/path.d.ts.map +1 -1
- package/dist/extensions/path.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/integrations/a2a-continuation-processor.js +1 -1
- package/dist/integrations/a2a-continuation-processor.js.map +1 -1
- package/dist/mcp/build-server.d.ts +1 -1
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +5 -5
- package/dist/org/handlers.js +5 -5
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/plugin.js +2 -2
- package/dist/org/plugin.js.map +1 -1
- package/dist/scripts/call-agent.js +1 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/db/safety.js +1 -1
- package/dist/scripts/db/safety.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +3 -0
- package/dist/server/auth.js.map +1 -1
- package/dist/server/builder-design-systems.d.ts +28 -0
- package/dist/server/builder-design-systems.d.ts.map +1 -0
- package/dist/server/builder-design-systems.js +217 -0
- package/dist/server/builder-design-systems.js.map +1 -0
- package/dist/server/core-routes-plugin.d.ts +1 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +20 -3
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +40 -24
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/shared/mcp-embed-headers.d.ts +1 -0
- package/dist/shared/mcp-embed-headers.d.ts.map +1 -1
- package/dist/shared/mcp-embed-headers.js +20 -1
- package/dist/shared/mcp-embed-headers.js.map +1 -1
- package/dist/styles/agent-native.css +60 -4
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- package/dist/usage/store.js +2 -2
- package/dist/usage/store.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +2 -0
- package/dist/vite/client.js.map +1 -1
- package/dist/voice/index.d.ts +5 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +4 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/voice-cleanup-prompt.d.ts +6 -0
- package/dist/voice/voice-cleanup-prompt.d.ts.map +1 -0
- package/dist/voice/voice-cleanup-prompt.js +26 -0
- package/dist/voice/voice-cleanup-prompt.js.map +1 -0
- package/dist/voice/voice-context.d.ts +25 -0
- package/dist/voice/voice-context.d.ts.map +1 -0
- package/dist/voice/voice-context.js +156 -0
- package/dist/voice/voice-context.js.map +1 -0
- package/dist/voice/voice-replacements.d.ts +4 -0
- package/dist/voice/voice-replacements.d.ts.map +1 -0
- package/dist/voice/voice-replacements.js +52 -0
- package/dist/voice/voice-replacements.js.map +1 -0
- package/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
- package/docs/content/locales/ar-SA/template-design.mdx +55 -1
- package/docs/content/locales/de-DE/skills-guide.mdx +5 -0
- package/docs/content/locales/de-DE/template-design.mdx +66 -1
- package/docs/content/locales/es-ES/skills-guide.mdx +5 -0
- package/docs/content/locales/es-ES/template-design.mdx +65 -1
- package/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
- package/docs/content/locales/fr-FR/template-design.mdx +64 -1
- package/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
- package/docs/content/locales/hi-IN/template-design.mdx +59 -1
- package/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
- package/docs/content/locales/ja-JP/template-design.mdx +62 -1
- package/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
- package/docs/content/locales/ko-KR/template-design.mdx +58 -1
- package/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
- package/docs/content/locales/pt-BR/template-design.mdx +62 -1
- package/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
- package/docs/content/locales/zh-CN/template-design.mdx +50 -1
- package/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
- package/docs/content/locales/zh-TW/template-design.mdx +52 -1
- package/docs/content/skills-guide.mdx +5 -0
- package/docs/content/template-design.mdx +59 -1
- package/package.json +2 -1
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- package/corpus/templates/design/actions/import-figma-file.ts +0 -166
- package/corpus/templates/design/app/components/design/DesignToolbar.tsx +0 -339
- package/corpus/templates/design/app/components/design/PresentMode.tsx +0 -68
- package/corpus/templates/design/app/components/design/ViewportTabs.tsx +0 -149
- package/corpus/templates/design/app/components/design/ZoomControls.tsx +0 -157
- package/corpus/templates/slides/server/lib/fig-design-system.ts +0 -110
|
@@ -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
|
-
- **インポート** — `
|
|
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
|
|
|
@@ -350,6 +350,67 @@ UI のルートは `templates/design/app/routes/` の下にあります: `_index
|
|
|
350
350
|
|
|
351
351
|
デザインは単なるスタンドアロンの HTML/JSX ファイルであるため、エージェントは iframe がレンダリングし、すべてのエクスポート元と同じソースを編集します。変換する個別の「AI モックアップ」形式はありません。リンクされた設計システムはトークンと `custom_instructions` を提供し、エージェントは世代パスごとにそれを尊重します。プレビューでテキストまたは領域を選択し、Cmd+I を押して、エージェントをその部分に正確に集中させます。
|
|
352
352
|
|
|
353
|
+
### エディターモデル
|
|
354
|
+
|
|
355
|
+
Design は複数画面の作業では概要を最初に使います。生成後または大きな更
|
|
356
|
+
新後、エディターは画面概要を開きます。これは無限キャンバスで、各画面は
|
|
357
|
+
選択、移動、リサイズ、ドロップ、複製できる静的フレームです。集中スクロールやプロトタイプ操作が必要な画面では、フレームのフルビューボタンを使用します。
|
|
358
|
+
|
|
359
|
+
単一画面モードは、スクロール、プロトタイプ動作とのインタラクション、1
|
|
360
|
+
つのレンダリング済みファイル内の DOM/コードレイヤー編集に使います。レ
|
|
361
|
+
イヤーパネルもこの分離を反映します。画面は最上位フレームで、アクティブ
|
|
362
|
+
画面の下に DOM/コードレイヤーがネストされます。
|
|
363
|
+
|
|
364
|
+
コーディングエージェントがスタンドアロンのプロトタイプ 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
|
+
|
|
379
|
+
安定したレイヤー名には、意味のある要素に
|
|
380
|
+
`data-agent-native-layer-name` を追加します。Design はセマンティック/テ
|
|
381
|
+
キストのフォールバックより先にこれを使い、この属性を編集してレイヤー名
|
|
382
|
+
変更を永続化できます。Inline HTML は、テキスト、class、style、attribute、
|
|
383
|
+
ソース順、小さな構造変更のローカルコードレイヤー編集をサポートします。
|
|
384
|
+
ビジュアルコードレイヤー編集は現在 HTML のみです。Localhost source mode
|
|
385
|
+
はローカル route artboard を登録・解決できますが、ローカルファイルの読
|
|
386
|
+
み書きは明示的な権限制御が強化されるまで bridge contract のままです。
|
|
387
|
+
|
|
388
|
+
### Design エディター拡張機能
|
|
389
|
+
|
|
390
|
+
エディターには **Tweaks** の後に **Extensions** インスペクタータブがあり
|
|
391
|
+
ます。これは Design 専用のプラグインレーンのように機能します。ユーザー
|
|
392
|
+
は **+ Extension** をクリックしてエージェントに拡張機能を作成させるか、
|
|
393
|
+
`design.editor.inspector` スロットを宣言する拡張機能をインストールできま
|
|
394
|
+
す。
|
|
395
|
+
|
|
396
|
+
Design 拡張機能は、標準の拡張機能サンドボックスを通じてアートボードの
|
|
397
|
+
横にインライン表示されます。ホストは `window.slotContext` と
|
|
398
|
+
`window.onSlotContext(...)` の更新として、現在の `designId`、アクティブ
|
|
399
|
+
なファイル、画面一覧、選択中の画面 ID、選択中の要素メタデータ、表示モー
|
|
400
|
+
ド、ズーム、アクティブツール、tweak 値を渡します。これにより、拡張機能
|
|
401
|
+
は現在の選択に関する情報を表示したり、スタイル操作を提供したり、開いて
|
|
402
|
+
いるデザインの周辺に小さなワークフローを構築したりできます。
|
|
403
|
+
|
|
404
|
+
決定的な処理では、拡張機能は拡張機能ブリッジ経由で app actions を呼び
|
|
405
|
+
出せます。AI 主導の変更では、選択中の要素 selector/source id と要求され
|
|
406
|
+
た変更を含めて `agentNative.chat.send(...)` を呼び出すようにします。エー
|
|
407
|
+
ジェントはまず `view-screen` を呼び出し、要素の style、class、text、move
|
|
408
|
+
変更には `apply-visual-edit` を、アートボード配置の変更には `canvasFrames`
|
|
409
|
+
付きの `update-design` / `generate-design` を使うべきです。サンドボックス、
|
|
410
|
+
永続状態、ブリッジ API については
|
|
411
|
+
[Extensions](/docs/extensions#what-an-extension-can-do) を参照してくださ
|
|
412
|
+
い。
|
|
413
|
+
|
|
353
414
|
### カスタマイズ
|
|
354
415
|
|
|
355
416
|
デザインは完全な複製可能なテンプレートです。いくつかの実践的な拡張アイデア:
|
|
@@ -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
|
-
- **가져오기** — `
|
|
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
|
|
|
@@ -348,6 +348,63 @@ UI의 경로는 `templates/design/app/routes/` 아래에 있습니다: `_index.t
|
|
|
348
348
|
|
|
349
349
|
디자인은 독립형 HTML/JSX 파일이므로 에이전트는 iframe이 렌더링하고 모든 내보내기가 시작되는 동일한 소스를 편집합니다. 번역할 별도의 "AI 모형" 형식은 없습니다. 연결된 디자인 시스템은 에이전트가 모든 세대 패스에서 존중하는 토큰과 `custom_instructions`를 제공합니다. 미리보기에서 텍스트나 영역을 선택하고 Cmd+I를 눌러 상담사가 정확히 해당 부분에 집중하도록 합니다.
|
|
350
350
|
|
|
351
|
+
### 편집기 모델
|
|
352
|
+
|
|
353
|
+
Design은 여러 화면 작업에서 overview를 우선합니다. 생성 또는 넓은 업데이트
|
|
354
|
+
후 편집기는 screen overview를 엽니다. 이곳은 각 화면이 선택, 이동, 크기 조정,
|
|
355
|
+
드롭, 복제 가능한 정적 frame으로 배치되는 infinite canvas입니다. frame을 두
|
|
356
|
+
번 클릭하면 단일 화면에 집중합니다.
|
|
357
|
+
|
|
358
|
+
Single-screen mode는 스크롤, prototype behavior와의 상호작용, 하나의 렌더링된
|
|
359
|
+
파일 안의 DOM/code layers 편집에 사용합니다. Layers panel도 같은 구조를
|
|
360
|
+
반영합니다. screens는 top-level frames이고, active screen 아래에 nested
|
|
361
|
+
DOM/code layers가 표시됩니다.
|
|
362
|
+
|
|
363
|
+
코딩 에이전트가 독립형 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
|
+
|
|
376
|
+
안정적인 layer name을 위해 의미 있는 요소에 `data-agent-native-layer-name`을
|
|
377
|
+
추가하세요. Design은 semantic/text fallback보다 이것을 먼저 사용하며, 해당
|
|
378
|
+
attribute를 편집해 layer rename을 persist할 수 있습니다. Inline HTML은 text,
|
|
379
|
+
classes, styles, attributes, source order, 작은 structural changes에 대한 local
|
|
380
|
+
code-layer edits를 지원합니다. visual code-layer edits는 현재 HTML-only입니다.
|
|
381
|
+
Localhost source mode는 local route artboards를 register/resolve할 수 있지만,
|
|
382
|
+
local file reads/writes는 explicit permission controls가 harden될 때까지 bridge
|
|
383
|
+
contract로 남아 있습니다.
|
|
384
|
+
|
|
385
|
+
### Design 편집기 확장
|
|
386
|
+
|
|
387
|
+
편집기에는 **Tweaks** 뒤에 **Extensions** 검사기 탭이 있습니다. Design 전용
|
|
388
|
+
플러그인 레인처럼 작동합니다. 사용자는 **+ Extension**을 클릭해 에이전트에게
|
|
389
|
+
확장을 만들게 하거나 `design.editor.inspector` 슬롯을 선언한 확장을 설치할
|
|
390
|
+
수 있습니다.
|
|
391
|
+
|
|
392
|
+
Design 확장은 표준 확장 sandbox를 통해 artboard 옆에 inline으로 렌더링됩니다.
|
|
393
|
+
호스트는 현재 `designId`, 활성 파일, 화면 목록, 선택된 화면 id, 선택된 요소
|
|
394
|
+
메타데이터, 보기 모드, zoom, 활성 도구, tweak 값을 `window.slotContext`와
|
|
395
|
+
`window.onSlotContext(...)` 업데이트로 전달합니다. 이를 통해 확장은 현재
|
|
396
|
+
selection 정보를 표시하고, 스타일 컨트롤을 제공하거나, 열린 디자인 주변의
|
|
397
|
+
작은 워크플로를 만들 수 있습니다.
|
|
398
|
+
|
|
399
|
+
결정적인 작업의 경우 확장은 extension bridge를 통해 app actions를 호출할 수
|
|
400
|
+
있습니다. AI 기반 변경의 경우 선택된 요소 selector/source id와 요청한 변경을
|
|
401
|
+
담아 `agentNative.chat.send(...)`를 호출하게 하세요. 에이전트는 먼저
|
|
402
|
+
`view-screen`을 호출한 다음 요소 style, class, text, move 변경에는
|
|
403
|
+
`apply-visual-edit`를, artboard placement 변경에는 `canvasFrames`와 함께
|
|
404
|
+
`update-design` / `generate-design`를 사용해야 합니다. sandbox, persistent
|
|
405
|
+
state, bridge APIs는 [Extensions](/docs/extensions#what-an-extension-can-do)를
|
|
406
|
+
참조하세요.
|
|
407
|
+
|
|
351
408
|
### 맞춤 설정
|
|
352
409
|
|
|
353
410
|
디자인은 완전하고 복제 가능한 템플릿입니다. 실용적인 확장 아이디어:
|
|
@@ -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** — `
|
|
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
|
|
|
@@ -348,6 +348,67 @@ O agente sempre sabe o que você tem em aberto. O design atual, o arquivo aberto
|
|
|
348
348
|
|
|
349
349
|
Como um design consiste apenas em arquivos HTML/JSX independentes, o agente edita a mesma fonte que o iframe renderiza e de onde vem cada exportação — não há um formato de "maquete de IA" separado para traduzir. Um sistema de design vinculado fornece tokens e `custom_instructions` que o agente homenageia em cada passagem de geração. Selecione o texto ou uma região na visualização e pressione Cmd+I para focar o agente exatamente nessa parte.
|
|
350
350
|
|
|
351
|
+
### Modelo do editor
|
|
352
|
+
|
|
353
|
+
Design prioriza a visão geral para trabalhos com várias telas. Depois da
|
|
354
|
+
geração ou de atualizações amplas, o editor abre a visão geral de telas: uma
|
|
355
|
+
tela infinita onde cada tela é um frame estático que pode ser selecionado,
|
|
356
|
+
movido, redimensionado, solto ou duplicado. Use o botão de visualização completa
|
|
357
|
+
do frame quando uma tela precisar de rolagem focada ou interação de protótipo.
|
|
358
|
+
|
|
359
|
+
O modo de tela única serve para rolar, interagir com o comportamento do
|
|
360
|
+
protótipo e editar as camadas DOM/código dentro de um arquivo renderizado. O
|
|
361
|
+
painel de camadas reflete essa divisão: telas são frames de nível superior, com
|
|
362
|
+
camadas DOM/código aninhadas para a tela ativa.
|
|
363
|
+
|
|
364
|
+
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
|
+
|
|
377
|
+
Para nomes de camada estáveis, adicione `data-agent-native-layer-name` a
|
|
378
|
+
elementos importantes. O Design usa isso antes de fallbacks semânticos/de texto
|
|
379
|
+
e pode persistir renomeações editando esse atributo. HTML inline aceita edições
|
|
380
|
+
locais de camadas de código para texto, classes, estilos, atributos, ordem do
|
|
381
|
+
código-fonte e pequenas mudanças estruturais; edições visuais de camadas de
|
|
382
|
+
código são somente HTML hoje. O modo de fonte localhost pode registrar e
|
|
383
|
+
resolver artboards de rotas locais, mas leituras/escritas de arquivos locais
|
|
384
|
+
continuam sendo um contrato de bridge até que controles explícitos de permissão
|
|
385
|
+
sejam fortalecidos.
|
|
386
|
+
|
|
387
|
+
### Extensões do editor de Design
|
|
388
|
+
|
|
389
|
+
O editor inclui uma aba de inspetor **Extensions** depois de **Tweaks**. Ela
|
|
390
|
+
funciona como uma faixa de plugins específica do Design: os usuários podem
|
|
391
|
+
clicar em **+ Extension** para pedir ao agente que crie uma extensão, ou
|
|
392
|
+
instalar uma extensão que declare o slot `design.editor.inspector`.
|
|
393
|
+
|
|
394
|
+
As extensões do Design são renderizadas inline ao lado do artboard pelo sandbox
|
|
395
|
+
padrão de extensões. O host passa atualizações de `window.slotContext` e
|
|
396
|
+
`window.onSlotContext(...)` com o `designId` atual, arquivo ativo, lista de
|
|
397
|
+
telas, ids de telas selecionadas, metadados do elemento selecionado, modo de
|
|
398
|
+
visualização, zoom, ferramenta ativa e valores de tweaks. Isso permite que uma
|
|
399
|
+
extensão mostre informações sobre a seleção atual, ofereça controles de estilo
|
|
400
|
+
ou crie fluxos compactos ao redor do design aberto.
|
|
401
|
+
|
|
402
|
+
Para trabalho determinístico, as extensões podem chamar ações do app pelo
|
|
403
|
+
bridge de extensões. Para mudanças guiadas por IA, faça a extensão chamar
|
|
404
|
+
`agentNative.chat.send(...)` com o seletor/id de origem do elemento selecionado
|
|
405
|
+
e a mudança solicitada. O agente deve chamar `view-screen` primeiro e depois
|
|
406
|
+
usar `apply-visual-edit` para mudanças de estilo, classe, texto ou movimento de
|
|
407
|
+
elementos, ou `update-design` / `generate-design` com `canvasFrames` para
|
|
408
|
+
mudanças de posicionamento do artboard. Veja
|
|
409
|
+
[Extensions](/docs/extensions#what-an-extension-can-do) para o sandbox, estado
|
|
410
|
+
persistente e APIs do bridge.
|
|
411
|
+
|
|
351
412
|
### Personalizando
|
|
352
413
|
|
|
353
414
|
Design é um modelo completo e clonável. Algumas ideias práticas de extensão:
|
|
@@ -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
|
-
- **导入**
|
|
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
|
|
|
@@ -348,6 +348,55 @@ UI 中的路由位于 `templates/design/app/routes/` 下:`_index.tsx`(列表
|
|
|
348
348
|
|
|
349
349
|
因为设计只是独立的 HTML/JSX 文件,所以代理编辑 iframe 渲染和每个导出来自的相同源 - 没有单独的“AI 模型”格式需要翻译。链接设计系统提供代币和代理在每一代通行证上兑现的 `custom_instructions`。在预览中选择文本或区域,然后按 Cmd+I 将代理集中在该部分上。
|
|
350
350
|
|
|
351
|
+
### 编辑器模型
|
|
352
|
+
|
|
353
|
+
Design 对多屏工作采用概览优先。生成或进行大范围更新后,编辑器会打开屏幕
|
|
354
|
+
概览:一个无限画布,其中每个屏幕都是可选择、移动、调整大小、拖放或复制的
|
|
355
|
+
静态框架。需要聚焦滚动或原型交互时,请使用框架的完整视图按钮。
|
|
356
|
+
|
|
357
|
+
单屏模式用于滚动、与原型行为交互,以及编辑一个已渲染文件内的 DOM/代码
|
|
358
|
+
层。图层面板也反映这种分工:屏幕是顶层框架,活动屏幕下嵌套 DOM/代码层。
|
|
359
|
+
|
|
360
|
+
当编码代理需要在 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
|
+
|
|
373
|
+
为了获得稳定的图层名称,请在有意义的元素上添加
|
|
374
|
+
`data-agent-native-layer-name`。Design 会优先使用它,然后才使用语义/文本回
|
|
375
|
+
退,并且可以通过编辑该属性来持久保存图层重命名。Inline HTML 支持本地代
|
|
376
|
+
码层编辑,包括文本、class、style、attribute、源顺序和小型结构调整;可视
|
|
377
|
+
代码层编辑目前仅支持 HTML。Localhost source mode 可以注册并解析本地路由
|
|
378
|
+
artboard,但本地文件读写仍是桥接合同,直到显式权限控制完成加固。
|
|
379
|
+
|
|
380
|
+
### Design 编辑器扩展
|
|
381
|
+
|
|
382
|
+
编辑器在 **Tweaks** 之后包含一个 **Extensions** 检查器标签。它像 Design
|
|
383
|
+
专属的插件通道:用户可以点击 **+ Extension** 让代理创建扩展,也可以安装声
|
|
384
|
+
明 `design.editor.inspector` slot 的扩展。
|
|
385
|
+
|
|
386
|
+
Design 扩展通过标准扩展 sandbox 内嵌渲染在 artboard 旁边。宿主会通过
|
|
387
|
+
`window.slotContext` 和 `window.onSlotContext(...)` 更新传入当前
|
|
388
|
+
`designId`、活动文件、屏幕列表、已选屏幕 id、已选元素元数据、视图模式、
|
|
389
|
+
缩放、活动工具和 tweak 值。这样扩展就可以显示当前选择的信息、提供样式控
|
|
390
|
+
件,或围绕打开的设计构建紧凑工作流。
|
|
391
|
+
|
|
392
|
+
对于确定性的工作,扩展可以通过扩展桥调用 app actions。对于 AI 驱动的变
|
|
393
|
+
更,让扩展调用 `agentNative.chat.send(...)`,并附带已选元素的 selector/source
|
|
394
|
+
id 和请求的更改。代理应先调用 `view-screen`,然后用 `apply-visual-edit`
|
|
395
|
+
处理元素 style、class、text 或 move 更改,或用带 `canvasFrames` 的
|
|
396
|
+
`update-design` / `generate-design` 处理 artboard placement 更改。有关
|
|
397
|
+
sandbox、持久状态和桥接 API,请参阅
|
|
398
|
+
[Extensions](/docs/extensions#what-an-extension-can-do)。
|
|
399
|
+
|
|
351
400
|
### 自定义它
|
|
352
401
|
|
|
353
402
|
设计是一个完整的、可克隆的模板。一些实用的扩展想法:
|
|
@@ -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
|
-
- **匯入**
|
|
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
|
|
|
@@ -348,6 +348,57 @@ UI 中的路由位於 `templates/design/app/routes/` 下:`_index.tsx`(清單
|
|
|
348
348
|
|
|
349
349
|
因為設計只是獨立的 HTML/JSX 檔案,所以代理編輯 iframe 渲染和每個匯出來自的相同來源 - 沒有單獨的“AI 模型”格式需要翻譯。連結設計系統提供代幣和代理在每一代通行證上兌現的 `custom_instructions`。在預覽中選取文字或區域,然後按 Cmd+I 將代理集中在該部分上。
|
|
350
350
|
|
|
351
|
+
### 編輯器模型
|
|
352
|
+
|
|
353
|
+
Design 對多畫面工作採用概覽優先。產生或進行大範圍更新後,編輯器會開啟
|
|
354
|
+
畫面概覽:一個無限畫布,其中每個畫面都是可選取、移動、調整大小、拖放或
|
|
355
|
+
複製的靜態框架。需要聚焦捲動或原型互動時,請使用框架的完整檢視按鈕。
|
|
356
|
+
|
|
357
|
+
單畫面模式用於捲動、與原型行為互動,以及編輯一個已渲染檔案內的 DOM/程
|
|
358
|
+
式碼圖層。圖層面板也反映這種分工:畫面是頂層框架,作用中畫面下嵌套
|
|
359
|
+
DOM/程式碼圖層。
|
|
360
|
+
|
|
361
|
+
當編碼代理需要在 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
|
+
|
|
374
|
+
若要取得穩定的圖層名稱,請在有意義的元素上加入
|
|
375
|
+
`data-agent-native-layer-name`。Design 會優先使用它,然後才使用語意/文字
|
|
376
|
+
後備,並且可以透過編輯該屬性來持久保存圖層重新命名。Inline HTML 支援本
|
|
377
|
+
機程式碼圖層編輯,包括文字、class、style、attribute、來源順序和小型結構
|
|
378
|
+
調整;視覺程式碼圖層編輯目前僅支援 HTML。Localhost source mode 可以註冊
|
|
379
|
+
並解析本機路由 artboard,但本機檔案讀寫仍是橋接合約,直到明確權限控制
|
|
380
|
+
完成加固。
|
|
381
|
+
|
|
382
|
+
### Design 編輯器擴充功能
|
|
383
|
+
|
|
384
|
+
編輯器在 **Tweaks** 之後包含一個 **Extensions** 檢查器標籤。它像 Design
|
|
385
|
+
專屬的外掛通道:使用者可以點擊 **+ Extension** 讓代理建立擴充功能,也可
|
|
386
|
+
以安裝宣告 `design.editor.inspector` slot 的擴充功能。
|
|
387
|
+
|
|
388
|
+
Design 擴充功能會透過標準擴充 sandbox 內嵌渲染在 artboard 旁邊。host 會
|
|
389
|
+
透過 `window.slotContext` 和 `window.onSlotContext(...)` 更新傳入目前的
|
|
390
|
+
`designId`、作用中檔案、畫面清單、已選畫面 id、已選元素中繼資料、檢視模
|
|
391
|
+
式、縮放、作用中工具和 tweak 值。這讓擴充功能可以顯示目前選取項目的資
|
|
392
|
+
訊、提供樣式控制,或圍繞開啟的設計建立精簡工作流程。
|
|
393
|
+
|
|
394
|
+
對於確定性的工作,擴充功能可以透過擴充橋接呼叫 app actions。對於 AI 驅
|
|
395
|
+
動的變更,讓擴充功能呼叫 `agentNative.chat.send(...)`,並附上已選元素的
|
|
396
|
+
selector/source id 和要求的變更。代理應先呼叫 `view-screen`,再用
|
|
397
|
+
`apply-visual-edit` 處理元素 style、class、text 或 move 變更,或用帶有
|
|
398
|
+
`canvasFrames` 的 `update-design` / `generate-design` 處理 artboard placement
|
|
399
|
+
變更。關於 sandbox、持久狀態和橋接 API,請參閱
|
|
400
|
+
[Extensions](/docs/extensions#what-an-extension-can-do)。
|
|
401
|
+
|
|
351
402
|
### 自訂它
|
|
352
403
|
|
|
353
404
|
設計是一個完整的、可克隆的範本。一些實用的擴充功能想法:
|
|
@@ -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** — `
|
|
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
|
|
|
@@ -348,6 +348,64 @@ The agent always knows what you have open. The current design, the open file, th
|
|
|
348
348
|
|
|
349
349
|
Because a design is just standalone HTML/JSX files, the agent edits the same source the iframe renders and every export comes from — there is no separate "AI mockup" format to translate. A linked design system supplies tokens and `custom_instructions` the agent honors on every generation pass. Select text or a region in the preview and hit Cmd+I to focus the agent on exactly that part.
|
|
350
350
|
|
|
351
|
+
### Editor model
|
|
352
|
+
|
|
353
|
+
Design is overview-first for multi-screen work. After generation or broad
|
|
354
|
+
updates, the editor opens the screen overview: an infinite canvas where each
|
|
355
|
+
screen is a static frame you can select, move, resize, drop, or duplicate.
|
|
356
|
+
Use a frame's full-view button when one screen needs focused scrolling or
|
|
357
|
+
prototype interaction.
|
|
358
|
+
|
|
359
|
+
Single-screen mode is for scrolling, interacting with prototype behavior, and
|
|
360
|
+
editing the DOM/code layers inside one rendered file. The layers panel reflects
|
|
361
|
+
that split: screens are top-level frames, with nested DOM/code layers for the
|
|
362
|
+
active screen.
|
|
363
|
+
|
|
364
|
+
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
|
+
|
|
377
|
+
For stable layer names, add `data-agent-native-layer-name` to meaningful
|
|
378
|
+
elements. Design uses it before semantic/text fallbacks and can persist layer
|
|
379
|
+
renames by editing that attribute. Inline HTML supports local code-layer edits
|
|
380
|
+
for text, classes, styles, attributes, source order, and small structural
|
|
381
|
+
changes; visual code-layer edits are HTML-only today. Localhost source mode can
|
|
382
|
+
register and resolve local route artboards, but local file reads/writes remain a
|
|
383
|
+
bridge contract until explicit permission controls are hardened.
|
|
384
|
+
|
|
385
|
+
### Design editor extensions
|
|
386
|
+
|
|
387
|
+
The editor includes an **Extensions** inspector tab after **Tweaks**. It works
|
|
388
|
+
like a Design-specific plugin lane: users can click **+ Extension** to ask the
|
|
389
|
+
agent to build an extension, or install an extension that declares the
|
|
390
|
+
`design.editor.inspector` slot.
|
|
391
|
+
|
|
392
|
+
Design extensions render inline beside the artboard through the standard
|
|
393
|
+
extension sandbox. The host passes `window.slotContext` and
|
|
394
|
+
`window.onSlotContext(...)` updates with the current `designId`, active file,
|
|
395
|
+
screen list, selected screen ids, selected element metadata, view mode, zoom,
|
|
396
|
+
active tool, and tweak values. That lets an extension show information about
|
|
397
|
+
the current selection, offer style controls, or build compact workflows around
|
|
398
|
+
the open design.
|
|
399
|
+
|
|
400
|
+
For deterministic work, extensions can call app actions through the extension
|
|
401
|
+
bridge. For AI-driven changes, have the extension call
|
|
402
|
+
`agentNative.chat.send(...)` with the selected element selector/source id and
|
|
403
|
+
requested change. The agent should call `view-screen` first, then use
|
|
404
|
+
`apply-visual-edit` for element style, class, text, or move changes, or
|
|
405
|
+
`update-design` / `generate-design` with `canvasFrames` for artboard placement
|
|
406
|
+
changes. See [Extensions](/docs/extensions#what-an-extension-can-do) for the
|
|
407
|
+
sandbox, persistent state, and bridge APIs.
|
|
408
|
+
|
|
351
409
|
### Customizing it
|
|
352
410
|
|
|
353
411
|
Design is a complete, cloneable template. Some practical extension ideas:
|
package/corpus/core/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "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": {
|
|
@@ -89,6 +89,7 @@
|
|
|
89
89
|
"./embedding/react": "./dist/embedding/react.js",
|
|
90
90
|
"./onboarding": "./dist/onboarding/index.js",
|
|
91
91
|
"./shared": "./dist/shared/index.js",
|
|
92
|
+
"./voice": "./dist/voice/index.js",
|
|
92
93
|
"./scripts": "./dist/scripts/index.js",
|
|
93
94
|
"./application-state": "./dist/application-state/index.js",
|
|
94
95
|
"./settings": "./dist/settings/index.js",
|
|
@@ -412,6 +412,46 @@ export async function isStoredEngineUsableForRequest(
|
|
|
412
412
|
return true;
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
+
/**
|
|
416
|
+
* Request-aware credential preflight for an already-resolved engine instance.
|
|
417
|
+
* `resolveEngine()` may still return a default or explicitly requested engine
|
|
418
|
+
* object before credentials are actually usable; call this before starting a
|
|
419
|
+
* user-visible run so missing providers fail immediately.
|
|
420
|
+
*/
|
|
421
|
+
export async function isResolvedEngineUsableForRequest(
|
|
422
|
+
engine: AgentEngine,
|
|
423
|
+
options: { apiKey?: string } = {},
|
|
424
|
+
): Promise<boolean> {
|
|
425
|
+
const entry = _registry.get(engine.name);
|
|
426
|
+
// Custom engines may have their own credential contract outside the core
|
|
427
|
+
// registry metadata, so do not block them speculatively.
|
|
428
|
+
if (!entry) return true;
|
|
429
|
+
if (!isAgentEnginePackageInstalled(entry)) return false;
|
|
430
|
+
if (entry.requiredEnvVars.length === 0) return true;
|
|
431
|
+
|
|
432
|
+
if (entry.name === "builder") {
|
|
433
|
+
const creds = await resolveBuilderCredentials();
|
|
434
|
+
return Boolean(creds.privateKey && creds.publicKey);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
if (options.apiKey?.trim()) return true;
|
|
438
|
+
|
|
439
|
+
for (const key of entry.requiredEnvVars) {
|
|
440
|
+
try {
|
|
441
|
+
if (await resolveSecret(key)) continue;
|
|
442
|
+
} catch {
|
|
443
|
+
// Fall through to deployment-level fallback when allowed.
|
|
444
|
+
}
|
|
445
|
+
if (
|
|
446
|
+
!canUseDeployCredentialFallbackForRequest() ||
|
|
447
|
+
!readDeployCredentialEnv(key)
|
|
448
|
+
) {
|
|
449
|
+
return false;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return true;
|
|
453
|
+
}
|
|
454
|
+
|
|
415
455
|
export interface ResolveEngineConfig {
|
|
416
456
|
/** Explicit engine name or instance from createAgentChatPlugin options */
|
|
417
457
|
engineOption?:
|
|
@@ -67,6 +67,7 @@ import {
|
|
|
67
67
|
registerBuiltinEngines,
|
|
68
68
|
getStoredModelForEngine,
|
|
69
69
|
normalizeModelForEngine,
|
|
70
|
+
isResolvedEngineUsableForRequest,
|
|
70
71
|
} from "./engine/index.js";
|
|
71
72
|
import { resolveMaxOutputTokensForEngine } from "./engine/output-tokens.js";
|
|
72
73
|
import { PROVIDER_TO_ENV } from "./engine/provider-env-vars.js";
|
|
@@ -4206,8 +4207,11 @@ export function createProductionAgentHandler(
|
|
|
4206
4207
|
`[agent-chat] resolved engine=${engine.name} model=${model} requestEngine=${requestEngine ?? "(none)"}`,
|
|
4207
4208
|
);
|
|
4208
4209
|
|
|
4209
|
-
|
|
4210
|
-
|
|
4210
|
+
if (
|
|
4211
|
+
!(await isResolvedEngineUsableForRequest(engine, {
|
|
4212
|
+
apiKey: effectiveApiKey,
|
|
4213
|
+
}))
|
|
4214
|
+
) {
|
|
4211
4215
|
setResponseHeader(event, "Content-Type", "text/event-stream");
|
|
4212
4216
|
setResponseHeader(event, "Cache-Control", "no-cache");
|
|
4213
4217
|
setResponseHeader(event, "Connection", "keep-alive");
|