@agent-native/core 0.80.7 → 0.80.9
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 +18 -0
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +6 -0
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +8 -0
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +10 -2
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +10 -2
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +7 -0
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +7 -0
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +7 -0
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +9 -2
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +6 -0
- package/corpus/core/docs/content/template-design.mdx +9 -2
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/cli/mcp.ts +10 -0
- package/corpus/core/src/cli/skills.ts +58 -12
- package/corpus/core/src/client/AssistantChat.tsx +70 -27
- package/corpus/core/src/client/analytics.ts +3 -1
- package/corpus/core/src/client/error-format.ts +25 -0
- package/corpus/core/src/client/extensions/ExtensionViewer.tsx +13 -11
- package/corpus/core/src/client/guided-questions.tsx +32 -4
- package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +33 -1
- package/corpus/core/src/client/resources/BuiltinCapabilityDetail.tsx +8 -0
- package/corpus/core/src/client/resources/use-builtin-capabilities.ts +4 -2
- package/corpus/core/src/client/session-replay.ts +34 -0
- package/corpus/core/src/client/sharing/ShareButton.tsx +106 -21
- package/corpus/core/src/coding-tools/index.ts +1 -1
- package/corpus/core/src/mcp/index.ts +2 -0
- package/corpus/core/src/mcp/screen-memory-stdio.ts +290 -0
- package/corpus/core/src/mcp-client/builtin-capabilities.ts +13 -1
- package/corpus/core/src/mcp-client/index.ts +9 -0
- package/corpus/core/src/mcp-client/screen-memory-local.ts +461 -0
- package/corpus/core/src/onboarding/types.ts +7 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +25 -0
- package/corpus/core/src/server/agents-bundle.ts +35 -7
- package/corpus/core/src/styles/agent-native.css +5 -0
- package/corpus/core/src/templates/default/app/global.css +35 -35
- package/corpus/templates/analytics/AGENTS.md +6 -0
- package/corpus/templates/analytics/actions/github-repo-files.ts +9 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +4 -4
- package/corpus/templates/analytics/app/global.css +144 -40
- package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +1 -1
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +4 -4
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +9 -9
- package/corpus/templates/analytics/changelog/2026-06-29-agents-can-search-and-read-connected-github-repositories-whe.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-sessions-and-explorer-layouts-adapt-when-the-agent-sidebar-is.md +6 -0
- package/corpus/templates/assets/app/components/layout/Layout.tsx +3 -1
- package/corpus/templates/assets/app/components/library/LibraryPresetGrid.tsx +1 -1
- package/corpus/templates/assets/app/global.css +99 -35
- package/corpus/templates/assets/app/routes/asset.$id.tsx +2 -2
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +4 -4
- package/corpus/templates/assets/app/routes/library.tsx +4 -4
- package/corpus/templates/assets/changelog/2026-06-29-asset-library-and-detail-layouts-adapt-when-the-agent-sidebar.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/brain/app/global.css +63 -35
- package/corpus/templates/brain/app/routes/search.tsx +1 -1
- package/corpus/templates/brain/app/routes/settings.tsx +1 -1
- package/corpus/templates/brain/app/routes/sources.tsx +2 -2
- package/corpus/templates/brain/changelog/2026-06-29-search-settings-and-source-layouts-adapt-when-the-agent-sidebar.md +6 -0
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +4 -4
- package/corpus/templates/calendar/app/components/calendar/FindTimePanel.tsx +3 -2
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +4 -2
- package/corpus/templates/calendar/app/global.css +69 -35
- package/corpus/templates/calendar/changelog/2026-06-29-event-and-find-time-layouts-adapt-when-the-agent-sidebar-is.md +6 -0
- package/corpus/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/chat/app/global.css +35 -35
- package/corpus/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/clips/AGENTS.md +13 -0
- package/corpus/templates/clips/actions/get-screen-memory-status.ts +12 -0
- package/corpus/templates/clips/actions/query-screen-memory-context.ts +29 -0
- package/corpus/templates/clips/actions/view-screen.ts +2 -2
- package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
- package/corpus/templates/clips/app/global.css +47 -35
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +3 -3
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +45 -18
- package/corpus/templates/clips/changelog/2026-06-29-meeting-detail-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-29-screen-memory-keeps-a-local-rolling-screen-buffer-for-agent-context.md +5 -0
- package/corpus/templates/clips/changelog/2026-06-29-video-chat-is-easier-to-find-on-recording-pages-and-s3-setup.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/styles.css +39 -39
- package/corpus/templates/clips/desktop/src/app.tsx +290 -1
- package/corpus/templates/clips/desktop/src/shared/config.ts +83 -0
- package/corpus/templates/clips/desktop/src/styles.css +67 -52
- package/corpus/templates/clips/desktop/src-tauri/src/config.rs +50 -0
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +17 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +13 -13
- package/corpus/templates/clips/desktop/src-tauri/src/screen_memory.rs +990 -0
- package/corpus/templates/clips/server/plugins/onboarding.ts +2 -0
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +69 -16
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +3 -3
- package/corpus/templates/content/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/content/app/global.css +29 -15
- package/corpus/templates/content/changelog/2026-06-29-database-gallery-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/content/changelog/2026-06-29-read-only-pages-no-longer-try-to-autosave-or-open-editor-onl.md +6 -0
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +25 -20
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -0
- package/corpus/templates/design/.agents/skills/export-handoff/SKILL.md +8 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +13 -0
- package/corpus/templates/design/AGENTS.md +24 -14
- package/corpus/templates/design/CODE_NATIVE_DESIGN_STUDIO_IMPLEMENTATION_PLAN.md +1054 -0
- package/corpus/templates/design/actions/apply-visual-edit.ts +24 -4
- package/corpus/templates/design/actions/edit-design.ts +6 -3
- package/corpus/templates/design/actions/export-coding-handoff.ts +12 -4
- package/corpus/templates/design/actions/generate-design.ts +6 -21
- package/corpus/templates/design/actions/generate-screens.ts +48 -5
- package/corpus/templates/design/actions/get-design.ts +1 -0
- package/corpus/templates/design/actions/present-design-variants.ts +355 -30
- package/corpus/templates/design/actions/update-design.ts +47 -10
- package/corpus/templates/design/actions/update-file.ts +33 -8
- package/corpus/templates/design/actions/view-screen.ts +89 -31
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +389 -71
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +1 -1
- package/corpus/templates/design/app/components/design/EditPanel.tsx +596 -95
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +428 -221
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1197 -228
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +94 -217
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +28 -14
- package/corpus/templates/design/app/components/design/index.ts +0 -1
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +228 -170
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +140 -13
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +39 -8
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +4 -2
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +75 -5
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +37 -12
- package/corpus/templates/design/app/components/design/inspector/index.ts +1 -0
- package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +17 -4
- package/corpus/templates/design/app/components/design/types.ts +9 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +23 -5
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +448 -259
- package/corpus/templates/design/app/global.css +77 -49
- package/corpus/templates/design/app/hooks/use-question-flow.ts +2 -2
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +8 -1
- package/corpus/templates/design/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/design/app/i18n-data.ts +55 -3
- package/corpus/templates/design/app/pages/DesignEditor.tsx +2783 -658
- package/corpus/templates/design/app/root.tsx +1 -1
- package/corpus/templates/design/changelog/2026-06-29-agent-edits-to-a-design-are-no-longer-occasionally-dropped-o.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-box-shadow-and-gradient-colors-keep-named-css-colors-like-re.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-containers-no-longer-block-selecting-nested-elements-and-nor.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-cut-cmd-ctrl-x-now-removes-the-selected-element-to-the-clipb.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-deleting-with-multiple-layers-selected-in-the-layers-panel-n.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-agents-now-generate-and-refine-variants-from-stronger.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-inspector-controls-now-match-figmas-softer-dark-chrome.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-questions-now-appear-as-a-cleaner-canvas-intake-with-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-variant-directions-now-appear-as-board-screens-with-chat-buttons.md +5 -0
- package/corpus/templates/design/changelog/2026-06-29-duplicating-a-screen-now-gives-the-copy-its-own-layer-ids-so.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-element-selection-no-longer-snaps-back-to-the-previous-layer.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-frame-resize-measurements-now-stay-beside-the-cursor-while-d.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-hiding-and-re-showing-a-gradient-fill-now-preserves-each-sto.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-inspector-number-fields-have-cleaner-tooltips-and-draggable-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-layer-locking-layer-nesting-generated-question-intake-and-im.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-layer-names-in-the-sidebar-can-scroll-horizontally-instead-o.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-layer-nesting-in-the-sidebar-now-uses-tighter-spacing-so-nam.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-layers-no-longer-repeat-document-wrapper-rows-when-a-screen-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-overview-previews-now-keep-element-hover-and-selection-tied-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-picking-a-design-direction-now-submits-to-the-agent-right-aw.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-pressing-escape-now-cancels-a-stuck-screen-drag-in-the-overv.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-is-easier-to-find-and-named-screens-open-dir.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-only-highlights-screens-when-the-frame-or-ti.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-previews-now-resize-to-match-the-selected-de.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-selection-now-uses-a-pointer-cursor-instead-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-selection-outlines-now-stay-locked-to-the-se.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-zoom-now-reports-real-screen-scale-separatel.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-zooming-feels-smoother-and-selection-outline.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-zooming-now-stays-on-the-overview-canvas-ins.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-selecting-a-nested-layer-from-all-screens-now-keeps-you-in-a.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-share-now-groups-link-sharing-exports-and-agent-handoff.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-style-changes-that-set-several-properties-at-once-fixed-size.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-design-editor-loading-skeleton-now-uses-a-softer-charcoa.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-device-preview-menu-now-sits-next-to-the-preview-button-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-editor-no-longer-crashes-when-a-screen-ends-up-with-dupl.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-inspector-stays-read-only-while-an-empty-design-is-still.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-missing-design-view-now-matches-the-rest-of-the-editor-c.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-pen-tool-icon-and-tool-option-menus-better-match-the-edi.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-typography-controls-now-keep-the-font-name-visible-and-move-.md +6 -0
- package/corpus/templates/design/e2e/README.md +4 -3
- package/corpus/templates/design/e2e/global-setup.ts +24 -23
- package/corpus/templates/design/e2e/helpers.ts +122 -11
- package/corpus/templates/design/playwright.config.ts +19 -4
- package/corpus/templates/design/server/lib/coding-handoff.ts +126 -2
- package/corpus/templates/design/server/plugins/core-routes.ts +1 -2
- package/corpus/templates/design/server/routes/api/design-handoff/[id].zip.get.ts +86 -0
- package/corpus/templates/design/shared/code-layer.ts +125 -22
- package/corpus/templates/design/shared/color-utils.ts +159 -0
- package/corpus/templates/design/shared/generation-session.ts +42 -0
- package/corpus/templates/dispatch/app/global.css +79 -35
- package/corpus/templates/dispatch/app/routes/integrations.tsx +8 -7
- package/corpus/templates/dispatch/changelog/2026-06-29-integration-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/forms/app/components/layout/Layout.tsx +6 -2
- package/corpus/templates/forms/app/global.css +64 -35
- package/corpus/templates/forms/app/pages/FormsListPage.tsx +2 -2
- package/corpus/templates/forms/app/pages/ResponseInsightsPage.tsx +3 -3
- package/corpus/templates/forms/changelog/2026-06-29-form-list-and-insight-layouts-adapt-when-the-agent-sidebar.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +3 -1
- package/corpus/templates/macros/app/global.css +25 -9
- package/corpus/templates/macros/changelog/2026-06-29-macro-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +6 -2
- package/corpus/templates/mail/app/global.css +42 -36
- package/corpus/templates/mail/app/pages/InboxPage.tsx +1 -1
- package/corpus/templates/mail/changelog/2026-06-29-the-contact-panel-now-adapts-to-the-available-mail-pane-width.md +6 -0
- package/corpus/templates/plan/app/components/layout/Layout.tsx +3 -1
- package/corpus/templates/plan/app/components/plan/DocumentArea.tsx +6 -7
- package/corpus/templates/plan/app/global.css +74 -42
- package/corpus/templates/plan/changelog/2026-06-29-plan-document-blocks-adapt-to-the-available-document-width.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-29-plan-titles-and-summaries-can-be-edited-inline-without-focus.md +6 -0
- package/corpus/templates/slides/app/components/layout/Layout.tsx +3 -1
- package/corpus/templates/slides/app/global.css +49 -33
- package/corpus/templates/slides/changelog/2026-06-29-slide-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/videos/app/components/layout/Layout.tsx +3 -1
- package/corpus/templates/videos/app/global.css +35 -35
- package/corpus/templates/videos/changelog/2026-06-29-video-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +10 -0
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +58 -12
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +54 -24
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +2 -1
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/error-format.d.ts.map +1 -1
- package/dist/client/error-format.js +17 -0
- package/dist/client/error-format.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +3 -4
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/guided-questions.d.ts +4 -0
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +16 -7
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +26 -1
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/resources/BuiltinCapabilityDetail.d.ts.map +1 -1
- package/dist/client/resources/BuiltinCapabilityDetail.js +1 -1
- package/dist/client/resources/BuiltinCapabilityDetail.js.map +1 -1
- package/dist/client/resources/use-builtin-capabilities.d.ts +1 -1
- package/dist/client/resources/use-builtin-capabilities.d.ts.map +1 -1
- package/dist/client/resources/use-builtin-capabilities.js +2 -1
- package/dist/client/resources/use-builtin-capabilities.js.map +1 -1
- package/dist/client/session-replay.d.ts.map +1 -1
- package/dist/client/session-replay.js +31 -0
- package/dist/client/session-replay.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts +14 -0
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +36 -7
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/coding-tools/index.js +1 -1
- package/dist/coding-tools/index.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/screen-memory-stdio.d.ts +6 -0
- package/dist/mcp/screen-memory-stdio.d.ts.map +1 -0
- package/dist/mcp/screen-memory-stdio.js +213 -0
- package/dist/mcp/screen-memory-stdio.js.map +1 -0
- package/dist/mcp-client/builtin-capabilities.d.ts +1 -1
- package/dist/mcp-client/builtin-capabilities.d.ts.map +1 -1
- package/dist/mcp-client/builtin-capabilities.js +10 -0
- package/dist/mcp-client/builtin-capabilities.js.map +1 -1
- package/dist/mcp-client/index.d.ts +1 -0
- package/dist/mcp-client/index.d.ts.map +1 -1
- package/dist/mcp-client/index.js +1 -0
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/mcp-client/screen-memory-local.d.ts +61 -0
- package/dist/mcp-client/screen-memory-local.d.ts.map +1 -0
- package/dist/mcp-client/screen-memory-local.js +336 -0
- package/dist/mcp-client/screen-memory-local.js.map +1 -0
- package/dist/onboarding/types.d.ts +7 -0
- package/dist/onboarding/types.d.ts.map +1 -1
- package/dist/onboarding/types.js.map +1 -1
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +26 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agents-bundle.d.ts.map +1 -1
- package/dist/server/agents-bundle.js +22 -7
- package/dist/server/agents-bundle.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-native.css +5 -0
- package/dist/templates/default/app/global.css +35 -35
- package/docs/content/locales/ar-SA/template-design.mdx +6 -0
- package/docs/content/locales/de-DE/template-design.mdx +8 -0
- package/docs/content/locales/es-ES/template-design.mdx +10 -2
- package/docs/content/locales/fr-FR/template-design.mdx +10 -2
- package/docs/content/locales/hi-IN/template-design.mdx +7 -0
- package/docs/content/locales/ja-JP/template-design.mdx +7 -0
- package/docs/content/locales/ko-KR/template-design.mdx +7 -0
- package/docs/content/locales/pt-BR/template-design.mdx +9 -2
- package/docs/content/locales/zh-CN/template-design.mdx +6 -0
- package/docs/content/locales/zh-TW/template-design.mdx +6 -0
- package/docs/content/template-design.mdx +9 -2
- package/package.json +1 -1
- package/src/templates/default/app/global.css +35 -35
- package/corpus/templates/design/app/components/design/VariantGrid.tsx +0 -189
- package/corpus/templates/design/app/components/design/VariantHandoffCard.tsx +0 -115
- package/corpus/templates/design/app/hooks/use-variant-flow.ts +0 -258
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineAction } from "@agent-native/core";
|
|
2
|
+
import { queryScreenMemoryContext } from "@agent-native/core/mcp-client";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
|
|
5
|
+
export default defineAction({
|
|
6
|
+
description:
|
|
7
|
+
"Search recent local Clips Screen Memory context from this machine. Returns bounded OCR/context snippets only; use get-screen-memory-status first if availability is unclear.",
|
|
8
|
+
schema: z.object({
|
|
9
|
+
query: z
|
|
10
|
+
.string()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe("Optional case-insensitive search text"),
|
|
13
|
+
sinceMinutes: z.coerce
|
|
14
|
+
.number()
|
|
15
|
+
.min(0)
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("Only include captures newer than this many minutes"),
|
|
18
|
+
limit: z.coerce
|
|
19
|
+
.number()
|
|
20
|
+
.int()
|
|
21
|
+
.min(1)
|
|
22
|
+
.max(50)
|
|
23
|
+
.default(10)
|
|
24
|
+
.describe("Maximum number of context snippets to return"),
|
|
25
|
+
}),
|
|
26
|
+
http: { method: "GET" },
|
|
27
|
+
readOnly: true,
|
|
28
|
+
run: async (args) => queryScreenMemoryContext(args),
|
|
29
|
+
});
|
|
@@ -455,12 +455,12 @@ export default defineAction({
|
|
|
455
455
|
schema: z.object({}),
|
|
456
456
|
http: false,
|
|
457
457
|
run: async () => {
|
|
458
|
-
// Scoped to the requesting browser tab so each tab exposes the clip
|
|
458
|
+
// Scoped to the requesting browser tab so each tab exposes the clip it is
|
|
459
459
|
// showing, falling back to the global key for CLI/external agents.
|
|
460
460
|
const navigation = (await readAppStateForCurrentTab(
|
|
461
461
|
"navigation",
|
|
462
462
|
)) as NavigationState | null;
|
|
463
|
-
const playerState = await
|
|
463
|
+
const playerState = await readAppStateForCurrentTab("player-state");
|
|
464
464
|
const editorDraft = await readAppState("editor-draft");
|
|
465
465
|
const selection = await readAppStateForCurrentTab("selection");
|
|
466
466
|
const organizationId = await getActiveOrganizationId();
|
|
@@ -584,7 +584,7 @@ export function LibraryLayout({ children }: LibraryLayoutProps) {
|
|
|
584
584
|
</Tooltip>
|
|
585
585
|
</div>
|
|
586
586
|
)}
|
|
587
|
-
<main className="flex min-h-0 flex-1 flex-col overflow-y-auto">
|
|
587
|
+
<main className="agent-native-app-main flex min-h-0 flex-1 flex-col overflow-y-auto">
|
|
588
588
|
<PageHeaderSlotProvider slot={headerSlot}>
|
|
589
589
|
{children}
|
|
590
590
|
</PageHeaderSlotProvider>
|
|
@@ -8,63 +8,63 @@
|
|
|
8
8
|
|
|
9
9
|
:root {
|
|
10
10
|
--background: 0 0% 100%;
|
|
11
|
-
--foreground:
|
|
11
|
+
--foreground: 0 0% 10%;
|
|
12
12
|
--card: 0 0% 100%;
|
|
13
|
-
--card-foreground:
|
|
13
|
+
--card-foreground: 0 0% 10%;
|
|
14
14
|
--popover: 0 0% 100%;
|
|
15
|
-
--popover-foreground:
|
|
16
|
-
--primary:
|
|
15
|
+
--popover-foreground: 0 0% 10%;
|
|
16
|
+
--primary: 0 0% 15%;
|
|
17
17
|
--primary-foreground: 0 0% 100%;
|
|
18
|
-
--secondary:
|
|
19
|
-
--secondary-foreground:
|
|
20
|
-
--muted:
|
|
21
|
-
--muted-foreground:
|
|
22
|
-
--accent:
|
|
23
|
-
--accent-foreground:
|
|
18
|
+
--secondary: 0 0% 95%;
|
|
19
|
+
--secondary-foreground: 0 0% 15%;
|
|
20
|
+
--muted: 0 0% 95%;
|
|
21
|
+
--muted-foreground: 0 0% 45%;
|
|
22
|
+
--accent: 0 0% 95%;
|
|
23
|
+
--accent-foreground: 0 0% 15%;
|
|
24
24
|
--destructive: 0 84% 60%;
|
|
25
25
|
--destructive-foreground: 0 0% 98%;
|
|
26
|
-
--border:
|
|
27
|
-
--input:
|
|
28
|
-
--ring:
|
|
26
|
+
--border: 0 0% 90%;
|
|
27
|
+
--input: 0 0% 90%;
|
|
28
|
+
--ring: 0 0% 40%;
|
|
29
29
|
--radius: 0.5rem;
|
|
30
|
-
--sidebar-background:
|
|
31
|
-
--sidebar-foreground:
|
|
32
|
-
--sidebar-primary:
|
|
30
|
+
--sidebar-background: 0 0% 97%;
|
|
31
|
+
--sidebar-foreground: 0 0% 45%;
|
|
32
|
+
--sidebar-primary: 0 0% 15%;
|
|
33
33
|
--sidebar-primary-foreground: 0 0% 100%;
|
|
34
|
-
--sidebar-accent:
|
|
35
|
-
--sidebar-accent-foreground:
|
|
36
|
-
--sidebar-border:
|
|
37
|
-
--sidebar-ring:
|
|
34
|
+
--sidebar-accent: 0 0% 95%;
|
|
35
|
+
--sidebar-accent-foreground: 0 0% 15%;
|
|
36
|
+
--sidebar-border: 0 0% 90%;
|
|
37
|
+
--sidebar-ring: 0 0% 40%;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.dark {
|
|
41
|
-
--background:
|
|
41
|
+
--background: 0 0% 13%;
|
|
42
42
|
--foreground: 0 0% 90%;
|
|
43
|
-
--card:
|
|
43
|
+
--card: 0 0% 15%;
|
|
44
44
|
--card-foreground: 0 0% 90%;
|
|
45
|
-
--popover:
|
|
45
|
+
--popover: 0 0% 15%;
|
|
46
46
|
--popover-foreground: 0 0% 90%;
|
|
47
47
|
--primary: 0 0% 75%;
|
|
48
|
-
--primary-foreground:
|
|
49
|
-
--secondary:
|
|
48
|
+
--primary-foreground: 0 0% 10%;
|
|
49
|
+
--secondary: 0 0% 18%;
|
|
50
50
|
--secondary-foreground: 0 0% 90%;
|
|
51
|
-
--muted:
|
|
52
|
-
--muted-foreground:
|
|
53
|
-
--accent:
|
|
51
|
+
--muted: 0 0% 16%;
|
|
52
|
+
--muted-foreground: 0 0% 60%;
|
|
53
|
+
--accent: 0 0% 18%;
|
|
54
54
|
--accent-foreground: 0 0% 90%;
|
|
55
55
|
--destructive: 0 63% 51%;
|
|
56
56
|
--destructive-foreground: 0 0% 98%;
|
|
57
|
-
--border:
|
|
58
|
-
--input:
|
|
57
|
+
--border: 0 0% 24%;
|
|
58
|
+
--input: 0 0% 24%;
|
|
59
59
|
--ring: 0 0% 60%;
|
|
60
60
|
--radius: 0.5rem;
|
|
61
|
-
--sidebar-background:
|
|
62
|
-
--sidebar-foreground:
|
|
61
|
+
--sidebar-background: 0 0% 10%;
|
|
62
|
+
--sidebar-foreground: 0 0% 60%;
|
|
63
63
|
--sidebar-primary: 0 0% 75%;
|
|
64
|
-
--sidebar-primary-foreground:
|
|
65
|
-
--sidebar-accent:
|
|
64
|
+
--sidebar-primary-foreground: 0 0% 10%;
|
|
65
|
+
--sidebar-accent: 0 0% 16%;
|
|
66
66
|
--sidebar-accent-foreground: 0 0% 90%;
|
|
67
|
-
--sidebar-border:
|
|
67
|
+
--sidebar-border: 0 0% 20%;
|
|
68
68
|
--sidebar-ring: 0 0% 60%;
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -76,6 +76,18 @@
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
@container agent-native-main (min-width: 980px) {
|
|
80
|
+
.clips-meeting-detail-skeleton-grid,
|
|
81
|
+
.clips-meeting-detail-grid {
|
|
82
|
+
grid-template-columns: minmax(0, 1fr) 380px;
|
|
83
|
+
grid-template-rows: minmax(0, 1fr);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.clips-meeting-notes-panel {
|
|
87
|
+
min-height: 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
79
91
|
::-webkit-scrollbar {
|
|
80
92
|
width: 5px;
|
|
81
93
|
height: 5px;
|
|
@@ -550,7 +550,7 @@ export default function MeetingDetailRoute() {
|
|
|
550
550
|
<Skeleton className="h-6 w-32 mb-4" />
|
|
551
551
|
<Skeleton className="h-9 w-96 mb-2" />
|
|
552
552
|
<Skeleton className="h-4 w-64 mb-6" />
|
|
553
|
-
<div className="grid grid
|
|
553
|
+
<div className="clips-meeting-detail-skeleton-grid grid grid-cols-1 gap-6">
|
|
554
554
|
<Skeleton className="h-[480px] w-full" />
|
|
555
555
|
<Skeleton className="h-[480px] w-full" />
|
|
556
556
|
</div>
|
|
@@ -765,11 +765,11 @@ export default function MeetingDetailRoute() {
|
|
|
765
765
|
)}
|
|
766
766
|
</div>
|
|
767
767
|
|
|
768
|
-
<div className="grid grid
|
|
768
|
+
<div className="clips-meeting-detail-grid grid grid-cols-1 gap-6 flex-1 min-h-0">
|
|
769
769
|
{/* Two-tone canvas: user notes (black) + AI summary/bullets (gray) */}
|
|
770
770
|
<div
|
|
771
771
|
className={cn(
|
|
772
|
-
"rounded-lg border border-border bg-background min-h-[480px]
|
|
772
|
+
"clips-meeting-notes-panel rounded-lg border border-border bg-background min-h-[480px] overflow-hidden flex flex-col",
|
|
773
773
|
notesJustArrived && "animate-in fade-in duration-500",
|
|
774
774
|
)}
|
|
775
775
|
>
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
agentNativePath,
|
|
7
7
|
getBrowserTabId,
|
|
8
8
|
readClientAppState,
|
|
9
|
+
writeClientAppState,
|
|
9
10
|
useChangeVersions,
|
|
10
11
|
useT,
|
|
11
12
|
} from "@agent-native/core/client";
|
|
@@ -29,10 +30,10 @@ import {
|
|
|
29
30
|
IconFileText,
|
|
30
31
|
IconSparkles,
|
|
31
32
|
IconExternalLink,
|
|
32
|
-
|
|
33
|
+
IconMessageDots,
|
|
33
34
|
} from "@tabler/icons-react";
|
|
34
35
|
import { useQuery } from "@tanstack/react-query";
|
|
35
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
36
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
36
37
|
import { useParams, useNavigate, NavLink, useSearchParams } from "react-router";
|
|
37
38
|
import { toast } from "sonner";
|
|
38
39
|
|
|
@@ -240,6 +241,13 @@ export default function RecordingPage() {
|
|
|
240
241
|
const [processingTimeout, setProcessingTimeout] = useState(false);
|
|
241
242
|
const [retryingFinalize, setRetryingFinalize] = useState(false);
|
|
242
243
|
const [downloading, setDownloading] = useState(false);
|
|
244
|
+
const browserTabId = useMemo(() => getBrowserTabId(), []);
|
|
245
|
+
const recordingScope = useMemo(
|
|
246
|
+
() =>
|
|
247
|
+
recordingId ? { type: "recording" as const, id: recordingId } : null,
|
|
248
|
+
[recordingId],
|
|
249
|
+
);
|
|
250
|
+
const lastPlayerStateWriteRef = useRef(0);
|
|
243
251
|
|
|
244
252
|
useEffect(() => {
|
|
245
253
|
if (
|
|
@@ -250,8 +258,9 @@ export default function RecordingPage() {
|
|
|
250
258
|
panelParam === "settings"
|
|
251
259
|
) {
|
|
252
260
|
setPanel(panelParam);
|
|
261
|
+
if (isCompactLayout) setSidePanelOpen(true);
|
|
253
262
|
}
|
|
254
|
-
}, [panelParam]);
|
|
263
|
+
}, [isCompactLayout, panelParam]);
|
|
255
264
|
|
|
256
265
|
const playerDataQ = useActionQuery<any>(
|
|
257
266
|
"get-recording-player-data",
|
|
@@ -315,6 +324,24 @@ export default function RecordingPage() {
|
|
|
315
324
|
const visibleTitle = recording
|
|
316
325
|
? displayRecordingTitle(recording.title)
|
|
317
326
|
: "Untitled Clip";
|
|
327
|
+
useEffect(() => {
|
|
328
|
+
if (!recording?.id) return;
|
|
329
|
+
const now = Date.now();
|
|
330
|
+
if (now - lastPlayerStateWriteRef.current < 1000) return;
|
|
331
|
+
lastPlayerStateWriteRef.current = now;
|
|
332
|
+
void writeClientAppState(
|
|
333
|
+
`player-state:${browserTabId}`,
|
|
334
|
+
{
|
|
335
|
+
view: "recording",
|
|
336
|
+
recordingId: recording.id,
|
|
337
|
+
currentMs: Math.max(0, Math.round(currentMs)),
|
|
338
|
+
durationMs: recording.durationMs,
|
|
339
|
+
panel,
|
|
340
|
+
updatedAt: new Date(now).toISOString(),
|
|
341
|
+
},
|
|
342
|
+
{ requestSource: browserTabId },
|
|
343
|
+
).catch(() => {});
|
|
344
|
+
}, [browserTabId, currentMs, panel, recording?.durationMs, recording?.id]);
|
|
318
345
|
const appStateVersion = useChangeVersions(["app-state", "action"]);
|
|
319
346
|
const generatedWorkflowQ = useQuery<GeneratedWorkflowState | null>({
|
|
320
347
|
queryKey: [
|
|
@@ -777,7 +804,8 @@ export default function RecordingPage() {
|
|
|
777
804
|
className="mt-0 flex flex-1 min-h-0 flex-col data-[state=inactive]:hidden"
|
|
778
805
|
>
|
|
779
806
|
<AgentPanel
|
|
780
|
-
browserTabId={
|
|
807
|
+
browserTabId={browserTabId}
|
|
808
|
+
scope={recordingScope}
|
|
781
809
|
emptyStateText={t("recordingPage.askAboutClip")}
|
|
782
810
|
dynamicSuggestions={false}
|
|
783
811
|
chatNotice={
|
|
@@ -1047,20 +1075,19 @@ export default function RecordingPage() {
|
|
|
1047
1075
|
) : null}
|
|
1048
1076
|
|
|
1049
1077
|
{!editing ? (
|
|
1050
|
-
<
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
</
|
|
1062
|
-
|
|
1063
|
-
</Tooltip>
|
|
1078
|
+
<Button
|
|
1079
|
+
variant="outline"
|
|
1080
|
+
size="sm"
|
|
1081
|
+
className="gap-1.5 xl:hidden"
|
|
1082
|
+
onClick={() => {
|
|
1083
|
+
setPanel("agent");
|
|
1084
|
+
setSidePanelOpen(true);
|
|
1085
|
+
}}
|
|
1086
|
+
aria-label={t("recordingPage.askAboutClip")}
|
|
1087
|
+
>
|
|
1088
|
+
<IconMessageDots className="h-4 w-4" />
|
|
1089
|
+
<span>{t("recordingPage.agent")}</span>
|
|
1090
|
+
</Button>
|
|
1064
1091
|
) : null}
|
|
1065
1092
|
|
|
1066
1093
|
<ShareRecordingPopover
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
color-scheme: light dark;
|
|
3
3
|
--background: #ffffff;
|
|
4
|
-
--foreground: hsl(
|
|
4
|
+
--foreground: hsl(0 0% 10%);
|
|
5
5
|
--card: #ffffff;
|
|
6
|
-
--primary: hsl(
|
|
6
|
+
--primary: hsl(0 0% 15%);
|
|
7
7
|
--primary-foreground: #ffffff;
|
|
8
|
-
--muted: hsl(
|
|
9
|
-
--muted-foreground: hsl(
|
|
10
|
-
--border: hsl(
|
|
11
|
-
--ring: hsl(
|
|
8
|
+
--muted: hsl(0 0% 95%);
|
|
9
|
+
--muted-foreground: hsl(0 0% 45%);
|
|
10
|
+
--border: hsl(0 0% 90%);
|
|
11
|
+
--ring: hsl(0 0% 40%);
|
|
12
12
|
--danger: #b42318;
|
|
13
13
|
--bg: #ffffff;
|
|
14
|
-
--surface: #
|
|
15
|
-
--surface-hover: #
|
|
16
|
-
--surface-strong: #
|
|
17
|
-
--fg: #
|
|
18
|
-
--fg-muted: #
|
|
19
|
-
--fg-subtle: #
|
|
20
|
-
--border-strong: #
|
|
14
|
+
--surface: #f7f7f7;
|
|
15
|
+
--surface-hover: #f0f0f0;
|
|
16
|
+
--surface-strong: #ebebeb;
|
|
17
|
+
--fg: #171717;
|
|
18
|
+
--fg-muted: #737373;
|
|
19
|
+
--fg-subtle: #a3a3a3;
|
|
20
|
+
--border-strong: #d9d9d9;
|
|
21
21
|
--status-ok: #22c55e;
|
|
22
22
|
--status-warn: #f97316;
|
|
23
|
-
--brand: #
|
|
24
|
-
--brand-hover: #
|
|
25
|
-
--brand-ring: rgba(
|
|
23
|
+
--brand: #1a1a1a;
|
|
24
|
+
--brand-hover: #2e2e2e;
|
|
25
|
+
--brand-ring: rgba(26, 26, 26, 0.28);
|
|
26
26
|
--radius: 12px;
|
|
27
27
|
--radius-sm: 8px;
|
|
28
28
|
--radius-pill: 999px;
|
|
29
|
-
--shadow-sm: 0 1px 2px rgba(
|
|
29
|
+
--shadow-sm: 0 1px 2px rgba(23, 23, 23, 0.06);
|
|
30
30
|
--shadow-md:
|
|
31
|
-
0 4px 16px rgba(
|
|
31
|
+
0 4px 16px rgba(23, 23, 23, 0.08), 0 2px 4px rgba(23, 23, 23, 0.04);
|
|
32
32
|
font-family:
|
|
33
33
|
-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto,
|
|
34
34
|
ui-sans-serif, system-ui, sans-serif;
|
|
@@ -41,28 +41,28 @@
|
|
|
41
41
|
|
|
42
42
|
@media (prefers-color-scheme: dark) {
|
|
43
43
|
:root {
|
|
44
|
-
--background: hsl(
|
|
45
|
-
--foreground: hsl(
|
|
46
|
-
--card: hsl(
|
|
47
|
-
--primary: hsl(
|
|
48
|
-
--primary-foreground: hsl(
|
|
49
|
-
--muted: hsl(
|
|
50
|
-
--muted-foreground: hsl(
|
|
51
|
-
--border: hsl(
|
|
52
|
-
--ring: hsl(
|
|
44
|
+
--background: hsl(0 0% 13%);
|
|
45
|
+
--foreground: hsl(0 0% 96%);
|
|
46
|
+
--card: hsl(0 0% 15%);
|
|
47
|
+
--primary: hsl(0 0% 96%);
|
|
48
|
+
--primary-foreground: hsl(0 0% 10%);
|
|
49
|
+
--muted: hsl(0 0% 16%);
|
|
50
|
+
--muted-foreground: hsl(0 0% 68%);
|
|
51
|
+
--border: hsl(0 0% 24%);
|
|
52
|
+
--ring: hsl(0 0% 72%);
|
|
53
53
|
--danger: hsl(6 88% 70%);
|
|
54
|
-
--bg: #
|
|
55
|
-
--surface: #
|
|
56
|
-
--surface-hover: #
|
|
57
|
-
--surface-strong: #
|
|
58
|
-
--fg: #
|
|
59
|
-
--fg-muted: #
|
|
60
|
-
--fg-subtle: #
|
|
61
|
-
--border: #
|
|
62
|
-
--border-strong: #
|
|
63
|
-
--brand: #
|
|
64
|
-
--brand-hover: #
|
|
65
|
-
--brand-ring: rgba(
|
|
54
|
+
--bg: #212121;
|
|
55
|
+
--surface: #262626;
|
|
56
|
+
--surface-hover: #2e2e2e;
|
|
57
|
+
--surface-strong: #3d3d3d;
|
|
58
|
+
--fg: #f5f5f5;
|
|
59
|
+
--fg-muted: #a3a3a3;
|
|
60
|
+
--fg-subtle: #737373;
|
|
61
|
+
--border: #3d3d3d;
|
|
62
|
+
--border-strong: #4d4d4d;
|
|
63
|
+
--brand: #f5f5f5;
|
|
64
|
+
--brand-hover: #e5e5e5;
|
|
65
|
+
--brand-ring: rgba(245, 245, 245, 0.28);
|
|
66
66
|
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
|
|
67
67
|
--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
68
68
|
}
|