@agent-native/core 0.132.2 → 0.133.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 +181 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/correlation.ts +11 -1
- package/corpus/core/src/a2a/types.ts +11 -3
- package/corpus/core/src/agent/engine/ai-sdk-engine.ts +61 -46
- package/corpus/core/src/agent/engine/builder-engine.ts +22 -10
- package/corpus/core/src/agent/engine/error-detail.ts +184 -3
- package/corpus/core/src/agent/engine/failure-taxonomy.ts +123 -0
- package/corpus/core/src/agent/engine/index.ts +8 -0
- package/corpus/core/src/agent/engine/registry.ts +92 -8
- package/corpus/core/src/agent/engine/translate-ai-sdk.ts +17 -2
- package/corpus/core/src/agent/production-agent.ts +13 -33
- package/corpus/core/src/agent/run-loop-with-resume.ts +1 -1
- package/corpus/core/src/agent/run-manager.ts +43 -14
- package/corpus/core/src/agent/run-store.ts +49 -7
- package/corpus/core/src/agent/thread-data-builder.ts +36 -4
- package/corpus/core/src/cli/templates-meta.ts +13 -0
- package/corpus/core/src/cli/workspace-dev.ts +1 -0
- package/corpus/core/src/client/error-format.ts +12 -0
- package/corpus/core/src/credentials/index.ts +51 -12
- package/corpus/core/src/extensions/url-safety.ts +46 -12
- package/corpus/core/src/integrations/adapters/slack.ts +32 -10
- package/corpus/core/src/integrations/google-docs-poller.ts +12 -1
- package/corpus/core/src/integrations/installations-store.ts +30 -0
- package/corpus/core/src/integrations/plugin.ts +5 -5
- package/corpus/core/src/integrations/types.ts +7 -0
- package/corpus/core/src/integrations/webhook-handler.ts +24 -1
- package/corpus/core/src/jobs/background-automation-runner.ts +38 -1
- package/corpus/core/src/provider-api/index.ts +8 -2
- package/corpus/core/src/scripts/call-agent.ts +6 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +30 -9
- package/corpus/core/src/server/agent-discovery.ts +2 -0
- package/corpus/core/src/server/builder-design-systems.ts +21 -0
- package/corpus/core/src/server/credential-provider.ts +51 -12
- package/corpus/core/src/server/index.ts +1 -0
- package/corpus/core/src/server/onboarding-html.ts +37 -2
- package/corpus/core/src/shared/reasoning-effort.ts +1 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +11 -0
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +6 -2
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +39 -19
- package/corpus/templates/assets/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +30 -3
- package/corpus/templates/brain/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +54 -25
- package/corpus/templates/calendar/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +30 -3
- package/corpus/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +37 -21
- package/corpus/templates/clips/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
- package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +1 -1
- package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +1 -1
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +34 -17
- package/corpus/templates/content/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +6 -2
- package/corpus/templates/design/actions/create-design-system.ts +1 -0
- package/corpus/templates/design/actions/set-default-design-system.ts +34 -26
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +21 -4
- package/corpus/templates/design/app/i18n-data.ts +39 -0
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +229 -12
- package/corpus/templates/design/app/pages/DesignSystems.tsx +10 -4
- package/corpus/templates/design/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/corpus/templates/design/changelog/2026-07-31-design-system-indexing-keeps-your-chosen-name-when-you-uploa.md +6 -0
- package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +19 -4
- package/corpus/templates/dispatch/AGENTS.md +4 -0
- package/corpus/templates/factory/.agents/skills/actions/SKILL.md +562 -0
- package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +198 -0
- package/corpus/templates/factory/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +182 -0
- package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +89 -0
- package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +221 -0
- package/corpus/templates/factory/.agents/skills/customizing-agent-native/SKILL.md +220 -0
- package/corpus/templates/factory/.agents/skills/delegate-to-agent/SKILL.md +263 -0
- package/corpus/templates/factory/.agents/skills/factory-graphs/SKILL.md +52 -0
- package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +169 -0
- package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +174 -0
- package/corpus/templates/factory/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/factory/.agents/skills/security/SKILL.md +324 -0
- package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +119 -0
- package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +123 -0
- package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +232 -0
- package/corpus/templates/factory/.agents/skills/storing-data/SKILL.md +178 -0
- package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +122 -0
- package/corpus/templates/factory/.env.example +24 -0
- package/corpus/templates/factory/.ignore +0 -0
- package/corpus/templates/factory/.oxfmtrc.json +8 -0
- package/corpus/templates/factory/AGENTS.md +90 -0
- package/corpus/templates/factory/CHANGELOG.md +10 -0
- package/corpus/templates/factory/DEVELOPING.md +185 -0
- package/corpus/templates/factory/README.md +64 -0
- package/corpus/templates/factory/_gitignore +42 -0
- package/corpus/templates/factory/actions/add-factory-comment.ts +55 -0
- package/corpus/templates/factory/actions/approve-factory-item.ts +214 -0
- package/corpus/templates/factory/actions/babysit-pull-request.ts +126 -0
- package/corpus/templates/factory/actions/evaluate-triage-item.ts +172 -0
- package/corpus/templates/factory/actions/get-factory-graph.ts +62 -0
- package/corpus/templates/factory/actions/get-triage-config.ts +42 -0
- package/corpus/templates/factory/actions/get-triage-item.ts +74 -0
- package/corpus/templates/factory/actions/hello.ts +13 -0
- package/corpus/templates/factory/actions/ingest-github-observation.ts +100 -0
- package/corpus/templates/factory/actions/list-factories.ts +40 -0
- package/corpus/templates/factory/actions/list-factory-comments.ts +40 -0
- package/corpus/templates/factory/actions/list-triage-items.ts +85 -0
- package/corpus/templates/factory/actions/list-triage-rules.ts +44 -0
- package/corpus/templates/factory/actions/navigate.ts +41 -0
- package/corpus/templates/factory/actions/poll-slack-channel.ts +118 -0
- package/corpus/templates/factory/actions/reconcile-triage-run.ts +179 -0
- package/corpus/templates/factory/actions/record-triage-feedback.ts +58 -0
- package/corpus/templates/factory/actions/run.ts +2 -0
- package/corpus/templates/factory/actions/save-factory-graph.ts +129 -0
- package/corpus/templates/factory/actions/save-triage-config.ts +67 -0
- package/corpus/templates/factory/actions/save-triage-rule.ts +89 -0
- package/corpus/templates/factory/actions/suggest-factory-rules.ts +70 -0
- package/corpus/templates/factory/actions/view-screen.ts +73 -0
- package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +441 -0
- package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +388 -0
- package/corpus/templates/factory/app/components/layout/Header.tsx +60 -0
- package/corpus/templates/factory/app/components/layout/Layout.tsx +190 -0
- package/corpus/templates/factory/app/components/layout/Sidebar.tsx +538 -0
- package/corpus/templates/factory/app/components/triage/triage-status-pill.tsx +28 -0
- package/corpus/templates/factory/app/components/ui/button.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/card.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/input.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/label.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/toolkit-provider.tsx +17 -0
- package/corpus/templates/factory/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/factory/app/design-system.ts +3 -0
- package/corpus/templates/factory/app/entry.client.tsx +22 -0
- package/corpus/templates/factory/app/entry.server.tsx +10 -0
- package/corpus/templates/factory/app/global.css +93 -0
- package/corpus/templates/factory/app/hooks/use-navigation-state.ts +113 -0
- package/corpus/templates/factory/app/i18n/en-US.ts +211 -0
- package/corpus/templates/factory/app/i18n/index.ts +34 -0
- package/corpus/templates/factory/app/i18n-data.ts +556 -0
- package/corpus/templates/factory/app/lib/agent-page.tsx +49 -0
- package/corpus/templates/factory/app/lib/app-config.ts +11 -0
- package/corpus/templates/factory/app/lib/tab-id.ts +1 -0
- package/corpus/templates/factory/app/lib/utils.ts +1 -0
- package/corpus/templates/factory/app/root.tsx +175 -0
- package/corpus/templates/factory/app/routes/_index.tsx +94 -0
- package/corpus/templates/factory/app/routes/agent.tsx +24 -0
- package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -0
- package/corpus/templates/factory/app/routes/database.tsx +17 -0
- package/corpus/templates/factory/app/routes/extensions.$id.$slug.tsx +2 -0
- package/corpus/templates/factory/app/routes/extensions.$id.tsx +11 -0
- package/corpus/templates/factory/app/routes/extensions._index.tsx +11 -0
- package/corpus/templates/factory/app/routes/extensions.tsx +5 -0
- package/corpus/templates/factory/app/routes/factory.tsx +1003 -0
- package/corpus/templates/factory/app/routes/observability.tsx +19 -0
- package/corpus/templates/factory/app/routes/settings.tsx +89 -0
- package/corpus/templates/factory/app/routes/team.tsx +11 -0
- package/corpus/templates/factory/app/routes.ts +4 -0
- package/corpus/templates/factory/app/vite-env.d.ts +6 -0
- package/corpus/templates/factory/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/factory/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/factory/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/factory/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/factory/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/factory/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-17-the-agent-chat-sidebar-stays-closed-until-you-open-it-or-sta.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-22-compact-sidebar-footer.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-22-recent-chats-are-easier-to-scan-and-expand.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-24-borderless-secondary-surfaces.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-24-sidebar-footer-controls-follow-a-consistent-order.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-31-added-an-inspectable-observe-only-factory-queue-for-slack-.md +6 -0
- package/corpus/templates/factory/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/corpus/templates/factory/components.json +20 -0
- package/corpus/templates/factory/data/sync-config.json +1 -0
- package/corpus/templates/factory/learnings.defaults.md +5 -0
- package/corpus/templates/factory/netlify.toml +10 -0
- package/corpus/templates/factory/package.json +105 -0
- package/corpus/templates/factory/public/agent-native-icon-dark.svg +10 -0
- package/corpus/templates/factory/public/agent-native-icon-light.svg +10 -0
- package/corpus/templates/factory/public/agent-native-logo-dark.svg +21 -0
- package/corpus/templates/factory/public/agent-native-logo-light.svg +21 -0
- package/corpus/templates/factory/public/favicon.svg +1 -0
- package/corpus/templates/factory/public/icon-180.svg +1 -0
- package/corpus/templates/factory/public/icon-192.svg +1 -0
- package/corpus/templates/factory/public/icon-512.svg +1 -0
- package/corpus/templates/factory/public/manifest.json +21 -0
- package/corpus/templates/factory/react-router.config.ts +7 -0
- package/corpus/templates/factory/server/connectors/credentials.ts +129 -0
- package/corpus/templates/factory/server/connectors/slack.ts +129 -0
- package/corpus/templates/factory/server/db/index.ts +6 -0
- package/corpus/templates/factory/server/db/schema.ts +193 -0
- package/corpus/templates/factory/server/factory-graph/contracts.ts +212 -0
- package/corpus/templates/factory/server/factory-graph/store.ts +121 -0
- package/corpus/templates/factory/server/lib/require-workspace-member.ts +55 -0
- package/corpus/templates/factory/server/middleware/auth.ts +15 -0
- package/corpus/templates/factory/server/plugins/agent-chat.ts +58 -0
- package/corpus/templates/factory/server/plugins/auth.ts +14 -0
- package/corpus/templates/factory/server/plugins/factory-migrations.ts +247 -0
- package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +116 -0
- package/corpus/templates/factory/server/plugins/integrations.ts +46 -0
- package/corpus/templates/factory/server/routes/[...page].get.ts +5 -0
- package/corpus/templates/factory/server/routes/_agent-native/factory/builder-callback.post.ts +116 -0
- package/corpus/templates/factory/server/triage/ai-services-git.ts +197 -0
- package/corpus/templates/factory/server/triage/builder-executor.ts +118 -0
- package/corpus/templates/factory/server/triage/contracts.ts +164 -0
- package/corpus/templates/factory/server/triage/github-ingestion.ts +35 -0
- package/corpus/templates/factory/server/triage/guards.ts +121 -0
- package/corpus/templates/factory/server/triage/ids.ts +27 -0
- package/corpus/templates/factory/server/triage/pr-babysit.ts +100 -0
- package/corpus/templates/factory/server/triage/pr-monitor.ts +220 -0
- package/corpus/templates/factory/server/triage/slack-client.ts +55 -0
- package/corpus/templates/factory/server/triage/slack-poller.ts +152 -0
- package/corpus/templates/factory/ssr-entry.ts +15 -0
- package/corpus/templates/factory/tsconfig.json +21 -0
- package/corpus/templates/factory/vite.config.ts +19 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +55 -5
- package/corpus/templates/forms/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +6 -2
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +21 -6
- package/corpus/templates/plan/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +12 -0
- package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -0
- package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +11 -0
- package/corpus/templates/slides/AGENTS.md +5 -6
- package/corpus/templates/slides/actions/_await-fit-check.ts +20 -10
- package/corpus/templates/slides/actions/add-slide.ts +17 -4
- package/corpus/templates/slides/actions/create-design-system.ts +16 -4
- package/corpus/templates/slides/actions/delete-design-system.ts +18 -2
- package/corpus/templates/slides/actions/get-layout-overflows.ts +88 -0
- package/corpus/templates/slides/actions/import-file.ts +1 -0
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +8 -0
- package/corpus/templates/slides/actions/patch-deck.ts +48 -16
- package/corpus/templates/slides/actions/set-default-design-system.ts +49 -19
- package/corpus/templates/slides/actions/update-slide.ts +13 -3
- package/corpus/templates/slides/actions/view-screen.ts +87 -10
- package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +155 -28
- package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +21 -17
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +849 -341
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +102 -2
- package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +13 -16
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +60 -12
- package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +11 -1
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +66 -19
- package/corpus/templates/slides/app/i18n/en-US.ts +23 -0
- package/corpus/templates/slides/app/lib/normalize-slide-padding.ts +8 -15
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +4 -3
- package/corpus/templates/slides/app/pages/DesignSystems.tsx +4 -3
- package/corpus/templates/slides/app/pages/Index.tsx +1 -1
- package/corpus/templates/slides/changelog/2026-07-31-design-system-details-now-show-their-source-and-indexing-sta.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-31-design-system-indexing-keeps-your-chosen-name-when-you-uploa.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-31-design-system-setup-keeps-focus-rings-visible-and-uses-a-sim.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-31-skip-prompt-is-now-available-in-the-new-deck-prompt-header.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-31-slides-now-detect-real-text-and-box-overflow-across-the-deck.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
- package/corpus/templates/slides/server/handlers/design-systems.ts +1 -0
- package/corpus/templates/slides/server/handlers/index-design-system-sources.ts +1 -0
- package/corpus/templates/slides/server/lib/builder-design-system-proxy.ts +23 -4
- package/corpus/templates/slides/server/plugins/agent-chat.ts +5 -0
- package/corpus/templates/slides/server/plugins/creative-context.ts +16 -3
- package/corpus/templates/slides/server/workspace-defaults.ts +5 -1
- package/corpus/templates/slides/shared/slide-fit.ts +26 -0
- package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +30 -3
- package/corpus/templates/tasks/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/dist/a2a/correlation.d.ts +4 -1
- package/dist/a2a/correlation.d.ts.map +1 -1
- package/dist/a2a/correlation.js +8 -1
- package/dist/a2a/correlation.js.map +1 -1
- package/dist/a2a/types.d.ts +11 -3
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +51 -41
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +18 -8
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/error-detail.d.ts +61 -0
- package/dist/agent/engine/error-detail.d.ts.map +1 -1
- package/dist/agent/engine/error-detail.js +145 -3
- package/dist/agent/engine/error-detail.js.map +1 -1
- package/dist/agent/engine/failure-taxonomy.d.ts +24 -0
- package/dist/agent/engine/failure-taxonomy.d.ts.map +1 -0
- package/dist/agent/engine/failure-taxonomy.js +88 -0
- package/dist/agent/engine/failure-taxonomy.js.map +1 -0
- package/dist/agent/engine/index.d.ts +2 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +2 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +16 -0
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +71 -6
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.js +14 -2
- package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +13 -24
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-loop-with-resume.js +1 -1
- package/dist/agent/run-loop-with-resume.js.map +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +39 -10
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +10 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +38 -6
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +28 -4
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +13 -0
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/cli/workspace-dev.d.ts.map +1 -1
- package/dist/cli/workspace-dev.js +1 -0
- package/dist/cli/workspace-dev.js.map +1 -1
- package/dist/client/error-format.d.ts.map +1 -1
- package/dist/client/error-format.js +10 -0
- package/dist/client/error-format.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/credentials/index.d.ts +9 -2
- package/dist/credentials/index.d.ts.map +1 -1
- package/dist/credentials/index.js +50 -8
- package/dist/credentials/index.js.map +1 -1
- package/dist/extensions/url-safety.d.ts.map +1 -1
- package/dist/extensions/url-safety.js +38 -12
- package/dist/extensions/url-safety.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js +25 -8
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/google-docs-poller.d.ts.map +1 -1
- package/dist/integrations/google-docs-poller.js +13 -1
- package/dist/integrations/google-docs-poller.js.map +1 -1
- package/dist/integrations/installations-store.d.ts +10 -0
- package/dist/integrations/installations-store.d.ts.map +1 -1
- package/dist/integrations/installations-store.js +24 -0
- package/dist/integrations/installations-store.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +6 -5
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/types.d.ts +7 -0
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/integrations/types.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +16 -1
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/background-automation-runner.d.ts.map +1 -1
- package/dist/jobs/background-automation-runner.js +35 -2
- package/dist/jobs/background-automation-runner.js.map +1 -1
- package/dist/mcp/screen-memory-stdio.d.ts +7 -7
- package/dist/mcp/screen-memory-stdio.d.ts.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/observability/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
- package/dist/provider-api/actions/provider-api.d.ts +8 -8
- package/dist/provider-api/index.js +7 -3
- package/dist/provider-api/index.js.map +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +6 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +25 -7
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts +2 -0
- package/dist/server/agent-discovery.d.ts.map +1 -1
- package/dist/server/agent-discovery.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/builder-design-systems.d.ts +4 -1
- package/dist/server/builder-design-systems.d.ts.map +1 -1
- package/dist/server/builder-design-systems.js +11 -1
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +49 -12
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +37 -2
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/shared/reasoning-effort.d.ts +1 -0
- package/dist/shared/reasoning-effort.d.ts.map +1 -1
- package/dist/shared/reasoning-effort.js +1 -1
- package/dist/shared/reasoning-effort.js.map +1 -1
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +30 -3
- package/dist/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +11 -0
- package/package.json +1 -1
- package/src/a2a/correlation.ts +11 -1
- package/src/a2a/types.ts +11 -3
- package/src/agent/engine/ai-sdk-engine.ts +61 -46
- package/src/agent/engine/builder-engine.ts +22 -10
- package/src/agent/engine/error-detail.ts +184 -3
- package/src/agent/engine/failure-taxonomy.ts +123 -0
- package/src/agent/engine/index.ts +8 -0
- package/src/agent/engine/registry.ts +92 -8
- package/src/agent/engine/translate-ai-sdk.ts +17 -2
- package/src/agent/production-agent.ts +13 -33
- package/src/agent/run-loop-with-resume.ts +1 -1
- package/src/agent/run-manager.ts +43 -14
- package/src/agent/run-store.ts +49 -7
- package/src/agent/thread-data-builder.ts +36 -4
- package/src/cli/templates-meta.ts +13 -0
- package/src/cli/workspace-dev.ts +1 -0
- package/src/client/error-format.ts +12 -0
- package/src/credentials/index.ts +51 -12
- package/src/extensions/url-safety.ts +46 -12
- package/src/integrations/adapters/slack.ts +32 -10
- package/src/integrations/google-docs-poller.ts +12 -1
- package/src/integrations/installations-store.ts +30 -0
- package/src/integrations/plugin.ts +5 -5
- package/src/integrations/types.ts +7 -0
- package/src/integrations/webhook-handler.ts +24 -1
- package/src/jobs/background-automation-runner.ts +38 -1
- package/src/provider-api/index.ts +8 -2
- package/src/scripts/call-agent.ts +6 -0
- package/src/server/agent-chat-plugin.ts +30 -9
- package/src/server/agent-discovery.ts +2 -0
- package/src/server/builder-design-systems.ts +21 -0
- package/src/server/credential-provider.ts +51 -12
- package/src/server/index.ts +1 -0
- package/src/server/onboarding-html.ts +37 -2
- package/src/shared/reasoning-effort.ts +1 -1
- package/src/templates/chat/app/components/layout/Sidebar.tsx +30 -3
- package/src/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +11 -0
- package/corpus/templates/clips/desktop/src/lib/media-device-selection.ts +0 -157
|
@@ -2229,13 +2229,17 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2229
2229
|
src={appPath("/agent-native-icon-light.svg")}
|
|
2230
2230
|
alt=""
|
|
2231
2231
|
aria-hidden="true"
|
|
2232
|
-
|
|
2232
|
+
width={35}
|
|
2233
|
+
height={20}
|
|
2234
|
+
className="block h-5 w-[35px] shrink-0 object-contain object-center dark:hidden"
|
|
2233
2235
|
/>
|
|
2234
2236
|
<img
|
|
2235
2237
|
src={appPath("/agent-native-icon-dark.svg")}
|
|
2236
2238
|
alt=""
|
|
2237
2239
|
aria-hidden="true"
|
|
2238
|
-
|
|
2240
|
+
width={35}
|
|
2241
|
+
height={20}
|
|
2242
|
+
className="hidden h-5 w-[35px] shrink-0 object-contain object-center dark:block"
|
|
2239
2243
|
/>
|
|
2240
2244
|
<span className="text-lg font-bold tracking-tight">
|
|
2241
2245
|
{t("navigation.brand")}
|
|
@@ -377,6 +377,44 @@ export function Sidebar() {
|
|
|
377
377
|
className={collapsed ? "h-8 w-8" : "min-w-0"}
|
|
378
378
|
/>
|
|
379
379
|
);
|
|
380
|
+
const brandControl = (
|
|
381
|
+
<button
|
|
382
|
+
type="button"
|
|
383
|
+
onClick={() => setCollapsed((value) => !value)}
|
|
384
|
+
aria-label={
|
|
385
|
+
collapsed
|
|
386
|
+
? t("navigation.expandSidebar")
|
|
387
|
+
: t("navigation.collapseSidebar")
|
|
388
|
+
}
|
|
389
|
+
className={cn(
|
|
390
|
+
"flex items-center gap-2 rounded outline-none transition-colors hover:bg-sidebar-accent/50 focus-visible:ring-2 focus-visible:ring-ring",
|
|
391
|
+
collapsed ? "size-8 justify-center" : "text-start",
|
|
392
|
+
)}
|
|
393
|
+
data-sidebar-brand-toggle
|
|
394
|
+
>
|
|
395
|
+
<img
|
|
396
|
+
src={appPath("/agent-native-icon-light.svg")}
|
|
397
|
+
alt=""
|
|
398
|
+
aria-hidden="true"
|
|
399
|
+
width={28}
|
|
400
|
+
height={16}
|
|
401
|
+
className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
|
|
402
|
+
/>
|
|
403
|
+
<img
|
|
404
|
+
src={appPath("/agent-native-icon-dark.svg")}
|
|
405
|
+
alt=""
|
|
406
|
+
aria-hidden="true"
|
|
407
|
+
width={28}
|
|
408
|
+
height={16}
|
|
409
|
+
className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
|
|
410
|
+
/>
|
|
411
|
+
{!collapsed && (
|
|
412
|
+
<span className="text-sm font-semibold tracking-tight">
|
|
413
|
+
{t("navigation.brand")}
|
|
414
|
+
</span>
|
|
415
|
+
)}
|
|
416
|
+
</button>
|
|
417
|
+
);
|
|
380
418
|
|
|
381
419
|
return (
|
|
382
420
|
<aside
|
|
@@ -391,25 +429,7 @@ export function Sidebar() {
|
|
|
391
429
|
collapsed ? "justify-center px-2" : "justify-between px-4",
|
|
392
430
|
)}
|
|
393
431
|
>
|
|
394
|
-
{
|
|
395
|
-
<div className="flex items-center gap-2">
|
|
396
|
-
<img
|
|
397
|
-
src={appPath("/agent-native-icon-light.svg")}
|
|
398
|
-
alt=""
|
|
399
|
-
aria-hidden="true"
|
|
400
|
-
className="block h-4 w-auto dark:hidden"
|
|
401
|
-
/>
|
|
402
|
-
<img
|
|
403
|
-
src={appPath("/agent-native-icon-dark.svg")}
|
|
404
|
-
alt=""
|
|
405
|
-
aria-hidden="true"
|
|
406
|
-
className="hidden h-4 w-auto dark:block"
|
|
407
|
-
/>
|
|
408
|
-
<span className="text-sm font-semibold tracking-tight">
|
|
409
|
-
{t("navigation.brand")}
|
|
410
|
-
</span>
|
|
411
|
-
</div>
|
|
412
|
-
)}
|
|
432
|
+
{brandControl}
|
|
413
433
|
</div>
|
|
414
434
|
|
|
415
435
|
<div className="flex min-h-0 flex-1 flex-col overflow-y-auto">
|
|
@@ -310,23 +310,50 @@ export function Sidebar({
|
|
|
310
310
|
>
|
|
311
311
|
<Link
|
|
312
312
|
to="/"
|
|
313
|
+
onClick={(event) => {
|
|
314
|
+
if (
|
|
315
|
+
!collapsible ||
|
|
316
|
+
!onCollapsedChange ||
|
|
317
|
+
event.metaKey ||
|
|
318
|
+
event.ctrlKey ||
|
|
319
|
+
event.shiftKey ||
|
|
320
|
+
event.altKey ||
|
|
321
|
+
event.button !== 0
|
|
322
|
+
) {
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
event.preventDefault();
|
|
326
|
+
onCollapsedChange(!collapsed);
|
|
327
|
+
}}
|
|
313
328
|
className={cn(
|
|
314
329
|
"flex min-w-0 items-center rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
315
330
|
collapsed ? "size-8 justify-center" : "flex-1 gap-3",
|
|
316
331
|
)}
|
|
317
|
-
aria-label={
|
|
332
|
+
aria-label={
|
|
333
|
+
collapsible && onCollapsedChange
|
|
334
|
+
? collapsed
|
|
335
|
+
? t("navigation.expandSidebar")
|
|
336
|
+
: t("navigation.collapseSidebar")
|
|
337
|
+
: collapsed
|
|
338
|
+
? t("navigation.brand")
|
|
339
|
+
: undefined
|
|
340
|
+
}
|
|
318
341
|
>
|
|
319
342
|
<img
|
|
320
343
|
src={appPath("/agent-native-icon-light.svg")}
|
|
321
344
|
alt=""
|
|
322
345
|
aria-hidden="true"
|
|
323
|
-
|
|
346
|
+
width={28}
|
|
347
|
+
height={16}
|
|
348
|
+
className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
|
|
324
349
|
/>
|
|
325
350
|
<img
|
|
326
351
|
src={appPath("/agent-native-icon-dark.svg")}
|
|
327
352
|
alt=""
|
|
328
353
|
aria-hidden="true"
|
|
329
|
-
|
|
354
|
+
width={28}
|
|
355
|
+
height={16}
|
|
356
|
+
className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
|
|
330
357
|
/>
|
|
331
358
|
<div className={cn("min-w-0", collapsed && "sr-only")}>
|
|
332
359
|
<p className="truncate text-sm font-semibold text-sidebar-accent-foreground">
|
|
@@ -386,7 +386,7 @@ export function AppLayout({ children }: AppLayoutProps) {
|
|
|
386
386
|
open={sidebarOpen}
|
|
387
387
|
onClose={() => setSidebarOpen(false)}
|
|
388
388
|
collapsed={!isMobile && sidebarCollapsed}
|
|
389
|
-
onCollapsedChange={setSidebarCollapsed}
|
|
389
|
+
onCollapsedChange={isMobile ? undefined : setSidebarCollapsed}
|
|
390
390
|
/>
|
|
391
391
|
<AgentSidebar
|
|
392
392
|
position="right"
|
|
@@ -775,31 +775,60 @@ export function Sidebar({
|
|
|
775
775
|
collapsed ? "px-1" : "px-4",
|
|
776
776
|
)}
|
|
777
777
|
>
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
778
|
+
<Link
|
|
779
|
+
to="/"
|
|
780
|
+
onClick={(event) => {
|
|
781
|
+
onClose();
|
|
782
|
+
if (
|
|
783
|
+
!onCollapsedChange ||
|
|
784
|
+
event.metaKey ||
|
|
785
|
+
event.ctrlKey ||
|
|
786
|
+
event.shiftKey ||
|
|
787
|
+
event.altKey ||
|
|
788
|
+
event.button !== 0
|
|
789
|
+
) {
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
event.preventDefault();
|
|
793
|
+
onCollapsedChange(!collapsed);
|
|
794
|
+
}}
|
|
795
|
+
className={cn(
|
|
796
|
+
"flex items-center gap-2 rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
797
|
+
collapsed ? "size-8 justify-center" : "flex-1",
|
|
798
|
+
)}
|
|
799
|
+
aria-label={
|
|
800
|
+
onCollapsedChange
|
|
801
|
+
? collapsed
|
|
802
|
+
? t("sidebar.expandSidebar")
|
|
803
|
+
: t("sidebar.collapseSidebar")
|
|
804
|
+
: collapsed
|
|
805
|
+
? t("navigation.brand")
|
|
806
|
+
: undefined
|
|
807
|
+
}
|
|
808
|
+
data-sidebar-brand-toggle
|
|
809
|
+
>
|
|
810
|
+
<img
|
|
811
|
+
src={appPath("/agent-native-icon-light.svg")}
|
|
812
|
+
alt=""
|
|
813
|
+
aria-hidden="true"
|
|
814
|
+
width={28}
|
|
815
|
+
height={16}
|
|
816
|
+
className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
|
|
817
|
+
/>
|
|
818
|
+
<img
|
|
819
|
+
src={appPath("/agent-native-icon-dark.svg")}
|
|
820
|
+
alt=""
|
|
821
|
+
aria-hidden="true"
|
|
822
|
+
width={28}
|
|
823
|
+
height={16}
|
|
824
|
+
className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
|
|
825
|
+
/>
|
|
826
|
+
{!collapsed && (
|
|
827
|
+
<span className="text-base font-semibold tracking-tight">
|
|
828
|
+
{t("navigation.brand")}
|
|
829
|
+
</span>
|
|
830
|
+
)}
|
|
831
|
+
</Link>
|
|
803
832
|
</div>
|
|
804
833
|
|
|
805
834
|
<div className="min-h-0 flex-1 overflow-y-auto">
|
|
@@ -358,23 +358,50 @@ export function Sidebar({
|
|
|
358
358
|
>
|
|
359
359
|
<Link
|
|
360
360
|
to="/"
|
|
361
|
+
onClick={(event) => {
|
|
362
|
+
if (
|
|
363
|
+
!collapsible ||
|
|
364
|
+
!onCollapsedChange ||
|
|
365
|
+
event.metaKey ||
|
|
366
|
+
event.ctrlKey ||
|
|
367
|
+
event.shiftKey ||
|
|
368
|
+
event.altKey ||
|
|
369
|
+
event.button !== 0
|
|
370
|
+
) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
event.preventDefault();
|
|
374
|
+
onCollapsedChange(!collapsed);
|
|
375
|
+
}}
|
|
361
376
|
className={cn(
|
|
362
377
|
"flex min-w-0 items-center rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
363
378
|
collapsed ? "size-7 justify-center" : "flex-1 gap-3",
|
|
364
379
|
)}
|
|
365
|
-
aria-label={
|
|
380
|
+
aria-label={
|
|
381
|
+
collapsible && onCollapsedChange
|
|
382
|
+
? collapsed
|
|
383
|
+
? t("navigation.expandSidebar")
|
|
384
|
+
: t("navigation.collapseSidebar")
|
|
385
|
+
: collapsed
|
|
386
|
+
? APP_TITLE
|
|
387
|
+
: undefined
|
|
388
|
+
}
|
|
366
389
|
>
|
|
367
390
|
<img
|
|
368
391
|
src={appPath("/agent-native-icon-light.svg")}
|
|
369
392
|
alt=""
|
|
370
393
|
aria-hidden="true"
|
|
371
|
-
|
|
394
|
+
width={28}
|
|
395
|
+
height={16}
|
|
396
|
+
className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
|
|
372
397
|
/>
|
|
373
398
|
<img
|
|
374
399
|
src={appPath("/agent-native-icon-dark.svg")}
|
|
375
400
|
alt=""
|
|
376
401
|
aria-hidden="true"
|
|
377
|
-
|
|
402
|
+
width={28}
|
|
403
|
+
height={16}
|
|
404
|
+
className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
|
|
378
405
|
/>
|
|
379
406
|
<div className={cn("min-w-0", collapsed && "sr-only")}>
|
|
380
407
|
<p className="truncate text-sm font-semibold text-sidebar-accent-foreground">
|
|
@@ -336,32 +336,48 @@ export function LibraryLayout({ children }: LibraryLayoutProps) {
|
|
|
336
336
|
showCollapsedSidebar ? "justify-center px-2" : "px-4",
|
|
337
337
|
)}
|
|
338
338
|
>
|
|
339
|
-
<
|
|
339
|
+
<button
|
|
340
|
+
type="button"
|
|
341
|
+
onClick={() => {
|
|
342
|
+
if (!isMobile) setSidebarCollapsed((value) => !value);
|
|
343
|
+
}}
|
|
344
|
+
aria-label={
|
|
345
|
+
isMobile
|
|
346
|
+
? t("navigation.brand")
|
|
347
|
+
: showCollapsedSidebar
|
|
348
|
+
? t("navigation.expandSidebar")
|
|
349
|
+
: t("navigation.collapseSidebar")
|
|
350
|
+
}
|
|
340
351
|
className={cn(
|
|
341
|
-
"flex min-w-0 items-center gap-2",
|
|
342
|
-
|
|
352
|
+
"flex min-w-0 items-center gap-2 rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
353
|
+
showCollapsedSidebar
|
|
354
|
+
? "size-8 justify-center"
|
|
355
|
+
: "flex-1 text-start",
|
|
343
356
|
)}
|
|
357
|
+
data-sidebar-brand-toggle
|
|
344
358
|
>
|
|
359
|
+
<img
|
|
360
|
+
src={appPath("/agent-native-icon-light.svg")}
|
|
361
|
+
alt=""
|
|
362
|
+
aria-hidden="true"
|
|
363
|
+
width={28}
|
|
364
|
+
height={16}
|
|
365
|
+
className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
|
|
366
|
+
/>
|
|
367
|
+
<img
|
|
368
|
+
src={appPath("/agent-native-icon-dark.svg")}
|
|
369
|
+
alt=""
|
|
370
|
+
aria-hidden="true"
|
|
371
|
+
width={28}
|
|
372
|
+
height={16}
|
|
373
|
+
className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
|
|
374
|
+
/>
|
|
345
375
|
{!showCollapsedSidebar && (
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
alt=""
|
|
350
|
-
aria-hidden="true"
|
|
351
|
-
className="block h-4 w-auto shrink-0 dark:hidden"
|
|
352
|
-
/>
|
|
353
|
-
<img
|
|
354
|
-
src={appPath("/agent-native-icon-dark.svg")}
|
|
355
|
-
alt=""
|
|
356
|
-
aria-hidden="true"
|
|
357
|
-
className="hidden h-4 w-auto shrink-0 dark:block"
|
|
358
|
-
/>
|
|
359
|
-
<span className="truncate text-sm font-semibold text-foreground">
|
|
360
|
-
{t("navigation.brand")}
|
|
361
|
-
</span>
|
|
362
|
-
</>
|
|
376
|
+
<span className="truncate text-sm font-semibold text-foreground">
|
|
377
|
+
{t("navigation.brand")}
|
|
378
|
+
</span>
|
|
363
379
|
)}
|
|
364
|
-
</
|
|
380
|
+
</button>
|
|
365
381
|
</div>
|
|
366
382
|
<div className="min-h-0 flex-1 overflow-y-auto">
|
|
367
383
|
{showCollapsedSidebar ? (
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
isPseudoMediaDeviceId,
|
|
14
14
|
isSelectableAudioInputDevice,
|
|
15
15
|
normalizedMediaDeviceId,
|
|
16
|
-
} from "
|
|
16
|
+
} from "../../../shared/media-device-selection";
|
|
17
17
|
import {
|
|
18
18
|
isHardCapturePermissionError,
|
|
19
19
|
MACOS_CAPTURE_PERMISSION_MESSAGE,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
enumerateAudioInputDevices,
|
|
4
4
|
isLikelyPhoneMicLabel,
|
|
5
5
|
type AudioInputFallback,
|
|
6
|
-
} from "
|
|
6
|
+
} from "../../../shared/media-device-selection";
|
|
7
7
|
|
|
8
8
|
export const VOICE_FOCUSED_AUDIO_CONSTRAINTS: MediaTrackConstraints = {
|
|
9
9
|
echoCancellation: { ideal: true },
|
|
@@ -1617,6 +1617,38 @@ export function DocumentSidebar({
|
|
|
1617
1617
|
className={collapsed ? "size-8" : "h-8 min-w-0"}
|
|
1618
1618
|
/>
|
|
1619
1619
|
);
|
|
1620
|
+
const brandButton = (isCollapsed: boolean) => (
|
|
1621
|
+
<button
|
|
1622
|
+
type="button"
|
|
1623
|
+
onClick={onToggleCollapsed}
|
|
1624
|
+
aria-label={isCollapsed ? t("sidebar.expand") : t("sidebar.collapse")}
|
|
1625
|
+
className={cn(
|
|
1626
|
+
"flex items-center gap-2 rounded outline-none text-foreground transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring",
|
|
1627
|
+
isCollapsed ? "size-8 justify-center" : "min-w-0 text-start",
|
|
1628
|
+
)}
|
|
1629
|
+
data-sidebar-brand-toggle
|
|
1630
|
+
>
|
|
1631
|
+
<img
|
|
1632
|
+
src={appPath("/agent-native-icon-light.svg")}
|
|
1633
|
+
alt=""
|
|
1634
|
+
aria-hidden="true"
|
|
1635
|
+
width={28}
|
|
1636
|
+
height={16}
|
|
1637
|
+
className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
|
|
1638
|
+
/>
|
|
1639
|
+
<img
|
|
1640
|
+
src={appPath("/agent-native-icon-dark.svg")}
|
|
1641
|
+
alt=""
|
|
1642
|
+
aria-hidden="true"
|
|
1643
|
+
width={28}
|
|
1644
|
+
height={16}
|
|
1645
|
+
className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
|
|
1646
|
+
/>
|
|
1647
|
+
{!isCollapsed && (
|
|
1648
|
+
<span className="text-base font-semibold tracking-tight">Content</span>
|
|
1649
|
+
)}
|
|
1650
|
+
</button>
|
|
1651
|
+
);
|
|
1620
1652
|
|
|
1621
1653
|
const toggleSection = (id: SidebarSectionId) => {
|
|
1622
1654
|
setStoredCollapsedSections((current) => {
|
|
@@ -2118,6 +2150,7 @@ export function DocumentSidebar({
|
|
|
2118
2150
|
if (collapsed) {
|
|
2119
2151
|
return (
|
|
2120
2152
|
<div className="agent-layout-left-drawer flex h-full w-12 flex-col items-center gap-1 border-e border-border bg-sidebar py-3 transition-[width] duration-200 ease-out">
|
|
2153
|
+
{brandButton(true)}
|
|
2121
2154
|
{renderCollapsedNewButton()}
|
|
2122
2155
|
<Tooltip>
|
|
2123
2156
|
<TooltipTrigger asChild>
|
|
@@ -2156,23 +2189,7 @@ export function DocumentSidebar({
|
|
|
2156
2189
|
>
|
|
2157
2190
|
{/* Header */}
|
|
2158
2191
|
<div className="flex h-12 shrink-0 items-center justify-between border-b border-border px-3">
|
|
2159
|
-
|
|
2160
|
-
<img
|
|
2161
|
-
src={appPath("/agent-native-icon-light.svg")}
|
|
2162
|
-
alt=""
|
|
2163
|
-
aria-hidden="true"
|
|
2164
|
-
className="block h-4 w-auto shrink-0 dark:hidden"
|
|
2165
|
-
/>
|
|
2166
|
-
<img
|
|
2167
|
-
src={appPath("/agent-native-icon-dark.svg")}
|
|
2168
|
-
alt=""
|
|
2169
|
-
aria-hidden="true"
|
|
2170
|
-
className="hidden h-4 w-auto shrink-0 dark:block"
|
|
2171
|
-
/>
|
|
2172
|
-
<span className="text-base font-semibold tracking-tight text-foreground">
|
|
2173
|
-
Content
|
|
2174
|
-
</span>
|
|
2175
|
-
</div>
|
|
2192
|
+
{brandButton(false)}
|
|
2176
2193
|
</div>
|
|
2177
2194
|
|
|
2178
2195
|
{/* Search */}
|
|
@@ -30,6 +30,7 @@ Design systems are stored in the `design_systems` SQL table. Each has:
|
|
|
30
30
|
- `is_default` — boolean, whether this is the user's default design system
|
|
31
31
|
- `owner_email` — auto-set from session
|
|
32
32
|
- `org_id` — organization scope
|
|
33
|
+
- `visibility` — defaults to `org` inside an organization, otherwise `private`
|
|
33
34
|
|
|
34
35
|
### DesignSystemData Schema
|
|
35
36
|
|
|
@@ -125,7 +126,9 @@ brand's actual extracted fonts) rather than defaulting to Space Grotesk/DM
|
|
|
125
126
|
Sans every time; that pairing is this skill's own most common convergence
|
|
126
127
|
fingerprint.
|
|
127
128
|
|
|
128
|
-
If this is the user's first design system
|
|
129
|
+
If this is the user's first design system in the active organization, it is
|
|
130
|
+
automatically set as the default. Organization-scoped systems are shared with
|
|
131
|
+
that organization by default.
|
|
129
132
|
|
|
130
133
|
### Starting from an established public system
|
|
131
134
|
|
|
@@ -175,7 +178,8 @@ Only provided fields are updated. You can also update `--title`, `--description`
|
|
|
175
178
|
pnpm action set-default-design-system --id <id>
|
|
176
179
|
```
|
|
177
180
|
|
|
178
|
-
|
|
181
|
+
Pass `--isDefault false` to clear the current default. Setting a system as the
|
|
182
|
+
default unsets the previous default in the same user and organization scope.
|
|
179
183
|
|
|
180
184
|
## Multi-Source Import Flow
|
|
181
185
|
|
|
@@ -11,11 +11,16 @@ import { getDb, schema } from "../server/db/index.js";
|
|
|
11
11
|
|
|
12
12
|
export default defineAction({
|
|
13
13
|
description:
|
|
14
|
-
"Set a design system as the default
|
|
14
|
+
"Set or unset a design system as the default for the current user and organization.",
|
|
15
15
|
schema: z.object({
|
|
16
16
|
id: z.string().describe("Design system ID to set as default"),
|
|
17
|
+
isDefault: z
|
|
18
|
+
.boolean()
|
|
19
|
+
.optional()
|
|
20
|
+
.default(true)
|
|
21
|
+
.describe("Whether this design system should be the default"),
|
|
17
22
|
}),
|
|
18
|
-
run: async ({ id }) => {
|
|
23
|
+
run: async ({ id, isDefault = true }) => {
|
|
19
24
|
await assertAccess("design-system", id, "editor");
|
|
20
25
|
|
|
21
26
|
const db = getDb();
|
|
@@ -26,42 +31,45 @@ export default defineAction({
|
|
|
26
31
|
const orgId = getRequestOrgId();
|
|
27
32
|
|
|
28
33
|
const [target] = await db
|
|
29
|
-
.select({
|
|
34
|
+
.select({
|
|
35
|
+
ownerEmail: schema.designSystems.ownerEmail,
|
|
36
|
+
orgId: schema.designSystems.orgId,
|
|
37
|
+
})
|
|
30
38
|
.from(schema.designSystems)
|
|
31
39
|
.where(eq(schema.designSystems.id, id))
|
|
32
40
|
.limit(1);
|
|
33
41
|
|
|
34
|
-
if (
|
|
42
|
+
if (
|
|
43
|
+
target?.ownerEmail !== userEmail ||
|
|
44
|
+
(target.orgId ?? null) !== (orgId ?? null)
|
|
45
|
+
) {
|
|
35
46
|
throw new Error("Only the owner can set a design system as default");
|
|
36
47
|
}
|
|
37
48
|
|
|
38
49
|
await db.transaction(async (tx) => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
const targetScope = orgId
|
|
51
|
+
? and(
|
|
52
|
+
eq(schema.designSystems.ownerEmail, userEmail),
|
|
53
|
+
eq(schema.designSystems.orgId, orgId),
|
|
54
|
+
)
|
|
55
|
+
: and(
|
|
56
|
+
eq(schema.designSystems.ownerEmail, userEmail),
|
|
57
|
+
isNull(schema.designSystems.orgId),
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
if (isDefault) {
|
|
61
|
+
await tx
|
|
62
|
+
.update(schema.designSystems)
|
|
63
|
+
.set({ isDefault: false, updatedAt: now })
|
|
64
|
+
.where(targetScope);
|
|
65
|
+
}
|
|
53
66
|
|
|
54
67
|
await tx
|
|
55
68
|
.update(schema.designSystems)
|
|
56
|
-
.set({ isDefault
|
|
57
|
-
.where(
|
|
58
|
-
and(
|
|
59
|
-
eq(schema.designSystems.id, id),
|
|
60
|
-
eq(schema.designSystems.ownerEmail, userEmail),
|
|
61
|
-
),
|
|
62
|
-
);
|
|
69
|
+
.set({ isDefault, updatedAt: now })
|
|
70
|
+
.where(and(eq(schema.designSystems.id, id), targetScope));
|
|
63
71
|
});
|
|
64
72
|
|
|
65
|
-
return { id, isDefault
|
|
73
|
+
return { id, isDefault };
|
|
66
74
|
},
|
|
67
75
|
});
|