@agent-native/core 0.99.2 → 0.100.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 +21 -0
- package/corpus/core/docs/content/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/agent-surfaces.mdx +43 -0
- package/corpus/core/docs/content/external-agents.mdx +11 -0
- package/corpus/core/docs/content/locales/ar-SA/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/ar-SA/agent-surfaces.mdx +30 -0
- package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +9 -0
- package/corpus/core/docs/content/locales/de-DE/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/de-DE/agent-surfaces.mdx +34 -0
- package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +10 -0
- package/corpus/core/docs/content/locales/es-ES/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/es-ES/agent-surfaces.mdx +34 -0
- package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +10 -0
- package/corpus/core/docs/content/locales/fr-FR/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/fr-FR/agent-surfaces.mdx +34 -0
- package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +11 -0
- package/corpus/core/docs/content/locales/hi-IN/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/hi-IN/agent-surfaces.mdx +31 -0
- package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +9 -0
- package/corpus/core/docs/content/locales/ja-JP/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/ja-JP/agent-surfaces.mdx +32 -0
- package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +10 -0
- package/corpus/core/docs/content/locales/ko-KR/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/ko-KR/agent-surfaces.mdx +32 -0
- package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +9 -0
- package/corpus/core/docs/content/locales/pt-BR/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/pt-BR/agent-surfaces.mdx +33 -0
- package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +10 -0
- package/corpus/core/docs/content/locales/zh-CN/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/zh-CN/agent-surfaces.mdx +29 -0
- package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +8 -0
- package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.mdx +42 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.mdx +29 -0
- package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +8 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/context-xray/actions/context-evict.ts +11 -0
- package/corpus/core/src/agent/context-xray/actions/context-pin.ts +11 -0
- package/corpus/core/src/agent/context-xray/actions/context-preview-get.ts +134 -0
- package/corpus/core/src/agent/context-xray/actions/context-restore.ts +11 -0
- package/corpus/core/src/agent/context-xray/actions/errors.ts +20 -0
- package/corpus/core/src/agent/context-xray/manifest.ts +106 -7
- package/corpus/core/src/agent/engine/context-directives-transform.ts +5 -1
- package/corpus/core/src/agent/production-agent.ts +100 -38
- package/corpus/core/src/agent/run-loop-with-resume.ts +7 -2
- package/corpus/core/src/client/AgentPanel.tsx +35 -8
- package/corpus/core/src/client/agent-page/AgentContextTab.tsx +501 -0
- package/corpus/core/src/client/agent-page/AgentJobsTab.tsx +370 -0
- package/corpus/core/src/client/agent-page/AgentTabsPage.tsx +1084 -0
- package/corpus/core/src/client/agent-page/types.ts +18 -0
- package/corpus/core/src/client/agent-page/use-jobs.ts +150 -0
- package/corpus/core/src/client/context-xray/ContextMeter.tsx +22 -5
- package/corpus/core/src/client/context-xray/ContextTreemap.tsx +16 -1
- package/corpus/core/src/client/context-xray/ContextXRayPanel.tsx +168 -3
- package/corpus/core/src/client/context-xray/format.ts +6 -0
- package/corpus/core/src/client/index.ts +6 -0
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +51 -23
- package/corpus/core/src/client/settings/AutomationsSection.tsx +407 -387
- package/corpus/core/src/jobs/actions/list-recurring-jobs.ts +105 -0
- package/corpus/core/src/jobs/actions/manage-recurring-job.ts +85 -0
- package/corpus/core/src/jobs/tools.ts +1 -1
- package/corpus/core/src/localization/default-messages.ts +110 -0
- package/corpus/core/src/mcp/build-server.ts +1 -0
- package/corpus/core/src/mcp/connect-route.ts +62 -65
- package/corpus/core/src/server/action-discovery.ts +23 -0
- package/corpus/core/src/server/agent-chat/prompt-resources.ts +174 -2
- package/corpus/core/src/server/agent-chat-plugin.ts +175 -2
- package/corpus/core/src/server/auth.ts +1 -7
- package/corpus/core/src/server/google-oauth.ts +1 -7
- package/corpus/core/src/server/workspace-oauth.ts +31 -0
- package/corpus/core/src/shared/context-xray.ts +84 -1
- package/corpus/core/src/shared/mcp-connect-content.ts +130 -0
- package/corpus/core/src/templates/default/app/routes/_index.tsx +11 -0
- package/corpus/core/src/templates/default/app/routes/agent.tsx +33 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +59 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +25 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +7 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +9 -0
- package/corpus/core/src/triggers/actions/list-automations.ts +99 -0
- package/corpus/core/src/triggers/actions/manage-automation.ts +78 -0
- package/corpus/templates/analytics/actions/data-source-status.ts +33 -15
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +1 -1
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +149 -24
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +17 -0
- package/corpus/templates/analytics/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +8 -0
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +1 -0
- package/corpus/templates/analytics/app/i18n-data.ts +1 -0
- package/corpus/templates/analytics/app/routes/agent.tsx +5 -0
- package/corpus/templates/analytics/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-analytics-answers-can-use-built-in-first-party-event-data.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-chart-legends-can-filter-to-one-series-or-hide-a-series-on-h.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-13-gpt-5-6-luna-answers-now-recover-normally-instead-of-showing.md +6 -0
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -2
- package/corpus/templates/assets/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/assets/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/assets/app/routes/agent.tsx +5 -0
- package/corpus/templates/assets/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +4 -1
- package/corpus/templates/brain/app/lib/brain.ts +11 -0
- package/corpus/templates/brain/app/root.tsx +15 -1
- package/corpus/templates/brain/app/routes/agent.tsx +11 -0
- package/corpus/templates/brain/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -0
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/calendar/app/root.tsx +17 -1
- package/corpus/templates/calendar/app/routes/_app.agent.tsx +25 -0
- package/corpus/templates/calendar/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
- package/corpus/templates/chat/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/chat/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +7 -0
- package/corpus/templates/chat/app/hooks/use-navigation-state.ts +3 -0
- package/corpus/templates/chat/app/root.tsx +24 -2
- package/corpus/templates/chat/app/routes/agent.tsx +15 -0
- package/corpus/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +8 -0
- package/corpus/templates/clips/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +2 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/clips/app/root.tsx +7 -1
- package/corpus/templates/clips/app/routes/_app.agent.tsx +15 -0
- package/corpus/templates/clips/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/content/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +36 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/content/app/i18n-data.ts +44 -6
- package/corpus/templates/content/app/root.tsx +8 -0
- package/corpus/templates/content/app/routes/_app.agent.tsx +15 -0
- package/corpus/templates/content/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/design/app/i18n-data.ts +20 -0
- package/corpus/templates/design/app/root.tsx +7 -1
- package/corpus/templates/design/app/routes/agent.tsx +15 -0
- package/corpus/templates/design/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/dispatch/app/dispatch-extensions.tsx +10 -1
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +20 -0
- package/corpus/templates/dispatch/app/root.tsx +7 -2
- package/corpus/templates/dispatch/app/routes/agent.tsx +18 -0
- package/corpus/templates/dispatch/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +35 -0
- package/corpus/templates/forms/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/forms/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
- package/corpus/templates/forms/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/forms/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/forms/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/forms/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/forms/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/forms/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/forms/app/root.tsx +6 -1
- package/corpus/templates/forms/app/routes/_app.agent.tsx +15 -0
- package/corpus/templates/forms/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +14 -2
- package/corpus/templates/macros/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/macros/app/root.tsx +17 -2
- package/corpus/templates/macros/app/routes/agent.tsx +15 -0
- package/corpus/templates/macros/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +42 -0
- package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +6 -0
- package/corpus/templates/mail/app/routes/agent.tsx +15 -0
- package/corpus/templates/mail/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/plan/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/plan/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/plan/app/root.tsx +8 -0
- package/corpus/templates/plan/app/routes/agent.tsx +15 -0
- package/corpus/templates/plan/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/corpus/templates/slides/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -0
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/slides/app/root.tsx +10 -1
- package/corpus/templates/slides/app/routes/agent.tsx +15 -0
- package/corpus/templates/slides/changelog/2026-07-13-new-agent-page-see-and-manage-your-agent-s-context-files-con.md +6 -0
- package/dist/agent/context-xray/actions/context-evict.js +5 -2
- package/dist/agent/context-xray/actions/context-evict.js.map +1 -1
- package/dist/agent/context-xray/actions/context-pin.js +5 -2
- package/dist/agent/context-xray/actions/context-pin.js.map +1 -1
- package/dist/agent/context-xray/actions/context-preview-get.d.ts +17 -0
- package/dist/agent/context-xray/actions/context-preview-get.d.ts.map +1 -0
- package/dist/agent/context-xray/actions/context-preview-get.js +94 -0
- package/dist/agent/context-xray/actions/context-preview-get.js.map +1 -0
- package/dist/agent/context-xray/actions/context-restore.js +5 -2
- package/dist/agent/context-xray/actions/context-restore.js.map +1 -1
- package/dist/agent/context-xray/actions/errors.d.ts +3 -0
- package/dist/agent/context-xray/actions/errors.d.ts.map +1 -1
- package/dist/agent/context-xray/actions/errors.js +6 -0
- package/dist/agent/context-xray/actions/errors.js.map +1 -1
- package/dist/agent/context-xray/manifest.d.ts +18 -1
- package/dist/agent/context-xray/manifest.d.ts.map +1 -1
- package/dist/agent/context-xray/manifest.js +68 -6
- package/dist/agent/context-xray/manifest.js.map +1 -1
- package/dist/agent/engine/context-directives-transform.d.ts +2 -0
- package/dist/agent/engine/context-directives-transform.d.ts.map +1 -1
- package/dist/agent/engine/context-directives-transform.js +2 -1
- package/dist/agent/engine/context-directives-transform.js.map +1 -1
- package/dist/agent/production-agent.d.ts +15 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +74 -36
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
- package/dist/agent/run-loop-with-resume.js +6 -3
- package/dist/agent/run-loop-with-resume.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +5 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +9 -11
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/agent-page/AgentContextTab.d.ts +5 -0
- package/dist/client/agent-page/AgentContextTab.d.ts.map +1 -0
- package/dist/client/agent-page/AgentContextTab.js +202 -0
- package/dist/client/agent-page/AgentContextTab.js.map +1 -0
- package/dist/client/agent-page/AgentJobsTab.d.ts +3 -0
- package/dist/client/agent-page/AgentJobsTab.d.ts.map +1 -0
- package/dist/client/agent-page/AgentJobsTab.js +98 -0
- package/dist/client/agent-page/AgentJobsTab.js.map +1 -0
- package/dist/client/agent-page/AgentTabsPage.d.ts +20 -0
- package/dist/client/agent-page/AgentTabsPage.d.ts.map +1 -0
- package/dist/client/agent-page/AgentTabsPage.js +420 -0
- package/dist/client/agent-page/AgentTabsPage.js.map +1 -0
- package/dist/client/agent-page/types.d.ts +17 -0
- package/dist/client/agent-page/types.d.ts.map +1 -0
- package/dist/client/agent-page/types.js +9 -0
- package/dist/client/agent-page/types.js.map +1 -0
- package/dist/client/agent-page/use-jobs.d.ts +61 -0
- package/dist/client/agent-page/use-jobs.d.ts.map +1 -0
- package/dist/client/agent-page/use-jobs.js +71 -0
- package/dist/client/agent-page/use-jobs.js.map +1 -0
- package/dist/client/context-xray/ContextMeter.d.ts +3 -1
- package/dist/client/context-xray/ContextMeter.d.ts.map +1 -1
- package/dist/client/context-xray/ContextMeter.js +14 -5
- package/dist/client/context-xray/ContextMeter.js.map +1 -1
- package/dist/client/context-xray/ContextTreemap.d.ts +3 -2
- package/dist/client/context-xray/ContextTreemap.d.ts.map +1 -1
- package/dist/client/context-xray/ContextTreemap.js +9 -1
- package/dist/client/context-xray/ContextTreemap.js.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.js +95 -20
- package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
- package/dist/client/context-xray/format.d.ts.map +1 -1
- package/dist/client/context-xray/format.js +12 -0
- package/dist/client/context-xray/format.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts +9 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +26 -10
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/settings/AutomationsSection.d.ts +9 -0
- package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
- package/dist/client/settings/AutomationsSection.js +128 -147
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/jobs/actions/list-recurring-jobs.d.ts +21 -0
- package/dist/jobs/actions/list-recurring-jobs.d.ts.map +1 -0
- package/dist/jobs/actions/list-recurring-jobs.js +74 -0
- package/dist/jobs/actions/list-recurring-jobs.js.map +1 -0
- package/dist/jobs/actions/manage-recurring-job.d.ts +18 -0
- package/dist/jobs/actions/manage-recurring-job.d.ts.map +1 -0
- package/dist/jobs/actions/manage-recurring-job.js +68 -0
- package/dist/jobs/actions/manage-recurring-job.js.map +1 -0
- package/dist/jobs/tools.d.ts +13 -0
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +1 -1
- package/dist/jobs/tools.js.map +1 -1
- package/dist/localization/default-messages.d.ts +96 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +96 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +1 -0
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/connect-route.d.ts.map +1 -1
- package/dist/mcp/connect-route.js +44 -59
- package/dist/mcp/connect-route.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +23 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat/prompt-resources.d.ts +14 -0
- package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -1
- package/dist/server/agent-chat/prompt-resources.js +139 -2
- package/dist/server/agent-chat/prompt-resources.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +1 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +136 -3
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +1 -4
- package/dist/server/auth.js.map +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +1 -4
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/workspace-oauth.d.ts +11 -0
- package/dist/server/workspace-oauth.d.ts.map +1 -0
- package/dist/server/workspace-oauth.js +25 -0
- package/dist/server/workspace-oauth.js.map +1 -0
- package/dist/shared/context-xray.d.ts +45 -1
- package/dist/shared/context-xray.d.ts.map +1 -1
- package/dist/shared/context-xray.js +12 -0
- package/dist/shared/context-xray.js.map +1 -1
- package/dist/shared/mcp-connect-content.d.ts +37 -0
- package/dist/shared/mcp-connect-content.d.ts.map +1 -0
- package/dist/shared/mcp-connect-content.js +92 -0
- package/dist/shared/mcp-connect-content.js.map +1 -0
- package/dist/templates/default/app/routes/_index.tsx +11 -0
- package/dist/templates/default/app/routes/agent.tsx +33 -0
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
- package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +59 -0
- package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +25 -0
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +7 -0
- package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +9 -0
- package/dist/triggers/actions/list-automations.d.ts +24 -0
- package/dist/triggers/actions/list-automations.d.ts.map +1 -0
- package/dist/triggers/actions/list-automations.js +72 -0
- package/dist/triggers/actions/list-automations.js.map +1 -0
- package/dist/triggers/actions/manage-automation.d.ts +18 -0
- package/dist/triggers/actions/manage-automation.d.ts.map +1 -0
- package/dist/triggers/actions/manage-automation.js +60 -0
- package/dist/triggers/actions/manage-automation.js.map +1 -0
- package/docs/content/a2a-protocol.mdx +42 -0
- package/docs/content/agent-surfaces.mdx +43 -0
- package/docs/content/external-agents.mdx +11 -0
- package/docs/content/locales/ar-SA/a2a-protocol.mdx +42 -0
- package/docs/content/locales/ar-SA/agent-surfaces.mdx +30 -0
- package/docs/content/locales/ar-SA/external-agents.mdx +9 -0
- package/docs/content/locales/de-DE/a2a-protocol.mdx +42 -0
- package/docs/content/locales/de-DE/agent-surfaces.mdx +34 -0
- package/docs/content/locales/de-DE/external-agents.mdx +10 -0
- package/docs/content/locales/es-ES/a2a-protocol.mdx +42 -0
- package/docs/content/locales/es-ES/agent-surfaces.mdx +34 -0
- package/docs/content/locales/es-ES/external-agents.mdx +10 -0
- package/docs/content/locales/fr-FR/a2a-protocol.mdx +42 -0
- package/docs/content/locales/fr-FR/agent-surfaces.mdx +34 -0
- package/docs/content/locales/fr-FR/external-agents.mdx +11 -0
- package/docs/content/locales/hi-IN/a2a-protocol.mdx +42 -0
- package/docs/content/locales/hi-IN/agent-surfaces.mdx +31 -0
- package/docs/content/locales/hi-IN/external-agents.mdx +9 -0
- package/docs/content/locales/ja-JP/a2a-protocol.mdx +42 -0
- package/docs/content/locales/ja-JP/agent-surfaces.mdx +32 -0
- package/docs/content/locales/ja-JP/external-agents.mdx +10 -0
- package/docs/content/locales/ko-KR/a2a-protocol.mdx +42 -0
- package/docs/content/locales/ko-KR/agent-surfaces.mdx +32 -0
- package/docs/content/locales/ko-KR/external-agents.mdx +9 -0
- package/docs/content/locales/pt-BR/a2a-protocol.mdx +42 -0
- package/docs/content/locales/pt-BR/agent-surfaces.mdx +33 -0
- package/docs/content/locales/pt-BR/external-agents.mdx +10 -0
- package/docs/content/locales/zh-CN/a2a-protocol.mdx +42 -0
- package/docs/content/locales/zh-CN/agent-surfaces.mdx +29 -0
- package/docs/content/locales/zh-CN/external-agents.mdx +8 -0
- package/docs/content/locales/zh-TW/a2a-protocol.mdx +42 -0
- package/docs/content/locales/zh-TW/agent-surfaces.mdx +29 -0
- package/docs/content/locales/zh-TW/external-agents.mdx +8 -0
- package/package.json +1 -1
- package/src/templates/default/app/routes/_index.tsx +11 -0
- package/src/templates/default/app/routes/agent.tsx +33 -0
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
- package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +59 -0
- package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +25 -0
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +7 -0
- package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +9 -0
package/corpus/README.md
CHANGED
package/corpus/core/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @agent-native/core
|
|
2
2
|
|
|
3
|
+
## 0.100.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8e6f022: Add an Agent Jobs page tab for recurring jobs and personal automations, with scoped status views and management controls.
|
|
8
|
+
- 8e6f022: Add the full-page Agent surface with scoped Context, Files, Connections, Jobs, and Access tabs, plus shared MCP connection guidance.
|
|
9
|
+
- 8e6f022: Expose system-prompt sections in Context X-Ray and add a no-thread context preview with provenance, governance, and token breakdowns.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 8e6f022: Document the full-page Agent surface, its tab responsibilities, and the in-app external-client Access flow.
|
|
14
|
+
- 8e6f022: Align fullscreen chat thread width with the composer width.
|
|
15
|
+
- 8e6f022: Preserve the registered root Google OAuth callback for workspace apps when deploy-time workspace metadata is available but a runtime relay flag is missing.
|
|
16
|
+
- 8e6f022: Recover reasoning-only model completions before app-specific final-answer guards run, and keep guards anchored to the original user request across internal continuations.
|
|
17
|
+
|
|
18
|
+
## 0.99.3
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 03cd25c: Document the `agent-native invoke` CLI usage and flags on the A2A protocol docs page, across all locales.
|
|
23
|
+
|
|
3
24
|
## 0.99.2
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -392,6 +392,48 @@ app environment and pass the caller identity (`userEmail`) so outbound calls are
|
|
|
392
392
|
signed as JWT bearer tokens. Use `apiKeyEnv` only for legacy external peers that
|
|
393
393
|
expect a static bearer token. Use local actions instead of invoking yourself.
|
|
394
394
|
|
|
395
|
+
## CLI: agent-native invoke {#cli-invoke}
|
|
396
|
+
|
|
397
|
+
`agent-native invoke` is a thin CLI wrapper over the same resolve-and-call primitive as `agentNative.invoke()`. Use it to trigger an app's agent from a shell script, a CI job, a cron entry, or any external system that can shell out — the CLI equivalent of posting to `/_agent-native/a2a` by hand.
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
agent-native invoke <app-or-url> "prompt" [options]
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
# Resolve "analytics" in the workspace registry and wait for the reply
|
|
405
|
+
agent-native invoke analytics "Summarize signups by source this month"
|
|
406
|
+
|
|
407
|
+
# Call a deployed app directly by URL, reading the bearer token from env
|
|
408
|
+
agent-native invoke https://analytics.example.com "How many signups last week?" \
|
|
409
|
+
--api-key-env ANALYTICS_A2A_KEY
|
|
410
|
+
|
|
411
|
+
# Force one blocking message/send instead of the default async+poll
|
|
412
|
+
agent-native invoke analytics "Quick lookup" --sync
|
|
413
|
+
|
|
414
|
+
# Machine-readable output for scripting
|
|
415
|
+
agent-native invoke analytics "Summarize signups" --json
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
| Option | Description |
|
|
419
|
+
| ------------------------- | ------------------------------------------------------------------------- |
|
|
420
|
+
| `--agent <id\|name\|url>` | Target agent (alias for the positional `<app-or-url>`) |
|
|
421
|
+
| `--message <text>` | Prompt (alias for the positional `"prompt"`) |
|
|
422
|
+
| `--api-key-env <name>` | Read the bearer token from an environment variable |
|
|
423
|
+
| `--api-key <token>` | Bearer token value, passed inline |
|
|
424
|
+
| `--context-id <id>` | A2A `contextId`, to continue an existing task's conversation |
|
|
425
|
+
| `--self-app-id <id>` | Current app id, used for self-call prevention |
|
|
426
|
+
| `--self-url <url>` | Current app URL, used for self-call prevention |
|
|
427
|
+
| `--timeout-ms <n>` | Async polling timeout |
|
|
428
|
+
| `--poll-interval-ms <n>` | Async polling interval |
|
|
429
|
+
| `--sync` | Use one blocking `message/send` request instead of the async+poll default |
|
|
430
|
+
| `--no-hint` | Send the prompt as-is, without the cross-app invocation hint |
|
|
431
|
+
| `--json` | Print target metadata and response text as JSON |
|
|
432
|
+
|
|
433
|
+
Like `callAgent()`, the CLI defaults to async + poll (`invokeAgent` → `callAgent` under the hood), which is the safe choice against hosted/serverless targets — see [Serverless webhook and gateway timeouts](#json-rpc-methods) above. Pass `--sync` only when you know the target isn't behind a gateway with a short execution limit.
|
|
434
|
+
|
|
435
|
+
The target resolves the same way as `agentNative.invoke()`: by workspace app id, by app name, or by a full URL — so the same command works against a sibling app in a multi-app workspace or an arbitrary A2A peer elsewhere.
|
|
436
|
+
|
|
395
437
|
## Task lifecycle {#task-lifecycle}
|
|
396
438
|
|
|
397
439
|
Each message creates a task that moves through these states:
|
|
@@ -29,6 +29,49 @@ start in chat, appear as a native table or chart, become a durable page in the
|
|
|
29
29
|
app, and still run from jobs, scripts, MCP, or A2A without changing the operation
|
|
30
30
|
the agent calls.
|
|
31
31
|
|
|
32
|
+
## Full-page Agent workspace {#agent-page}
|
|
33
|
+
|
|
34
|
+
When a full application needs a durable place to inspect and configure its
|
|
35
|
+
agent, mount `AgentTabsPage` at `/agent`. Current templates pair that route
|
|
36
|
+
with an app-navigation entry and pass `agentPageHref="/agent"` to
|
|
37
|
+
`AgentSidebar`; the sidebar's Resources and Settings modes can then link to the
|
|
38
|
+
full page without duplicating those flows.
|
|
39
|
+
|
|
40
|
+
```tsx filename="app/routes/agent.tsx"
|
|
41
|
+
import { AgentTabsPage } from "@agent-native/core/client";
|
|
42
|
+
|
|
43
|
+
export default function AgentRoute() {
|
|
44
|
+
return <AgentTabsPage />;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The shared page currently provides five tabs:
|
|
49
|
+
|
|
50
|
+
- **Context** shows a scope preview, token budget, ordered system sections
|
|
51
|
+
grouped by provenance, governance, and source, a list/treemap view, and the
|
|
52
|
+
latest live-thread snapshot. It is a current snapshot, not per-iteration
|
|
53
|
+
provenance history.
|
|
54
|
+
- **Files** re-hosts the existing `ResourcesPanel` for personal or
|
|
55
|
+
organization resources.
|
|
56
|
+
- **Connections** re-hosts MCP server management and the A2A remote-agent list:
|
|
57
|
+
what this app's agent can call.
|
|
58
|
+
- **Jobs** shows scoped recurring jobs and automations with the existing
|
|
59
|
+
pause/resume, details, and delete flows. Automations are personal-only today.
|
|
60
|
+
- **Access** shows the app MCP URL, an A2A agent card when available, and shared
|
|
61
|
+
setup guides for Claude, ChatGPT, Cursor, Claude Code, Codex, and other
|
|
62
|
+
clients. It links to `/mcp/connect` for the full connect flow and token
|
|
63
|
+
fallback.
|
|
64
|
+
|
|
65
|
+
The page-level **Personal / Organization** toggle supplies scope to the tabs.
|
|
66
|
+
Members can inspect organization data while organization management remains
|
|
67
|
+
restricted to owners/admins where the hosted component enforces that boundary.
|
|
68
|
+
The design goal is inspectable, attributable, governable context, with
|
|
69
|
+
capability separated from access: Connections describes what the app can call;
|
|
70
|
+
Access describes how external clients connect to it. The page is a thin shell
|
|
71
|
+
over existing components, actions, and access checks—not a new admin console.
|
|
72
|
+
Grants, scope editing, revocation UI, and per-iteration provenance history are
|
|
73
|
+
not provided by this page yet.
|
|
74
|
+
|
|
32
75
|
<Diagram id="doc-block-hvdxgh" title="The surface spectrum" summary={"One action surface, four product shapes — each adds UI without changing the operation underneath."}>
|
|
33
76
|
|
|
34
77
|
```html
|
|
@@ -118,6 +118,17 @@ Every hosted app also has a helper page at
|
|
|
118
118
|
`https://<app>/mcp/connect` with the copyable URL and
|
|
119
119
|
host-specific tabs for Claude, ChatGPT, Cursor, Claude Code, Codex, and Other.
|
|
120
120
|
|
|
121
|
+
### The in-app Access tab {#access-tab}
|
|
122
|
+
|
|
123
|
+
Apps that mount `AgentTabsPage` also expose this connection flow in the page's
|
|
124
|
+
**Access** tab. It shows the app's MCP URL, an A2A agent card when available,
|
|
125
|
+
and the same client setup instructions used by the full connect page. Use it as
|
|
126
|
+
the in-app starting point for connecting Claude, ChatGPT, Cursor, Claude Code,
|
|
127
|
+
Codex, or another MCP client; the tab links to `/mcp/connect` for the full flow
|
|
128
|
+
and static-token fallback. This is connection setup UI, not a general access
|
|
129
|
+
control console: grants, scope editing, and revocation management are not
|
|
130
|
+
implemented in the tab yet.
|
|
131
|
+
|
|
121
132
|
### Claude and ChatGPT OAuth {#oauth}
|
|
122
133
|
|
|
123
134
|
Claude / Claude Desktop: add a custom connector, paste the MCP URL, click
|
|
@@ -384,6 +384,48 @@ console.log(`Called ${result.target.name}: ${result.responseText}`);
|
|
|
384
384
|
تم التوقيع عليها كرموز حاملة JWT. استخدم `apiKeyEnv` فقط للأقران الخارجيين القدامى الذين
|
|
385
385
|
توقع رمزًا مميزًا لحامل ثابت. استخدم actions المحلي بدلاً من استدعاء نفسك.
|
|
386
386
|
|
|
387
|
+
## واجهة سطر الأوامر: agent-native invoke {#cli-invoke}
|
|
388
|
+
|
|
389
|
+
`agent-native invoke` عبارة عن غلاف رفيع لواجهة سطر الأوامر فوق نفس بدائية الحل والاستدعاء التي تستخدمها `agentNative.invoke()`. استخدمه لتشغيل وكيل أحد التطبيقات من نص برمجي في shell، أو مهمة CI، أو إدخال cron، أو أي نظام خارجي يمكنه تنفيذ أوامر shell — وهو المكافئ عبر سطر الأوامر لإرسال طلب POST يدويًا إلى `/_agent-native/a2a`.
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
agent-native invoke <app-or-url> "prompt" [options]
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# حلّ "analytics" في سجل مساحة العمل وانتظر الرد
|
|
397
|
+
agent-native invoke analytics "Summarize signups by source this month"
|
|
398
|
+
|
|
399
|
+
# استدعِ تطبيقًا منشورًا مباشرةً عبر عنوان URL، مع قراءة رمز الحامل من متغير بيئة
|
|
400
|
+
agent-native invoke https://analytics.example.com "How many signups last week?" \
|
|
401
|
+
--api-key-env ANALYTICS_A2A_KEY
|
|
402
|
+
|
|
403
|
+
# فرض طلب message/send حاجز واحد بدلاً من الوضع الافتراضي async+poll
|
|
404
|
+
agent-native invoke analytics "Quick lookup" --sync
|
|
405
|
+
|
|
406
|
+
# إخراج قابل للقراءة الآلية للبرمجة النصية
|
|
407
|
+
agent-native invoke analytics "Summarize signups" --json
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
| Option | الوصف |
|
|
411
|
+
| ------------------------- | ------------------------------------------------------------------------ |
|
|
412
|
+
| `--agent <id\|name\|url>` | الوكيل المستهدف (اسم بديل للوسيطة الموضعية `<app-or-url>`) |
|
|
413
|
+
| `--message <text>` | الطلب النصي (اسم بديل للوسيطة الموضعية `"prompt"`) |
|
|
414
|
+
| `--api-key-env <name>` | قراءة رمز الحامل (bearer token) من متغير بيئة |
|
|
415
|
+
| `--api-key <token>` | قيمة رمز الحامل، مُمرَّرة مباشرة |
|
|
416
|
+
| `--context-id <id>` | `contextId` الخاص بـ A2A، لمتابعة محادثة مهمة موجودة بالفعل |
|
|
417
|
+
| `--self-app-id <id>` | معرف التطبيق الحالي، يُستخدم لمنع الاستدعاء الذاتي |
|
|
418
|
+
| `--self-url <url>` | عنوان URL للتطبيق الحالي، يُستخدم لمنع الاستدعاء الذاتي |
|
|
419
|
+
| `--timeout-ms <n>` | مهلة الاستطلاع (polling) غير المتزامن |
|
|
420
|
+
| `--poll-interval-ms <n>` | فاصل الاستطلاع غير المتزامن |
|
|
421
|
+
| `--sync` | استخدام طلب `message/send` حاجب واحد بدلاً من الوضع الافتراضي async+poll |
|
|
422
|
+
| `--no-hint` | إرسال الطلب النصي كما هو، دون تلميح الاستدعاء بين التطبيقات |
|
|
423
|
+
| `--json` | طباعة بيانات الهدف الوصفية ونص الاستجابة بصيغة JSON |
|
|
424
|
+
|
|
425
|
+
مثل `callAgent()`، تعتمد واجهة سطر الأوامر افتراضيًا على async + poll (`invokeAgent` ← `callAgent` تحت الغطاء)، وهو الخيار الآمن عند استهداف بيئات مستضافة/serverless — انظر [مهلات بوابة الويب هوك وبوابة العبور بلا خادم](#json-rpc-methods) أعلاه. استخدم `--sync` فقط عندما تكون متأكدًا أن الهدف ليس خلف بوابة ذات مهلة تنفيذ قصيرة.
|
|
426
|
+
|
|
427
|
+
يتم حل الهدف بنفس طريقة `agentNative.invoke()`: عبر معرف تطبيق مساحة العمل، أو اسم التطبيق، أو عنوان URL كامل — لذا يعمل نفس الأمر مع تطبيق شقيق في مساحة عمل متعددة التطبيقات أو مع أي نظير A2A تعسفي في مكان آخر.
|
|
428
|
+
|
|
387
429
|
## دورة حياة المهمة {#task-lifecycle}
|
|
388
430
|
|
|
389
431
|
تنشئ كل رسالة مهمة تنتقل عبر هذه الحالات:
|
|
@@ -6,6 +6,36 @@ search: "التطبيق الكامل للدردشة الغنية للوكيل م
|
|
|
6
6
|
|
|
7
7
|
# أسطح الوكيل
|
|
8
8
|
|
|
9
|
+
## مساحة عمل Agent الكاملة {#agent-page}
|
|
10
|
+
|
|
11
|
+
عندما يحتاج التطبيق الكامل إلى مكان دائم لفحص وكيله وتهيئته، اربط
|
|
12
|
+
`AgentTabsPage` بالمسار `/agent`. أضف المسار إلى تنقل التطبيق ومرر
|
|
13
|
+
`agentPageHref="/agent"` إلى `AgentSidebar` كي تصل وضعيّتا Resources وSettings
|
|
14
|
+
إلى الصفحة الكاملة من دون تكرار التدفقات.
|
|
15
|
+
|
|
16
|
+
```tsx filename="app/routes/agent.tsx"
|
|
17
|
+
import { AgentTabsPage } from "@agent-native/core/client";
|
|
18
|
+
|
|
19
|
+
export default function AgentRoute() {
|
|
20
|
+
return <AgentTabsPage />;
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
تحتوي الصفحة المشتركة حاليًا على خمس علامات تبويب:
|
|
25
|
+
|
|
26
|
+
- **Context** — معاينة النطاق، وميزانية الرموز، وأقسام النظام المرتبة مع مصدرها وحوكمتها، وعرض القائمة أو الخريطة، وأحدث لقطة للمحادثة الحية.
|
|
27
|
+
- **Files** — يعيد استخدام `ResourcesPanel` للموارد الشخصية أو الخاصة بالمؤسسة.
|
|
28
|
+
- **Connections** — إدارة خوادم MCP وقائمة الوكلاء البعيدين عبر A2A؛ أي ما يستطيع وكيل التطبيق استدعاءه.
|
|
29
|
+
- **Jobs** — الوظائف المتكررة والأتمتة مع تدفقات الإيقاف والاستئناف والتفاصيل والحذف الموجودة. الأتمتة شخصية اليوم.
|
|
30
|
+
- **Access** — عنوان MCP وبطاقة وكيل A2A عند توفرها وتعليمات إعداد العملاء الخارجيين؛ ويربط بالمسار `/mcp/connect` للتدفق الكامل والرمز الاحتياطي.
|
|
31
|
+
|
|
32
|
+
يحدد مفتاح **Personal / Organization** نطاق علامات التبويب. يمكن للأعضاء فحص
|
|
33
|
+
بيانات المؤسسة، بينما تظل إدارة المؤسسة مقصورة على المالكين/المسؤولين حيث يفرض
|
|
34
|
+
المكوّن المستضاف هذا الحد. الهدف هو جعل
|
|
35
|
+
السياق قابلًا للفحص ونسبته وحوكمته، مع فصل القدرة عما يتعلق بالوصول. الصفحة
|
|
36
|
+
غلاف رقيق للمكونات والإجراءات وفحوصات الوصول الموجودة، وليست لوحة إدارة جديدة.
|
|
37
|
+
ولا توفر حاليًا واجهة لإدارة المنح أو النطاقات أو الإلغاء، ولا سجل مصدر لكل تكرار.
|
|
38
|
+
|
|
9
39
|
Agent-Native قابل للتأليف بشكل متعمد. يمكنك استخدام الوكيل بدون الكثير من UI،
|
|
10
40
|
استخدم UI بدون وقت تشغيل الوكيل المضمن، أو استخدمهما معًا بشكل كامل
|
|
11
41
|
التطبيق.
|
|
@@ -117,6 +117,15 @@ https://<your-app>.agent-native.com/mcp
|
|
|
117
117
|
`https://<app>/mcp/connect` مع URL القابل للنسخ و
|
|
118
118
|
علامات التبويب الخاصة بالمضيف لـ Claude، وChatGPT، والمؤشر، وClaude Code، وCodex، وغيرها.
|
|
119
119
|
|
|
120
|
+
### علامة التبويب Access داخل التطبيق {#access-tab}
|
|
121
|
+
|
|
122
|
+
تعرض التطبيقات التي تستخدم `AgentTabsPage` تدفق الاتصال نفسه في علامة تبويب
|
|
123
|
+
**Access**. وهي تعرض عنوان MCP، وبطاقة وكيل A2A عند توفرها، وتعليمات إعداد
|
|
124
|
+
Claude وChatGPT وCursor وClaude Code وCodex والعملاء الآخرين. استخدمها كنقطة
|
|
125
|
+
البداية داخل التطبيق، ثم افتح `/mcp/connect` للتدفق الكامل والرمز الاحتياطي.
|
|
126
|
+
هذه واجهة لإعداد الاتصال وليست وحدة تحكم عامة بالوصول؛ لا توفر علامة التبويب
|
|
127
|
+
بعد واجهة لإدارة المنح أو النطاقات أو الإلغاء.
|
|
128
|
+
|
|
120
129
|
### Claude وChatGPT OAuth {#oauth}
|
|
121
130
|
|
|
122
131
|
Claude / Claude سطح المكتب: أضف موصلًا مخصصًا، والصق MCP URL، وانقر على
|
|
@@ -386,6 +386,48 @@ App-Umgebung und übergeben Sie die Anruferidentität (`userEmail`), sodass ausg
|
|
|
386
386
|
signiert als JWT-Inhaber-Token. Verwenden Sie `apiKeyEnv` nur für ältere externe Peers, die
|
|
387
387
|
erwarten Sie ein statisches Inhabertoken. Verwenden Sie lokales actions, anstatt sich selbst aufzurufen.
|
|
388
388
|
|
|
389
|
+
## CLI: agent-native invoke {#cli-invoke}
|
|
390
|
+
|
|
391
|
+
`agent-native invoke` ist ein schlanker CLI-Wrapper über dieselbe Resolve-and-Call-Primitive wie `agentNative.invoke()`. Verwenden Sie es, um den Agenten einer App aus einem Shell-Skript, einem CI-Job, einem Cron-Eintrag oder einem beliebigen externen System auszulösen, das Befehle ausführen kann — das CLI-Äquivalent zum manuellen Posten an `/_agent-native/a2a`.
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
agent-native invoke <app-or-url> "prompt" [options]
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# "analytics" in der Workspace-Registry auflösen und auf die Antwort warten
|
|
399
|
+
agent-native invoke analytics "Summarize signups by source this month"
|
|
400
|
+
|
|
401
|
+
# Eine bereitgestellte App direkt per URL aufrufen und das Bearer-Token aus der Umgebung lesen
|
|
402
|
+
agent-native invoke https://analytics.example.com "How many signups last week?" \
|
|
403
|
+
--api-key-env ANALYTICS_A2A_KEY
|
|
404
|
+
|
|
405
|
+
# Eine einzelne blockierende message/send-Anfrage erzwingen statt des standardmäßigen Async+Poll
|
|
406
|
+
agent-native invoke analytics "Quick lookup" --sync
|
|
407
|
+
|
|
408
|
+
# Maschinenlesbare Ausgabe für Skripting
|
|
409
|
+
agent-native invoke analytics "Summarize signups" --json
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
| Option | Beschreibung |
|
|
413
|
+
| ------------------------- | ------------------------------------------------------------------------------------ |
|
|
414
|
+
| `--agent <id\|name\|url>` | Ziel-Agent (Alias für das positionelle `<app-or-url>`) |
|
|
415
|
+
| `--message <text>` | Prompt (Alias für das positionelle `"prompt"`) |
|
|
416
|
+
| `--api-key-env <name>` | Liest das Bearer-Token aus einer Umgebungsvariable |
|
|
417
|
+
| `--api-key <token>` | Bearer-Token-Wert, inline übergeben |
|
|
418
|
+
| `--context-id <id>` | A2A-`contextId`, um die Konversation einer bestehenden Aufgabe fortzusetzen |
|
|
419
|
+
| `--self-app-id <id>` | Aktuelle App-ID, verwendet zur Selbstaufruf-Vermeidung |
|
|
420
|
+
| `--self-url <url>` | Aktuelle App-URL, verwendet zur Selbstaufruf-Vermeidung |
|
|
421
|
+
| `--timeout-ms <n>` | Timeout für Async-Polling |
|
|
422
|
+
| `--poll-interval-ms <n>` | Intervall für Async-Polling |
|
|
423
|
+
| `--sync` | Eine blockierende `message/send`-Anfrage anstelle des Async+Poll-Standards verwenden |
|
|
424
|
+
| `--no-hint` | Den Prompt unverändert senden, ohne den App-übergreifenden Aufruf-Hinweis |
|
|
425
|
+
| `--json` | Zielmetadaten und Antworttext als JSON ausgeben |
|
|
426
|
+
|
|
427
|
+
Wie `callAgent()` verwendet die CLI standardmäßig Async + Poll (`invokeAgent` → `callAgent` unter der Haube), was die sichere Wahl gegenüber gehosteten/serverlosen Zielen ist — siehe [Serverless-Webhook- und Gateway-Timeouts](#json-rpc-methods) oben. Übergeben Sie `--sync` nur, wenn Sie wissen, dass sich das Ziel nicht hinter einem Gateway mit kurzem Ausführungslimit befindet.
|
|
428
|
+
|
|
429
|
+
Das Ziel wird auf die gleiche Weise aufgelöst wie bei `agentNative.invoke()`: über die Workspace-App-ID, den App-Namen oder eine vollständige URL — sodass derselbe Befehl sowohl gegen eine Geschwister-App in einem Multi-App-Workspace als auch gegen einen beliebigen A2A-Peer anderswo funktioniert.
|
|
430
|
+
|
|
389
431
|
## Aufgabenlebenszyklus {#task-lifecycle}
|
|
390
432
|
|
|
391
433
|
Jede Nachricht erstellt eine Aufgabe, die diese Zustände durchläuft:
|
|
@@ -6,6 +6,40 @@ search: "Headless Agent Rich Chat, vollständige App BYO Agent Runtime AgentChat
|
|
|
6
6
|
|
|
7
7
|
# Agentenoberflächen
|
|
8
8
|
|
|
9
|
+
## Vollständiger Agent-Arbeitsbereich {#agent-page}
|
|
10
|
+
|
|
11
|
+
Wenn eine vollständige Anwendung einen dauerhaften Ort zum Prüfen und
|
|
12
|
+
Konfigurieren ihres Agents braucht, binde `AgentTabsPage` unter `/agent` ein.
|
|
13
|
+
Füge die Route zur App-Navigation hinzu und übergib `agentPageHref="/agent"` an
|
|
14
|
+
`AgentSidebar`, damit die Modi Resources und Settings auf die vollständige
|
|
15
|
+
Seite verweisen können, ohne diese Abläufe zu duplizieren.
|
|
16
|
+
|
|
17
|
+
```tsx filename="app/routes/agent.tsx"
|
|
18
|
+
import { AgentTabsPage } from "@agent-native/core/client";
|
|
19
|
+
|
|
20
|
+
export default function AgentRoute() {
|
|
21
|
+
return <AgentTabsPage />;
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Die gemeinsame Seite bietet derzeit fünf Tabs:
|
|
26
|
+
|
|
27
|
+
- **Context** — Bereichsvorschau, Tokenbudget, geordnete Systemabschnitte mit Herkunft und Governance, Listen-/Treemap-Ansicht und der aktuelle Live-Thread-Snapshot.
|
|
28
|
+
- **Files** — verwendet `ResourcesPanel` für persönliche oder organisationsweite Ressourcen wieder.
|
|
29
|
+
- **Connections** — MCP-Serververwaltung und A2A-Liste entfernter Agents: was der Agent dieser App aufrufen kann.
|
|
30
|
+
- **Jobs** — wiederkehrende Jobs und Automatisierungen mit den vorhandenen Abläufen zum Pausieren/Fortsetzen, für Details und zum Löschen. Automatisierungen sind derzeit persönlich.
|
|
31
|
+
- **Access** — MCP-URL, eine A2A-Agent-Card wenn verfügbar, und gemeinsame Einrichtungsanleitungen; die vollständige Verbindung und den Token-Fallback gibt es unter `/mcp/connect`.
|
|
32
|
+
|
|
33
|
+
Der Umschalter **Personal / Organization** gibt den Tabs ihren Bereich.
|
|
34
|
+
Mitglieder können Organisationsdaten einsehen; die Organisationsverwaltung
|
|
35
|
+
bleibt dort, wo die gehostete Komponente diese Grenze durchsetzt, auf
|
|
36
|
+
Inhaber/Administratoren beschränkt. Das Ziel
|
|
37
|
+
sind prüfbarer, zuordenbarer und steuerbarer Kontext sowie eine klare Trennung
|
|
38
|
+
zwischen Fähigkeit und Zugriff. Die Seite ist eine dünne Hülle um vorhandene
|
|
39
|
+
Komponenten, Actions und Zugriffskontrollen, keine neue Admin-Konsole. Grants,
|
|
40
|
+
Bereichsänderung, Widerruf und Verlauf der Provenienz pro Iteration sind hier
|
|
41
|
+
noch nicht verfügbar.
|
|
42
|
+
|
|
9
43
|
Agent-Native ist bewusst zusammensetzbar. Sie können den Agenten ohne großen Aufwand verwenden UI,
|
|
10
44
|
Verwenden Sie UI ohne die integrierte Agent-Laufzeit oder verwenden Sie beide zusammen als Vollversion
|
|
11
45
|
Anwendung.
|
|
@@ -117,6 +117,16 @@ Jede gehostete App verfügt auch über eine Hilfsseite unter
|
|
|
117
117
|
`https://<app>/mcp/connect` mit dem kopierbaren URL und
|
|
118
118
|
hostspezifische Registerkarten für Claude, ChatGPT, Cursor, Claude-Code, Codex und Andere.
|
|
119
119
|
|
|
120
|
+
### Der In-App-Tab Access {#access-tab}
|
|
121
|
+
|
|
122
|
+
Apps, die `AgentTabsPage` einbinden, stellen denselben Verbindungsablauf im Tab
|
|
123
|
+
**Access** bereit. Er zeigt die MCP-URL, bei Verfügbarkeit eine A2A-Agent-Card
|
|
124
|
+
und die gemeinsamen Einrichtungsanleitungen für Claude, ChatGPT, Cursor, Claude
|
|
125
|
+
Code, Codex und andere Clients. Beginnen Sie dort und öffnen Sie `/mcp/connect`
|
|
126
|
+
für den vollständigen Ablauf und den Token-Fallback. Dies ist eine Oberfläche
|
|
127
|
+
für die Verbindungseinrichtung, keine allgemeine Zugriffskonsole; Grants,
|
|
128
|
+
Bereichsänderung und Widerruf werden in diesem Tab noch nicht verwaltet.
|
|
129
|
+
|
|
120
130
|
### Claude und ChatGPT OAuth {#oauth}
|
|
121
131
|
|
|
122
132
|
Claude / Claude Desktop: Fügen Sie einen benutzerdefinierten Connector hinzu, fügen Sie MCP URL ein und klicken Sie auf
|
|
@@ -386,6 +386,48 @@ entorno de la aplicación y pasar la identidad de la persona que llama (`userEma
|
|
|
386
386
|
firmado como tokens al portador JWT. Utilice `apiKeyEnv` solo para pares externos heredados que
|
|
387
387
|
espera un token de portador estático. Utilice actions local en lugar de invocarse a sí mismo.
|
|
388
388
|
|
|
389
|
+
## CLI: agent-native invoke {#cli-invoke}
|
|
390
|
+
|
|
391
|
+
`agent-native invoke` es un envoltorio de CLI ligero sobre la misma primitiva de resolución e invocación que `agentNative.invoke()`. Úselo para activar el agente de una aplicación desde un script de shell, un job de CI, una entrada de cron, o cualquier sistema externo que pueda ejecutar comandos — el equivalente en CLI de hacer un POST manual a `/_agent-native/a2a`.
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
agent-native invoke <app-or-url> "prompt" [options]
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# Resuelve "analytics" en el registro del espacio de trabajo y espera la respuesta
|
|
399
|
+
agent-native invoke analytics "Summarize signups by source this month"
|
|
400
|
+
|
|
401
|
+
# Llama directamente a una aplicación desplegada por URL, leyendo el token de portador desde una variable de entorno
|
|
402
|
+
agent-native invoke https://analytics.example.com "How many signups last week?" \
|
|
403
|
+
--api-key-env ANALYTICS_A2A_KEY
|
|
404
|
+
|
|
405
|
+
# Fuerza un único message/send bloqueante en lugar del valor predeterminado async+poll
|
|
406
|
+
agent-native invoke analytics "Quick lookup" --sync
|
|
407
|
+
|
|
408
|
+
# Salida legible por máquina para scripting
|
|
409
|
+
agent-native invoke analytics "Summarize signups" --json
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
| Option | Description |
|
|
413
|
+
| ------------------------- | ---------------------------------------------------------------------------------------------- |
|
|
414
|
+
| `--agent <id\|name\|url>` | Agente de destino (alias del argumento posicional `<app-or-url>`) |
|
|
415
|
+
| `--message <text>` | Prompt (alias del argumento posicional `"prompt"`) |
|
|
416
|
+
| `--api-key-env <name>` | Lee el token de portador desde una variable de entorno |
|
|
417
|
+
| `--api-key <token>` | Valor del token de portador, pasado en línea |
|
|
418
|
+
| `--context-id <id>` | `contextId` de A2A, para continuar la conversación de una tarea existente |
|
|
419
|
+
| `--self-app-id <id>` | ID de la aplicación actual, usado para prevenir autoinvocación |
|
|
420
|
+
| `--self-url <url>` | URL de la aplicación actual, usada para prevenir autoinvocación |
|
|
421
|
+
| `--timeout-ms <n>` | Tiempo de espera del sondeo asíncrono |
|
|
422
|
+
| `--poll-interval-ms <n>` | Intervalo de sondeo asíncrono |
|
|
423
|
+
| `--sync` | Usa una única solicitud `message/send` bloqueante en lugar del valor predeterminado async+poll |
|
|
424
|
+
| `--no-hint` | Envía el prompt tal cual, sin la sugerencia de invocación entre aplicaciones |
|
|
425
|
+
| `--json` | Imprime los metadatos del destino y el texto de respuesta como JSON |
|
|
426
|
+
|
|
427
|
+
Al igual que `callAgent()`, la CLI usa de forma predeterminada async + poll (`invokeAgent` → `callAgent` internamente), que es la opción segura frente a destinos alojados/serverless — vea [Tiempos de espera de webhooks y gateways serverless](#json-rpc-methods) más arriba. Pase `--sync` solo cuando sepa que el destino no está detrás de un gateway con un límite de ejecución corto.
|
|
428
|
+
|
|
429
|
+
El destino se resuelve de la misma manera que `agentNative.invoke()`: por ID de aplicación del espacio de trabajo, por nombre de aplicación, o por una URL completa — así que el mismo comando funciona contra una aplicación hermana en un espacio de trabajo multiaplicación o contra un par A2A arbitrario en otro lugar.
|
|
430
|
+
|
|
389
431
|
## Ciclo de vida de la tarea {#task-lifecycle}
|
|
390
432
|
|
|
391
433
|
Cada mensaje crea una tarea que pasa por estos estados:
|
|
@@ -6,6 +6,40 @@ search: "aplicación completa de chat enriquecido de agente sin cabeza BYO tiemp
|
|
|
6
6
|
|
|
7
7
|
# Superficies de agentes
|
|
8
8
|
|
|
9
|
+
## Espacio de trabajo completo del agente {#agent-page}
|
|
10
|
+
|
|
11
|
+
Cuando una aplicación completa necesita un lugar permanente para inspeccionar y
|
|
12
|
+
configurar su agente, monta `AgentTabsPage` en `/agent`. Añade la ruta a la
|
|
13
|
+
navegación de la aplicación y pasa `agentPageHref="/agent"` a `AgentSidebar` para
|
|
14
|
+
que los modos Resources y Settings enlacen a la página completa sin duplicar
|
|
15
|
+
estos flujos.
|
|
16
|
+
|
|
17
|
+
```tsx filename="app/routes/agent.tsx"
|
|
18
|
+
import { AgentTabsPage } from "@agent-native/core/client";
|
|
19
|
+
|
|
20
|
+
export default function AgentRoute() {
|
|
21
|
+
return <AgentTabsPage />;
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
La página compartida ofrece actualmente cinco pestañas:
|
|
26
|
+
|
|
27
|
+
- **Context** — vista previa del ámbito, presupuesto de tokens, secciones de sistema ordenadas con procedencia y gobierno, vista de lista/treemap y la instantánea del hilo activo más reciente.
|
|
28
|
+
- **Files** — vuelve a alojar `ResourcesPanel` para recursos personales o de la organización.
|
|
29
|
+
- **Connections** — gestión de servidores MCP y lista de agentes remotos A2A: lo que puede llamar el agente de esta aplicación.
|
|
30
|
+
- **Jobs** — trabajos recurrentes y automatizaciones con los flujos existentes de pausar/reanudar, detalles y borrar. Las automatizaciones son personales por ahora.
|
|
31
|
+
- **Access** — URL de MCP, tarjeta de agente A2A cuando existe y guías de configuración compartidas; el flujo completo y el token alternativo están en `/mcp/connect`.
|
|
32
|
+
|
|
33
|
+
El selector **Personal / Organization** proporciona el ámbito a las pestañas.
|
|
34
|
+
Los miembros pueden inspeccionar los datos de la organización, mientras que su
|
|
35
|
+
administración sigue restringida a propietarios/administradores donde el
|
|
36
|
+
componente alojado impone ese límite. El
|
|
37
|
+
objetivo es que el contexto sea inspeccionable, atribuible y gobernable, y
|
|
38
|
+
separar capacidad de acceso. La página es una capa fina sobre componentes,
|
|
39
|
+
acciones y comprobaciones existentes, no una nueva consola de administración.
|
|
40
|
+
Todavía no ofrece interfaz para grants, edición de ámbitos, revocación ni
|
|
41
|
+
historial de procedencia por iteración.
|
|
42
|
+
|
|
9
43
|
Agent-Native es deliberadamente componible. Puedes utilizar el agente sin mucho UI,
|
|
10
44
|
use el UI sin el tiempo de ejecución del agente integrado, o use ambos juntos como un completo
|
|
11
45
|
solicitud.
|
|
@@ -117,6 +117,16 @@ Cada aplicación alojada también tiene una página de ayuda en
|
|
|
117
117
|
`https://<app>/mcp/connect` con el URL copiable y
|
|
118
118
|
pestañas específicas del host para Claude, ChatGPT, Cursor, Código Claude, Codex y Otros.
|
|
119
119
|
|
|
120
|
+
### Pestaña Access dentro de la aplicación {#access-tab}
|
|
121
|
+
|
|
122
|
+
Las aplicaciones que montan `AgentTabsPage` ofrecen el mismo flujo de conexión
|
|
123
|
+
en la pestaña **Access**. Muestra la URL de MCP, una tarjeta del agente A2A si
|
|
124
|
+
está disponible y las guías compartidas para Claude, ChatGPT, Cursor, Claude
|
|
125
|
+
Code, Codex y otros clientes. Úsala como punto de partida dentro de la app y
|
|
126
|
+
abre `/mcp/connect` para el flujo completo y el token alternativo. Es una
|
|
127
|
+
interfaz de configuración de conexión, no una consola general de acceso: la
|
|
128
|
+
pestaña todavía no gestiona grants, edición de ámbitos ni revocación.
|
|
129
|
+
|
|
120
130
|
### Claude y ChatGPT OAuth {#oauth}
|
|
121
131
|
|
|
122
132
|
Escritorio Claude / Claude: agregue un conector personalizado, pegue el MCP URL, haga clic
|
|
@@ -384,6 +384,48 @@ environnement d'application et transmettre l'identité de l'appelant (`userEmail
|
|
|
384
384
|
signé en tant que jetons au porteur JWT. Utilisez `apiKeyEnv` uniquement pour les anciens homologues externes qui
|
|
385
385
|
attendez-vous à un jeton de porteur statique. Utilisez actions local au lieu de vous invoquer.
|
|
386
386
|
|
|
387
|
+
## CLI : agent-native invoke {#cli-invoke}
|
|
388
|
+
|
|
389
|
+
`agent-native invoke` est un mince wrapper CLI au-dessus de la même primitive de résolution et d'appel que `agentNative.invoke()`. Utilisez-la pour déclencher l'agent d'une application depuis un script shell, un job CI, une entrée cron, ou tout système externe capable de lancer une commande shell — l'équivalent CLI d'un POST manuel vers `/_agent-native/a2a`.
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
agent-native invoke <app-or-url> "prompt" [options]
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Résoudre "analytics" dans le registre de l'espace de travail et attendre la réponse
|
|
397
|
+
agent-native invoke analytics "Summarize signups by source this month"
|
|
398
|
+
|
|
399
|
+
# Appeler une application déployée directement par URL, en lisant le jeton au porteur depuis l'environnement
|
|
400
|
+
agent-native invoke https://analytics.example.com "How many signups last week?" \
|
|
401
|
+
--api-key-env ANALYTICS_A2A_KEY
|
|
402
|
+
|
|
403
|
+
# Forcer un seul message/send bloquant au lieu du mode async+poll par défaut
|
|
404
|
+
agent-native invoke analytics "Quick lookup" --sync
|
|
405
|
+
|
|
406
|
+
# Sortie exploitable par machine pour le scripting
|
|
407
|
+
agent-native invoke analytics "Summarize signups" --json
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
| Option | Description |
|
|
411
|
+
| ------------------------- | ---------------------------------------------------------------------------------------- |
|
|
412
|
+
| `--agent <id\|name\|url>` | Agent cible (alias de l'argument positionnel `<app-or-url>`) |
|
|
413
|
+
| `--message <text>` | Prompt (alias de l'argument positionnel `"prompt"`) |
|
|
414
|
+
| `--api-key-env <name>` | Lit le jeton au porteur depuis une variable d'environnement |
|
|
415
|
+
| `--api-key <token>` | Valeur du jeton au porteur, passée directement |
|
|
416
|
+
| `--context-id <id>` | `contextId` A2A, pour poursuivre la conversation d'une tâche existante |
|
|
417
|
+
| `--self-app-id <id>` | Identifiant de l'application courante, utilisé pour éviter les auto-appels |
|
|
418
|
+
| `--self-url <url>` | URL de l'application courante, utilisée pour éviter les auto-appels |
|
|
419
|
+
| `--timeout-ms <n>` | Délai d'expiration du polling asynchrone |
|
|
420
|
+
| `--poll-interval-ms <n>` | Intervalle de polling asynchrone |
|
|
421
|
+
| `--sync` | Utilise une seule requête `message/send` bloquante au lieu du mode async+poll par défaut |
|
|
422
|
+
| `--no-hint` | Envoie le prompt tel quel, sans l'indice d'invocation inter-application |
|
|
423
|
+
| `--json` | Affiche les métadonnées de la cible et le texte de la réponse au format JSON |
|
|
424
|
+
|
|
425
|
+
Comme `callAgent()`, la CLI utilise par défaut le mode async + poll (`invokeAgent` → `callAgent` en interne), ce qui est le choix sûr face à des cibles hébergées/serverless — voir [Délais d'expiration des webhooks et passerelles serverless](#json-rpc-methods) ci-dessus. Ne passez `--sync` que lorsque vous savez que la cible n'est pas derrière une passerelle avec une limite d'exécution courte.
|
|
426
|
+
|
|
427
|
+
La cible se résout de la même manière que `agentNative.invoke()` : par identifiant d'application de l'espace de travail, par nom d'application, ou par une URL complète — la même commande fonctionne donc aussi bien contre une application sœur dans un espace de travail multi-applications que contre un pair A2A arbitraire ailleurs.
|
|
428
|
+
|
|
387
429
|
## Cycle de vie des tâches {#task-lifecycle}
|
|
388
430
|
|
|
389
431
|
Chaque message crée une tâche qui passe par ces états :
|
|
@@ -6,6 +6,40 @@ search: "Application complète de chat enrichi d'agent sans tête BYO runtime d'
|
|
|
6
6
|
|
|
7
7
|
# Surfaces des agents
|
|
8
8
|
|
|
9
|
+
## Espace de travail Agent complet {#agent-page}
|
|
10
|
+
|
|
11
|
+
Lorsqu'une application complète a besoin d'un endroit durable pour inspecter et
|
|
12
|
+
configurer son agent, montez `AgentTabsPage` sur `/agent`. Ajoutez la route à la
|
|
13
|
+
navigation de l'application et passez `agentPageHref="/agent"` à
|
|
14
|
+
`AgentSidebar` afin que les modes Resources et Settings puissent ouvrir la page
|
|
15
|
+
complète sans dupliquer ces flux.
|
|
16
|
+
|
|
17
|
+
```tsx filename="app/routes/agent.tsx"
|
|
18
|
+
import { AgentTabsPage } from "@agent-native/core/client";
|
|
19
|
+
|
|
20
|
+
export default function AgentRoute() {
|
|
21
|
+
return <AgentTabsPage />;
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
La page partagée propose actuellement cinq onglets :
|
|
26
|
+
|
|
27
|
+
- **Context** — aperçu du périmètre, budget de tokens, sections système ordonnées avec provenance et gouvernance, vue liste/treemap et dernière capture du fil actif.
|
|
28
|
+
- **Files** — réutilise `ResourcesPanel` pour les ressources personnelles ou de l'organisation.
|
|
29
|
+
- **Connections** — gestion des serveurs MCP et liste des agents distants A2A : ce que l'agent de l'application peut appeler.
|
|
30
|
+
- **Jobs** — tâches récurrentes et automatisations avec les flux existants de pause/reprise, détails et suppression. Les automatisations sont personnelles pour le moment.
|
|
31
|
+
- **Access** — URL MCP, fiche d'agent A2A si disponible et guides de configuration partagés ; le flux complet et le repli par jeton sont disponibles sur `/mcp/connect`.
|
|
32
|
+
|
|
33
|
+
Le sélecteur **Personal / Organization** fournit le périmètre aux onglets. Les
|
|
34
|
+
membres peuvent inspecter les données de l'organisation, tandis que sa gestion
|
|
35
|
+
reste réservée aux propriétaires/administrateurs là où le composant hébergé
|
|
36
|
+
applique cette limite. Le
|
|
37
|
+
but est de rendre le contexte inspectable, attribuable et gouvernable, tout en
|
|
38
|
+
séparant capacité et accès. La page est une fine enveloppe autour des
|
|
39
|
+
composants, actions et contrôles existants, pas une nouvelle console
|
|
40
|
+
d'administration. Elle ne fournit pas encore d'interface pour les grants, la
|
|
41
|
+
modification du périmètre, la révocation ou l'historique de provenance par itération.
|
|
42
|
+
|
|
9
43
|
Agent-Native est délibérément composable. Vous pouvez utiliser l'agent sans trop dépenser UI,
|
|
10
44
|
utilisez le UI sans le runtime d'agent intégré, ou utilisez les deux ensemble comme un ensemble complet
|
|
11
45
|
application.
|
|
@@ -117,6 +117,17 @@ Chaque application hébergée dispose également d'une page d'aide à l'adresse
|
|
|
117
117
|
`https://<app>/mcp/connect` avec le URL copiable et
|
|
118
118
|
Onglets spécifiques à l'hôte pour Claude, ChatGPT, Cursor, Claude Code, Codex et autres.
|
|
119
119
|
|
|
120
|
+
### L'onglet Access dans l'application {#access-tab}
|
|
121
|
+
|
|
122
|
+
Les applications qui montent `AgentTabsPage` proposent le même flux de connexion
|
|
123
|
+
dans l'onglet **Access**. Il affiche l'URL MCP, une fiche d'agent A2A si elle est
|
|
124
|
+
disponible et les guides de configuration communs pour Claude, ChatGPT, Cursor,
|
|
125
|
+
Claude Code, Codex et les autres clients. Utilisez-le comme point de départ dans
|
|
126
|
+
l'application, puis ouvrez `/mcp/connect` pour le flux complet et le repli par
|
|
127
|
+
jeton. Il s'agit d'une interface de configuration, pas d'une console générale
|
|
128
|
+
d'accès : l'onglet ne gère pas encore les grants, la modification du périmètre
|
|
129
|
+
ou la révocation.
|
|
130
|
+
|
|
120
131
|
### Claude et ChatGPT OAuth {#oauth}
|
|
121
132
|
|
|
122
133
|
Claude / Claude Desktop : ajoutez un connecteur personnalisé, collez le MCP URL, cliquez
|