@agent-native/core 0.99.3 → 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 +15 -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/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/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/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/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/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/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/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/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/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/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/collab/routes.d.ts +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/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- 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/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/agent-surfaces.mdx +43 -0
- package/docs/content/external-agents.mdx +11 -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/agent-surfaces.mdx +34 -0
- package/docs/content/locales/de-DE/external-agents.mdx +10 -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/agent-surfaces.mdx +34 -0
- package/docs/content/locales/fr-FR/external-agents.mdx +11 -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/agent-surfaces.mdx +32 -0
- package/docs/content/locales/ja-JP/external-agents.mdx +10 -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/agent-surfaces.mdx +33 -0
- package/docs/content/locales/pt-BR/external-agents.mdx +10 -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/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
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
useT,
|
|
16
16
|
} from "@agent-native/core/client";
|
|
17
17
|
import { resolveLocaleFromRequest } from "@agent-native/core/server";
|
|
18
|
-
import { IconSun, IconMoon } from "@tabler/icons-react";
|
|
18
|
+
import { IconBrain, IconSun, IconMoon } from "@tabler/icons-react";
|
|
19
19
|
import { useQueryClient } from "@tanstack/react-query";
|
|
20
20
|
import { useTheme } from "next-themes";
|
|
21
21
|
import { useCallback, useState } from "react";
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
Outlet,
|
|
26
26
|
Scripts,
|
|
27
27
|
ScrollRestoration,
|
|
28
|
+
useNavigate,
|
|
28
29
|
useLoaderData,
|
|
29
30
|
useLocation,
|
|
30
31
|
useRouteLoaderData,
|
|
@@ -197,6 +198,7 @@ function isPublicBookingPath(pathname: string): boolean {
|
|
|
197
198
|
|
|
198
199
|
function AppContent() {
|
|
199
200
|
const [cmdkOpen, setCmdkOpen] = useState(false);
|
|
201
|
+
const navigate = useNavigate();
|
|
200
202
|
const t = useT();
|
|
201
203
|
useCommandMenuShortcut(useCallback(() => setCmdkOpen(true), []));
|
|
202
204
|
return (
|
|
@@ -212,6 +214,20 @@ function AppContent() {
|
|
|
212
214
|
<CommandMenu.Item onSelect={() => {}}>
|
|
213
215
|
{t("root.commandSearch")}
|
|
214
216
|
</CommandMenu.Item>
|
|
217
|
+
<CommandMenu.Item
|
|
218
|
+
onSelect={() => navigate("/agent")}
|
|
219
|
+
keywords={[
|
|
220
|
+
"agent",
|
|
221
|
+
"context",
|
|
222
|
+
"files",
|
|
223
|
+
"connections",
|
|
224
|
+
"jobs",
|
|
225
|
+
"access",
|
|
226
|
+
]}
|
|
227
|
+
>
|
|
228
|
+
<IconBrain size={16} />
|
|
229
|
+
{t("settings.openAgentSettings")}
|
|
230
|
+
</CommandMenu.Item>
|
|
215
231
|
</CommandMenu.Group>
|
|
216
232
|
<CommandMenu.Group heading={t("root.commandAppearance")}>
|
|
217
233
|
<ThemeToggleItem />
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AgentTabsPage, useT } from "@agent-native/core/client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
|
|
4
|
+
import { useAppHeaderControls } from "@/components/layout/AppLayout";
|
|
5
|
+
import { messagesByLocale } from "@/i18n-data";
|
|
6
|
+
|
|
7
|
+
export function meta() {
|
|
8
|
+
return [{ title: messagesByLocale["en-US"].settings.agentTitle }];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default function AgentRoute() {
|
|
12
|
+
const t = useT();
|
|
13
|
+
const controls = useMemo(
|
|
14
|
+
() => ({
|
|
15
|
+
left: (
|
|
16
|
+
<h1 className="truncate text-lg font-semibold tracking-tight">
|
|
17
|
+
{t("settings.agentTitle")}
|
|
18
|
+
</h1>
|
|
19
|
+
),
|
|
20
|
+
}),
|
|
21
|
+
[t],
|
|
22
|
+
);
|
|
23
|
+
useAppHeaderControls(controls);
|
|
24
|
+
return <AgentTabsPage appName="Calendar" />;
|
|
25
|
+
}
|
|
@@ -168,6 +168,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
168
168
|
openOnChatRunning={chatHomeHandoffActive}
|
|
169
169
|
onFullscreenRequest={openAskAgentFullscreen}
|
|
170
170
|
emptyStateText={t("chat.inspectEmptyState")}
|
|
171
|
+
agentPageHref="/agent"
|
|
171
172
|
suggestions={[
|
|
172
173
|
t("chat.inspectSuggestionCapabilities"),
|
|
173
174
|
t("chat.inspectSuggestionHello"),
|
|
@@ -11,6 +11,7 @@ import { OrgSwitcher } from "@agent-native/core/client/org";
|
|
|
11
11
|
import {
|
|
12
12
|
IconActivity,
|
|
13
13
|
IconArchive,
|
|
14
|
+
IconBrain,
|
|
14
15
|
IconDatabase,
|
|
15
16
|
IconDots,
|
|
16
17
|
IconEdit,
|
|
@@ -59,6 +60,12 @@ const navItems = [
|
|
|
59
60
|
href: "/database",
|
|
60
61
|
view: "database",
|
|
61
62
|
},
|
|
63
|
+
{
|
|
64
|
+
icon: IconBrain,
|
|
65
|
+
labelKey: "settings.agentTitle",
|
|
66
|
+
href: "/agent",
|
|
67
|
+
view: "agent",
|
|
68
|
+
},
|
|
62
69
|
{
|
|
63
70
|
icon: IconSettings,
|
|
64
71
|
labelKey: "navigation.settings",
|
|
@@ -60,6 +60,7 @@ function viewForPath(pathname: string): string {
|
|
|
60
60
|
if (pathname.startsWith("/database")) return "database";
|
|
61
61
|
if (pathname.startsWith("/extensions")) return "extensions";
|
|
62
62
|
if (pathname.startsWith("/observability")) return "observability";
|
|
63
|
+
if (pathname.startsWith("/agent")) return "agent";
|
|
63
64
|
if (pathname.startsWith("/team")) return "settings";
|
|
64
65
|
return "chat";
|
|
65
66
|
}
|
|
@@ -76,6 +77,8 @@ function pathForView(view?: string): string {
|
|
|
76
77
|
return "/extensions";
|
|
77
78
|
case "observability":
|
|
78
79
|
return "/observability";
|
|
80
|
+
case "agent":
|
|
81
|
+
return "/agent";
|
|
79
82
|
case "settings":
|
|
80
83
|
return "/settings";
|
|
81
84
|
case "team":
|
|
@@ -10,11 +10,18 @@ import {
|
|
|
10
10
|
useCommandMenuShortcut,
|
|
11
11
|
useT,
|
|
12
12
|
} from "@agent-native/core/client";
|
|
13
|
-
import { IconSun, IconMoon } from "@tabler/icons-react";
|
|
13
|
+
import { IconBrain, IconSun, IconMoon } from "@tabler/icons-react";
|
|
14
14
|
import { useQueryClient } from "@tanstack/react-query";
|
|
15
15
|
import { useTheme } from "next-themes";
|
|
16
16
|
import { useCallback, useState } from "react";
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
Links,
|
|
19
|
+
Meta,
|
|
20
|
+
Outlet,
|
|
21
|
+
Scripts,
|
|
22
|
+
ScrollRestoration,
|
|
23
|
+
useNavigate,
|
|
24
|
+
} from "react-router";
|
|
18
25
|
import type { LinksFunction } from "react-router";
|
|
19
26
|
|
|
20
27
|
import { Layout as AppLayout } from "@/components/layout/Layout";
|
|
@@ -109,6 +116,7 @@ function ThemeToggleItem() {
|
|
|
109
116
|
|
|
110
117
|
function AppContent() {
|
|
111
118
|
const [cmdkOpen, setCmdkOpen] = useState(false);
|
|
119
|
+
const navigate = useNavigate();
|
|
112
120
|
const t = useT();
|
|
113
121
|
useCommandMenuShortcut(useCallback(() => setCmdkOpen(true), []));
|
|
114
122
|
return (
|
|
@@ -123,6 +131,20 @@ function AppContent() {
|
|
|
123
131
|
<CommandMenu.Item onSelect={() => {}}>
|
|
124
132
|
{t("root.commandSearch")}
|
|
125
133
|
</CommandMenu.Item>
|
|
134
|
+
<CommandMenu.Item
|
|
135
|
+
onSelect={() => navigate("/agent")}
|
|
136
|
+
keywords={[
|
|
137
|
+
"agent",
|
|
138
|
+
"context",
|
|
139
|
+
"files",
|
|
140
|
+
"connections",
|
|
141
|
+
"jobs",
|
|
142
|
+
"access",
|
|
143
|
+
]}
|
|
144
|
+
>
|
|
145
|
+
<IconBrain size={16} />
|
|
146
|
+
{t("settings.openAgentSettings")}
|
|
147
|
+
</CommandMenu.Item>
|
|
126
148
|
</CommandMenu.Group>
|
|
127
149
|
<CommandMenu.Group heading={t("root.commandAppearance")}>
|
|
128
150
|
<ThemeToggleItem />
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgentTabsPage, useT } from "@agent-native/core/client";
|
|
2
|
+
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
3
|
+
|
|
4
|
+
import { APP_TITLE } from "@/lib/app-config";
|
|
5
|
+
|
|
6
|
+
export function meta() {
|
|
7
|
+
return [{ title: `Agent - ${APP_TITLE}` }];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default function AgentRoute() {
|
|
11
|
+
const t = useT();
|
|
12
|
+
useSetPageTitle(t("settings.agentTitle"));
|
|
13
|
+
|
|
14
|
+
return <AgentTabsPage appName={APP_TITLE} />;
|
|
15
|
+
}
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
IconLayoutSidebarLeftExpand,
|
|
30
30
|
IconPlus,
|
|
31
31
|
IconShare,
|
|
32
|
+
IconBrain,
|
|
32
33
|
IconSettings,
|
|
33
34
|
} from "@tabler/icons-react";
|
|
34
35
|
import { ReactNode, useEffect, useMemo, useState } from "react";
|
|
@@ -240,6 +241,12 @@ export function LibraryLayout({ children }: LibraryLayoutProps) {
|
|
|
240
241
|
icon: IconTrash,
|
|
241
242
|
match: (p) => p.startsWith("/trash"),
|
|
242
243
|
},
|
|
244
|
+
{
|
|
245
|
+
to: "/agent",
|
|
246
|
+
label: t("navigation.agent"),
|
|
247
|
+
icon: IconBrain,
|
|
248
|
+
match: (p) => p.startsWith("/agent"),
|
|
249
|
+
},
|
|
243
250
|
{
|
|
244
251
|
to: "/settings",
|
|
245
252
|
label: t("navigation.settings"),
|
|
@@ -547,6 +554,7 @@ export function LibraryLayout({ children }: LibraryLayoutProps) {
|
|
|
547
554
|
t("navigation.agentSuggestionPricing"),
|
|
548
555
|
t("navigation.agentSuggestionFiller"),
|
|
549
556
|
]}
|
|
557
|
+
agentPageHref="/agent"
|
|
550
558
|
scope={recordingScope}
|
|
551
559
|
browserTabId={getBrowserTabId()}
|
|
552
560
|
>
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "الإجراءات",
|
|
15
15
|
commandSearch: "بحث",
|
|
16
|
+
openAgent: "فتح الوكيل",
|
|
16
17
|
commandAppearance: "المظهر",
|
|
17
18
|
toggleTheme: "تبديل السمة",
|
|
18
19
|
extensionSignedInTitle: "تم تسجيل الدخول",
|
|
@@ -53,6 +54,7 @@ const messages = {
|
|
|
53
54
|
dictate: "إملاء",
|
|
54
55
|
archive: "الأرشيف",
|
|
55
56
|
trash: "المهملات",
|
|
57
|
+
agent: "الوكيل",
|
|
56
58
|
settings: "الإعدادات",
|
|
57
59
|
notifications: "الإشعارات",
|
|
58
60
|
insights: "الرؤى",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "Aktionen",
|
|
15
15
|
commandSearch: "Suchen",
|
|
16
|
+
openAgent: "Agent öffnen",
|
|
16
17
|
commandAppearance: "Darstellung",
|
|
17
18
|
toggleTheme: "Design wechseln",
|
|
18
19
|
extensionSignedInTitle: "Angemeldet",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "Diktieren",
|
|
55
56
|
archive: "Archiv",
|
|
56
57
|
trash: "Papierkorb",
|
|
58
|
+
agent: "Agent",
|
|
57
59
|
settings: "Einstellungen",
|
|
58
60
|
notifications: "Benachrichtigungen",
|
|
59
61
|
insights: "Einblicke",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "Actions",
|
|
15
15
|
commandSearch: "Search",
|
|
16
|
+
openAgent: "Open Agent",
|
|
16
17
|
commandAppearance: "Appearance",
|
|
17
18
|
toggleTheme: "Toggle theme",
|
|
18
19
|
extensionSignedInTitle: "Signed in",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "Dictate",
|
|
55
56
|
archive: "Archive",
|
|
56
57
|
trash: "Trash",
|
|
58
|
+
agent: "Agent",
|
|
57
59
|
settings: "Settings",
|
|
58
60
|
notifications: "Notifications",
|
|
59
61
|
insights: "Insights",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "Acciones",
|
|
15
15
|
commandSearch: "Buscar",
|
|
16
|
+
openAgent: "Abrir agente",
|
|
16
17
|
commandAppearance: "Apariencia",
|
|
17
18
|
toggleTheme: "Cambiar tema",
|
|
18
19
|
extensionSignedInTitle: "Sesión iniciada",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "Dictar",
|
|
55
56
|
archive: "Archivo",
|
|
56
57
|
trash: "Papelera",
|
|
58
|
+
agent: "Agente",
|
|
57
59
|
settings: "Ajustes",
|
|
58
60
|
notifications: "Notificaciones",
|
|
59
61
|
insights: "Información",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "Opérations",
|
|
15
15
|
commandSearch: "Rechercher",
|
|
16
|
+
openAgent: "Ouvrir l’agent",
|
|
16
17
|
commandAppearance: "Apparence",
|
|
17
18
|
toggleTheme: "Changer de thème",
|
|
18
19
|
extensionSignedInTitle: "Connecté",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "Dicter",
|
|
55
56
|
archive: "Archiver",
|
|
56
57
|
trash: "Corbeille",
|
|
58
|
+
agent: "Agent",
|
|
57
59
|
settings: "Paramètres",
|
|
58
60
|
notifications: "Alertes",
|
|
59
61
|
insights: "Analyses",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "कार्रवाइयाँ",
|
|
15
15
|
commandSearch: "खोजें",
|
|
16
|
+
openAgent: "एजेंट खोलें",
|
|
16
17
|
commandAppearance: "दिखावट",
|
|
17
18
|
toggleTheme: "थीम बदलें",
|
|
18
19
|
extensionSignedInTitle: "साइन इन हो गया",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "डिक्टेट",
|
|
55
56
|
archive: "आर्काइव",
|
|
56
57
|
trash: "ट्रैश",
|
|
58
|
+
agent: "एजेंट",
|
|
57
59
|
settings: "सेटिंग्स",
|
|
58
60
|
notifications: "सूचनाएँ",
|
|
59
61
|
insights: "इनसाइट्स",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "アクション",
|
|
15
15
|
commandSearch: "検索",
|
|
16
|
+
openAgent: "エージェントを開く",
|
|
16
17
|
commandAppearance: "表示",
|
|
17
18
|
toggleTheme: "テーマを切り替え",
|
|
18
19
|
extensionSignedInTitle: "サインインしました",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "ディクテーション",
|
|
55
56
|
archive: "アーカイブ",
|
|
56
57
|
trash: "ゴミ箱",
|
|
58
|
+
agent: "エージェント",
|
|
57
59
|
settings: "設定",
|
|
58
60
|
notifications: "通知",
|
|
59
61
|
insights: "インサイト",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "작업",
|
|
15
15
|
commandSearch: "검색",
|
|
16
|
+
openAgent: "에이전트 열기",
|
|
16
17
|
commandAppearance: "화면 표시",
|
|
17
18
|
toggleTheme: "테마 전환",
|
|
18
19
|
extensionSignedInTitle: "로그인됨",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "받아쓰기",
|
|
55
56
|
archive: "보관함",
|
|
56
57
|
trash: "휴지통",
|
|
58
|
+
agent: "에이전트",
|
|
57
59
|
settings: "설정",
|
|
58
60
|
notifications: "알림",
|
|
59
61
|
insights: "인사이트",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "Ações",
|
|
15
15
|
commandSearch: "Pesquisar",
|
|
16
|
+
openAgent: "Abrir agente",
|
|
16
17
|
commandAppearance: "Aparência",
|
|
17
18
|
toggleTheme: "Alternar tema",
|
|
18
19
|
extensionSignedInTitle: "Conectado",
|
|
@@ -54,6 +55,7 @@ const messages = {
|
|
|
54
55
|
dictate: "Ditar",
|
|
55
56
|
archive: "Arquivo",
|
|
56
57
|
trash: "Lixeira",
|
|
58
|
+
agent: "Agente",
|
|
57
59
|
settings: "Configurações",
|
|
58
60
|
notifications: "Notificações",
|
|
59
61
|
insights: "Percepções",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "操作",
|
|
15
15
|
commandSearch: "搜索",
|
|
16
|
+
openAgent: "打开代理",
|
|
16
17
|
commandAppearance: "外观",
|
|
17
18
|
toggleTheme: "切换主题",
|
|
18
19
|
extensionSignedInTitle: "已登录",
|
|
@@ -52,6 +53,7 @@ const messages = {
|
|
|
52
53
|
dictate: "听写",
|
|
53
54
|
archive: "归档",
|
|
54
55
|
trash: "废纸篓",
|
|
56
|
+
agent: "代理",
|
|
55
57
|
settings: "设置",
|
|
56
58
|
notifications: "通知",
|
|
57
59
|
insights: "洞察",
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
root: {
|
|
14
14
|
commandActions: "操作",
|
|
15
15
|
commandSearch: "搜尋",
|
|
16
|
+
openAgent: "開啟代理",
|
|
16
17
|
commandAppearance: "外觀",
|
|
17
18
|
toggleTheme: "切換主題",
|
|
18
19
|
extensionSignedInTitle: "已登入",
|
|
@@ -52,6 +53,7 @@ const messages = {
|
|
|
52
53
|
dictate: "聽寫",
|
|
53
54
|
archive: "封存",
|
|
54
55
|
trash: "廢紙簍",
|
|
56
|
+
agent: "代理",
|
|
55
57
|
settings: "設定",
|
|
56
58
|
notifications: "通知",
|
|
57
59
|
insights: "洞察",
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "@agent-native/core/client";
|
|
16
16
|
import { configureTracking } from "@agent-native/core/client";
|
|
17
17
|
import { resolveLocaleFromRequest } from "@agent-native/core/server";
|
|
18
|
-
import { IconCheck, IconSun, IconMoon } from "@tabler/icons-react";
|
|
18
|
+
import { IconBrain, IconCheck, IconSun, IconMoon } from "@tabler/icons-react";
|
|
19
19
|
import { useQueryClient } from "@tanstack/react-query";
|
|
20
20
|
import { useTheme } from "next-themes";
|
|
21
21
|
import { useCallback, useEffect, useState } from "react";
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
ScrollRestoration,
|
|
28
28
|
useLoaderData,
|
|
29
29
|
useLocation,
|
|
30
|
+
useNavigate,
|
|
30
31
|
useRouteLoaderData,
|
|
31
32
|
} from "react-router";
|
|
32
33
|
import type { LinksFunction, LoaderFunctionArgs } from "react-router";
|
|
@@ -336,6 +337,7 @@ function isStandalonePublicPath(pathname: string): boolean {
|
|
|
336
337
|
|
|
337
338
|
function AppContent() {
|
|
338
339
|
const location = useLocation();
|
|
340
|
+
const navigate = useNavigate();
|
|
339
341
|
const t = useT();
|
|
340
342
|
const standalonePublic = isStandalonePublicPath(location.pathname);
|
|
341
343
|
const [cmdkOpen, setCmdkOpen] = useState(false);
|
|
@@ -358,6 +360,10 @@ function AppContent() {
|
|
|
358
360
|
changelogKey="clips"
|
|
359
361
|
>
|
|
360
362
|
<CommandMenu.Group heading={t("root.commandActions")}>
|
|
363
|
+
<CommandMenu.Item onSelect={() => navigate("/agent")}>
|
|
364
|
+
<IconBrain size={16} />
|
|
365
|
+
{t("root.openAgent")}
|
|
366
|
+
</CommandMenu.Item>
|
|
361
367
|
<CommandMenu.Item onSelect={() => {}}>
|
|
362
368
|
{t("root.commandSearch")}
|
|
363
369
|
</CommandMenu.Item>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgentTabsPage, useT } from "@agent-native/core/client";
|
|
2
|
+
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
3
|
+
|
|
4
|
+
import messages from "@/i18n/en-US";
|
|
5
|
+
|
|
6
|
+
export function meta() {
|
|
7
|
+
return [{ title: messages.settings.agentTitle }];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default function AgentRoute() {
|
|
11
|
+
const t = useT();
|
|
12
|
+
useSetPageTitle(t("settings.agentTitle"));
|
|
13
|
+
|
|
14
|
+
return <AgentTabsPage />;
|
|
15
|
+
}
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
import type { Document, DocumentTreeNode } from "@shared/api";
|
|
30
30
|
import {
|
|
31
31
|
IconDatabase,
|
|
32
|
+
IconBrain,
|
|
32
33
|
IconFileText,
|
|
33
34
|
IconPlus,
|
|
34
35
|
IconRestore,
|
|
@@ -232,6 +233,7 @@ export function DocumentSidebar({
|
|
|
232
233
|
const [removeLocalFilesDialogOpen, setRemoveLocalFilesDialogOpen] =
|
|
233
234
|
useState(false);
|
|
234
235
|
const localFilesActive = location.pathname.startsWith("/local-files");
|
|
236
|
+
const agentActive = location.pathname.startsWith("/agent");
|
|
235
237
|
const settingsActive = location.pathname.startsWith("/settings");
|
|
236
238
|
const sensors = useSensors(
|
|
237
239
|
useSensor(PointerSensor, {
|
|
@@ -821,6 +823,23 @@ export function DocumentSidebar({
|
|
|
821
823
|
</Link>
|
|
822
824
|
);
|
|
823
825
|
|
|
826
|
+
const renderAgentNavButton = () => (
|
|
827
|
+
<Link
|
|
828
|
+
to="/agent"
|
|
829
|
+
className={cn(
|
|
830
|
+
"flex h-8 w-full items-center gap-2 rounded-md px-2 text-sm",
|
|
831
|
+
agentActive
|
|
832
|
+
? "bg-accent text-accent-foreground"
|
|
833
|
+
: "text-muted-foreground hover:bg-accent/50 hover:text-foreground",
|
|
834
|
+
)}
|
|
835
|
+
>
|
|
836
|
+
<IconBrain size={15} className="shrink-0" />
|
|
837
|
+
<span className="min-w-0 flex-1 truncate text-start">
|
|
838
|
+
{t("navigation.agent")}
|
|
839
|
+
</span>
|
|
840
|
+
</Link>
|
|
841
|
+
);
|
|
842
|
+
|
|
824
843
|
const toggleSection = (id: SidebarSectionId) => {
|
|
825
844
|
setStoredCollapsedSections((current) => {
|
|
826
845
|
const normalized = normalizeCollapsedSections(current);
|
|
@@ -1096,6 +1115,22 @@ export function DocumentSidebar({
|
|
|
1096
1115
|
</TooltipTrigger>
|
|
1097
1116
|
<TooltipContent>{t("sidebar.localFiles")}</TooltipContent>
|
|
1098
1117
|
</Tooltip>
|
|
1118
|
+
<Tooltip>
|
|
1119
|
+
<TooltipTrigger asChild>
|
|
1120
|
+
<Link
|
|
1121
|
+
to="/agent"
|
|
1122
|
+
className={cn(
|
|
1123
|
+
"w-10 h-10 flex items-center justify-center rounded-lg hover:bg-accent",
|
|
1124
|
+
agentActive
|
|
1125
|
+
? "bg-accent text-accent-foreground"
|
|
1126
|
+
: "text-muted-foreground hover:text-foreground",
|
|
1127
|
+
)}
|
|
1128
|
+
>
|
|
1129
|
+
<IconBrain size={16} />
|
|
1130
|
+
</Link>
|
|
1131
|
+
</TooltipTrigger>
|
|
1132
|
+
<TooltipContent>{t("navigation.agent")}</TooltipContent>
|
|
1133
|
+
</Tooltip>
|
|
1099
1134
|
<Tooltip>
|
|
1100
1135
|
<TooltipTrigger asChild>
|
|
1101
1136
|
<Link
|
|
@@ -1334,6 +1369,7 @@ export function DocumentSidebar({
|
|
|
1334
1369
|
<div className="shrink-0 px-3 py-2">
|
|
1335
1370
|
<div className="space-y-1">
|
|
1336
1371
|
{renderLocalFilesNavButton()}
|
|
1372
|
+
{renderAgentNavButton()}
|
|
1337
1373
|
{renderSettingsNavButton()}
|
|
1338
1374
|
</div>
|
|
1339
1375
|
</div>
|
|
@@ -13,6 +13,7 @@ const messages = {
|
|
|
13
13
|
commandLocalFilesHeading: "本機檔案",
|
|
14
14
|
commandDatabaseResultDescription: "開啟資料庫頁面",
|
|
15
15
|
commandAppearance: "外觀",
|
|
16
|
+
openAgent: "開啟代理",
|
|
16
17
|
toggleTheme: "切換主題",
|
|
17
18
|
metaTitle:
|
|
18
19
|
"Agent-Native Content - 開放原始碼且代理友善的 Obsidian 替代方案",
|
|
@@ -26,6 +27,7 @@ const messages = {
|
|
|
26
27
|
},
|
|
27
28
|
navigation: {
|
|
28
29
|
openSidebar: "開啟側邊欄",
|
|
30
|
+
agent: "代理",
|
|
29
31
|
settings: "設定",
|
|
30
32
|
},
|
|
31
33
|
team: {
|