@agent-native/core 0.98.17 → 0.99.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 +25 -0
- package/corpus/core/docs/content/actions.mdx +1 -1
- package/corpus/core/docs/content/authentication.mdx +1 -1
- package/corpus/core/docs/content/dispatch.mdx +3 -3
- package/corpus/core/docs/content/external-agents.mdx +30 -19
- package/corpus/core/docs/content/locales/ar-SA/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +23 -19
- package/corpus/core/docs/content/locales/ar-SA/mcp-clients.mdx +31 -3
- package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +29 -15
- package/corpus/core/docs/content/locales/ar-SA/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/ar-SA/server.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/de-DE/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +23 -19
- package/corpus/core/docs/content/locales/de-DE/mcp-clients.mdx +37 -3
- package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +29 -15
- package/corpus/core/docs/content/locales/de-DE/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/de-DE/server.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/es-ES/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +32 -19
- package/corpus/core/docs/content/locales/es-ES/mcp-clients.mdx +17 -3
- package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +38 -15
- package/corpus/core/docs/content/locales/es-ES/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/es-ES/server.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/fr-FR/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +23 -19
- package/corpus/core/docs/content/locales/fr-FR/mcp-clients.mdx +17 -3
- package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +29 -15
- package/corpus/core/docs/content/locales/fr-FR/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/fr-FR/server.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/hi-IN/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +31 -19
- package/corpus/core/docs/content/locales/hi-IN/mcp-clients.mdx +17 -3
- package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +36 -15
- package/corpus/core/docs/content/locales/hi-IN/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/hi-IN/server.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/ja-JP/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +23 -19
- package/corpus/core/docs/content/locales/ja-JP/mcp-clients.mdx +34 -3
- package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +29 -15
- package/corpus/core/docs/content/locales/ja-JP/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/ja-JP/server.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/ko-KR/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +30 -19
- package/corpus/core/docs/content/locales/ko-KR/mcp-clients.mdx +33 -3
- package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +36 -15
- package/corpus/core/docs/content/locales/ko-KR/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/ko-KR/server.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/pt-BR/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +32 -19
- package/corpus/core/docs/content/locales/pt-BR/mcp-clients.mdx +34 -3
- package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +32 -15
- package/corpus/core/docs/content/locales/pt-BR/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/pt-BR/server.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-CN/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +23 -19
- package/corpus/core/docs/content/locales/zh-CN/mcp-clients.mdx +28 -3
- package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +29 -15
- package/corpus/core/docs/content/locales/zh-CN/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-CN/server.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/template-plan.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-TW/actions.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/dispatch.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +23 -19
- package/corpus/core/docs/content/locales/zh-TW/mcp-clients.mdx +28 -3
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +30 -15
- package/corpus/core/docs/content/locales/zh-TW/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-TW/server.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/template-assets.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/template-plan.mdx +3 -3
- package/corpus/core/docs/content/mcp-clients.mdx +31 -4
- package/corpus/core/docs/content/mcp-protocol.mdx +35 -15
- package/corpus/core/docs/content/plan-plugin.mdx +3 -3
- package/corpus/core/docs/content/server.mdx +2 -2
- package/corpus/core/docs/content/skills-guide.mdx +1 -1
- package/corpus/core/docs/content/template-assets.mdx +1 -1
- package/corpus/core/docs/content/template-dispatch.mdx +2 -2
- package/corpus/core/docs/content/template-plan.mdx +3 -3
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/client.ts +3 -0
- package/corpus/core/src/a2a/handlers.ts +95 -7
- package/corpus/core/src/agent/production-agent.ts +21 -0
- package/corpus/core/src/cli/connect.ts +50 -24
- package/corpus/core/src/cli/mcp-config-writers.ts +10 -0
- package/corpus/core/src/cli/mcp.ts +5 -5
- package/corpus/core/src/cli/pr-visual-recap-workflow.ts +1 -1
- package/corpus/core/src/cli/skills-content/assets-skill.ts +1 -1
- package/corpus/core/src/cli/skills-content/design-exploration-skill.ts +1 -1
- package/corpus/core/src/cli/skills-content/help.ts +1 -1
- package/corpus/core/src/cli/skills-content/plan-setup-auth.ts +1 -1
- package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +1 -1
- package/corpus/core/src/cli/skills-content/visual-recap-skill.ts +2 -2
- package/corpus/core/src/cli/skills.ts +23 -12
- package/corpus/core/src/client/analytics.ts +13 -0
- package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +5 -0
- package/corpus/core/src/client/resources/mcp-integration-catalog.ts +17 -0
- package/corpus/core/src/embedding/agent.ts +8 -6
- package/corpus/core/src/localization/default-messages.ts +7 -0
- package/corpus/core/src/mcp/ask-app-inline-tasks.ts +125 -0
- package/corpus/core/src/mcp/build-server.ts +65 -3
- package/corpus/core/src/mcp/builtin-tools.ts +186 -22
- package/corpus/core/src/mcp/connect-route.ts +17 -14
- package/corpus/core/src/mcp/oauth-route.ts +38 -13
- package/corpus/core/src/mcp/route-paths.ts +34 -0
- package/corpus/core/src/mcp/server.ts +21 -10
- package/corpus/core/src/mcp/stdio.ts +34 -16
- package/corpus/core/src/mcp/workspace-resolve.ts +2 -1
- package/corpus/core/src/mcp-client/manager.ts +5 -3
- package/corpus/core/src/mcp-client/remote-store.ts +10 -10
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +13 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +42 -9
- package/corpus/core/src/server/agent-teams.ts +17 -0
- package/corpus/core/src/server/auth.ts +22 -6
- package/corpus/core/src/server/core-routes-plugin.ts +30 -24
- package/corpus/core/src/server/csrf.ts +17 -0
- package/corpus/core/src/server/framework-request-handler.ts +8 -2
- package/corpus/core/src/server/google-oauth.ts +12 -2
- package/corpus/core/src/server/http-response-telemetry.ts +6 -1
- package/corpus/core/src/server/recap-image-route.ts +3 -3
- package/corpus/core/src/server/security-headers.ts +7 -1
- package/corpus/core/src/server/ssr-handler.ts +2 -0
- package/corpus/core/src/shared/cache-control.ts +6 -4
- package/corpus/core/src/templates/default/.agents/skills/security/SKILL.md +10 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +15 -6
- package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +16 -10
- package/corpus/core/src/templates/workspace-core/.agents/skills/performance/SKILL.md +20 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/analytics/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/analytics/app/assets/replay-cursor.svg +17 -0
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +4 -3
- package/corpus/templates/analytics/app/global.css +71 -4
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +32 -4
- package/corpus/templates/analytics/app/pages/monitoring/errors/IssueDetail.tsx +1 -1
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +49 -11
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +4 -6
- package/corpus/templates/analytics/changelog/2026-07-13-all-time-dashboard-filters-no-longer-send-invalid-dates-to-b.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-daily-dashboard-emails-recover-more-reliably-from-serverless.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-error-issue-titles-wrap-instead-of-overflowing.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-saving-a-new-dashboard-view-no-longer-fails-with-a-server-er.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-session-replay-cursors-stay-hidden-until-their-first-recorde.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-session-replay-links-now-support-cmd-click-and-middle-click-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-session-replays-keep-a-visible-mac-style-cursor-over-the-vis.md +6 -0
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +21 -2
- package/corpus/templates/analytics/server/lib/dashboard-report-subscriptions.ts +57 -1
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +266 -28
- package/corpus/templates/analytics/server/lib/dashboards-store.ts +43 -4
- package/corpus/templates/analytics/server/lib/error-capture.ts +24 -5
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +5 -0
- package/corpus/templates/analytics/server/routes/[...page].get.ts +0 -2
- package/corpus/templates/assets/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/assets/agent-native.app-skill.json +1 -1
- package/corpus/templates/brain/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/calendar/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/calendar/AGENTS.md +2 -1
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +0 -19
- package/corpus/templates/calendar/app/lib/attendee-local-time.ts +14 -5
- package/corpus/templates/calendar/changelog/2026-07-13-your-local-time-now-follows-your-browser-timezone-and-event-.md +6 -0
- package/corpus/templates/chat/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/clips/.agents/skills/recording/SKILL.md +7 -2
- package/corpus/templates/clips/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/clips/AGENTS.md +7 -0
- package/corpus/templates/clips/actions/list-meetings.ts +19 -4
- package/corpus/templates/clips/actions/start-meeting-recording.ts +7 -1
- package/corpus/templates/clips/app/components/library/recording-card.tsx +27 -26
- package/corpus/templates/clips/app/components/library/space-card.tsx +4 -6
- package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +75 -78
- package/corpus/templates/clips/app/components/recorder/confetti-canvas.tsx +18 -1
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +6 -12
- package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +19 -2
- package/corpus/templates/clips/app/lib/camera-composite.ts +70 -10
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
- package/corpus/templates/clips/app/routes/record.tsx +5 -25
- package/corpus/templates/clips/changelog/2026-07-13-clips-desktop-now-requires-macos-13-for-native-capture.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-13-clips-hide-solo-meeting-reminders.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-13-clips-now-removes-duplicate-mic-and-system-transcript-turns-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-13-desktop-recordings-run-cooler-and-quieter-live-transcription.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-13-meeting-recordings-now-stop-after-a-calendar-meeting-ends-an.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-13-meeting-transcripts-now-use-a-clean-agent-chat-style-reading.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-13-screen-recordings-use-less-processing-power-during-longer-ca.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/background.ts +5 -3
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +17 -14
- package/corpus/templates/clips/chrome-extension/src/overlay.ts +8 -2
- package/corpus/templates/clips/desktop/README.md +3 -0
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +9 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +8 -2
- package/corpus/templates/clips/desktop/src/lib/silence-events.ts +1 -0
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +5 -0
- package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +134 -5
- package/corpus/templates/clips/desktop/src/lib/upload-video-stream.ts +28 -0
- package/corpus/templates/clips/desktop/src/overlays/flow-bar.tsx +10 -3
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +42 -9
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +10 -2
- package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +6 -1
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +77 -1
- package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +104 -25
- package/corpus/templates/clips/desktop/src-tauri/src/system_audio.rs +4 -0
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +287 -32
- package/corpus/templates/clips/desktop/src-tauri/tauri.conf.json +1 -1
- package/corpus/templates/clips/server/lib/calendar-event-classification.ts +28 -0
- package/corpus/templates/clips/server/routes/[...page].get.ts +1 -59
- package/corpus/templates/clips/shared/recording-capture.ts +37 -0
- package/corpus/templates/content/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/content/agent-native.app-skill.json +1 -1
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +18 -16
- package/corpus/templates/content/server/routes/[...page].get.ts +1 -15
- package/corpus/templates/design/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/design/actions/connect-assets-mcp.ts +1 -1
- package/corpus/templates/design/agent-native.app-skill.json +1 -1
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +88 -12
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1 -0
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +4 -1
- package/corpus/templates/design/changelog/2026-07-13-adding-shapes-preserves-canvas-background.md +6 -0
- package/corpus/templates/design/changelog/2026-07-13-clicking-quickly-between-overlapping-elements-no-longer-bounc.md +6 -0
- package/corpus/templates/design/server/plugins/assets-mcp.ts +1 -1
- package/corpus/templates/design/server/routes/[...page].get.ts +0 -2
- package/corpus/templates/dispatch/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/forms/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/macros/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/mail/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/plan/.agents/skills/security/SKILL.md +10 -0
- package/corpus/templates/plan/.agents/skills/visual-plan/SKILL.md +1 -1
- package/corpus/templates/plan/.agents/skills/visual-recap/SKILL.md +2 -2
- package/corpus/templates/plan/agent-native.app-skill.json +1 -1
- package/corpus/templates/plan/app/lib/plan-local-bridge.ts +6 -1
- package/corpus/templates/plan/app/pages/PlansPage.tsx +15 -6
- package/corpus/templates/plan/changelog/2026-07-13-fixed-local-plan-previews-continuously-flickering-while-revi.md +6 -0
- package/corpus/templates/plan/server/routes/[...page].get.ts +0 -2
- package/corpus/templates/slides/.agents/skills/security/SKILL.md +10 -0
- package/dist/a2a/client.d.ts +2 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +2 -0
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +84 -7
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/agent/production-agent.d.ts +9 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +12 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/connect.d.ts +2 -2
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +45 -23
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/mcp-config-writers.d.ts.map +1 -1
- package/dist/cli/mcp-config-writers.js +7 -0
- package/dist/cli/mcp-config-writers.js.map +1 -1
- package/dist/cli/mcp.js +5 -3
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/skills-content/assets-skill.d.ts +1 -1
- package/dist/cli/skills-content/assets-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/assets-skill.js +1 -1
- package/dist/cli/skills-content/assets-skill.js.map +1 -1
- package/dist/cli/skills-content/design-exploration-skill.d.ts +1 -1
- package/dist/cli/skills-content/design-exploration-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/design-exploration-skill.js +1 -1
- package/dist/cli/skills-content/design-exploration-skill.js.map +1 -1
- package/dist/cli/skills-content/help.d.ts +1 -1
- package/dist/cli/skills-content/help.d.ts.map +1 -1
- package/dist/cli/skills-content/help.js +1 -1
- package/dist/cli/skills-content/help.js.map +1 -1
- package/dist/cli/skills-content/plan-setup-auth.d.ts +1 -1
- package/dist/cli/skills-content/plan-setup-auth.d.ts.map +1 -1
- package/dist/cli/skills-content/plan-setup-auth.js +1 -1
- package/dist/cli/skills-content/plan-setup-auth.js.map +1 -1
- package/dist/cli/skills-content/visual-plan-skill.d.ts +1 -1
- package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/visual-plan-skill.js +1 -1
- package/dist/cli/skills-content/visual-plan-skill.js.map +1 -1
- package/dist/cli/skills-content/visual-recap-skill.d.ts +1 -1
- package/dist/cli/skills-content/visual-recap-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/visual-recap-skill.js +2 -2
- package/dist/cli/skills-content/visual-recap-skill.js.map +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +16 -12
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +11 -0
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.js +1 -1
- package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.d.ts +1 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.js +14 -0
- package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/embedding/agent.d.ts.map +1 -1
- package/dist/embedding/agent.js +6 -7
- package/dist/embedding/agent.js.map +1 -1
- package/dist/localization/default-messages.d.ts +5 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +5 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/ask-app-inline-tasks.d.ts +47 -0
- package/dist/mcp/ask-app-inline-tasks.d.ts.map +1 -0
- package/dist/mcp/ask-app-inline-tasks.js +87 -0
- package/dist/mcp/ask-app-inline-tasks.js.map +1 -0
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +56 -3
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/builtin-tools.d.ts.map +1 -1
- package/dist/mcp/builtin-tools.js +141 -21
- package/dist/mcp/builtin-tools.js.map +1 -1
- package/dist/mcp/connect-route.d.ts +12 -10
- package/dist/mcp/connect-route.d.ts.map +1 -1
- package/dist/mcp/connect-route.js +17 -14
- package/dist/mcp/connect-route.js.map +1 -1
- package/dist/mcp/oauth-route.d.ts +1 -1
- package/dist/mcp/oauth-route.d.ts.map +1 -1
- package/dist/mcp/oauth-route.js +30 -13
- package/dist/mcp/oauth-route.js.map +1 -1
- package/dist/mcp/route-paths.d.ts +13 -0
- package/dist/mcp/route-paths.d.ts.map +1 -0
- package/dist/mcp/route-paths.js +27 -0
- package/dist/mcp/route-paths.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +14 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/stdio.d.ts +7 -6
- package/dist/mcp/stdio.d.ts.map +1 -1
- package/dist/mcp/stdio.js +27 -15
- package/dist/mcp/stdio.js.map +1 -1
- package/dist/mcp/workspace-resolve.d.ts +2 -1
- package/dist/mcp/workspace-resolve.d.ts.map +1 -1
- package/dist/mcp/workspace-resolve.js +2 -1
- package/dist/mcp/workspace-resolve.js.map +1 -1
- package/dist/mcp-client/manager.js +6 -3
- package/dist/mcp-client/manager.js.map +1 -1
- package/dist/mcp-client/remote-store.js +5 -7
- package/dist/mcp-client/remote-store.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.js +11 -1
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +43 -11
- 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.map +1 -1
- package/dist/server/agent-teams.js +15 -1
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +16 -6
- package/dist/server/auth.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +4 -3
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +20 -15
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/csrf.js +11 -0
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +8 -2
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/google-oauth.d.ts +2 -0
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +11 -2
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/http-response-telemetry.d.ts.map +1 -1
- package/dist/server/http-response-telemetry.js +4 -1
- package/dist/server/http-response-telemetry.js.map +1 -1
- package/dist/server/recap-image-route.js +3 -3
- package/dist/server/recap-image-route.js.map +1 -1
- package/dist/server/security-headers.d.ts.map +1 -1
- package/dist/server/security-headers.js +4 -1
- package/dist/server/security-headers.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +3 -1
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/shared/cache-control.d.ts +7 -6
- package/dist/shared/cache-control.d.ts.map +1 -1
- package/dist/shared/cache-control.js +4 -3
- package/dist/shared/cache-control.js.map +1 -1
- package/dist/templates/default/.agents/skills/security/SKILL.md +10 -0
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +15 -6
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +16 -10
- package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +20 -1
- package/dist/templates/workspace-core/.agents/skills/security/SKILL.md +10 -0
- package/docs/content/actions.mdx +1 -1
- package/docs/content/authentication.mdx +1 -1
- package/docs/content/dispatch.mdx +3 -3
- package/docs/content/external-agents.mdx +30 -19
- package/docs/content/locales/ar-SA/actions.mdx +1 -1
- package/docs/content/locales/ar-SA/authentication.mdx +1 -1
- package/docs/content/locales/ar-SA/dispatch.mdx +3 -3
- package/docs/content/locales/ar-SA/external-agents.mdx +23 -19
- package/docs/content/locales/ar-SA/mcp-clients.mdx +31 -3
- package/docs/content/locales/ar-SA/mcp-protocol.mdx +29 -15
- package/docs/content/locales/ar-SA/plan-plugin.mdx +3 -3
- package/docs/content/locales/ar-SA/server.mdx +2 -2
- package/docs/content/locales/ar-SA/skills-guide.mdx +1 -1
- package/docs/content/locales/ar-SA/template-assets.mdx +1 -1
- package/docs/content/locales/ar-SA/template-dispatch.mdx +2 -2
- package/docs/content/locales/ar-SA/template-plan.mdx +3 -3
- package/docs/content/locales/de-DE/actions.mdx +1 -1
- package/docs/content/locales/de-DE/authentication.mdx +1 -1
- package/docs/content/locales/de-DE/dispatch.mdx +3 -3
- package/docs/content/locales/de-DE/external-agents.mdx +23 -19
- package/docs/content/locales/de-DE/mcp-clients.mdx +37 -3
- package/docs/content/locales/de-DE/mcp-protocol.mdx +29 -15
- package/docs/content/locales/de-DE/plan-plugin.mdx +3 -3
- package/docs/content/locales/de-DE/server.mdx +2 -2
- package/docs/content/locales/de-DE/skills-guide.mdx +1 -1
- package/docs/content/locales/de-DE/template-assets.mdx +1 -1
- package/docs/content/locales/de-DE/template-dispatch.mdx +2 -2
- package/docs/content/locales/de-DE/template-plan.mdx +3 -3
- package/docs/content/locales/es-ES/actions.mdx +1 -1
- package/docs/content/locales/es-ES/authentication.mdx +1 -1
- package/docs/content/locales/es-ES/dispatch.mdx +3 -3
- package/docs/content/locales/es-ES/external-agents.mdx +32 -19
- package/docs/content/locales/es-ES/mcp-clients.mdx +17 -3
- package/docs/content/locales/es-ES/mcp-protocol.mdx +38 -15
- package/docs/content/locales/es-ES/plan-plugin.mdx +3 -3
- package/docs/content/locales/es-ES/server.mdx +2 -2
- package/docs/content/locales/es-ES/skills-guide.mdx +1 -1
- package/docs/content/locales/es-ES/template-assets.mdx +1 -1
- package/docs/content/locales/es-ES/template-dispatch.mdx +2 -2
- package/docs/content/locales/es-ES/template-plan.mdx +3 -3
- package/docs/content/locales/fr-FR/actions.mdx +1 -1
- package/docs/content/locales/fr-FR/authentication.mdx +1 -1
- package/docs/content/locales/fr-FR/dispatch.mdx +3 -3
- package/docs/content/locales/fr-FR/external-agents.mdx +23 -19
- package/docs/content/locales/fr-FR/mcp-clients.mdx +17 -3
- package/docs/content/locales/fr-FR/mcp-protocol.mdx +29 -15
- package/docs/content/locales/fr-FR/plan-plugin.mdx +3 -3
- package/docs/content/locales/fr-FR/server.mdx +2 -2
- package/docs/content/locales/fr-FR/skills-guide.mdx +1 -1
- package/docs/content/locales/fr-FR/template-assets.mdx +1 -1
- package/docs/content/locales/fr-FR/template-dispatch.mdx +2 -2
- package/docs/content/locales/fr-FR/template-plan.mdx +3 -3
- package/docs/content/locales/hi-IN/actions.mdx +1 -1
- package/docs/content/locales/hi-IN/authentication.mdx +1 -1
- package/docs/content/locales/hi-IN/dispatch.mdx +3 -3
- package/docs/content/locales/hi-IN/external-agents.mdx +31 -19
- package/docs/content/locales/hi-IN/mcp-clients.mdx +17 -3
- package/docs/content/locales/hi-IN/mcp-protocol.mdx +36 -15
- package/docs/content/locales/hi-IN/plan-plugin.mdx +3 -3
- package/docs/content/locales/hi-IN/server.mdx +2 -2
- package/docs/content/locales/hi-IN/skills-guide.mdx +1 -1
- package/docs/content/locales/hi-IN/template-assets.mdx +1 -1
- package/docs/content/locales/hi-IN/template-dispatch.mdx +2 -2
- package/docs/content/locales/hi-IN/template-plan.mdx +3 -3
- package/docs/content/locales/ja-JP/actions.mdx +1 -1
- package/docs/content/locales/ja-JP/authentication.mdx +1 -1
- package/docs/content/locales/ja-JP/dispatch.mdx +3 -3
- package/docs/content/locales/ja-JP/external-agents.mdx +23 -19
- package/docs/content/locales/ja-JP/mcp-clients.mdx +34 -3
- package/docs/content/locales/ja-JP/mcp-protocol.mdx +29 -15
- package/docs/content/locales/ja-JP/plan-plugin.mdx +3 -3
- package/docs/content/locales/ja-JP/server.mdx +2 -2
- package/docs/content/locales/ja-JP/skills-guide.mdx +1 -1
- package/docs/content/locales/ja-JP/template-assets.mdx +1 -1
- package/docs/content/locales/ja-JP/template-dispatch.mdx +2 -2
- package/docs/content/locales/ja-JP/template-plan.mdx +3 -3
- package/docs/content/locales/ko-KR/actions.mdx +1 -1
- package/docs/content/locales/ko-KR/authentication.mdx +1 -1
- package/docs/content/locales/ko-KR/dispatch.mdx +3 -3
- package/docs/content/locales/ko-KR/external-agents.mdx +30 -19
- package/docs/content/locales/ko-KR/mcp-clients.mdx +33 -3
- package/docs/content/locales/ko-KR/mcp-protocol.mdx +36 -15
- package/docs/content/locales/ko-KR/plan-plugin.mdx +3 -3
- package/docs/content/locales/ko-KR/server.mdx +2 -2
- package/docs/content/locales/ko-KR/skills-guide.mdx +1 -1
- package/docs/content/locales/ko-KR/template-assets.mdx +1 -1
- package/docs/content/locales/ko-KR/template-dispatch.mdx +2 -2
- package/docs/content/locales/ko-KR/template-plan.mdx +3 -3
- package/docs/content/locales/pt-BR/actions.mdx +1 -1
- package/docs/content/locales/pt-BR/authentication.mdx +1 -1
- package/docs/content/locales/pt-BR/dispatch.mdx +3 -3
- package/docs/content/locales/pt-BR/external-agents.mdx +32 -19
- package/docs/content/locales/pt-BR/mcp-clients.mdx +34 -3
- package/docs/content/locales/pt-BR/mcp-protocol.mdx +32 -15
- package/docs/content/locales/pt-BR/plan-plugin.mdx +3 -3
- package/docs/content/locales/pt-BR/server.mdx +2 -2
- package/docs/content/locales/pt-BR/skills-guide.mdx +1 -1
- package/docs/content/locales/pt-BR/template-assets.mdx +1 -1
- package/docs/content/locales/pt-BR/template-dispatch.mdx +2 -2
- package/docs/content/locales/pt-BR/template-plan.mdx +3 -3
- package/docs/content/locales/zh-CN/actions.mdx +1 -1
- package/docs/content/locales/zh-CN/authentication.mdx +1 -1
- package/docs/content/locales/zh-CN/dispatch.mdx +3 -3
- package/docs/content/locales/zh-CN/external-agents.mdx +23 -19
- package/docs/content/locales/zh-CN/mcp-clients.mdx +28 -3
- package/docs/content/locales/zh-CN/mcp-protocol.mdx +29 -15
- package/docs/content/locales/zh-CN/plan-plugin.mdx +3 -3
- package/docs/content/locales/zh-CN/server.mdx +2 -2
- package/docs/content/locales/zh-CN/skills-guide.mdx +1 -1
- package/docs/content/locales/zh-CN/template-assets.mdx +1 -1
- package/docs/content/locales/zh-CN/template-dispatch.mdx +2 -2
- package/docs/content/locales/zh-CN/template-plan.mdx +3 -3
- package/docs/content/locales/zh-TW/actions.mdx +1 -1
- package/docs/content/locales/zh-TW/authentication.mdx +1 -1
- package/docs/content/locales/zh-TW/dispatch.mdx +3 -3
- package/docs/content/locales/zh-TW/external-agents.mdx +23 -19
- package/docs/content/locales/zh-TW/mcp-clients.mdx +28 -3
- package/docs/content/locales/zh-TW/mcp-protocol.mdx +30 -15
- package/docs/content/locales/zh-TW/plan-plugin.mdx +3 -3
- package/docs/content/locales/zh-TW/server.mdx +2 -2
- package/docs/content/locales/zh-TW/skills-guide.mdx +1 -1
- package/docs/content/locales/zh-TW/template-assets.mdx +1 -1
- package/docs/content/locales/zh-TW/template-dispatch.mdx +2 -2
- package/docs/content/locales/zh-TW/template-plan.mdx +3 -3
- package/docs/content/mcp-clients.mdx +31 -4
- package/docs/content/mcp-protocol.mdx +35 -15
- package/docs/content/plan-plugin.mdx +3 -3
- package/docs/content/server.mdx +2 -2
- package/docs/content/skills-guide.mdx +1 -1
- package/docs/content/template-assets.mdx +1 -1
- package/docs/content/template-dispatch.mdx +2 -2
- package/docs/content/template-plan.mdx +3 -3
- package/package.json +2 -2
- package/src/templates/default/.agents/skills/security/SKILL.md +10 -0
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +15 -6
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +16 -10
- package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +20 -1
- package/src/templates/workspace-core/.agents/skills/security/SKILL.md +10 -0
|
@@ -11,6 +11,10 @@ import os from "node:os";
|
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
13
|
|
|
14
|
+
import {
|
|
15
|
+
MCP_LEGACY_ROUTE_PREFIX,
|
|
16
|
+
MCP_PUBLIC_ROUTE_PREFIX,
|
|
17
|
+
} from "../mcp/route-paths.js";
|
|
14
18
|
import {
|
|
15
19
|
buildAppSkillPack,
|
|
16
20
|
ensureAppSkill,
|
|
@@ -72,7 +76,7 @@ export const BUILT_IN_APP_SKILLS = {
|
|
|
72
76
|
"Create, search, select, and export brand image and video assets from the Assets app.",
|
|
73
77
|
hosted: {
|
|
74
78
|
url: "https://assets.agent-native.com",
|
|
75
|
-
mcpUrl: "https://assets.agent-native.com/
|
|
79
|
+
mcpUrl: "https://assets.agent-native.com/mcp",
|
|
76
80
|
},
|
|
77
81
|
mcp: { serverName: "agent-native-assets" },
|
|
78
82
|
auth: {
|
|
@@ -118,7 +122,7 @@ export const BUILT_IN_APP_SKILLS = {
|
|
|
118
122
|
"Edit docs, blogs, resources, and MDX content through the Content app, including repo-backed Local File Mode.",
|
|
119
123
|
hosted: {
|
|
120
124
|
url: "https://content.agent-native.com",
|
|
121
|
-
mcpUrl: "https://content.agent-native.com/
|
|
125
|
+
mcpUrl: "https://content.agent-native.com/mcp",
|
|
122
126
|
},
|
|
123
127
|
mcp: { serverName: "agent-native-content" },
|
|
124
128
|
auth: {
|
|
@@ -170,7 +174,7 @@ export const BUILT_IN_APP_SKILLS = {
|
|
|
170
174
|
"Explore, compare, iterate, and export interactive UI design prototypes from the Design app.",
|
|
171
175
|
hosted: {
|
|
172
176
|
url: "https://design.agent-native.com",
|
|
173
|
-
mcpUrl: "https://design.agent-native.com/
|
|
177
|
+
mcpUrl: "https://design.agent-native.com/mcp",
|
|
174
178
|
},
|
|
175
179
|
mcp: { serverName: "agent-native-design" },
|
|
176
180
|
auth: {
|
|
@@ -247,7 +251,7 @@ export const BUILT_IN_APP_SKILLS = {
|
|
|
247
251
|
"Create rich interactive visual plans, recaps, and repo-native visual docs with diagrams, file maps, annotated code and diffs, API/schema summaries, feedback, and HTML export.",
|
|
248
252
|
hosted: {
|
|
249
253
|
url: "https://plan.agent-native.com",
|
|
250
|
-
mcpUrl: "https://plan.agent-native.com/
|
|
254
|
+
mcpUrl: "https://plan.agent-native.com/mcp",
|
|
251
255
|
},
|
|
252
256
|
mcp: { serverName: "plan", aliases: ["agent-native-plans"] },
|
|
253
257
|
auth: {
|
|
@@ -317,7 +321,7 @@ export const BUILT_IN_APP_SKILLS = {
|
|
|
317
321
|
"Visualize local Codex and Claude Code context usage with warnings and optimization tips.",
|
|
318
322
|
hosted: {
|
|
319
323
|
url: "https://context-xray.agent-native.com",
|
|
320
|
-
mcpUrl: "https://context-xray.agent-native.com/
|
|
324
|
+
mcpUrl: "https://context-xray.agent-native.com/mcp",
|
|
321
325
|
},
|
|
322
326
|
mcp: { serverName: "agent-native-context-xray" },
|
|
323
327
|
auth: { mode: "none" },
|
|
@@ -2771,8 +2775,11 @@ function preserveMcpUrlAppPathOverride(
|
|
|
2771
2775
|
return target;
|
|
2772
2776
|
}
|
|
2773
2777
|
const trimmedPath = parsed.pathname.replace(/\/+$/, "");
|
|
2774
|
-
const
|
|
2775
|
-
|
|
2778
|
+
const mcpSuffix = [MCP_LEGACY_ROUTE_PREFIX, MCP_PUBLIC_ROUTE_PREFIX].find(
|
|
2779
|
+
(suffix) => trimmedPath === suffix || trimmedPath.endsWith(suffix),
|
|
2780
|
+
);
|
|
2781
|
+
const appPath = mcpSuffix
|
|
2782
|
+
? trimmedPath.slice(0, -mcpSuffix.length).replace(/\/+$/, "")
|
|
2776
2783
|
: trimmedPath;
|
|
2777
2784
|
if (!appPath) return target;
|
|
2778
2785
|
const url = `${parsed.origin}${appPath}`;
|
|
@@ -2782,7 +2789,7 @@ function preserveMcpUrlAppPathOverride(
|
|
|
2782
2789
|
...target.loaded,
|
|
2783
2790
|
manifest: {
|
|
2784
2791
|
...target.loaded.manifest,
|
|
2785
|
-
hosted: { url, mcpUrl: `${url}
|
|
2792
|
+
hosted: { url, mcpUrl: `${url}${MCP_PUBLIC_ROUTE_PREFIX}` },
|
|
2786
2793
|
},
|
|
2787
2794
|
},
|
|
2788
2795
|
};
|
|
@@ -2870,7 +2877,8 @@ async function runCommand(
|
|
|
2870
2877
|
/**
|
|
2871
2878
|
* Resolve a `--mcp-url` override into the `{ url, mcpUrl }` pair the manifest
|
|
2872
2879
|
* expects. Accepts a bare origin (`https://x.ngrok-free.dev`) — appending the
|
|
2873
|
-
* standard `/
|
|
2880
|
+
* standard `/mcp` path — or a full MCP URL already ending in `/mcp` or the
|
|
2881
|
+
* legacy `/_agent-native/mcp` path.
|
|
2874
2882
|
*/
|
|
2875
2883
|
function resolveMcpUrlOverride(input: string): { url: string; mcpUrl: string } {
|
|
2876
2884
|
let parsed: URL;
|
|
@@ -2884,9 +2892,12 @@ function resolveMcpUrlOverride(input: string): { url: string; mcpUrl: string } {
|
|
|
2884
2892
|
}
|
|
2885
2893
|
const origin = parsed.origin;
|
|
2886
2894
|
const trimmedPath = parsed.pathname.replace(/\/+$/, "");
|
|
2887
|
-
const
|
|
2888
|
-
|
|
2889
|
-
|
|
2895
|
+
const mcpSuffix = [MCP_LEGACY_ROUTE_PREFIX, MCP_PUBLIC_ROUTE_PREFIX].find(
|
|
2896
|
+
(suffix) => trimmedPath === suffix || trimmedPath.endsWith(suffix),
|
|
2897
|
+
);
|
|
2898
|
+
const mcpUrl = mcpSuffix
|
|
2899
|
+
? `${origin}${trimmedPath.slice(0, -mcpSuffix.length)}${MCP_PUBLIC_ROUTE_PREFIX}`
|
|
2900
|
+
: `${origin}${MCP_PUBLIC_ROUTE_PREFIX}`;
|
|
2890
2901
|
return { url: origin, mcpUrl };
|
|
2891
2902
|
}
|
|
2892
2903
|
|
|
@@ -646,6 +646,19 @@ function shouldDropBrowserSentryNoise(event: Sentry.Event): boolean {
|
|
|
646
646
|
typeof event.tags?.url === "string" ? event.tags.url : undefined;
|
|
647
647
|
const requestUrl = (event.request?.url ?? taggedUrl ?? "").toLowerCase();
|
|
648
648
|
const isDocsPage = isAgentNativeDocsUrl(requestUrl);
|
|
649
|
+
// A server-owned run can emit an expected run_timeout while handing off to
|
|
650
|
+
// its continuation. AssistantChat retries these transitions automatically;
|
|
651
|
+
// only locally timed-out or ultimately unrecoverable runs should create a
|
|
652
|
+
// Sentry issue. Keep this scoped to the explicit chat tags so real provider
|
|
653
|
+
// and network timeout errors remain visible.
|
|
654
|
+
if (
|
|
655
|
+
event.tags?.context === "agent-native-chat" &&
|
|
656
|
+
event.tags?.errorCode === "run_timeout" &&
|
|
657
|
+
event.tags?.reconnectTimedOut === "false" &&
|
|
658
|
+
event.tags?.reconnectTerminalReason === "run_timeout"
|
|
659
|
+
) {
|
|
660
|
+
return true;
|
|
661
|
+
}
|
|
649
662
|
// rrweb 2.1.0 replays recorded media interactions with `void media.play()`.
|
|
650
663
|
// Browsers may reject that promise when the recorded media was unmuted and
|
|
651
664
|
// no user activation is still active, which becomes a source-less unhandled
|
|
@@ -447,6 +447,11 @@ export function McpIntegrationDialog({
|
|
|
447
447
|
<div className="min-h-0 flex-1 overflow-y-auto px-7 py-5">
|
|
448
448
|
<div className="space-y-3">
|
|
449
449
|
{renderScopeSelector()}
|
|
450
|
+
{selected?.setupNoteKey && (
|
|
451
|
+
<div className="rounded-md border border-amber-500/20 bg-amber-500/5 px-3 py-2 text-[11px] leading-relaxed text-amber-700 dark:text-amber-300">
|
|
452
|
+
{t(selected.setupNoteKey)}
|
|
453
|
+
</div>
|
|
454
|
+
)}
|
|
450
455
|
{selected?.authMode === "oauth" && (
|
|
451
456
|
<div className="rounded-md border border-blue-500/20 bg-blue-500/5 px-3 py-2 text-[11px] leading-relaxed text-blue-700 dark:text-blue-300">
|
|
452
457
|
{t("mcpIntegrations.oauthNotice")}
|
|
@@ -21,6 +21,7 @@ export interface DefaultMcpIntegration {
|
|
|
21
21
|
url: string;
|
|
22
22
|
authMode: McpIntegrationAuthMode;
|
|
23
23
|
docsUrl?: string;
|
|
24
|
+
setupNoteKey?: string;
|
|
24
25
|
headerPlaceholder?: string;
|
|
25
26
|
keywords: string[];
|
|
26
27
|
}
|
|
@@ -99,6 +100,22 @@ export const DEFAULT_MCP_INTEGRATIONS: DefaultMcpIntegration[] = [
|
|
|
99
100
|
docsUrl: "https://www.builder.io/c/docs/fusion-connect-to-linear",
|
|
100
101
|
keywords: ["issues", "tickets", "planning", "project management"],
|
|
101
102
|
},
|
|
103
|
+
{
|
|
104
|
+
id: "atlassian",
|
|
105
|
+
name: "Atlassian",
|
|
106
|
+
provider: "atlassian",
|
|
107
|
+
description: "Read and write Jira issues and Confluence content.",
|
|
108
|
+
descriptionKey: "mcpIntegrations.catalog.atlassian.description",
|
|
109
|
+
useCase:
|
|
110
|
+
"project management, issue tracking, documentation, team collaboration",
|
|
111
|
+
useCaseKey: "mcpIntegrations.catalog.atlassian.useCase",
|
|
112
|
+
url: "https://mcp.atlassian.com/v1/mcp/authv2",
|
|
113
|
+
authMode: "oauth",
|
|
114
|
+
docsUrl:
|
|
115
|
+
"https://developer.atlassian.com/cloud/rovo-mcp/guides/getting-started/",
|
|
116
|
+
setupNoteKey: "mcpIntegrations.catalog.atlassian.setupNote",
|
|
117
|
+
keywords: ["atlassian", "jira", "confluence", "issues", "tickets"],
|
|
118
|
+
},
|
|
102
119
|
{
|
|
103
120
|
id: "supabase",
|
|
104
121
|
name: "Supabase",
|
|
@@ -39,17 +39,19 @@ function trimEndpointPath(pathname: string, suffix: string): string | null {
|
|
|
39
39
|
return normalized.slice(0, -suffix.length) || "/";
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
const MCP_PUBLIC_PATH = "/mcp";
|
|
43
|
+
const MCP_LEGACY_PATH = "/_agent-native/mcp";
|
|
44
|
+
|
|
42
45
|
export function getMcpUrl(
|
|
43
46
|
url: string,
|
|
44
47
|
options: AgentEndpointOptions = {},
|
|
45
48
|
): string {
|
|
46
49
|
const parsed = appUrl(url, options);
|
|
47
|
-
const trimmed =
|
|
48
|
-
|
|
49
|
-
parsed.pathname
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
50
|
+
const trimmed =
|
|
51
|
+
trimEndpointPath(parsed.pathname, MCP_LEGACY_PATH) ??
|
|
52
|
+
trimEndpointPath(parsed.pathname, MCP_PUBLIC_PATH);
|
|
53
|
+
const basePath = (trimmed ?? parsed.pathname).replace(/\/$/, "");
|
|
54
|
+
parsed.pathname = `${basePath}${MCP_PUBLIC_PATH}`;
|
|
53
55
|
parsed.search = "";
|
|
54
56
|
parsed.hash = "";
|
|
55
57
|
return parsed.toString();
|
|
@@ -620,6 +620,13 @@ const messages = {
|
|
|
620
620
|
description: "Manage payments, subscriptions, and customers.",
|
|
621
621
|
useCase: "Payments, subscriptions, invoicing, customer management",
|
|
622
622
|
},
|
|
623
|
+
atlassian: {
|
|
624
|
+
description: "Read and write Jira issues and Confluence content.",
|
|
625
|
+
useCase:
|
|
626
|
+
"Project management, issue tracking, documentation, team collaboration",
|
|
627
|
+
setupNote:
|
|
628
|
+
"Your Atlassian organization admin may need to allow this app's domain and enable the required Rovo MCP permissions before OAuth can complete.",
|
|
629
|
+
},
|
|
623
630
|
},
|
|
624
631
|
auth: {
|
|
625
632
|
none: "No auth",
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-local fallback task tracker for `ask_app` (and the legacy
|
|
3
|
+
* `ask-agent` meta-tool) for the one case where no app origin is derivable
|
|
4
|
+
* from the MCP request — `selfA2AEndpointUrl(requestMeta)` returns null in
|
|
5
|
+
* `builtin-tools.ts`. Without an origin there is no `/_agent-native/a2a`
|
|
6
|
+
* endpoint to submit a durable task to, so `config.askAgent(message)` used
|
|
7
|
+
* to be awaited unbounded, which can hold a hosted MCP request open past a
|
|
8
|
+
* serverless gateway's inactivity timeout. This gives that path the same
|
|
9
|
+
* bounded "return a taskId, keep working in the background" contract as the
|
|
10
|
+
* durable A2A path, without needing a database.
|
|
11
|
+
*
|
|
12
|
+
* Entries are **process-local, not durable** — they live only in this
|
|
13
|
+
* server instance's memory and are lost on restart or if a different
|
|
14
|
+
* instance handles the poll. That is an acceptable trade-off here: this
|
|
15
|
+
* fallback only exists because no app origin was derivable in the first
|
|
16
|
+
* place, so there was never a reachable endpoint another instance could
|
|
17
|
+
* have polled anyway.
|
|
18
|
+
*
|
|
19
|
+
* Eviction is lazy (checked on each map access) instead of timer-based, so
|
|
20
|
+
* this stays serverless-safe — nothing keeps the process alive to sweep.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
type AskAppInlineTaskStatus = "working" | "completed" | "failed";
|
|
24
|
+
|
|
25
|
+
interface AskAppInlineTaskEntry {
|
|
26
|
+
status: AskAppInlineTaskStatus;
|
|
27
|
+
response?: string;
|
|
28
|
+
error?: string;
|
|
29
|
+
createdAt: number;
|
|
30
|
+
settledAt?: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface AskAppInlineTaskSnapshot {
|
|
34
|
+
taskId: string;
|
|
35
|
+
status: AskAppInlineTaskStatus;
|
|
36
|
+
response?: string;
|
|
37
|
+
error?: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const SETTLED_TASK_TTL_MS = 10 * 60_000;
|
|
41
|
+
const UNSETTLED_TASK_TTL_MS = 30 * 60_000;
|
|
42
|
+
|
|
43
|
+
const inlineTasks = new Map<string, AskAppInlineTaskEntry>();
|
|
44
|
+
|
|
45
|
+
function evictStaleInlineTasks(now: number): void {
|
|
46
|
+
for (const [taskId, entry] of inlineTasks) {
|
|
47
|
+
const ttlMs =
|
|
48
|
+
entry.settledAt != null ? SETTLED_TASK_TTL_MS : UNSETTLED_TASK_TTL_MS;
|
|
49
|
+
const anchor = entry.settledAt ?? entry.createdAt;
|
|
50
|
+
if (now - anchor > ttlMs) inlineTasks.delete(taskId);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function toSnapshot(
|
|
55
|
+
taskId: string,
|
|
56
|
+
entry: AskAppInlineTaskEntry,
|
|
57
|
+
): AskAppInlineTaskSnapshot {
|
|
58
|
+
return {
|
|
59
|
+
taskId,
|
|
60
|
+
status: entry.status,
|
|
61
|
+
...(entry.response !== undefined ? { response: entry.response } : {}),
|
|
62
|
+
...(entry.error !== undefined ? { error: entry.error } : {}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Start `askAgent(message)` under a fresh process-local taskId and wait up
|
|
68
|
+
* to `maxWaitMs` for it to settle. The map entry is written synchronously
|
|
69
|
+
* before the async work starts, so a poll racing this call can never see a
|
|
70
|
+
* missing taskId. Returns the settled snapshot when it finishes in time, or
|
|
71
|
+
* a `"working"` snapshot once `maxWaitMs` elapses — the caller can hand that
|
|
72
|
+
* taskId back to `getAskAppInlineTask` later to pick up the final result.
|
|
73
|
+
*/
|
|
74
|
+
export async function startAskAppInlineTask(
|
|
75
|
+
askAgent: (message: string) => Promise<string>,
|
|
76
|
+
message: string,
|
|
77
|
+
maxWaitMs: number,
|
|
78
|
+
): Promise<AskAppInlineTaskSnapshot> {
|
|
79
|
+
const now = Date.now();
|
|
80
|
+
evictStaleInlineTasks(now);
|
|
81
|
+
|
|
82
|
+
const taskId = globalThis.crypto.randomUUID();
|
|
83
|
+
const entry: AskAppInlineTaskEntry = { status: "working", createdAt: now };
|
|
84
|
+
inlineTasks.set(taskId, entry);
|
|
85
|
+
|
|
86
|
+
const settled = askAgent(message).then(
|
|
87
|
+
(response) => {
|
|
88
|
+
entry.status = "completed";
|
|
89
|
+
entry.response = response;
|
|
90
|
+
entry.settledAt = Date.now();
|
|
91
|
+
},
|
|
92
|
+
(err) => {
|
|
93
|
+
entry.status = "failed";
|
|
94
|
+
entry.error =
|
|
95
|
+
err instanceof Error
|
|
96
|
+
? err.message
|
|
97
|
+
: String(err ?? "ask_app task failed.");
|
|
98
|
+
entry.settledAt = Date.now();
|
|
99
|
+
},
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
if (maxWaitMs > 0) {
|
|
103
|
+
await Promise.race([
|
|
104
|
+
settled,
|
|
105
|
+
new Promise<void>((resolve) => setTimeout(resolve, maxWaitMs)),
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return toSnapshot(taskId, entry);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Look up a process-local inline task started by `startAskAppInlineTask`.
|
|
114
|
+
* Returns `undefined` when the id is unknown — never started here, already
|
|
115
|
+
* evicted, or (in a multi-instance deployment) started on a different
|
|
116
|
+
* instance. Callers should fall through to the normal A2A HTTP status path
|
|
117
|
+
* in that case.
|
|
118
|
+
*/
|
|
119
|
+
export function getAskAppInlineTask(
|
|
120
|
+
taskId: string,
|
|
121
|
+
): AskAppInlineTaskSnapshot | undefined {
|
|
122
|
+
evictStaleInlineTasks(Date.now());
|
|
123
|
+
const entry = inlineTasks.get(taskId);
|
|
124
|
+
return entry ? toSnapshot(taskId, entry) : undefined;
|
|
125
|
+
}
|
|
@@ -204,6 +204,35 @@ export interface MCPRequestMeta {
|
|
|
204
204
|
inlineMcpApps?: boolean;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
const ASK_AGENT_DEFAULT_INLINE_WAIT_MS = 20_000;
|
|
208
|
+
const ASK_AGENT_MAX_INLINE_WAIT_MS = 25_000;
|
|
209
|
+
|
|
210
|
+
function boundedAskAgentWaitMs(raw: unknown): number {
|
|
211
|
+
if (raw == null || raw === "") return ASK_AGENT_DEFAULT_INLINE_WAIT_MS;
|
|
212
|
+
const parsed = Number(raw);
|
|
213
|
+
if (!Number.isFinite(parsed)) return ASK_AGENT_DEFAULT_INLINE_WAIT_MS;
|
|
214
|
+
return Math.max(
|
|
215
|
+
0,
|
|
216
|
+
Math.min(ASK_AGENT_MAX_INLINE_WAIT_MS, Math.trunc(parsed)),
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function isExplicitAsyncAskAgent(raw: unknown): boolean {
|
|
221
|
+
return raw === true || raw === "true" || raw === 1 || raw === "1";
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function formatAskAgentResult(result: unknown): string {
|
|
225
|
+
if (typeof result === "string") return result;
|
|
226
|
+
if (result && typeof result === "object") {
|
|
227
|
+
const record = result as Record<string, unknown>;
|
|
228
|
+
if (record.status === "completed" && typeof record.response === "string") {
|
|
229
|
+
return record.response;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const serialized = JSON.stringify(result);
|
|
233
|
+
return serialized === undefined ? String(result) : serialized;
|
|
234
|
+
}
|
|
235
|
+
|
|
207
236
|
/**
|
|
208
237
|
* Deploy-toggleable kill switch for inline MCP App embeds — the `ui://`
|
|
209
238
|
* resource reference hosts like Codex / Cursor / ChatGPT render in a sandboxed
|
|
@@ -1618,7 +1647,9 @@ export async function createMCPServerForRequest(
|
|
|
1618
1647
|
description:
|
|
1619
1648
|
"Send a natural-language message to the app's AI agent and get a response. " +
|
|
1620
1649
|
"Use this for complex, multi-step tasks that require the agent's reasoning " +
|
|
1621
|
-
"and full context about the app."
|
|
1650
|
+
"and full context about the app. On hosted MCP, the server waits briefly " +
|
|
1651
|
+
"for fast completions and returns a taskId plus ask_app_status polling " +
|
|
1652
|
+
"instructions when the agent needs longer.",
|
|
1622
1653
|
inputSchema: {
|
|
1623
1654
|
type: "object" as const,
|
|
1624
1655
|
properties: {
|
|
@@ -1626,6 +1657,16 @@ export async function createMCPServerForRequest(
|
|
|
1626
1657
|
type: "string",
|
|
1627
1658
|
description: "The message to send to the agent",
|
|
1628
1659
|
},
|
|
1660
|
+
async: {
|
|
1661
|
+
type: "boolean",
|
|
1662
|
+
description:
|
|
1663
|
+
"Start a durable task and return immediately with a taskId.",
|
|
1664
|
+
},
|
|
1665
|
+
maxWaitMs: {
|
|
1666
|
+
type: "number",
|
|
1667
|
+
description:
|
|
1668
|
+
"Maximum inline wait in milliseconds. Hosted MCP clamps this to 25000ms.",
|
|
1669
|
+
},
|
|
1629
1670
|
},
|
|
1630
1671
|
required: ["message"],
|
|
1631
1672
|
},
|
|
@@ -1668,8 +1709,29 @@ export async function createMCPServerForRequest(
|
|
|
1668
1709
|
}
|
|
1669
1710
|
const message = args?.message ?? "";
|
|
1670
1711
|
try {
|
|
1671
|
-
|
|
1672
|
-
|
|
1712
|
+
// Keep the legacy meta-tool compatible for local callers, but use
|
|
1713
|
+
// the same durable A2A submission path as ask_app whenever this is
|
|
1714
|
+
// an HTTP/hosted request. A full agent loop must never be held open
|
|
1715
|
+
// for minutes behind one MCP tools/call request. Always route
|
|
1716
|
+
// through ask_app's own run() — even with no request origin, since
|
|
1717
|
+
// it now bounds that case too via its process-local inline-task
|
|
1718
|
+
// fallback (ask-app-inline-tasks.ts) instead of us awaiting
|
|
1719
|
+
// config.askAgent() here unbounded. This is the shared helper: no
|
|
1720
|
+
// second task map to keep in sync.
|
|
1721
|
+
const hostedAskApp = getBuiltinCrossAppTools(
|
|
1722
|
+
config,
|
|
1723
|
+
requestMeta,
|
|
1724
|
+
).ask_app;
|
|
1725
|
+
const result = await hostedAskApp.run({
|
|
1726
|
+
message,
|
|
1727
|
+
async: isExplicitAsyncAskAgent(args?.async),
|
|
1728
|
+
maxWaitMs: isExplicitAsyncAskAgent(args?.async)
|
|
1729
|
+
? 0
|
|
1730
|
+
: boundedAskAgentWaitMs(args?.maxWaitMs),
|
|
1731
|
+
});
|
|
1732
|
+
return {
|
|
1733
|
+
content: [{ type: "text", text: formatAskAgentResult(result) }],
|
|
1734
|
+
};
|
|
1673
1735
|
} catch (err: any) {
|
|
1674
1736
|
return {
|
|
1675
1737
|
content: [{ type: "text", text: `Error: ${err.message}` }],
|