@agent-native/core 0.79.27 → 0.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +26 -0
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +41 -0
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +51 -0
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +50 -0
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +49 -0
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +44 -0
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +46 -0
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +44 -0
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +48 -0
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +36 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +38 -0
- package/corpus/core/docs/content/template-design.mdx +45 -0
- 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/cli/design-connect.ts +490 -0
- package/corpus/core/src/cli/index.ts +16 -0
- package/corpus/core/src/cli/skills.ts +126 -3
- package/corpus/core/src/client/AssistantChat.tsx +43 -7
- 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/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/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 +56 -7
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- 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/list-session-recordings.ts +6 -1
- 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/i18n/zh-TW.ts +2 -0
- package/corpus/templates/analytics/app/i18n-data.ts +20 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +33 -8
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +7 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +7 -0
- 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/seeds/dashboards/agent-native-templates-first-party.json +3 -3
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +29 -7
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +5 -2
- package/corpus/templates/analytics/server/lib/session-replay.ts +24 -4
- 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/voice-dictation.ts +60 -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/design/.agents/skills/visual-edit/SKILL.md +137 -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 +426 -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/list-localhost-connections.ts +95 -0
- package/corpus/templates/design/actions/navigate.ts +55 -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 +761 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +2057 -103
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +74 -38
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +399 -0
- package/corpus/templates/design/app/components/design/EditPanel.tsx +3185 -439
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +1124 -0
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +3116 -147
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +700 -13
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +107 -63
- package/corpus/templates/design/app/components/design/index.ts +0 -5
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +286 -0
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +699 -0
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +461 -0
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +166 -0
- package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +1420 -0
- package/corpus/templates/design/app/components/design/inspector/SHADER_INTEGRATION.md +420 -0
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +215 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.stories.tsx +71 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +518 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +106 -0
- package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +361 -0
- package/corpus/templates/design/app/components/design/inspector/index.ts +60 -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 +121 -3
- 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 +264 -0
- package/corpus/templates/design/app/i18n-data.ts +2790 -1
- package/corpus/templates/design/app/pages/DesignEditor.tsx +5108 -851
- 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-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-sidebars-use-darker-chrome-and-chat-warns-immediately.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/lib/design-snapshot.ts +1 -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 +2212 -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/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/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/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/slides/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- 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/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 +121 -3
- package/dist/cli/skills.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/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/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/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +8 -8
- package/dist/progress/routes.d.ts +1 -1
- package/dist/server/agent-engine-api-key-route.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 +56 -7
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- 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/template-design.mdx +41 -0
- package/docs/content/locales/de-DE/template-design.mdx +51 -0
- package/docs/content/locales/es-ES/template-design.mdx +50 -0
- package/docs/content/locales/fr-FR/template-design.mdx +49 -0
- package/docs/content/locales/hi-IN/template-design.mdx +44 -0
- package/docs/content/locales/ja-JP/template-design.mdx +46 -0
- package/docs/content/locales/ko-KR/template-design.mdx +44 -0
- package/docs/content/locales/pt-BR/template-design.mdx +48 -0
- package/docs/content/locales/zh-CN/template-design.mdx +36 -0
- package/docs/content/locales/zh-TW/template-design.mdx +38 -0
- package/docs/content/template-design.mdx +45 -0
- package/package.json +2 -1
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- 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
|
@@ -13,6 +13,8 @@ import {
|
|
|
13
13
|
IconArchive,
|
|
14
14
|
IconDots,
|
|
15
15
|
IconEdit,
|
|
16
|
+
IconLayoutSidebarLeftCollapse,
|
|
17
|
+
IconLayoutSidebarLeftExpand,
|
|
16
18
|
IconPin,
|
|
17
19
|
IconPlus,
|
|
18
20
|
} from "@tabler/icons-react";
|
|
@@ -38,6 +40,12 @@ import { cn } from "@/lib/utils";
|
|
|
38
40
|
const BRAIN_CHAT_STORAGE_KEY = "brain";
|
|
39
41
|
const BRAIN_ACTIVE_THREAD_KEY = `agent-chat-active-thread:${BRAIN_CHAT_STORAGE_KEY}`;
|
|
40
42
|
|
|
43
|
+
interface SidebarProps {
|
|
44
|
+
collapsed?: boolean;
|
|
45
|
+
collapsible?: boolean;
|
|
46
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
47
|
+
}
|
|
48
|
+
|
|
41
49
|
function formatThreadAge(updatedAt: number) {
|
|
42
50
|
const diffMs = Math.max(0, Date.now() - updatedAt);
|
|
43
51
|
const minutes = Math.floor(diffMs / 60_000);
|
|
@@ -324,25 +332,73 @@ function BrainChatsSection() {
|
|
|
324
332
|
);
|
|
325
333
|
}
|
|
326
334
|
|
|
327
|
-
export function Sidebar(
|
|
335
|
+
export function Sidebar({
|
|
336
|
+
collapsed = false,
|
|
337
|
+
collapsible = true,
|
|
338
|
+
onCollapsedChange,
|
|
339
|
+
}: SidebarProps) {
|
|
328
340
|
const location = useLocation();
|
|
329
341
|
const navigate = useNavigate();
|
|
330
342
|
const t = useT();
|
|
331
343
|
const isAskRoute = location.pathname === "/";
|
|
344
|
+
const ToggleIcon = collapsed
|
|
345
|
+
? IconLayoutSidebarLeftExpand
|
|
346
|
+
: IconLayoutSidebarLeftCollapse;
|
|
332
347
|
const navClass = ({ isActive }: { isActive: boolean }) =>
|
|
333
348
|
cn(
|
|
334
|
-
"flex
|
|
349
|
+
"flex items-center text-sm transition-colors",
|
|
350
|
+
collapsed
|
|
351
|
+
? "h-10 w-10 justify-center rounded-md"
|
|
352
|
+
: "h-9 gap-3 rounded-md px-3",
|
|
335
353
|
isActive
|
|
336
354
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
337
355
|
: "text-sidebar-foreground hover:bg-sidebar-accent/65 hover:text-sidebar-accent-foreground",
|
|
338
356
|
);
|
|
357
|
+
const collapseButton = collapsible ? (
|
|
358
|
+
<Tooltip>
|
|
359
|
+
<TooltipTrigger asChild>
|
|
360
|
+
<button
|
|
361
|
+
type="button"
|
|
362
|
+
onClick={() => onCollapsedChange?.(!collapsed)}
|
|
363
|
+
className="flex size-8 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/65 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
364
|
+
aria-label={
|
|
365
|
+
collapsed
|
|
366
|
+
? t("navigation.expandSidebar")
|
|
367
|
+
: t("navigation.collapseSidebar")
|
|
368
|
+
}
|
|
369
|
+
>
|
|
370
|
+
<ToggleIcon className="size-4" />
|
|
371
|
+
</button>
|
|
372
|
+
</TooltipTrigger>
|
|
373
|
+
<TooltipContent side="right">
|
|
374
|
+
{collapsed
|
|
375
|
+
? t("navigation.expandSidebar")
|
|
376
|
+
: t("navigation.collapseSidebar")}
|
|
377
|
+
</TooltipContent>
|
|
378
|
+
</Tooltip>
|
|
379
|
+
) : null;
|
|
339
380
|
|
|
340
381
|
return (
|
|
341
|
-
<aside
|
|
342
|
-
|
|
382
|
+
<aside
|
|
383
|
+
data-collapsed={collapsed ? "true" : "false"}
|
|
384
|
+
className={cn(
|
|
385
|
+
"flex h-full min-w-0 shrink-0 flex-col overflow-hidden border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width] duration-200 ease-out",
|
|
386
|
+
collapsed ? "w-12" : "w-60",
|
|
387
|
+
)}
|
|
388
|
+
>
|
|
389
|
+
<div
|
|
390
|
+
className={cn(
|
|
391
|
+
"flex h-14 shrink-0 items-center border-b border-sidebar-border",
|
|
392
|
+
collapsed ? "justify-center px-0" : "gap-3 px-4",
|
|
393
|
+
)}
|
|
394
|
+
>
|
|
343
395
|
<Link
|
|
344
396
|
to="/"
|
|
345
|
-
className=
|
|
397
|
+
className={cn(
|
|
398
|
+
"flex min-w-0 items-center rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
399
|
+
collapsed ? "size-8 justify-center" : "flex-1 gap-3",
|
|
400
|
+
)}
|
|
401
|
+
aria-label={collapsed ? t("navigation.brand") : undefined}
|
|
346
402
|
>
|
|
347
403
|
<img
|
|
348
404
|
src={appPath("/agent-native-icon-light.svg")}
|
|
@@ -356,44 +412,67 @@ export function Sidebar() {
|
|
|
356
412
|
aria-hidden="true"
|
|
357
413
|
className="hidden h-4 w-auto shrink-0 dark:block"
|
|
358
414
|
/>
|
|
359
|
-
<div className="min-w-0">
|
|
415
|
+
<div className={cn("min-w-0", collapsed && "sr-only")}>
|
|
360
416
|
<p className="truncate text-sm font-semibold text-sidebar-accent-foreground">
|
|
361
417
|
{t("navigation.brand")}
|
|
362
418
|
</p>
|
|
363
419
|
</div>
|
|
364
420
|
</Link>
|
|
421
|
+
{!collapsed ? collapseButton : null}
|
|
365
422
|
</div>
|
|
366
423
|
|
|
367
|
-
<nav
|
|
368
|
-
|
|
424
|
+
<nav
|
|
425
|
+
className={cn(
|
|
426
|
+
"flex-1 overflow-y-auto",
|
|
427
|
+
collapsed ? "px-1 py-2" : "px-2 py-3",
|
|
428
|
+
)}
|
|
429
|
+
>
|
|
430
|
+
<div
|
|
431
|
+
className={cn(
|
|
432
|
+
"grid",
|
|
433
|
+
collapsed ? "justify-items-center gap-1" : "gap-1",
|
|
434
|
+
)}
|
|
435
|
+
>
|
|
369
436
|
{navItems.map((item) => {
|
|
370
437
|
const Icon = item.icon;
|
|
438
|
+
const label = t(`navigation.${item.view}`);
|
|
439
|
+
const link = (
|
|
440
|
+
<NavLink
|
|
441
|
+
to={item.href}
|
|
442
|
+
end={item.href === "/"}
|
|
443
|
+
onClick={(event) => {
|
|
444
|
+
if (
|
|
445
|
+
item.view === "ask" &&
|
|
446
|
+
!isAskRoute &&
|
|
447
|
+
!event.metaKey &&
|
|
448
|
+
!event.ctrlKey &&
|
|
449
|
+
!event.shiftKey &&
|
|
450
|
+
!event.altKey
|
|
451
|
+
) {
|
|
452
|
+
event.preventDefault();
|
|
453
|
+
navigateWithAgentChatViewTransition(navigate, "/");
|
|
454
|
+
}
|
|
455
|
+
}}
|
|
456
|
+
className={navClass}
|
|
457
|
+
aria-label={collapsed ? label : undefined}
|
|
458
|
+
>
|
|
459
|
+
<Icon className="size-4 shrink-0" />
|
|
460
|
+
<span className={collapsed ? "sr-only" : "truncate"}>
|
|
461
|
+
{label}
|
|
462
|
+
</span>
|
|
463
|
+
</NavLink>
|
|
464
|
+
);
|
|
371
465
|
return (
|
|
372
466
|
<div key={item.href}>
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
!event.shiftKey &&
|
|
383
|
-
!event.altKey
|
|
384
|
-
) {
|
|
385
|
-
event.preventDefault();
|
|
386
|
-
navigateWithAgentChatViewTransition(navigate, "/");
|
|
387
|
-
}
|
|
388
|
-
}}
|
|
389
|
-
className={navClass}
|
|
390
|
-
>
|
|
391
|
-
<Icon className="size-4 shrink-0" />
|
|
392
|
-
<span className="truncate">
|
|
393
|
-
{t(`navigation.${item.view}`)}
|
|
394
|
-
</span>
|
|
395
|
-
</NavLink>
|
|
396
|
-
{item.view === "ask" && isAskRoute ? (
|
|
467
|
+
{collapsed ? (
|
|
468
|
+
<Tooltip>
|
|
469
|
+
<TooltipTrigger asChild>{link}</TooltipTrigger>
|
|
470
|
+
<TooltipContent side="right">{label}</TooltipContent>
|
|
471
|
+
</Tooltip>
|
|
472
|
+
) : (
|
|
473
|
+
link
|
|
474
|
+
)}
|
|
475
|
+
{!collapsed && item.view === "ask" && isAskRoute ? (
|
|
397
476
|
<BrainChatsSection />
|
|
398
477
|
) : null}
|
|
399
478
|
</div>
|
|
@@ -403,18 +482,28 @@ export function Sidebar() {
|
|
|
403
482
|
</nav>
|
|
404
483
|
|
|
405
484
|
<div className="mt-auto shrink-0">
|
|
406
|
-
|
|
407
|
-
<
|
|
408
|
-
|
|
485
|
+
{!collapsed ? (
|
|
486
|
+
<div className="px-2 py-1">
|
|
487
|
+
<ExtensionsSidebarSection />
|
|
488
|
+
</div>
|
|
489
|
+
) : null}
|
|
409
490
|
|
|
410
|
-
|
|
411
|
-
<
|
|
412
|
-
|
|
491
|
+
{!collapsed ? (
|
|
492
|
+
<div className="px-3 py-2">
|
|
493
|
+
<OrgSwitcher reserveSpace />
|
|
494
|
+
</div>
|
|
495
|
+
) : null}
|
|
413
496
|
|
|
414
|
-
|
|
415
|
-
<
|
|
416
|
-
|
|
417
|
-
|
|
497
|
+
{!collapsed ? (
|
|
498
|
+
<div className="px-3 py-2">
|
|
499
|
+
<DevDatabaseLink />
|
|
500
|
+
<FeedbackButton />
|
|
501
|
+
</div>
|
|
502
|
+
) : null}
|
|
503
|
+
|
|
504
|
+
{collapseButton ? (
|
|
505
|
+
<div className="flex justify-center px-2 py-2">{collapseButton}</div>
|
|
506
|
+
) : null}
|
|
418
507
|
</div>
|
|
419
508
|
</aside>
|
|
420
509
|
);
|
|
@@ -51,6 +51,8 @@ const enUS = {
|
|
|
51
51
|
extensions: "Extensions",
|
|
52
52
|
settings: "Settings",
|
|
53
53
|
openNavigation: "Open navigation",
|
|
54
|
+
expandSidebar: "Expand sidebar",
|
|
55
|
+
collapseSidebar: "Collapse sidebar",
|
|
54
56
|
brainNavigation: "Brain navigation",
|
|
55
57
|
brainNavigationDescription: "Navigate between Brain work surfaces.",
|
|
56
58
|
},
|
|
@@ -834,6 +836,8 @@ const baseMessagesByLocale = {
|
|
|
834
836
|
toggleTheme: "切换主题",
|
|
835
837
|
},
|
|
836
838
|
navigation: {
|
|
839
|
+
collapseSidebar: "折叠侧边栏",
|
|
840
|
+
expandSidebar: "展开侧边栏",
|
|
837
841
|
brand: "Brain",
|
|
838
842
|
ask: "提问",
|
|
839
843
|
askBrain: "询问 Brain",
|
|
@@ -1037,6 +1041,8 @@ const baseMessagesByLocale = {
|
|
|
1037
1041
|
toggleTheme: "Cambiar tema",
|
|
1038
1042
|
},
|
|
1039
1043
|
navigation: {
|
|
1044
|
+
collapseSidebar: "Contraer barra lateral",
|
|
1045
|
+
expandSidebar: "Expandir barra lateral",
|
|
1040
1046
|
ask: "Preguntar",
|
|
1041
1047
|
askBrain: "Preguntar a Brain",
|
|
1042
1048
|
search: "Buscar",
|
|
@@ -1251,6 +1257,8 @@ const baseMessagesByLocale = {
|
|
|
1251
1257
|
toggleTheme: "Changer de thème",
|
|
1252
1258
|
},
|
|
1253
1259
|
navigation: {
|
|
1260
|
+
collapseSidebar: "Réduire la barre latérale",
|
|
1261
|
+
expandSidebar: "Développer la barre latérale",
|
|
1254
1262
|
ask: "Demander",
|
|
1255
1263
|
askBrain: "Demander à Brain",
|
|
1256
1264
|
search: "Rechercher",
|
|
@@ -1465,6 +1473,8 @@ const baseMessagesByLocale = {
|
|
|
1465
1473
|
toggleTheme: "Theme wechseln",
|
|
1466
1474
|
},
|
|
1467
1475
|
navigation: {
|
|
1476
|
+
collapseSidebar: "Seitenleiste einklappen",
|
|
1477
|
+
expandSidebar: "Seitenleiste erweitern",
|
|
1468
1478
|
ask: "Fragen",
|
|
1469
1479
|
askBrain: "Brain fragen",
|
|
1470
1480
|
search: "Suchen",
|
|
@@ -1673,6 +1683,8 @@ const baseMessagesByLocale = {
|
|
|
1673
1683
|
toggleTheme: "テーマを切り替え",
|
|
1674
1684
|
},
|
|
1675
1685
|
navigation: {
|
|
1686
|
+
collapseSidebar: "サイドバーを折りたたむ",
|
|
1687
|
+
expandSidebar: "サイドバーを展開",
|
|
1676
1688
|
ask: "質問",
|
|
1677
1689
|
askBrain: "Brain に質問",
|
|
1678
1690
|
search: "検索",
|
|
@@ -1881,6 +1893,8 @@ const baseMessagesByLocale = {
|
|
|
1881
1893
|
toggleTheme: "테마 전환",
|
|
1882
1894
|
},
|
|
1883
1895
|
navigation: {
|
|
1896
|
+
collapseSidebar: "사이드바 접기",
|
|
1897
|
+
expandSidebar: "사이드바 펼치기",
|
|
1884
1898
|
ask: "질문",
|
|
1885
1899
|
askBrain: "Brain에 질문",
|
|
1886
1900
|
search: "검색",
|
|
@@ -2088,6 +2102,8 @@ const baseMessagesByLocale = {
|
|
|
2088
2102
|
toggleTheme: "Alternar tema",
|
|
2089
2103
|
},
|
|
2090
2104
|
navigation: {
|
|
2105
|
+
collapseSidebar: "Recolher barra lateral",
|
|
2106
|
+
expandSidebar: "Expandir barra lateral",
|
|
2091
2107
|
ask: "Perguntar",
|
|
2092
2108
|
askBrain: "Perguntar ao Brain",
|
|
2093
2109
|
search: "Buscar",
|
|
@@ -2301,6 +2317,8 @@ const baseMessagesByLocale = {
|
|
|
2301
2317
|
toggleTheme: "थीम बदलें",
|
|
2302
2318
|
},
|
|
2303
2319
|
navigation: {
|
|
2320
|
+
collapseSidebar: "साइडबार समेटें",
|
|
2321
|
+
expandSidebar: "साइडबार फैलाएं",
|
|
2304
2322
|
ask: "पूछें",
|
|
2305
2323
|
askBrain: "Brain से पूछें",
|
|
2306
2324
|
search: "खोजें",
|
|
@@ -2508,6 +2526,8 @@ const baseMessagesByLocale = {
|
|
|
2508
2526
|
toggleTheme: "تبديل السمة",
|
|
2509
2527
|
},
|
|
2510
2528
|
navigation: {
|
|
2529
|
+
collapseSidebar: "طي الشريط الجانبي",
|
|
2530
|
+
expandSidebar: "توسيع الشريط الجانبي",
|
|
2511
2531
|
ask: "اسأل",
|
|
2512
2532
|
askBrain: "اسأل Brain",
|
|
2513
2533
|
search: "بحث",
|
|
@@ -31,6 +31,7 @@ import { prefetchPeopleContacts } from "@/hooks/use-people";
|
|
|
31
31
|
import { Sidebar } from "./Sidebar";
|
|
32
32
|
|
|
33
33
|
const EVENT_DETAIL_MODE_KEY = "calendar-event-detail-mode";
|
|
34
|
+
const SIDEBAR_COLLAPSE_KEY = "calendar.sidebar.collapsed";
|
|
34
35
|
|
|
35
36
|
/** Routes that render without the full AppLayout chrome (sidebar, agent panel). */
|
|
36
37
|
const BARE_ROUTES = new Set(["/event"]);
|
|
@@ -47,6 +48,15 @@ function pageOwnsToolbar(pathname: string): boolean {
|
|
|
47
48
|
return false;
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
function readSidebarCollapsed() {
|
|
52
|
+
if (typeof window === "undefined") return false;
|
|
53
|
+
try {
|
|
54
|
+
return window.localStorage.getItem(SIDEBAR_COLLAPSE_KEY) === "1";
|
|
55
|
+
} catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
export type ViewMode = "month" | "week" | "day";
|
|
51
61
|
|
|
52
62
|
interface CalendarContextValue {
|
|
@@ -144,6 +154,8 @@ export function AppLayout({ children }: AppLayoutProps) {
|
|
|
144
154
|
const isSettingsPage = location.pathname === "/settings";
|
|
145
155
|
const isCalendarPage = location.pathname === "/";
|
|
146
156
|
const [sidebarOpen, setSidebarOpen] = useState(false);
|
|
157
|
+
const [sidebarCollapsed, setSidebarCollapsed] =
|
|
158
|
+
useState(readSidebarCollapsed);
|
|
147
159
|
const [selectedDate, setSelectedDate] = useState(new Date());
|
|
148
160
|
const [viewMode, setViewMode] = useState<ViewMode>(isMobile ? "day" : "week");
|
|
149
161
|
const [peopleSearchOpen, setPeopleSearchOpen] = useState(false);
|
|
@@ -178,6 +190,17 @@ export function AppLayout({ children }: AppLayoutProps) {
|
|
|
178
190
|
void prefetchPeopleContacts(queryClient);
|
|
179
191
|
}, [hasAccounts, queryClient]);
|
|
180
192
|
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
try {
|
|
195
|
+
window.localStorage.setItem(
|
|
196
|
+
SIDEBAR_COLLAPSE_KEY,
|
|
197
|
+
sidebarCollapsed ? "1" : "0",
|
|
198
|
+
);
|
|
199
|
+
} catch {
|
|
200
|
+
// Ignore storage failures; the in-memory preference still works.
|
|
201
|
+
}
|
|
202
|
+
}, [sidebarCollapsed]);
|
|
203
|
+
|
|
181
204
|
// Global keyboard-shortcuts help: opens via `?` (or shift+/) or the sidebar
|
|
182
205
|
// button on any page, not just the calendar view. Calendar-specific shortcuts
|
|
183
206
|
// (j/k/c/etc.) still live in CalendarView.
|
|
@@ -259,7 +282,12 @@ export function AppLayout({ children }: AppLayoutProps) {
|
|
|
259
282
|
onClose={() => setShortcutsHelpOpen(false)}
|
|
260
283
|
/>
|
|
261
284
|
<div className="agent-layout-shell flex h-screen overflow-hidden bg-background">
|
|
262
|
-
<Sidebar
|
|
285
|
+
<Sidebar
|
|
286
|
+
open={sidebarOpen}
|
|
287
|
+
onClose={() => setSidebarOpen(false)}
|
|
288
|
+
collapsed={!isMobile && sidebarCollapsed}
|
|
289
|
+
onCollapsedChange={setSidebarCollapsed}
|
|
290
|
+
/>
|
|
263
291
|
<AgentSidebar
|
|
264
292
|
position="right"
|
|
265
293
|
defaultOpen
|