@agent-native/core 0.97.0 → 0.98.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 +32 -0
- package/corpus/core/docs/content/authentication.mdx +3 -3
- package/corpus/core/docs/content/doctor.mdx +170 -0
- package/corpus/core/docs/content/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/security.mdx +2 -0
- package/corpus/core/docs/content/locales/de-DE/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/security.mdx +2 -0
- package/corpus/core/docs/content/locales/es-ES/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/security.mdx +2 -0
- package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/security.mdx +2 -0
- package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/security.mdx +2 -0
- package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/security.mdx +2 -0
- package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/security.mdx +2 -0
- package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/security.mdx +2 -0
- package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/security.mdx +2 -0
- package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/security.mdx +2 -0
- package/corpus/core/docs/content/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/security.mdx +2 -0
- package/corpus/core/package.json +5 -1
- package/corpus/core/scripts/finalize-build.mjs +63 -3
- package/corpus/core/scripts/materialize-source-corpus.mjs +101 -15
- package/corpus/core/src/action.ts +42 -0
- package/corpus/core/src/agent/engine/builder-engine.ts +3 -0
- package/corpus/core/src/agent/engine/context-directives-transform.ts +69 -0
- package/corpus/core/src/agent/engine/continuation-dispatch-retry.ts +168 -0
- package/corpus/core/src/agent/engine/tool-call-journal-seed.ts +85 -0
- package/corpus/core/src/agent/production-agent.ts +129 -244
- package/corpus/core/src/cli/doctor.ts +9 -3
- package/corpus/core/src/cli/plan-local.ts +10 -2
- package/corpus/core/src/cli/skills-content/assets-skill.ts +83 -0
- package/corpus/core/src/cli/skills-content/canvas.ts +153 -0
- package/corpus/core/src/cli/skills-content/connection.ts +52 -0
- package/corpus/core/src/cli/skills-content/content-skill.ts +109 -0
- package/corpus/core/src/cli/skills-content/design-exploration-skill.ts +118 -0
- package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +228 -0
- package/corpus/core/src/cli/skills-content/document-quality.ts +196 -0
- package/corpus/core/src/cli/skills-content/exemplar.ts +69 -0
- package/corpus/core/src/cli/skills-content/help.ts +77 -0
- package/corpus/core/src/cli/skills-content/index.ts +22 -0
- package/corpus/core/src/cli/skills-content/local-files.ts +95 -0
- package/corpus/core/src/cli/skills-content/plan-setup-auth.ts +80 -0
- package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +470 -0
- package/corpus/core/src/cli/skills-content/visual-recap-skill.ts +547 -0
- package/corpus/core/src/cli/skills-content/visualize-repo-skill.ts +93 -0
- package/corpus/core/src/cli/skills-content/wireframe.ts +349 -0
- package/corpus/core/src/cli/skills.ts +27 -2733
- package/corpus/core/src/client/AgentPanel.tsx +6 -5
- package/corpus/core/src/client/CommandMenu.tsx +16 -5
- package/corpus/core/src/client/FeedbackButton.tsx +2 -2
- package/corpus/core/src/client/app-providers.tsx +18 -5
- package/corpus/core/src/client/chat/tool-call-display.tsx +3 -3
- package/corpus/core/src/client/composer/PastedTextChip.tsx +1 -1
- package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +143 -45
- package/corpus/core/src/client/composer/TiptapComposer.tsx +1 -1
- package/corpus/core/src/client/composer/VoiceButton.tsx +21 -5
- package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +107 -10
- package/corpus/core/src/client/context-xray/ContextXRayPanel.tsx +5 -2
- package/corpus/core/src/client/extensions/ExtensionEditor.tsx +37 -4
- package/corpus/core/src/client/extensions/ExtensionQueryErrorState.tsx +47 -0
- package/corpus/core/src/client/extensions/ExtensionSlot.tsx +39 -10
- package/corpus/core/src/client/extensions/ExtensionViewer.tsx +44 -6
- package/corpus/core/src/client/extensions/ExtensionsListPage.tsx +12 -3
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +49 -11
- package/corpus/core/src/client/index.ts +0 -13
- package/corpus/core/src/client/progress/RunsTray.tsx +10 -3
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +7 -0
- package/corpus/core/src/client/settings/useBuilderStatus.ts +6 -0
- package/corpus/core/src/client/tool-cells/EditCell.tsx +19 -16
- package/corpus/core/src/client/tool-cells/FilesChangedSummary.tsx +26 -23
- package/corpus/core/src/client/tool-cells/WriteCell.tsx +19 -16
- package/corpus/core/src/client/visual-style-controls.tsx +1 -1
- package/corpus/core/src/deploy/build.ts +36 -14
- package/corpus/core/src/integrations/google-docs-poller.ts +23 -2
- package/corpus/core/src/integrations/plugin.ts +10 -0
- package/corpus/core/src/integrations/webhook-handler.ts +27 -2
- package/corpus/core/src/jobs/scheduler.ts +28 -2
- package/corpus/core/src/localization/default-messages.ts +8 -1
- package/corpus/core/src/mcp/oauth-token.ts +6 -1
- package/corpus/core/src/observability/routes.ts +36 -0
- package/corpus/core/src/observability/sentiment.ts +261 -0
- package/corpus/core/src/observability/store.ts +23 -0
- package/corpus/core/src/observability/traces.ts +49 -63
- package/corpus/core/src/observability/tracking-identity.ts +55 -0
- package/corpus/core/src/observability/types.ts +13 -0
- package/corpus/core/src/secrets/storage.ts +67 -3
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +199 -0
- package/corpus/core/src/server/agent-chat/browser-team-tools.ts +510 -0
- package/corpus/core/src/server/agent-chat/context-tools.ts +595 -0
- package/corpus/core/src/server/agent-chat/framework-prompts.ts +470 -0
- package/corpus/core/src/server/agent-chat/lazy-fs.ts +11 -0
- package/corpus/core/src/server/agent-chat/mcp-glue.ts +91 -0
- package/corpus/core/src/server/agent-chat/plugin-options.ts +350 -0
- package/corpus/core/src/server/agent-chat/process-run-failure.ts +62 -0
- package/corpus/core/src/server/agent-chat/prompt-resources.ts +688 -0
- package/corpus/core/src/server/agent-chat/recurring-jobs-runtime.ts +80 -0
- package/corpus/core/src/server/agent-chat/request-surface.ts +71 -0
- package/corpus/core/src/server/agent-chat/run-code-tools.ts +67 -0
- package/corpus/core/src/server/agent-chat/script-entries.ts +779 -0
- package/corpus/core/src/server/agent-chat/shared-thread.ts +301 -0
- package/corpus/core/src/server/agent-chat/skill-frontmatter.ts +41 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +364 -4182
- package/corpus/core/src/server/agent-teams.ts +26 -3
- package/corpus/core/src/server/auth.ts +55 -57
- package/corpus/core/src/server/credential-provider.ts +22 -25
- package/corpus/core/src/server/edge.ts +1 -0
- package/corpus/core/src/server/onboarding-html.ts +1 -16
- package/corpus/core/src/server/realtime-voice.ts +40 -5
- package/corpus/core/src/server/request-origin.ts +6 -2
- package/corpus/core/src/server/ssr-handler.ts +55 -2
- package/corpus/core/src/sharing/access.ts +155 -11
- package/corpus/core/src/sharing/registry.ts +7 -0
- package/corpus/core/src/styles/agent-native.css +15 -14
- package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/de-DE.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/es-ES.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +6 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
- package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
- package/corpus/core/src/templates/workspace-core/src/server/index.ts +4 -2
- package/corpus/core/src/testing.ts +26 -0
- package/corpus/core/src/triggers/dispatcher.ts +23 -2
- package/corpus/core/src/vite/client.ts +126 -2
- package/corpus/core/tsconfig.cli.json +1 -1
- package/corpus/core/tsconfig.json +5 -1
- package/corpus/templates/analytics/.agents/skills/bigquery/SKILL.md +2 -2
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/analytics/AGENTS.md +19 -6
- package/corpus/templates/analytics/actions/install-dashboard-template.ts +79 -43
- package/corpus/templates/analytics/actions/list-explorer-dashboards.ts +3 -3
- package/corpus/templates/analytics/actions/list-sql-dashboards.ts +8 -3
- package/corpus/templates/analytics/actions/rename-analysis.ts +8 -2
- package/corpus/templates/analytics/actions/rename-dashboard.ts +8 -7
- package/corpus/templates/analytics/actions/view-screen.ts +4 -23
- package/corpus/templates/analytics/app/components/ResourceLoadError.tsx +42 -0
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +85 -70
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +107 -89
- package/corpus/templates/analytics/app/components/layout/SidebarLoadError.tsx +24 -0
- package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +15 -5
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/analytics/app/i18n-data.ts +40 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +6 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +36 -20
- package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +34 -20
- package/corpus/templates/analytics/app/pages/adhoc/explorer/use-explorer-config.ts +42 -41
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +43 -36
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +11 -2
- package/corpus/templates/analytics/app/root.tsx +13 -1
- package/corpus/templates/analytics/app/routes/_index.tsx +14 -2
- package/corpus/templates/analytics/changelog/2026-07-03-agent-llm-observability-dashboard.md +1 -1
- package/corpus/templates/analytics/changelog/2026-07-11-agent-feedback-sentiment-dashboard.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-analytics-chats-now-start-faster-by-loading-metric-definitio.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-command-and-sql-previews-now-respond-without-lag.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-command-search-now-reports-loading-failures-and-lets-you-ret.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-dashboard-navigation-now-loads-faster-and-reports-request-fa.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-inferred-message-sentiment-dashboard.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-microphone-settings-from-realtime-voice-mode-now-open-the-vo.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-more-dashboard-edit-paths-are-now-safe-against-simultaneous-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-renaming-a-dashboard-is-now-safe-against-simultaneous-agent-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-renaming-an-analysis-is-now-safe-against-simultaneous-edits.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-workspace-mounted-analytics-now-opens-ask-reliably-and-route.md +6 -0
- package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +37 -3
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +339 -1
- package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +1 -24
- package/corpus/templates/analytics/server/lib/dashboard-seeds.ts +0 -5
- package/corpus/templates/analytics/server/lib/dashboards-store.ts +289 -20
- package/corpus/templates/analytics/server/lib/data-dictionary-context.ts +106 -34
- package/corpus/templates/analytics/server/lib/demo-dashboards.ts +4 -1
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -39
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +30 -4
- package/corpus/templates/assets/app/routes/library.tsx +49 -5
- package/corpus/templates/assets/changelog/2026-07-11-library-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/calendar/.env.example +5 -0
- package/corpus/templates/calendar/app/components/calendar/EventCard.tsx +2 -2
- 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/app/pages/BookingLinksPage.tsx +37 -1
- package/corpus/templates/calendar/app/pages/BookingsList.tsx +20 -3
- package/corpus/templates/calendar/changelog/2026-07-11-booking-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-11-event-cards-give-subtle-press-feedback-and-smoother-hover.md +6 -0
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/clips/actions/decline-invite.ts +8 -0
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +209 -187
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +2 -2
- package/corpus/templates/clips/app/components/player/reactions-tray.tsx +17 -5
- package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -3
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +2 -2
- package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +119 -95
- package/corpus/templates/clips/app/global.css +45 -0
- package/corpus/templates/clips/app/root.tsx +4 -0
- package/corpus/templates/clips/app/routes/_app.notifications.tsx +23 -2
- package/corpus/templates/clips/app/routes/_app.trash.tsx +24 -2
- package/corpus/templates/clips/changelog/2026-07-11-controls-and-folders-now-move-more-smoothly.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-11-declining-an-invitation-now-requires-being-its-recipient.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-11-recording-overlays-are-lighter-weight-and-no-longer-cause-pa.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-11-workspace-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/overlay.css +34 -5
- package/corpus/templates/clips/chrome-extension/src/styles.css +2 -2
- package/corpus/templates/clips/desktop/src/styles.css +71 -26
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/content/actions/move-document.ts +34 -18
- package/corpus/templates/content/app/components/QueryErrorState.tsx +39 -0
- package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +1 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +225 -1435
- package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +368 -0
- package/corpus/templates/content/app/components/editor/database/ListView.tsx +353 -0
- package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +580 -0
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +11 -2
- package/corpus/templates/content/app/global.css +19 -19
- package/corpus/templates/content/app/root.tsx +2 -2
- package/corpus/templates/content/app/routes/_app._index.tsx +11 -1
- package/corpus/templates/content/changelog/2026-07-11-document-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-editor-toggle-feedback-now-feels-more-responsive.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-moving-documents-at-the-same-time-no-longer-scrambles-their-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-public-document-chats-now-start-faster-while-keeping-full-do.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-reopening-a-comment-now-uses-consistent-permissions-everywhe.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-sidebar-resizing-now-tracks-your-cursor-instantly-instead-of.md +6 -0
- package/corpus/templates/content/server/lib/public-documents.ts +47 -10
- package/corpus/templates/content/server/routes/api/comments/[id].patch.ts +24 -24
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/design/app/components/QueryErrorState.tsx +24 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +5 -2
- package/corpus/templates/design/app/components/design/EditPanel.tsx +326 -319
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +198 -193
- package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +11 -4
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +1 -1
- package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -1
- package/corpus/templates/design/app/pages/Index.tsx +14 -2
- package/corpus/templates/design/app/pages/Present.tsx +16 -3
- package/corpus/templates/design/app/pages/Templates.tsx +10 -4
- package/corpus/templates/design/app/pages/design-editor/canvas-primitive-insert.ts +484 -0
- package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +378 -0
- package/corpus/templates/design/app/pages/design-editor/design-data-geometry-utils.ts +138 -0
- package/corpus/templates/design/app/pages/design-editor/dom-utils.ts +15 -0
- package/corpus/templates/design/app/pages/design-editor/generation-prompt-directives.ts +180 -0
- package/corpus/templates/design/app/pages/design-editor/html-layer-positioning.ts +226 -0
- package/corpus/templates/design/app/pages/design-editor/png-export-render.ts +348 -0
- package/corpus/templates/design/app/pages/design-editor/screen-command-utils.ts +160 -0
- package/corpus/templates/design/app/pages/design-editor/text-edit-utils.ts +238 -0
- package/corpus/templates/design/app/pages/design-editor/tool-state.ts +23 -1
- package/corpus/templates/design/app/pages/design-editor/types.ts +25 -0
- package/corpus/templates/design/app/root.tsx +10 -1
- package/corpus/templates/design/changelog/2026-07-11-canvas-context-menus-now-open-without-motion-jitter.md +6 -0
- package/corpus/templates/design/changelog/2026-07-11-design-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/design/changelog/2026-07-11-inspector-tooltips-appear-instantly-as-you-sweep-across-icon.md +6 -0
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +10 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +123 -0
- package/corpus/templates/dispatch/app/routes/integrations.tsx +163 -144
- package/corpus/templates/dispatch/changelog/2026-07-11-dispatch-mcp-connections-now-start-with-safer-app-access-and.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-11-overview-and-chat-now-share-a-cleaner-more-stable-flow.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-11-query-errors-now-show-a-retry-option.md +6 -0
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/forms/app/root.tsx +34 -8
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/macros/app/components/DailyProgress.tsx +25 -5
- package/corpus/templates/macros/app/components/QueryErrorState.tsx +31 -0
- package/corpus/templates/macros/app/components/WeightTracker.tsx +5 -1
- package/corpus/templates/macros/app/components/ui/button.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/progress.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/tabs.tsx +1 -1
- package/corpus/templates/macros/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/macros/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/macros/app/i18n/en-US.ts +2 -0
- package/corpus/templates/macros/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/macros/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/macros/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/macros/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/macros/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/macros/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/macros/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/macros/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/macros/app/routes/_index.tsx +22 -12
- package/corpus/templates/macros/app/routes/analytics.tsx +31 -10
- package/corpus/templates/macros/changelog/2026-07-11-daily-tracking-now-loads-and-updates-more-quickly.md +6 -0
- package/corpus/templates/macros/changelog/2026-07-11-data-load-failures-now-show-a-clear-error-with-a-retry-actio.md +6 -0
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/mail/.env.example +16 -11
- package/corpus/templates/mail/actions/list-emails.ts +39 -35
- package/corpus/templates/mail/app/components/email/ComposeModal.tsx +58 -6
- package/corpus/templates/mail/app/components/email/EmailListItem.tsx +35 -2
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +113 -104
- package/corpus/templates/mail/app/root.tsx +8 -10
- package/corpus/templates/mail/changelog/2026-07-11-compose-and-navigation-motion-now-feel-faster-and-smoother.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-11-swipe-to-archive-or-snooze-now-responds-to-quick-flicks-not-.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-11-the-assistant-now-sees-the-same-inbox-you-do-snoozed-mail-st.md +6 -0
- package/corpus/templates/mail/server/handlers/emails.ts +25 -69
- package/corpus/templates/mail/server/lib/list-inbox-emails.ts +169 -0
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/plan/.env.example +4 -0
- package/corpus/templates/plan/actions/create-plan-design.ts +89 -81
- package/corpus/templates/plan/actions/create-prototype-plan.ts +72 -59
- package/corpus/templates/plan/actions/create-ui-plan.ts +70 -55
- package/corpus/templates/plan/actions/create-visual-plan.ts +65 -51
- package/corpus/templates/plan/actions/update-local-plan-folder.ts +43 -30
- package/corpus/templates/plan/actions/update-visual-plan.ts +81 -64
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +17 -0
- package/corpus/templates/plan/app/components/ui/tabs.tsx +1 -1
- package/corpus/templates/plan/app/i18n/ar-SA.ts +10 -0
- package/corpus/templates/plan/app/i18n/de-DE.ts +10 -0
- package/corpus/templates/plan/app/i18n/en-US.ts +10 -0
- package/corpus/templates/plan/app/i18n/es-ES.ts +10 -0
- package/corpus/templates/plan/app/i18n/fr-FR.ts +10 -0
- package/corpus/templates/plan/app/i18n/hi-IN.ts +10 -0
- package/corpus/templates/plan/app/i18n/ja-JP.ts +10 -0
- package/corpus/templates/plan/app/i18n/ko-KR.ts +10 -0
- package/corpus/templates/plan/app/i18n/pt-BR.ts +10 -0
- package/corpus/templates/plan/app/i18n/zh-CN.ts +10 -0
- package/corpus/templates/plan/app/i18n/zh-TW.ts +10 -0
- package/corpus/templates/plan/app/lib/plan-local-bridge.ts +80 -1
- package/corpus/templates/plan/app/pages/PlansPage.tsx +152 -4
- package/corpus/templates/plan/app/root.tsx +11 -0
- package/corpus/templates/plan/changelog/2026-07-11-local-plans-now-explain-and-recover-from-browser-permission-.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-11-plan-edits-now-save-atomically-and-can-no-longer-partially-a.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-11-plan-lists-now-show-a-clear-error-with-a-retry-action-when-t.md +6 -0
- package/corpus/templates/plan/shared/plan-content.ts +546 -260
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/slides/actions/delete-slide-comment.ts +49 -0
- package/corpus/templates/slides/actions/update-slide-comment.ts +93 -0
- package/corpus/templates/slides/actions/view-screen.ts +14 -6
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +33 -10
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +2 -2
- package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +4 -2
- package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +4 -3
- package/corpus/templates/slides/app/context/DeckContext.tsx +9 -0
- package/corpus/templates/slides/app/i18n/ar-SA.ts +6 -0
- package/corpus/templates/slides/app/i18n/de-DE.ts +6 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +6 -0
- package/corpus/templates/slides/app/i18n/es-ES.ts +6 -0
- package/corpus/templates/slides/app/i18n/fr-FR.ts +6 -0
- package/corpus/templates/slides/app/i18n/hi-IN.ts +6 -0
- package/corpus/templates/slides/app/i18n/ja-JP.ts +6 -0
- package/corpus/templates/slides/app/i18n/ko-KR.ts +6 -0
- package/corpus/templates/slides/app/i18n/pt-BR.ts +6 -0
- package/corpus/templates/slides/app/i18n/zh-CN.ts +5 -0
- package/corpus/templates/slides/app/i18n/zh-TW.ts +5 -0
- package/corpus/templates/slides/app/pages/DesignSystems.tsx +23 -2
- package/corpus/templates/slides/app/pages/Index.tsx +29 -1
- package/corpus/templates/slides/changelog/2026-07-11-comment-load-failures-now-show-a-retry-action-instead-of-say.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-comment-pins-now-clear-with-a-faster-smoother-confirmation.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-deck-and-design-system-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-editor-toggles-and-toolbar-menus-now-animate-smoothly.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-the-assistant-can-now-resolve-reopen-and-delete-slide-commen.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-viewing-slides-no-longer-loads-every-deck-s-full-contents-in.md +6 -0
- package/corpus/templates/slides/server/routes/api/comments/[id].delete.ts +29 -48
- package/corpus/templates/slides/server/routes/api/comments/[id].patch.ts +29 -65
- package/dist/action.d.ts +23 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +13 -0
- package/dist/action.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +3 -0
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/context-directives-transform.d.ts +25 -0
- package/dist/agent/engine/context-directives-transform.d.ts.map +1 -0
- package/dist/agent/engine/context-directives-transform.js +53 -0
- package/dist/agent/engine/context-directives-transform.js.map +1 -0
- package/dist/agent/engine/continuation-dispatch-retry.d.ts +40 -0
- package/dist/agent/engine/continuation-dispatch-retry.d.ts.map +1 -0
- package/dist/agent/engine/continuation-dispatch-retry.js +109 -0
- package/dist/agent/engine/continuation-dispatch-retry.js.map +1 -0
- package/dist/agent/engine/tool-call-journal-seed.d.ts +46 -0
- package/dist/agent/engine/tool-call-journal-seed.d.ts.map +1 -0
- package/dist/agent/engine/tool-call-journal-seed.js +60 -0
- package/dist/agent/engine/tool-call-journal-seed.js.map +1 -0
- package/dist/agent/production-agent.d.ts +7 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +102 -222
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +7 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/plan-local.d.ts.map +1 -1
- package/dist/cli/plan-local.js +8 -2
- package/dist/cli/plan-local.js.map +1 -1
- package/dist/cli/skills-content/assets-skill.d.ts +2 -0
- package/dist/cli/skills-content/assets-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/assets-skill.js +84 -0
- package/dist/cli/skills-content/assets-skill.js.map +1 -0
- package/dist/cli/skills-content/canvas.d.ts +4 -0
- package/dist/cli/skills-content/canvas.d.ts.map +1 -0
- package/dist/cli/skills-content/canvas.js +152 -0
- package/dist/cli/skills-content/canvas.js.map +1 -0
- package/dist/cli/skills-content/connection.d.ts +2 -0
- package/dist/cli/skills-content/connection.d.ts.map +1 -0
- package/dist/cli/skills-content/connection.js +53 -0
- package/dist/cli/skills-content/connection.js.map +1 -0
- package/dist/cli/skills-content/content-skill.d.ts +2 -0
- package/dist/cli/skills-content/content-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/content-skill.js +110 -0
- package/dist/cli/skills-content/content-skill.js.map +1 -0
- package/dist/cli/skills-content/design-exploration-skill.d.ts +2 -0
- package/dist/cli/skills-content/design-exploration-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/design-exploration-skill.js +119 -0
- package/dist/cli/skills-content/design-exploration-skill.js.map +1 -0
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts +2 -0
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/design-visual-edit-skill.js +229 -0
- package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -0
- package/dist/cli/skills-content/document-quality.d.ts +4 -0
- package/dist/cli/skills-content/document-quality.d.ts.map +1 -0
- package/dist/cli/skills-content/document-quality.js +195 -0
- package/dist/cli/skills-content/document-quality.js.map +1 -0
- package/dist/cli/skills-content/exemplar.d.ts +4 -0
- package/dist/cli/skills-content/exemplar.d.ts.map +1 -0
- package/dist/cli/skills-content/exemplar.js +68 -0
- package/dist/cli/skills-content/exemplar.js.map +1 -0
- package/dist/cli/skills-content/help.d.ts +2 -0
- package/dist/cli/skills-content/help.d.ts.map +1 -0
- package/dist/cli/skills-content/help.js +78 -0
- package/dist/cli/skills-content/help.js.map +1 -0
- package/dist/cli/skills-content/index.d.ts +23 -0
- package/dist/cli/skills-content/index.d.ts.map +1 -0
- package/dist/cli/skills-content/index.js +23 -0
- package/dist/cli/skills-content/index.js.map +1 -0
- package/dist/cli/skills-content/local-files.d.ts +2 -0
- package/dist/cli/skills-content/local-files.d.ts.map +1 -0
- package/dist/cli/skills-content/local-files.js +96 -0
- package/dist/cli/skills-content/local-files.js.map +1 -0
- package/dist/cli/skills-content/plan-setup-auth.d.ts +9 -0
- package/dist/cli/skills-content/plan-setup-auth.d.ts.map +1 -0
- package/dist/cli/skills-content/plan-setup-auth.js +81 -0
- package/dist/cli/skills-content/plan-setup-auth.js.map +1 -0
- package/dist/cli/skills-content/visual-plan-skill.d.ts +2 -0
- package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/visual-plan-skill.js +471 -0
- package/dist/cli/skills-content/visual-plan-skill.js.map +1 -0
- package/dist/cli/skills-content/visual-recap-skill.d.ts +2 -0
- package/dist/cli/skills-content/visual-recap-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/visual-recap-skill.js +548 -0
- package/dist/cli/skills-content/visual-recap-skill.js.map +1 -0
- package/dist/cli/skills-content/visualize-repo-skill.d.ts +2 -0
- package/dist/cli/skills-content/visualize-repo-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/visualize-repo-skill.js +94 -0
- package/dist/cli/skills-content/visualize-repo-skill.js.map +1 -0
- package/dist/cli/skills-content/wireframe.d.ts +4 -0
- package/dist/cli/skills-content/wireframe.d.ts.map +1 -0
- package/dist/cli/skills-content/wireframe.js +347 -0
- package/dist/cli/skills-content/wireframe.js.map +1 -0
- package/dist/cli/skills.d.ts +2 -10
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +2 -2710
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +4 -2
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +15 -3
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/FeedbackButton.js +2 -2
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/app-providers.d.ts +13 -5
- package/dist/client/app-providers.d.ts.map +1 -1
- package/dist/client/app-providers.js +9 -6
- package/dist/client/app-providers.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +4 -0
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +3 -3
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/composer/PastedTextChip.js +1 -1
- package/dist/client/composer/PastedTextChip.js.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts +3 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.js +35 -14
- package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/client/composer/TiptapComposer.js +1 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts +2 -0
- package/dist/client/composer/VoiceButton.d.ts.map +1 -1
- package/dist/client/composer/VoiceButton.js +9 -3
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.d.ts +5 -0
- package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.js +91 -12
- package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.js +4 -1
- package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
- package/dist/client/extensions/ExtensionEditor.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionEditor.js +15 -5
- package/dist/client/extensions/ExtensionEditor.js.map +1 -1
- package/dist/client/extensions/ExtensionQueryErrorState.d.ts +8 -0
- package/dist/client/extensions/ExtensionQueryErrorState.d.ts.map +1 -0
- package/dist/client/extensions/ExtensionQueryErrorState.js +11 -0
- package/dist/client/extensions/ExtensionQueryErrorState.js.map +1 -0
- package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionSlot.js +17 -7
- package/dist/client/extensions/ExtensionSlot.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +17 -7
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.js +5 -3
- package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +21 -8
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/index.d.ts +0 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -5
- package/dist/client/index.js.map +1 -1
- package/dist/client/progress/RunsTray.d.ts.map +1 -1
- package/dist/client/progress/RunsTray.js +7 -3
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js +4 -0
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts +2 -0
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +4 -0
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/tool-cells/EditCell.d.ts.map +1 -1
- package/dist/client/tool-cells/EditCell.js +2 -1
- package/dist/client/tool-cells/EditCell.js.map +1 -1
- package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -1
- package/dist/client/tool-cells/FilesChangedSummary.js +2 -1
- package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -1
- package/dist/client/tool-cells/WriteCell.d.ts.map +1 -1
- package/dist/client/tool-cells/WriteCell.js +2 -1
- package/dist/client/tool-cells/WriteCell.js.map +1 -1
- package/dist/client/visual-style-controls.js +1 -1
- package/dist/client/visual-style-controls.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +36 -14
- package/dist/deploy/build.js.map +1 -1
- package/dist/integrations/google-docs-poller.d.ts +7 -0
- package/dist/integrations/google-docs-poller.d.ts.map +1 -1
- package/dist/integrations/google-docs-poller.js +13 -3
- package/dist/integrations/google-docs-poller.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +10 -0
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts +11 -0
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +16 -4
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/scheduler.d.ts +12 -0
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +13 -3
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/localization/default-messages.d.ts +7 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +8 -1
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/oauth-token.d.ts +1 -1
- package/dist/mcp/oauth-token.d.ts.map +1 -1
- package/dist/mcp/oauth-token.js +6 -1
- package/dist/mcp/oauth-token.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts.map +1 -1
- package/dist/observability/routes.js +32 -0
- package/dist/observability/routes.js.map +1 -1
- package/dist/observability/sentiment.d.ts +42 -0
- package/dist/observability/sentiment.d.ts.map +1 -0
- package/dist/observability/sentiment.js +196 -0
- package/dist/observability/sentiment.js.map +1 -0
- package/dist/observability/store.d.ts +5 -0
- package/dist/observability/store.d.ts.map +1 -1
- package/dist/observability/store.js +17 -0
- package/dist/observability/store.js.map +1 -1
- package/dist/observability/traces.d.ts +2 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +42 -57
- package/dist/observability/traces.js.map +1 -1
- package/dist/observability/tracking-identity.d.ts +3 -0
- package/dist/observability/tracking-identity.d.ts.map +1 -0
- package/dist/observability/tracking-identity.js +51 -0
- package/dist/observability/tracking-identity.js.map +1 -0
- package/dist/observability/types.d.ts +10 -0
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/observability/types.js +3 -0
- package/dist/observability/types.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/storage.d.ts +6 -0
- package/dist/secrets/storage.d.ts.map +1 -1
- package/dist/secrets/storage.js +61 -3
- package/dist/secrets/storage.js.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.d.ts +50 -0
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -0
- package/dist/server/agent-chat/action-filters-a2a.js +127 -0
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -0
- package/dist/server/agent-chat/browser-team-tools.d.ts +21 -0
- package/dist/server/agent-chat/browser-team-tools.d.ts.map +1 -0
- package/dist/server/agent-chat/browser-team-tools.js +417 -0
- package/dist/server/agent-chat/browser-team-tools.js.map +1 -0
- package/dist/server/agent-chat/context-tools.d.ts +33 -0
- package/dist/server/agent-chat/context-tools.d.ts.map +1 -0
- package/dist/server/agent-chat/context-tools.js +520 -0
- package/dist/server/agent-chat/context-tools.js.map +1 -0
- package/dist/server/agent-chat/framework-prompts.d.ts +65 -0
- package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -0
- package/dist/server/agent-chat/framework-prompts.js +403 -0
- package/dist/server/agent-chat/framework-prompts.js.map +1 -0
- package/dist/server/agent-chat/lazy-fs.d.ts +2 -0
- package/dist/server/agent-chat/lazy-fs.d.ts.map +1 -0
- package/dist/server/agent-chat/lazy-fs.js +11 -0
- package/dist/server/agent-chat/lazy-fs.js.map +1 -0
- package/dist/server/agent-chat/mcp-glue.d.ts +9 -0
- package/dist/server/agent-chat/mcp-glue.d.ts.map +1 -0
- package/dist/server/agent-chat/mcp-glue.js +63 -0
- package/dist/server/agent-chat/mcp-glue.js.map +1 -0
- package/dist/server/agent-chat/plugin-options.d.ts +322 -0
- package/dist/server/agent-chat/plugin-options.d.ts.map +1 -0
- package/dist/server/agent-chat/plugin-options.js +2 -0
- package/dist/server/agent-chat/plugin-options.js.map +1 -0
- package/dist/server/agent-chat/process-run-failure.d.ts +12 -0
- package/dist/server/agent-chat/process-run-failure.d.ts.map +1 -0
- package/dist/server/agent-chat/process-run-failure.js +24 -0
- package/dist/server/agent-chat/process-run-failure.js.map +1 -0
- package/dist/server/agent-chat/prompt-resources.d.ts +28 -0
- package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -0
- package/dist/server/agent-chat/prompt-resources.js +514 -0
- package/dist/server/agent-chat/prompt-resources.js.map +1 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.d.ts +5 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.d.ts.map +1 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.js +53 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.js.map +1 -0
- package/dist/server/agent-chat/request-surface.d.ts +8 -0
- package/dist/server/agent-chat/request-surface.d.ts.map +1 -0
- package/dist/server/agent-chat/request-surface.js +56 -0
- package/dist/server/agent-chat/request-surface.js.map +1 -0
- package/dist/server/agent-chat/run-code-tools.d.ts +17 -0
- package/dist/server/agent-chat/run-code-tools.d.ts.map +1 -0
- package/dist/server/agent-chat/run-code-tools.js +55 -0
- package/dist/server/agent-chat/run-code-tools.js.map +1 -0
- package/dist/server/agent-chat/script-entries.d.ts +47 -0
- package/dist/server/agent-chat/script-entries.d.ts.map +1 -0
- package/dist/server/agent-chat/script-entries.js +633 -0
- package/dist/server/agent-chat/script-entries.js.map +1 -0
- package/dist/server/agent-chat/shared-thread.d.ts +33 -0
- package/dist/server/agent-chat/shared-thread.d.ts.map +1 -0
- package/dist/server/agent-chat/shared-thread.js +242 -0
- package/dist/server/agent-chat/shared-thread.js.map +1 -0
- package/dist/server/agent-chat/skill-frontmatter.d.ts +7 -0
- package/dist/server/agent-chat/skill-frontmatter.d.ts.map +1 -0
- package/dist/server/agent-chat/skill-frontmatter.js +26 -0
- package/dist/server/agent-chat/skill-frontmatter.js.map +1 -0
- package/dist/server/agent-chat-plugin.d.ts +45 -486
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +173 -3005
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-teams.d.ts +10 -0
- package/dist/server/agent-teams.d.ts.map +1 -1
- package/dist/server/agent-teams.js +13 -3
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +50 -52
- package/dist/server/auth.js.map +1 -1
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +22 -21
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/edge.d.ts +1 -0
- package/dist/server/edge.d.ts.map +1 -1
- package/dist/server/edge.js +1 -0
- package/dist/server/edge.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +1 -16
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/realtime-voice.d.ts +3 -0
- package/dist/server/realtime-voice.d.ts.map +1 -1
- package/dist/server/realtime-voice.js +29 -5
- package/dist/server/realtime-voice.js.map +1 -1
- package/dist/server/request-origin.d.ts.map +1 -1
- package/dist/server/request-origin.js +6 -3
- package/dist/server/request-origin.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +47 -2
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/sharing/access.d.ts +63 -3
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +53 -15
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/registry.d.ts +7 -0
- package/dist/sharing/registry.d.ts.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/styles/agent-native.css +15 -14
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
- package/dist/templates/default/app/i18n/ar-SA.ts +6 -0
- package/dist/templates/default/app/i18n/de-DE.ts +6 -0
- package/dist/templates/default/app/i18n/en-US.ts +6 -0
- package/dist/templates/default/app/i18n/es-ES.ts +6 -0
- package/dist/templates/default/app/i18n/fr-FR.ts +6 -0
- package/dist/templates/default/app/i18n/hi-IN.ts +6 -0
- package/dist/templates/default/app/i18n/ja-JP.ts +6 -0
- package/dist/templates/default/app/i18n/ko-KR.ts +6 -0
- package/dist/templates/default/app/i18n/pt-BR.ts +6 -0
- package/dist/templates/default/app/i18n/zh-CN.ts +6 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +6 -0
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
- package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
- package/dist/templates/workspace-core/src/server/index.ts +4 -2
- package/dist/testing.d.ts +16 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +16 -0
- package/dist/testing.js.map +1 -0
- package/dist/triggers/dispatcher.d.ts +7 -0
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js +13 -3
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/vite/client.d.ts +16 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +105 -2
- package/dist/vite/client.js.map +1 -1
- package/docs/content/authentication.mdx +3 -3
- package/docs/content/doctor.mdx +170 -0
- package/docs/content/external-agents.mdx +8 -7
- package/docs/content/locales/ar-SA/authentication.mdx +2 -2
- package/docs/content/locales/ar-SA/external-agents.mdx +8 -7
- package/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
- package/docs/content/locales/ar-SA/security.mdx +2 -0
- package/docs/content/locales/de-DE/authentication.mdx +1 -1
- package/docs/content/locales/de-DE/external-agents.mdx +8 -7
- package/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
- package/docs/content/locales/de-DE/security.mdx +2 -0
- package/docs/content/locales/es-ES/authentication.mdx +2 -2
- package/docs/content/locales/es-ES/external-agents.mdx +8 -7
- package/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
- package/docs/content/locales/es-ES/security.mdx +2 -0
- package/docs/content/locales/fr-FR/authentication.mdx +1 -1
- package/docs/content/locales/fr-FR/external-agents.mdx +8 -7
- package/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
- package/docs/content/locales/fr-FR/security.mdx +2 -0
- package/docs/content/locales/hi-IN/authentication.mdx +2 -2
- package/docs/content/locales/hi-IN/external-agents.mdx +8 -7
- package/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
- package/docs/content/locales/hi-IN/security.mdx +2 -0
- package/docs/content/locales/ja-JP/authentication.mdx +2 -2
- package/docs/content/locales/ja-JP/external-agents.mdx +8 -7
- package/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
- package/docs/content/locales/ja-JP/security.mdx +2 -0
- package/docs/content/locales/ko-KR/authentication.mdx +2 -2
- package/docs/content/locales/ko-KR/external-agents.mdx +8 -7
- package/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
- package/docs/content/locales/ko-KR/security.mdx +2 -0
- package/docs/content/locales/pt-BR/authentication.mdx +2 -2
- package/docs/content/locales/pt-BR/external-agents.mdx +8 -7
- package/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
- package/docs/content/locales/pt-BR/security.mdx +2 -0
- package/docs/content/locales/zh-CN/authentication.mdx +2 -2
- package/docs/content/locales/zh-CN/external-agents.mdx +8 -7
- package/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
- package/docs/content/locales/zh-CN/security.mdx +2 -0
- package/docs/content/locales/zh-TW/authentication.mdx +2 -2
- package/docs/content/locales/zh-TW/external-agents.mdx +8 -7
- package/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
- package/docs/content/locales/zh-TW/security.mdx +2 -0
- package/docs/content/mcp-protocol.mdx +1 -1
- package/docs/content/security.mdx +2 -0
- package/package.json +6 -2
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
- package/src/templates/default/app/i18n/ar-SA.ts +6 -0
- package/src/templates/default/app/i18n/de-DE.ts +6 -0
- package/src/templates/default/app/i18n/en-US.ts +6 -0
- package/src/templates/default/app/i18n/es-ES.ts +6 -0
- package/src/templates/default/app/i18n/fr-FR.ts +6 -0
- package/src/templates/default/app/i18n/hi-IN.ts +6 -0
- package/src/templates/default/app/i18n/ja-JP.ts +6 -0
- package/src/templates/default/app/i18n/ko-KR.ts +6 -0
- package/src/templates/default/app/i18n/pt-BR.ts +6 -0
- package/src/templates/default/app/i18n/zh-CN.ts +6 -0
- package/src/templates/default/app/i18n/zh-TW.ts +6 -0
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
- package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
- package/src/templates/workspace-core/src/server/index.ts +4 -2
- package/corpus/core/src/client/ProductionAgentPanel.tsx +0 -9
- package/corpus/core/src/client/auth-redirect-url.ts +0 -23
- package/corpus/core/src/client/useProductionAgent.ts +0 -253
- package/corpus/core/src/shared/auth-redirect-url.ts +0 -1
- package/corpus/templates/analytics/app/pages/Index.tsx +0 -16
- package/corpus/templates/analytics/seeds/dashboards/agent-observability-llm.json +0 -173
- package/dist/client/ProductionAgentPanel.d.ts +0 -6
- package/dist/client/ProductionAgentPanel.d.ts.map +0 -1
- package/dist/client/ProductionAgentPanel.js +0 -6
- package/dist/client/ProductionAgentPanel.js.map +0 -1
- package/dist/client/auth-redirect-url.d.ts +0 -2
- package/dist/client/auth-redirect-url.d.ts.map +0 -1
- package/dist/client/auth-redirect-url.js +0 -19
- package/dist/client/auth-redirect-url.js.map +0 -1
- package/dist/client/useProductionAgent.d.ts +0 -24
- package/dist/client/useProductionAgent.d.ts.map +0 -1
- package/dist/client/useProductionAgent.js +0 -179
- package/dist/client/useProductionAgent.js.map +0 -1
- package/dist/shared/auth-redirect-url.d.ts +0 -2
- package/dist/shared/auth-redirect-url.d.ts.map +0 -1
- package/dist/shared/auth-redirect-url.js +0 -2
- package/dist/shared/auth-redirect-url.js.map +0 -1
|
@@ -381,7 +381,7 @@ function MyComponent() {
|
|
|
381
381
|
/_agent-native/sign-in?return=<same-origin-path>
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
जब कोई गुमनाम दर्शक इस URL पर क्लिक करता है, तो फ्रेमवर्क का लॉगिन पेज प्रस्तुत किया जाता है। सफल साइन-इन (कोई भी प्रवाह - टोकन, ईमेल/पासवर्ड, या Google OAuth) के बाद,
|
|
384
|
+
जब कोई गुमनाम दर्शक इस URL पर क्लिक करता है, तो फ्रेमवर्क का लॉगिन पेज प्रस्तुत किया जाता है। सफल साइन-इन (कोई भी प्रवाह - टोकन, ईमेल/पासवर्ड, या Google OAuth) के बाद, ब्राउज़र `return` पर वापस जाता है।
|
|
385
385
|
|
|
386
386
|
`return` पैरामीटर को **समान मूल पथ** के रूप में मान्य किया गया है। नेटवर्क-पथ संदर्भ (`//evil.com/...`), निरपेक्ष URLs, `data:` / `javascript:` योजनाएं, और एम्बेडेड नियंत्रण वर्ण सभी `/` पर वापस आते हैं। मान्य पथ को URL पार्सर से पुनर्निर्मित किया गया है, इनपुट से वापस प्रतिध्वनित नहीं किया गया है।
|
|
387
387
|
|
|
@@ -402,7 +402,7 @@ function SignInCta() {
|
|
|
402
402
|
|
|
403
403
|
### निजी पथ बुकमार्क किए गए
|
|
404
404
|
|
|
405
|
-
|
|
405
|
+
सामान्य ऐप पेज हर विज़िटर के लिए एक ही गैर-व्यक्तिगत, सार्वजनिक रूप से कैश होने वाला SSR शेल उपयोग करते हैं। `AppProviders` क्लाइंट पर सेशन जाँचता है; `/dashboard` जैसे निजी पथ पर यह निजी ऐप UI माउंट करने से पहले अनाम विज़िटर को `/_agent-native/sign-in?return=%2Fdashboard` पर रीडायरेक्ट करता है। साइन-इन के बाद विज़िटर `/dashboard` पर लौटता है। सार्वजनिक/SEO रूट के लिए `isPublicPath`, या MCP एम्बेड टोकन जैसी किसी अन्य सीमित प्रमाणीकरण विधि वाले सतह के लिए `sessionBypass` उपयोग करें।
|
|
406
406
|
|
|
407
407
|
### पर्दे के पीछे: Google OAuth
|
|
408
408
|
|
|
@@ -136,7 +136,7 @@ OAuth टोकन। ChatGPT एक समीक्षा की गई या
|
|
|
136
136
|
टूल या MCP ऐप मेटाडेटा बदलता है। यदि आपके पास अभी भी पुराने प्रति-ऐप कनेक्टर हैं
|
|
137
137
|
प्रत्येक पुराने कनेक्टर को डिस्पैच, रिफ्रेश या पुनः कनेक्ट करने के साथ सक्षम; अपडेट किया जा रहा है
|
|
138
138
|
डिस्पैच ChatGPT या Claude के कैश्ड कैलेंडर/मेल/आदि को दोबारा नहीं लिखता है।
|
|
139
|
-
स्नैपशॉट. `mcp:read` / `mcp:write` / `mcp:apps` स्कोप वही हैं जिनका वर्णन
|
|
139
|
+
स्नैपशॉट. `mcp:read` / `mcp:write` / `mcp:apps` / `offline_access` स्कोप वही हैं जिनका वर्णन
|
|
140
140
|
नीचे [मानक रिमोट MCP OAuth](#standard-oauth) में किया गया है।
|
|
141
141
|
|
|
142
142
|
कर्सर, गूज़, पोस्टमैन, MCPJam, और VS कोड GitHub कोपायलट एक ही रिमोट का उपयोग करते हैं
|
|
@@ -283,13 +283,14 @@ OAuth प्रवाह ताज़ा-टोकन रोटेशन के
|
|
|
283
283
|
|
|
284
284
|
वर्तमान दायरे हैं:
|
|
285
285
|
|
|
286
|
-
| दायरा
|
|
287
|
-
|
|
|
288
|
-
| `mcp:read`
|
|
289
|
-
| `mcp:write`
|
|
290
|
-
| `mcp:apps`
|
|
286
|
+
| दायरा | अनुमति देता है |
|
|
287
|
+
| ---------------- | ----------------------------------------------------------------- |
|
|
288
|
+
| `mcp:read` | केवल पढ़ने योग्य MCP actions और सामान्य उपकरण/संसाधन खोज |
|
|
289
|
+
| `mcp:write` | actions और `ask-agent` मेटा-टूल को परिवर्तित करना |
|
|
290
|
+
| `mcp:apps` | MCP ऐप्स संसाधन सूची/रीडिंग और इनलाइन UI रेंडरिंग जहां समर्थित है |
|
|
291
|
+
| `offline_access` | रीफ़्रेश टोकन एक्सेस ताकि होस्ट कनेक्टेड रहे |
|
|
291
292
|
|
|
292
|
-
जब क्लाइंट किसी स्पष्ट दायरे का अनुरोध नहीं करता है, तो ऐप
|
|
293
|
+
जब क्लाइंट किसी स्पष्ट दायरे का अनुरोध नहीं करता है, तो ऐप चारों को अनुदान देता है ताकि कनेक्टर ब्राउज़र-अधिकृत कनेक्ट प्रवाह की तरह व्यवहार करे और दोबारा साइन इन किए बिना एक्सेस रीफ़्रेश कर सके। स्थानीय डेव, फ़ॉलबैक होस्ट और क्लाइंट के लिए बियरर-टोकन कनेक्ट पेज और `npx @agent-native/core@latest connect --token <token>` फ़ॉलबैक रखें, जहां आपको रेडी-टू-पेस्ट कॉन्फ़िगरेशन ब्लॉक की आवश्यकता है।
|
|
293
294
|
|
|
294
295
|
## कैटलॉग स्तर {#catalog-tiers}
|
|
295
296
|
|
|
@@ -240,7 +240,7 @@ claude mcp add --transport http agent-native https://dispatch.agent-native.com/_
|
|
|
240
240
|
|
|
241
241
|
```http
|
|
242
242
|
HTTP/1.1 401 Unauthorized
|
|
243
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
243
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
खोज समापन बिंदु:
|
|
@@ -388,6 +388,8 @@ A2A_SECRET=your-shared-secret-at-least-32-chars
|
|
|
388
388
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK` तब तक **नहीं** सेट है जब तक कि आपका संगठन वास्तव में कार्यस्थान कुंजी साझा नहीं करता है - [Cross-User Tooling Secrets](#tooling-secrets) देखें
|
|
389
389
|
- [ ] बहु-किरायेदार तैनाती में, **उपयोगकर्ता अपना स्वयं का `ANTHROPIC_API_KEY`** लाते हैं - ढांचा तैनाती-स्तर के एनवी संस्करण पर वापस आने से इंकार कर देता है
|
|
390
390
|
|
|
391
|
+
इस चेकलिस्ट के schema, credential, और environment-variable आइटम को स्वचालित रूप से जांचने के लिए `agent-native doctor` (scaffold किए गए app में `pnpm doctor`) चलाएँ — हर finding guard, file, और line बताती है। देखें [Doctor](/docs/doctor) दस्तावेज़।
|
|
392
|
+
|
|
391
393
|
---
|
|
392
394
|
|
|
393
395
|
नीचे दिए गए अनुभाग आला पर्यावरण फ़्लैग को कवर करते हैं जिन तक आप केवल विशिष्ट परिनियोजन में पहुंचते हैं। अधिकांश ऐप्स उन्हें कभी नहीं छूते.
|
|
@@ -381,7 +381,7 @@ function MyComponent() {
|
|
|
381
381
|
/_agent-native/sign-in?return=<same-origin-path>
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
匿名のビューアがこの URL にアクセスすると、フレームワークのログイン ページが表示されます。サインインが成功すると (トークン、電子メール/パスワード、Google OAuth などの任意のフロー)
|
|
384
|
+
匿名のビューアがこの URL にアクセスすると、フレームワークのログイン ページが表示されます。サインインが成功すると (トークン、電子メール/パスワード、Google OAuth などの任意のフロー)、ブラウザーは `return` に戻ります。
|
|
385
385
|
|
|
386
386
|
`return` パラメータは **同一オリジン パス**として検証されます。ネットワーク パス参照 (`//evil.com/...`)、絶対 URL、`data:` / `javascript:` スキーム、および埋め込み制御文字はすべて `/` にフォールバックします。検証されたパスは、入力からエコーバックされるのではなく、URL パーサーから再構築されます。
|
|
387
387
|
|
|
@@ -402,7 +402,7 @@ function SignInCta() {
|
|
|
402
402
|
|
|
403
403
|
### ブックマークされたプライベート パス
|
|
404
404
|
|
|
405
|
-
|
|
405
|
+
通常のアプリページは、すべての訪問者に対して同一の非個人化された公開キャッシュ可能な SSR シェルを使用します。`AppProviders` がクライアントでセッションを確認し、`/dashboard` のような非公開パスでは、非公開 UI をマウントする前に匿名ユーザーを `/_agent-native/sign-in?return=%2Fdashboard` へリダイレクトします。サインイン後は `/dashboard` に戻ります。公開/SEO ルートには `isPublicPath` を、MCP 埋め込みトークンなど別の限定された認証方式を使う画面には `sessionBypass` を指定します。
|
|
406
406
|
|
|
407
407
|
### 舞台裏: Google OAuth
|
|
408
408
|
|
|
@@ -136,7 +136,7 @@ OAuth トークン。 ChatGPT は、レビューまたは公開されたコネ
|
|
|
136
136
|
ツールまたは MCP アプリのメタデータが変更されます。古いアプリごとのコネクタがまだある場合
|
|
137
137
|
各古いコネクタのディスパッチ、リフレッシュ、または再接続とともに有効になります。更新中
|
|
138
138
|
Dispatch は、ChatGPT または Claude のキャッシュされたカレンダー/メールなどを書き換えません。
|
|
139
|
-
スナップショット。`mcp:read` / `mcp:write` / `mcp:apps` スコープは、以下の
|
|
139
|
+
スナップショット。`mcp:read` / `mcp:write` / `mcp:apps` / `offline_access` スコープは、以下の
|
|
140
140
|
[標準リモート MCP OAuth](#standard-oauth) で説明するものと同じです。
|
|
141
141
|
|
|
142
142
|
Cursor、Goose、Postman、MCPJam、VS Code GitHub Copilot は同じリモートを使用します
|
|
@@ -283,13 +283,14 @@ OAuth フローは、リフレッシュ トークン ローテーションを伴
|
|
|
283
283
|
|
|
284
284
|
現在のスコープは次のとおりです:
|
|
285
285
|
|
|
286
|
-
| スコープ
|
|
287
|
-
|
|
|
288
|
-
| `mcp:read`
|
|
289
|
-
| `mcp:write`
|
|
290
|
-
| `mcp:apps`
|
|
286
|
+
| スコープ | 許可 |
|
|
287
|
+
| ---------------- | ----------------------------------------------------------------------------------------- |
|
|
288
|
+
| `mcp:read` | 読み取り専用 MCP actions および通常のツール/リソース検出 |
|
|
289
|
+
| `mcp:write` | actions と `ask-agent` メタツールを変更する |
|
|
290
|
+
| `mcp:apps` | MCP アプリ リソースのリスト/読み取りとインライン UI レンダリング (サポートされている場合) |
|
|
291
|
+
| `offline_access` | ホストの接続を維持するためのリフレッシュトークンアクセス |
|
|
291
292
|
|
|
292
|
-
クライアントが明示的なスコープを要求しない場合、アプリは
|
|
293
|
+
クライアントが明示的なスコープを要求しない場合、アプリは 4 つすべてを許可するため、コネクタはブラウザーで承認された接続フローのように動作し、再ログインせずにアクセスを更新できます。すぐに貼り付けられる構成ブロックが必要なローカル開発、フォールバック ホスト、クライアント用に、ベアラー トークンの接続ページと `npx @agent-native/core@latest connect --token <token>` フォールバックを保持します。
|
|
293
294
|
|
|
294
295
|
## カタログ階層 {#catalog-tiers}
|
|
295
296
|
|
|
@@ -240,7 +240,7 @@ claude mcp add --transport http agent-native https://dispatch.agent-native.com/_
|
|
|
240
240
|
|
|
241
241
|
```http
|
|
242
242
|
HTTP/1.1 401 Unauthorized
|
|
243
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
243
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
検出エンドポイント:
|
|
@@ -390,6 +390,8 @@ A2A_SECRET=your-shared-secret-at-least-32-chars
|
|
|
390
390
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK` は、組織が実際にワークスペースキーを共有しない限り**設定されません** — [Cross-User Tooling Secrets](#tooling-secrets) を参照
|
|
391
391
|
- [ ] マルチテナント展開では、**ユーザーは独自の `ANTHROPIC_API_KEY`** を使用します。フレームワークは展開レベルの環境変数へのフォールバックを拒否します。
|
|
392
392
|
|
|
393
|
+
`agent-native doctor`(スキャフォールドされたアプリでは `pnpm doctor`)を実行すると、このチェックリストのスキーマ・認証情報・環境変数の項目を自動的にチェックできます — 各所見は guard、ファイル、行を示します。詳細は [Doctor](/docs/doctor) のドキュメントを参照してください。
|
|
394
|
+
|
|
393
395
|
---
|
|
394
396
|
|
|
395
397
|
以下のセクションでは、特定の展開でのみ利用できるニッチな環境フラグについて説明します。ほとんどのアプリはそれらに触れることはありません。
|
|
@@ -381,7 +381,7 @@ function MyComponent() {
|
|
|
381
381
|
/_agent-native/sign-in?return=<same-origin-path>
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
익명의 뷰어가 이 URL를 조회하면 프레임워크의 로그인 페이지가 제공됩니다. 로그인에 성공하면(토큰, 이메일/비밀번호 또는 구글 OAuth 등 모든 흐름)
|
|
384
|
+
익명의 뷰어가 이 URL를 조회하면 프레임워크의 로그인 페이지가 제공됩니다. 로그인에 성공하면(토큰, 이메일/비밀번호 또는 구글 OAuth 등 모든 흐름) 브라우저는 `return`로 돌아갑니다.
|
|
385
385
|
|
|
386
386
|
`return` 매개변수는 **동일 출처 경로**로 검증됩니다. 네트워크 경로 참조(`//evil.com/...`), 절대 URL, `data:`/`javascript:` 체계 및 포함된 제어 문자는 모두 `/`로 대체됩니다. 검증된 경로는 입력에서 다시 에코되지 않고 URL 파서에서 재구성됩니다.
|
|
387
387
|
|
|
@@ -402,7 +402,7 @@ function SignInCta() {
|
|
|
402
402
|
|
|
403
403
|
### 북마크된 비공개 경로
|
|
404
404
|
|
|
405
|
-
|
|
405
|
+
일반 앱 페이지는 모든 방문자에게 동일한 비개인화 공개 캐시 가능 SSR 셸을 사용합니다. `AppProviders`가 클라이언트에서 세션을 확인하며, `/dashboard` 같은 비공개 경로에서는 비공개 UI를 마운트하기 전에 익명 방문자를 `/_agent-native/sign-in?return=%2Fdashboard`로 리디렉션합니다. 로그인 후에는 `/dashboard`로 돌아옵니다. 공개/SEO 경로에는 `isPublicPath`를, MCP 임베드 토큰처럼 별도의 제한된 인증 방식을 사용하는 화면에는 `sessionBypass`를 지정하세요.
|
|
406
406
|
|
|
407
407
|
### 비하인드 스토리: 구글 OAuth
|
|
408
408
|
|
|
@@ -136,7 +136,7 @@ OAuth 토큰. ChatGPT는 검토 또는 게시된 커넥터 도구를 유지할
|
|
|
136
136
|
도구 또는 MCP 앱 메타데이터가 변경되었습니다. 아직 오래된 앱별 커넥터가 있는 경우
|
|
137
137
|
각 오래된 커넥터를 디스패치, 새로 고치거나 다시 연결하는 것과 함께 활성화됩니다. 업데이트 중
|
|
138
138
|
디스패치는 ChatGPT 또는 Claude의 캐시된 캘린더/메일/등을 다시 쓰지 않습니다.
|
|
139
|
-
스냅샷. `mcp:read` / `mcp:write` / `mcp:apps` 범위는 아래의
|
|
139
|
+
스냅샷. `mcp:read` / `mcp:write` / `mcp:apps` / `offline_access` 범위는 아래의
|
|
140
140
|
[표준 원격 MCP OAuth](#standard-oauth)에서 설명하는 범위와 같습니다.
|
|
141
141
|
|
|
142
142
|
Cursor, Goose, Postman, MCPJam 및 VS Code GitHub Copilot은 동일한 리모컨을 사용합니다.
|
|
@@ -283,13 +283,14 @@ OAuth 흐름은 새로 고침 토큰 순환이 포함된 인증 코드 + PKCE입
|
|
|
283
283
|
|
|
284
284
|
현재 범위는 다음과 같습니다:
|
|
285
285
|
|
|
286
|
-
| 범위
|
|
287
|
-
|
|
|
288
|
-
| `mcp:read`
|
|
289
|
-
| `mcp:write`
|
|
290
|
-
| `mcp:apps`
|
|
286
|
+
| 범위 | 허용 |
|
|
287
|
+
| ---------------- | --------------------------------------------------------- |
|
|
288
|
+
| `mcp:read` | 읽기 전용 MCP actions 및 일반 도구/리소스 검색 |
|
|
289
|
+
| `mcp:write` | actions 및 `ask-agent` 메타 도구 변형 |
|
|
290
|
+
| `mcp:apps` | MCP 지원되는 경우 앱 리소스 목록/읽기 및 인라인 UI 렌더링 |
|
|
291
|
+
| `offline_access` | 호스트 연결을 유지하기 위한 새로 고침 토큰 액세스 |
|
|
291
292
|
|
|
292
|
-
클라이언트가 명시적인 범위를 요청하지 않으면 앱은
|
|
293
|
+
클라이언트가 명시적인 범위를 요청하지 않으면 앱은 네 가지 범위를 모두 허용하므로 커넥터는 브라우저에서 승인된 Connect 흐름처럼 작동하고 다시 로그인하지 않고 액세스를 새로 고칠 수 있습니다. 바로 붙여넣을 수 있는 구성 블록이 필요한 로컬 개발, 대체 호스트 및 클라이언트에 대해 베어러 토큰 연결 페이지와 `npx @agent-native/core@latest connect --token <token>` 대체를 유지하세요.
|
|
293
294
|
|
|
294
295
|
## 카탈로그 계층 {#catalog-tiers}
|
|
295
296
|
|
|
@@ -240,7 +240,7 @@ claude mcp add --transport http agent-native https://dispatch.agent-native.com/_
|
|
|
240
240
|
|
|
241
241
|
```http
|
|
242
242
|
HTTP/1.1 401 Unauthorized
|
|
243
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
243
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
검색 엔드포인트:
|
|
@@ -386,6 +386,8 @@ A2A_SECRET=your-shared-secret-at-least-32-chars
|
|
|
386
386
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK`는 조직이 실제로 작업 공간 키를 공유하지 않는 한 **설정되지 않습니다** — [Cross-User Tooling Secrets](#tooling-secrets) 참조
|
|
387
387
|
- [ ] 다중 테넌트 배포에서 **사용자는 자신의 `ANTHROPIC_API_KEY`를 가져옵니다** — 프레임워크는 배포 수준 env var로 폴백하는 것을 거부합니다.
|
|
388
388
|
|
|
389
|
+
`agent-native doctor`(스캐폴딩된 앱에서는 `pnpm doctor`)를 실행하면 이 체크리스트의 스키마, 자격 증명, 환경 변수 항목을 자동으로 확인할 수 있습니다 — 각 결과는 guard, 파일, 줄을 알려줍니다. 자세한 내용은 [Doctor](/docs/doctor) 문서를 참조하세요.
|
|
390
|
+
|
|
389
391
|
---
|
|
390
392
|
|
|
391
393
|
아래 섹션에서는 특정 배포에서만 사용할 수 있는 틈새 환경 플래그를 다룹니다. 대부분의 앱은 절대 터치하지 않습니다.
|
|
@@ -381,7 +381,7 @@ Modelos com **páginas públicas** (compartilhar links, incorporações, página
|
|
|
381
381
|
/_agent-native/sign-in?return=<same-origin-path>
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
Quando um visualizador anônimo acessa este URL, a página de login do framework é exibida. Após um login bem-sucedido (qualquer fluxo – token, e-mail/senha ou Google OAuth), o
|
|
384
|
+
Quando um visualizador anônimo acessa este URL, a página de login do framework é exibida. Após um login bem-sucedido (qualquer fluxo – token, e-mail/senha ou Google OAuth), o navegador retorna a `return`.
|
|
385
385
|
|
|
386
386
|
O parâmetro `return` é validado como um **caminho de mesma origem**. Referências de caminho de rede (`//evil.com/...`), URLs absolutos, esquemas `data:`/`javascript:` e caracteres de controle incorporados retornam para `/`. O caminho validado é reconstruído a partir do analisador URL, e não retornado da entrada.
|
|
387
387
|
|
|
@@ -402,7 +402,7 @@ function SignInCta() {
|
|
|
402
402
|
|
|
403
403
|
### Caminhos privados marcados
|
|
404
404
|
|
|
405
|
-
|
|
405
|
+
As páginas normais do aplicativo usam um único shell SSR impessoal e armazenável em cache público para todos os visitantes. O `AppProviders` verifica a sessão no cliente; em um caminho privado como `/dashboard`, ele redireciona o visitante anônimo para `/_agent-native/sign-in?return=%2Fdashboard` antes de montar a interface privada. Após o login, o visitante retorna a `/dashboard`. Use `isPublicPath` para rotas públicas/SEO ou `sessionBypass` para uma superfície autenticada por outro mecanismo limitado, como um token de incorporação MCP.
|
|
406
406
|
|
|
407
407
|
### Nos bastidores: Google OAuth
|
|
408
408
|
|
|
@@ -136,7 +136,7 @@ instantâneo até que você o atualize/revise novamente, então verifique novame
|
|
|
136
136
|
alterações nos metadados da ferramenta ou do aplicativo MCP. Se você ainda tiver conectores por aplicativo antigos
|
|
137
137
|
ativado junto com Dispatch, atualize ou reconecte cada conector obsoleto; atualizando
|
|
138
138
|
O Dispatch não reescreve o calendário/correio/etc em cache de ChatGPT ou Claude.
|
|
139
|
-
instantâneos. Os escopos `mcp:read` / `mcp:write` / `mcp:apps` são os mesmos
|
|
139
|
+
instantâneos. Os escopos `mcp:read` / `mcp:write` / `mcp:apps` / `offline_access` são os mesmos
|
|
140
140
|
descritos abaixo em
|
|
141
141
|
[OAuth remoto padrão do MCP](#standard-oauth).
|
|
142
142
|
|
|
@@ -284,13 +284,14 @@ O fluxo OAuth é código de autorização + PKCE com rotação de token de atual
|
|
|
284
284
|
|
|
285
285
|
Os escopos atuais são:
|
|
286
286
|
|
|
287
|
-
| Escopo
|
|
288
|
-
|
|
|
289
|
-
| `mcp:read`
|
|
290
|
-
| `mcp:write`
|
|
291
|
-
| `mcp:apps`
|
|
287
|
+
| Escopo | Permite |
|
|
288
|
+
| ---------------- | ------------------------------------------------------------------------------------------- |
|
|
289
|
+
| `mcp:read` | MCP somente leitura actions e descoberta comum de ferramentas/recursos |
|
|
290
|
+
| `mcp:write` | mutação de actions e da meta-ferramenta `ask-agent` |
|
|
291
|
+
| `mcp:apps` | Listagem/leitura de recursos de aplicativos MCP e renderização UI in-line quando compatível |
|
|
292
|
+
| `offline_access` | Acesso ao token de atualização para manter o host conectado |
|
|
292
293
|
|
|
293
|
-
Quando o cliente não solicita nenhum escopo explícito, o aplicativo concede todos os
|
|
294
|
+
Quando o cliente não solicita nenhum escopo explícito, o aplicativo concede todos os quatro para que o conector se comporte como o fluxo do Connect autorizado pelo navegador e possa atualizar o acesso sem outro login. Mantenha a página Connect do token de portador e o substituto `npx @agent-native/core@latest connect --token <token>` para desenvolvedores locais, hosts substitutos e clientes onde você precisa de um bloco de configuração pronto para colar.
|
|
294
295
|
|
|
295
296
|
## Níveis de catálogo {#catalog-tiers}
|
|
296
297
|
|
|
@@ -240,7 +240,7 @@ A primeira solicitação MCP não autenticada recebe:
|
|
|
240
240
|
|
|
241
241
|
```http
|
|
242
242
|
HTTP/1.1 401 Unauthorized
|
|
243
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
243
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
Endpoints de descoberta:
|
|
@@ -392,6 +392,8 @@ Anteriormente, essa era uma postura de "avisar e aceitar" - defina o segredo que
|
|
|
392
392
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK` **não** é definido, a menos que sua organização realmente compartilhe chaves de espaço de trabalho — consulte [Cross-User Tooling Secrets](#tooling-secrets)
|
|
393
393
|
- [ ] Em implantações multilocatários, **os usuários trazem seu próprio `ANTHROPIC_API_KEY`** — a estrutura se recusa a voltar para o ambiente de nível de implantação var
|
|
394
394
|
|
|
395
|
+
Execute `agent-native doctor` (`pnpm doctor` em um app gerado pelo scaffold) para verificar automaticamente os itens de esquema, credenciais e variáveis de ambiente desta checklist — cada descoberta indica o guard, o arquivo e a linha. Consulte a documentação do [Doctor](/docs/doctor).
|
|
396
|
+
|
|
395
397
|
---
|
|
396
398
|
|
|
397
399
|
As seções abaixo abordam sinalizadores de ambiente de nicho que você só alcança em implantações específicas. A maioria dos aplicativos nunca toca neles.
|
|
@@ -381,7 +381,7 @@ function MyComponent() {
|
|
|
381
381
|
/_agent-native/sign-in?return=<same-origin-path>
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
当匿名查看者点击此 URL 时,将提供框架的登录页面。成功登录(任何流程 - 令牌、电子邮件/密码或 谷歌OAuth
|
|
384
|
+
当匿名查看者点击此 URL 时,将提供框架的登录页面。成功登录(任何流程 - 令牌、电子邮件/密码或 谷歌OAuth)后,浏览器会返回 `return`。
|
|
385
385
|
|
|
386
386
|
`return` 参数被验证为**同源路径**。网络路径引用 (`//evil.com/...`)、绝对 URL、`data:` / `javascript:` 方案和嵌入式控制字符都回退到 `/`。验证的路径是从 URL 解析器重建的,而不是从输入中回显。
|
|
387
387
|
|
|
@@ -402,7 +402,7 @@ function SignInCta() {
|
|
|
402
402
|
|
|
403
403
|
### 已添加书签的私有路径
|
|
404
404
|
|
|
405
|
-
|
|
405
|
+
普通应用页面为所有访问者使用同一个非个性化、可公开缓存的 SSR 外壳。`AppProviders` 在客户端检查会话;访问 `/dashboard` 等私有路径时,它会在挂载私有应用界面之前将匿名访问者重定向到 `/_agent-native/sign-in?return=%2Fdashboard`。登录后,访问者会返回 `/dashboard`。公共或 SEO 路由请使用 `isPublicPath`;通过 MCP 嵌入令牌等其他受限机制认证的界面请使用 `sessionBypass`。
|
|
406
406
|
|
|
407
407
|
### 幕后花絮:谷歌OAuth
|
|
408
408
|
|
|
@@ -136,7 +136,7 @@ OAuth 代币。 ChatGPT可以保留已审查或已发布的连接器工具
|
|
|
136
136
|
工具或 MCP 应用元数据更改。如果您仍然有旧的每应用连接器
|
|
137
137
|
与调度、刷新或重新连接每个过时的连接器一起启用;正在更新
|
|
138
138
|
Dispatch 不会重写 ChatGPT 或 Claude 的缓存日历/邮件/等。
|
|
139
|
-
快照。`mcp:read` / `mcp:write` / `mcp:apps` 范围与下文
|
|
139
|
+
快照。`mcp:read` / `mcp:write` / `mcp:apps` / `offline_access` 范围与下文
|
|
140
140
|
[标准远程 MCP OAuth](#standard-oauth) 中介绍的相同。
|
|
141
141
|
|
|
142
142
|
Cursor、Goose、Postman、MCPJam 和 VS Code GitHub Copilot 使用相同的遥控器
|
|
@@ -283,13 +283,14 @@ OAuth 流程是授权代码 + PKCE 和刷新令牌轮换。访问令牌是受众
|
|
|
283
283
|
|
|
284
284
|
当前范围是:
|
|
285
285
|
|
|
286
|
-
| 范围
|
|
287
|
-
|
|
|
288
|
-
| `mcp:read`
|
|
289
|
-
| `mcp:write`
|
|
290
|
-
| `mcp:apps`
|
|
286
|
+
| 范围 | 允许 |
|
|
287
|
+
| ---------------- | ------------------------------------------------ |
|
|
288
|
+
| `mcp:read` | 只读MCP actions和普通工具/资源发现 |
|
|
289
|
+
| `mcp:write` | 变异 actions 和 `ask-agent` 元工具 |
|
|
290
|
+
| `mcp:apps` | MCP Apps 资源列表/读取和内联 UI 渲染(如果支持) |
|
|
291
|
+
| `offline_access` | 刷新令牌访问权限,使主机保持连接 |
|
|
291
292
|
|
|
292
|
-
|
|
293
|
+
当客户端请求没有明确的范围时,应用程序会授予所有四个范围,因此连接器的行为类似于浏览器授权的连接流,并且可以在无需再次登录的情况下刷新访问权限。为本地开发人员、后备主机和需要准备粘贴配置块的客户端保留不记名令牌连接页面和 `npx @agent-native/core@latest connect --token <token>` 后备。
|
|
293
294
|
|
|
294
295
|
## 目录层 {#catalog-tiers}
|
|
295
296
|
|
|
@@ -240,7 +240,7 @@ claude mcp add --transport http agent-native https://dispatch.agent-native.com/_
|
|
|
240
240
|
|
|
241
241
|
```http
|
|
242
242
|
HTTP/1.1 401 Unauthorized
|
|
243
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
243
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
发现端点:
|
|
@@ -386,6 +386,8 @@ A2A_SECRET=your-shared-secret-at-least-32-chars
|
|
|
386
386
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK` **未**设置,除非您的组织实际上共享工作区密钥 - 请参阅 [Cross-User Tooling Secrets](#tooling-secrets)
|
|
387
387
|
- [] 在多租户部署中,**用户自带 `ANTHROPIC_API_KEY`** - 框架拒绝回退到部署级别环境变量
|
|
388
388
|
|
|
389
|
+
运行 `agent-native doctor`(在脚手架生成的应用中为 `pnpm doctor`)可自动检查此清单中的架构、凭据和环境变量项 — 每条发现都会标明 guard、文件和行号。请参阅 [Doctor](/docs/doctor) 文档。
|
|
390
|
+
|
|
389
391
|
---
|
|
390
392
|
|
|
391
393
|
以下部分介绍了您只能在特定部署中使用的利基环境标志。大多数应用程序从不接触它们。
|
|
@@ -381,7 +381,7 @@ function MyComponent() {
|
|
|
381
381
|
/_agent-native/sign-in?return=<same-origin-path>
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
當匿名檢視者點選此 URL 時,將提供框架的登入頁面。成功登入(任何流程 - 權杖、電子郵件/密碼或 GoogleOAuth
|
|
384
|
+
當匿名檢視者點選此 URL 時,將提供框架的登入頁面。成功登入(任何流程 - 權杖、電子郵件/密碼或 GoogleOAuth)後,瀏覽器會返回 `return`。
|
|
385
385
|
|
|
386
386
|
`return` 參數被驗證為**同來源路徑**。網路路徑引用 (`//evil.com/...`)、絕對 URL、`data:` / `javascript:` 方案和嵌入式控制字符都回退到 `/`。驗證的路徑是從 URL 解析器重建的,而不是從輸入中回顯。
|
|
387
387
|
|
|
@@ -402,7 +402,7 @@ function SignInCta() {
|
|
|
402
402
|
|
|
403
403
|
### 已新增書簽的私人路徑
|
|
404
404
|
|
|
405
|
-
|
|
405
|
+
一般應用程式頁面會為所有訪客使用同一個非個人化、可公開快取的 SSR 外殼。`AppProviders` 會在用戶端檢查工作階段;造訪 `/dashboard` 等私人路徑時,它會在掛載私人應用程式介面之前將匿名訪客重新導向至 `/_agent-native/sign-in?return=%2Fdashboard`。登入後,訪客會返回 `/dashboard`。公開或 SEO 路由請使用 `isPublicPath`;透過 MCP 內嵌權杖等其他受限機制驗證的介面請使用 `sessionBypass`。
|
|
406
406
|
|
|
407
407
|
### 幕後花絮:GoogleOAuth
|
|
408
408
|
|
|
@@ -136,7 +136,7 @@ OAuth 代幣。 ChatGPT 可以保留已審查或已發布的連線器工具
|
|
|
136
136
|
工具或 MCP 應用中繼資料更改。如果您仍然有舊的每應用連線器
|
|
137
137
|
與調度、重新整理或重新連線每個過時的連線器一起啟用;正在更新
|
|
138
138
|
Dispatch 不會重寫 ChatGPT 或 Claude 的快取行事曆/郵件/等。
|
|
139
|
-
快照。`mcp:read` / `mcp:write` / `mcp:apps` 範圍與下文
|
|
139
|
+
快照。`mcp:read` / `mcp:write` / `mcp:apps` / `offline_access` 範圍與下文
|
|
140
140
|
[標準遠端 MCP OAuth](#standard-oauth) 中介紹的相同。
|
|
141
141
|
|
|
142
142
|
Cursor、Goose、Postman、MCPJam 和 VS Code GitHub Copilot 使用相同的遙控器
|
|
@@ -283,13 +283,14 @@ OAuth 流程是授權程式碼 + PKCE 和重新整理權杖輪換。存取權杖
|
|
|
283
283
|
|
|
284
284
|
目前範圍是:
|
|
285
285
|
|
|
286
|
-
| 範圍
|
|
287
|
-
|
|
|
288
|
-
| `mcp:read`
|
|
289
|
-
| `mcp:write`
|
|
290
|
-
| `mcp:apps`
|
|
286
|
+
| 範圍 | 允許 |
|
|
287
|
+
| ---------------- | ------------------------------------------------ |
|
|
288
|
+
| `mcp:read` | 唯讀 MCP actions和普通工具/資源發現 |
|
|
289
|
+
| `mcp:write` | 變異 actions 和 `ask-agent` 元工具 |
|
|
290
|
+
| `mcp:apps` | MCP Apps 資源清單/讀取和行內 UI 渲染(如果支援) |
|
|
291
|
+
| `offline_access` | 重新整理權杖存取權,讓主機保持連線 |
|
|
291
292
|
|
|
292
|
-
|
|
293
|
+
當用戶端請求沒有明確的範圍時,應用程式會授予所有四個範圍,因此連線器的行為類似於瀏覽器授權的連線流,並且可以在不再次登入的情況下重新整理存取權。為本機開發人員、後備主機和需要準備貼上設定塊的用戶端保留不記名權杖連線頁面和 `npx @agent-native/core@latest connect --token <token>` 後備。
|
|
293
294
|
|
|
294
295
|
## 目錄層 {#catalog-tiers}
|
|
295
296
|
|
|
@@ -240,7 +240,7 @@ claude mcp add --transport http agent-native https://dispatch.agent-native.com/_
|
|
|
240
240
|
|
|
241
241
|
```http
|
|
242
242
|
HTTP/1.1 401 Unauthorized
|
|
243
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
243
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
發現端點:
|
|
@@ -388,6 +388,8 @@ A2A_SECRET=your-shared-secret-at-least-32-chars
|
|
|
388
388
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK` **未**設定,除非您的組織實際上共用工作區金鑰 - 請參閱 [Cross-User Tooling Secrets](#tooling-secrets)
|
|
389
389
|
- [] 在多租戶部署中,**使用者自帶 `ANTHROPIC_API_KEY`** - 框架拒絕回退到部署層級環境變數
|
|
390
390
|
|
|
391
|
+
執行 `agent-native doctor`(在鷹架產生的應用程式中為 `pnpm doctor`)可自動檢查此清單中的架構、憑證和環境變數項目 — 每項發現都會標明 guard、檔案與行號。請參閱 [Doctor](/docs/doctor) 文件。
|
|
392
|
+
|
|
391
393
|
---
|
|
392
394
|
|
|
393
395
|
以下部分介紹了您只能在特定部署中使用的利基環境標誌。大多數應用程式從不接觸它們。
|
|
@@ -247,7 +247,7 @@ The first unauthenticated MCP request receives:
|
|
|
247
247
|
|
|
248
248
|
```http
|
|
249
249
|
HTTP/1.1 401 Unauthorized
|
|
250
|
-
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
|
|
250
|
+
WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps offline_access"
|
|
251
251
|
```
|
|
252
252
|
|
|
253
253
|
Discovery endpoints:
|
|
@@ -388,6 +388,8 @@ This was previously a "warn and accept" stance — set the secret you'd otherwis
|
|
|
388
388
|
- [ ] `AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK` is **not** set unless your org actually shares workspace keys — see [Cross-User Tooling Secrets](#tooling-secrets)
|
|
389
389
|
- [ ] In multi-tenant deployments, **users bring their own `ANTHROPIC_API_KEY`** — the framework refuses to fall back to the deploy-level env var
|
|
390
390
|
|
|
391
|
+
Run `agent-native doctor` (`pnpm doctor` in a scaffolded app) to check the schema, credential, and environment-variable items on this checklist automatically — every finding names the guard, file, and line. See the [Doctor](/docs/doctor) docs.
|
|
392
|
+
|
|
391
393
|
---
|
|
392
394
|
|
|
393
395
|
The sections below cover niche environment flags you only reach for in specific deployments. Most apps never touch them.
|
package/corpus/core/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.98.0",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -184,6 +184,10 @@
|
|
|
184
184
|
"types": "./dist/cli/skills.d.ts",
|
|
185
185
|
"default": "./dist/cli/skills.js"
|
|
186
186
|
},
|
|
187
|
+
"./testing": {
|
|
188
|
+
"types": "./dist/testing.d.ts",
|
|
189
|
+
"default": "./dist/testing.js"
|
|
190
|
+
},
|
|
187
191
|
"./router": "./dist/router/index.js",
|
|
188
192
|
"./collab": "./dist/collab/index.js",
|
|
189
193
|
"./a2a": "./dist/a2a/index.js",
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
// Cross-platform post-TypeScript step: copies runtime templates + CSS into dist/.
|
|
3
3
|
// Inline shell (rm -rf, cp -r, mkdir -p) breaks on Windows cmd.exe, which
|
|
4
4
|
// blocks CI runs of the Clips Tauri workflow on windows-latest.
|
|
5
|
+
import { randomBytes } from "node:crypto";
|
|
5
6
|
import {
|
|
6
7
|
readFileSync,
|
|
7
8
|
readdirSync,
|
|
9
|
+
renameSync,
|
|
8
10
|
rmSync,
|
|
9
11
|
cpSync,
|
|
10
12
|
mkdirSync,
|
|
@@ -34,9 +36,67 @@ function pruneSpecArtifacts(dir) {
|
|
|
34
36
|
}
|
|
35
37
|
if (existsSync("dist")) pruneSpecArtifacts("dist");
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
// Two overlapping `pnpm --filter @agent-native/core run build` invocations
|
|
40
|
+
// (e.g. concurrent `scripts/dev-lazy.ts` prebuilds) both land here and used
|
|
41
|
+
// to `rmSync`/`cpSync` "dist/templates" directly, which could throw EEXIST
|
|
42
|
+
// out of `cpSync` when one process's copy landed mid-walk of another's rm.
|
|
43
|
+
// Build into a unique temp dir first, then swap it into place with the same
|
|
44
|
+
// bounded, race-tolerant retry used for the source corpus in
|
|
45
|
+
// materialize-source-corpus.mjs.
|
|
46
|
+
const distTemplatesDir = "dist/templates";
|
|
47
|
+
const templatesTempDir = `${distTemplatesDir}.tmp-${process.pid}-${randomBytes(4).toString("hex")}`;
|
|
48
|
+
const templateSwapMaxAttempts = 5;
|
|
49
|
+
const templateSwapRetryDelayMs = 40;
|
|
50
|
+
|
|
51
|
+
function sleepSync(ms) {
|
|
52
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// src/templates always has content (default/, headless/, workspace-core/,
|
|
56
|
+
// workspace-root/), so a non-empty dist/templates is proof some build --
|
|
57
|
+
// ours or a concurrent one -- finished copying. No marker file is added so
|
|
58
|
+
// dist/templates stays a byte-for-byte mirror of src/templates.
|
|
59
|
+
function looksLikeMaterializedTemplates(dir) {
|
|
60
|
+
if (!existsSync(dir)) return false;
|
|
61
|
+
return readdirSync(dir).length > 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function swapTemplatesDirIntoPlace(tempDir) {
|
|
65
|
+
for (let attempt = 1; attempt <= templateSwapMaxAttempts; attempt += 1) {
|
|
66
|
+
try {
|
|
67
|
+
rmSync(distTemplatesDir, { recursive: true, force: true });
|
|
68
|
+
} catch {
|
|
69
|
+
// A concurrent build may already be repopulating dist/templates; let
|
|
70
|
+
// the renameSync below decide the outcome instead of failing here.
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
renameSync(tempDir, distTemplatesDir);
|
|
74
|
+
return;
|
|
75
|
+
} catch (error) {
|
|
76
|
+
const code = error && error.code;
|
|
77
|
+
const concurrentWriter =
|
|
78
|
+
code === "ENOTEMPTY" ||
|
|
79
|
+
code === "EEXIST" ||
|
|
80
|
+
code === "ENOENT" ||
|
|
81
|
+
code === "EPERM";
|
|
82
|
+
if (!concurrentWriter) throw error;
|
|
83
|
+
if (looksLikeMaterializedTemplates(distTemplatesDir)) {
|
|
84
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (attempt < templateSwapMaxAttempts) {
|
|
88
|
+
sleepSync(templateSwapRetryDelayMs * attempt);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
rmSync(templatesTempDir, { recursive: true, force: true });
|
|
97
|
+
cpSync("src/templates", templatesTempDir, { recursive: true });
|
|
98
|
+
pruneSpecArtifacts(templatesTempDir);
|
|
99
|
+
swapTemplatesDirIntoPlace(templatesTempDir);
|
|
40
100
|
mkdirSync("dist/styles", { recursive: true });
|
|
41
101
|
for (const f of readdirSync("src/styles").filter((n) => n.endsWith(".css"))) {
|
|
42
102
|
copyFileSync(join("src/styles", f), join("dist/styles", f));
|