@agent-native/core 0.127.3 → 0.128.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 +80 -0
- package/corpus/core/README.md +5 -26
- package/corpus/core/docs/content/actions.mdx +47 -4
- package/corpus/core/docs/content/native-chat-ui.mdx +7 -0
- package/corpus/core/docs/content/organizations-teams-permissions.mdx +109 -3
- package/corpus/core/docs/content/template-design-collaboration-and-full-apps.mdx +15 -0
- package/corpus/core/docs/content/toolkit-org-team.mdx +72 -12
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/artifact-response.ts +36 -29
- package/corpus/core/src/action.ts +83 -2
- package/corpus/core/src/chat-threads/store.ts +48 -43
- package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +46 -3
- package/corpus/core/src/client/AgentPanel.tsx +26 -6
- package/corpus/core/src/client/AssistantChat.tsx +63 -7
- package/corpus/core/src/client/DefaultSpinner.tsx +29 -0
- package/corpus/core/src/client/org/TeamPage.tsx +161 -6
- package/corpus/core/src/client/org/hooks.ts +67 -0
- package/corpus/core/src/client/org/index.ts +9 -0
- package/corpus/core/src/client/transcription/use-live-transcription.ts +62 -10
- package/corpus/core/src/db/client.ts +42 -3
- package/corpus/core/src/db/ensure-additive-columns.ts +60 -33
- package/corpus/core/src/deploy/build.ts +31 -2
- package/corpus/core/src/mcp-client/routes.ts +10 -1
- package/corpus/core/src/org/app-roles-handlers.ts +152 -0
- package/corpus/core/src/org/app-roles.ts +355 -0
- package/corpus/core/src/org/index.ts +27 -1
- package/corpus/core/src/org/migrations.ts +22 -0
- package/corpus/core/src/org/plugin.ts +27 -0
- package/corpus/core/src/org/schema.ts +15 -0
- package/corpus/core/src/scripts/docs/search.ts +17 -0
- package/corpus/core/src/scripts/docs/source-search.ts +10 -0
- package/corpus/core/src/server/agent-chat/script-entries.ts +3 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +53 -52
- package/corpus/core/src/server/core-routes-plugin.ts +6 -1
- package/corpus/core/src/server/framework-request-handler.ts +44 -6
- package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/core/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/core/src/templates/default/.agents/skills/security/SKILL.md +31 -0
- package/corpus/core/src/templates/headless/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/analytics/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/analytics/actions/data-source-status.ts +21 -12
- package/corpus/templates/analytics/app/global.css +7 -7
- package/corpus/templates/analytics/app/i18n-data.ts +30 -0
- package/corpus/templates/analytics/app/lib/data-source-status.ts +2 -1
- package/corpus/templates/analytics/app/pages/DataSources.tsx +54 -10
- package/corpus/templates/analytics/changelog/2026-07-28-analytics-pages-load-reliably-with-large-dashboard-workspaces.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-28-dashboard-loading-shimmer-now-flows-smoothly-in-one-directi.md +6 -0
- package/corpus/templates/analytics/server/lib/first-party-dashboard-repair.ts +5 -4
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +54 -42
- package/corpus/templates/analytics/server/plugins/db.ts +1 -18
- package/corpus/templates/assets/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/assets/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/brain/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/brain/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/calendar/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/chat/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/chat/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/clips/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/clips/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/clips/actions/request-transcript.ts +77 -11
- package/corpus/templates/clips/actions/save-browser-transcript.ts +28 -7
- package/corpus/templates/clips/app/routes/record.tsx +11 -3
- package/corpus/templates/clips/changelog/2026-07-28-browser-recordings-no-longer-save-a-truncated-transcript-as-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-browser-recordings-no-longer-stop-transcribing-partway-throu.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-desktop-full-screen-clips-now-get-an-instant-local-transcrip.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-long-transcriptions-no-longer-show-a-false-transcription-sto.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-restarting-for-an-update-now-installs-the-newest-release-ins.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-the-meeting-recording-pill-now-anchors-to-the-right-edge-of-.md +6 -0
- package/corpus/templates/clips/desktop/src/lib/audio-meter.ts +31 -2
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +114 -13
- package/corpus/templates/clips/desktop/src/lib/updater.ts +12 -4
- package/corpus/templates/clips/desktop/src/overlays/live-audio-bars.tsx +40 -15
- package/corpus/templates/clips/desktop/src/styles.css +10 -7
- package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +21 -14
- package/corpus/templates/clips/shared/transcript-status.ts +10 -0
- package/corpus/templates/content/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/content/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/content/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/design/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/design/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/design/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +46 -3
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +7 -5
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +2 -2
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +7 -4
- package/corpus/templates/design/app/components/design/keyboard-shortcuts.ts +1 -1
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +10 -4
- package/corpus/templates/design/app/lib/design-ui-events.ts +5 -0
- package/corpus/templates/design/app/root.tsx +18 -1
- package/corpus/templates/design/changelog/2026-07-28-show-or-hide-design-editing-chrome-with-cmd-on-apple-devices.md +6 -0
- package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/dispatch/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/forms/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/forms/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/macros/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/mail/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/mail/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/plan/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/plan/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/slides/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/slides/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/tasks/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +4 -0
- package/dist/a2a/artifact-response.d.ts.map +1 -1
- package/dist/a2a/artifact-response.js +30 -29
- package/dist/a2a/artifact-response.js.map +1 -1
- package/dist/action.d.ts +36 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +37 -2
- package/dist/action.js.map +1 -1
- package/dist/chat-threads/store.d.ts +12 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +48 -42
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts +1 -1
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/design-visual-edit-skill.js +46 -3
- package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +3 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +11 -9
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +57 -6
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/DefaultSpinner.d.ts +7 -0
- package/dist/client/DefaultSpinner.d.ts.map +1 -1
- package/dist/client/DefaultSpinner.js +25 -1
- package/dist/client/DefaultSpinner.js.map +1 -1
- package/dist/client/org/TeamPage.d.ts +13 -1
- package/dist/client/org/TeamPage.d.ts.map +1 -1
- package/dist/client/org/TeamPage.js +41 -11
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/org/hooks.d.ts +37 -0
- package/dist/client/org/hooks.d.ts.map +1 -1
- package/dist/client/org/hooks.js +37 -0
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.d.ts +3 -2
- package/dist/client/org/index.d.ts.map +1 -1
- package/dist/client/org/index.js +1 -1
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/transcription/use-live-transcription.d.ts +8 -0
- package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
- package/dist/client/transcription/use-live-transcription.js +38 -11
- package/dist/client/transcription/use-live-transcription.js.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/db/client.d.ts +12 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +40 -3
- package/dist/db/client.js.map +1 -1
- package/dist/db/ensure-additive-columns.d.ts.map +1 -1
- package/dist/db/ensure-additive-columns.js +54 -32
- package/dist/db/ensure-additive-columns.js.map +1 -1
- package/dist/deploy/build.d.ts +1 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +23 -2
- package/dist/deploy/build.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/mcp-client/routes.d.ts +3 -1
- package/dist/mcp-client/routes.d.ts.map +1 -1
- package/dist/mcp-client/routes.js +8 -2
- package/dist/mcp-client/routes.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/org/app-roles-handlers.d.ts +27 -0
- package/dist/org/app-roles-handlers.d.ts.map +1 -0
- package/dist/org/app-roles-handlers.js +125 -0
- package/dist/org/app-roles-handlers.js.map +1 -0
- package/dist/org/app-roles.d.ts +136 -0
- package/dist/org/app-roles.d.ts.map +1 -0
- package/dist/org/app-roles.js +216 -0
- package/dist/org/app-roles.js.map +1 -0
- package/dist/org/index.d.ts +4 -1
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +3 -1
- package/dist/org/index.js.map +1 -1
- package/dist/org/migrations.d.ts.map +1 -1
- package/dist/org/migrations.js +22 -0
- package/dist/org/migrations.js.map +1 -1
- package/dist/org/plugin.d.ts +2 -0
- package/dist/org/plugin.d.ts.map +1 -1
- package/dist/org/plugin.js +20 -0
- package/dist/org/plugin.js.map +1 -1
- package/dist/org/schema.d.ts +143 -0
- package/dist/org/schema.d.ts.map +1 -1
- package/dist/org/schema.js +14 -0
- package/dist/org/schema.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +4 -4
- package/dist/provider-api/actions/provider-api.d.ts +12 -12
- package/dist/scripts/docs/search.d.ts.map +1 -1
- package/dist/scripts/docs/search.js +15 -0
- package/dist/scripts/docs/search.js.map +1 -1
- package/dist/scripts/docs/source-search.d.ts +7 -0
- package/dist/scripts/docs/source-search.d.ts.map +1 -1
- package/dist/scripts/docs/source-search.js +9 -0
- package/dist/scripts/docs/source-search.js.map +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/script-entries.d.ts.map +1 -1
- package/dist/server/agent-chat/script-entries.js +3 -0
- package/dist/server/agent-chat/script-entries.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +46 -48
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +6 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +42 -6
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/templates/chat/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/dist/templates/chat/.agents/skills/security/SKILL.md +31 -0
- package/dist/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
- package/dist/templates/default/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/dist/templates/default/.agents/skills/security/SKILL.md +31 -0
- package/dist/templates/headless/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
- package/dist/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
- package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
- package/docs/content/actions.mdx +47 -4
- package/docs/content/native-chat-ui.mdx +7 -0
- package/docs/content/organizations-teams-permissions.mdx +109 -3
- package/docs/content/template-design-collaboration-and-full-apps.mdx +15 -0
- package/docs/content/toolkit-org-team.mdx +72 -12
- package/package.json +1 -1
- package/src/a2a/artifact-response.ts +36 -29
- package/src/action.ts +83 -2
- package/src/chat-threads/store.ts +48 -43
- package/src/cli/skills-content/design-visual-edit-skill.ts +46 -3
- package/src/client/AgentPanel.tsx +26 -6
- package/src/client/AssistantChat.tsx +63 -7
- package/src/client/DefaultSpinner.tsx +29 -0
- package/src/client/org/TeamPage.tsx +161 -6
- package/src/client/org/hooks.ts +67 -0
- package/src/client/org/index.ts +9 -0
- package/src/client/transcription/use-live-transcription.ts +62 -10
- package/src/db/client.ts +42 -3
- package/src/db/ensure-additive-columns.ts +60 -33
- package/src/deploy/build.ts +31 -2
- package/src/mcp-client/routes.ts +10 -1
- package/src/org/app-roles-handlers.ts +152 -0
- package/src/org/app-roles.ts +355 -0
- package/src/org/index.ts +27 -1
- package/src/org/migrations.ts +22 -0
- package/src/org/plugin.ts +27 -0
- package/src/org/schema.ts +15 -0
- package/src/scripts/docs/search.ts +17 -0
- package/src/scripts/docs/source-search.ts +10 -0
- package/src/server/agent-chat/script-entries.ts +3 -0
- package/src/server/agent-chat-plugin.ts +53 -52
- package/src/server/core-routes-plugin.ts +6 -1
- package/src/server/framework-request-handler.ts +44 -6
- package/src/templates/chat/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/src/templates/chat/.agents/skills/security/SKILL.md +31 -0
- package/src/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
- package/src/templates/default/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/src/templates/default/.agents/skills/security/SKILL.md +31 -0
- package/src/templates/headless/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
- package/src/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
- package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/core/src/templates/chat/.agents/skills/actions/SKILL.md +0 -530
- package/corpus/core/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +0 -191
- package/corpus/core/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +0 -115
- package/corpus/core/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +0 -177
- package/corpus/core/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/core/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -221
- package/corpus/core/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +0 -220
- package/corpus/core/src/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +0 -263
- package/corpus/core/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/core/src/templates/chat/.agents/skills/frontend-design/SKILL.md +0 -174
- package/corpus/core/src/templates/chat/.agents/skills/real-time-sync/SKILL.md +0 -232
- package/corpus/core/src/templates/chat/.agents/skills/security/SKILL.md +0 -282
- package/corpus/core/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +0 -119
- package/corpus/core/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +0 -123
- package/corpus/core/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -122
- package/corpus/core/src/templates/chat/.env.example +0 -5
- package/corpus/core/src/templates/chat/.ignore +0 -0
- package/corpus/core/src/templates/chat/.oxfmtrc.json +0 -8
- package/corpus/core/src/templates/chat/AGENTS.md +0 -77
- package/corpus/core/src/templates/chat/CHANGELOG.md +0 -10
- package/corpus/core/src/templates/chat/DEVELOPING.md +0 -185
- package/corpus/core/src/templates/chat/README.md +0 -32
- package/corpus/core/src/templates/chat/_gitignore +0 -46
- package/corpus/core/src/templates/chat/actions/hello.ts +0 -13
- package/corpus/core/src/templates/chat/actions/navigate.ts +0 -41
- package/corpus/core/src/templates/chat/actions/run.ts +0 -2
- package/corpus/core/src/templates/chat/actions/view-screen.ts +0 -31
- package/corpus/core/src/templates/chat/app/components/layout/Header.tsx +0 -60
- package/corpus/core/src/templates/chat/app/components/layout/Layout.tsx +0 -188
- package/corpus/core/src/templates/chat/app/components/layout/Sidebar.tsx +0 -505
- package/corpus/core/src/templates/chat/app/components/ui/button.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/card.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/dropdown-menu.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/input.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/label.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/sheet.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/toolkit-provider.tsx +0 -17
- package/corpus/core/src/templates/chat/app/components/ui/tooltip.tsx +0 -1
- package/corpus/core/src/templates/chat/app/design-system.ts +0 -3
- package/corpus/core/src/templates/chat/app/entry.client.tsx +0 -22
- package/corpus/core/src/templates/chat/app/entry.server.tsx +0 -10
- package/corpus/core/src/templates/chat/app/global.css +0 -93
- package/corpus/core/src/templates/chat/app/hooks/use-navigation-state.ts +0 -93
- package/corpus/core/src/templates/chat/app/i18n/ar-SA.ts +0 -68
- package/corpus/core/src/templates/chat/app/i18n/de-DE.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/en-US.ts +0 -70
- package/corpus/core/src/templates/chat/app/i18n/es-ES.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/fr-FR.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/hi-IN.ts +0 -69
- package/corpus/core/src/templates/chat/app/i18n/index.ts +0 -34
- package/corpus/core/src/templates/chat/app/i18n/ja-JP.ts +0 -70
- package/corpus/core/src/templates/chat/app/i18n/ko-KR.ts +0 -70
- package/corpus/core/src/templates/chat/app/i18n/pt-BR.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/zh-CN.ts +0 -66
- package/corpus/core/src/templates/chat/app/i18n/zh-TW.ts +0 -66
- package/corpus/core/src/templates/chat/app/i18n-data.ts +0 -556
- package/corpus/core/src/templates/chat/app/lib/agent-page.tsx +0 -49
- package/corpus/core/src/templates/chat/app/lib/app-config.ts +0 -11
- package/corpus/core/src/templates/chat/app/lib/tab-id.ts +0 -1
- package/corpus/core/src/templates/chat/app/lib/utils.ts +0 -1
- package/corpus/core/src/templates/chat/app/root.tsx +0 -173
- package/corpus/core/src/templates/chat/app/routes/_index.tsx +0 -94
- package/corpus/core/src/templates/chat/app/routes/agent.tsx +0 -24
- package/corpus/core/src/templates/chat/app/routes/chat.$threadId.tsx +0 -1
- package/corpus/core/src/templates/chat/app/routes/database.tsx +0 -17
- package/corpus/core/src/templates/chat/app/routes/extensions.$id.$slug.tsx +0 -2
- package/corpus/core/src/templates/chat/app/routes/extensions.$id.tsx +0 -11
- package/corpus/core/src/templates/chat/app/routes/extensions._index.tsx +0 -11
- package/corpus/core/src/templates/chat/app/routes/extensions.tsx +0 -5
- package/corpus/core/src/templates/chat/app/routes/observability.tsx +0 -19
- package/corpus/core/src/templates/chat/app/routes/settings.tsx +0 -89
- package/corpus/core/src/templates/chat/app/routes/team.tsx +0 -11
- package/corpus/core/src/templates/chat/app/routes.ts +0 -4
- package/corpus/core/src/templates/chat/app/vite-env.d.ts +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +0 -5
- package/corpus/core/src/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-17-the-agent-chat-sidebar-stays-closed-until-you-open-it-or-sta.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-compact-sidebar-footer.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-recent-chats-are-easier-to-scan-and-expand.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-24-borderless-secondary-surfaces.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-24-sidebar-footer-controls-follow-a-consistent-order.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +0 -6
- package/corpus/core/src/templates/chat/components.json +0 -20
- package/corpus/core/src/templates/chat/learnings.defaults.md +0 -5
- package/corpus/core/src/templates/chat/netlify.toml +0 -11
- package/corpus/core/src/templates/chat/package.json +0 -92
- package/corpus/core/src/templates/chat/public/agent-native-icon-dark.svg +0 -10
- package/corpus/core/src/templates/chat/public/agent-native-icon-light.svg +0 -10
- package/corpus/core/src/templates/chat/public/agent-native-logo-dark.svg +0 -21
- package/corpus/core/src/templates/chat/public/agent-native-logo-light.svg +0 -21
- package/corpus/core/src/templates/chat/public/favicon.svg +0 -1
- package/corpus/core/src/templates/chat/public/icon-180.svg +0 -1
- package/corpus/core/src/templates/chat/public/icon-192.svg +0 -1
- package/corpus/core/src/templates/chat/public/icon-512.svg +0 -1
- package/corpus/core/src/templates/chat/public/manifest.json +0 -21
- package/corpus/core/src/templates/chat/react-router.config.ts +0 -7
- package/corpus/core/src/templates/chat/server/middleware/auth.ts +0 -15
- package/corpus/core/src/templates/chat/server/plugins/agent-chat.ts +0 -21
- package/corpus/core/src/templates/chat/server/plugins/auth.ts +0 -17
- package/corpus/core/src/templates/chat/server/routes/[...page].get.ts +0 -5
- package/corpus/core/src/templates/chat/ssr-entry.ts +0 -15
- package/corpus/core/src/templates/chat/tsconfig.json +0 -21
- package/corpus/core/src/templates/chat/vite.config.ts +0 -19
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: adding-a-feature
|
|
3
|
-
description: >-
|
|
4
|
-
The four-area checklist every new feature must complete. Use when adding any
|
|
5
|
-
feature, integration, or capability to ensure the agent and UI stay in parity.
|
|
6
|
-
scope: dev
|
|
7
|
-
metadata:
|
|
8
|
-
internal: true
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Adding a Feature — The Four-Area Checklist
|
|
12
|
-
|
|
13
|
-
## Rule
|
|
14
|
-
|
|
15
|
-
Every new feature MUST update all four areas. Skipping any one breaks the agent-native contract — the agent and UI must always be equal partners.
|
|
16
|
-
|
|
17
|
-
Scope check first: this is the checklist for a feature that adds app data or a new capability. A restyle, a copy change, or a screen with no new data model and no new agent-visible operation only needs the areas it actually touches — do not manufacture actions, state keys, or a skill for it.
|
|
18
|
-
|
|
19
|
-
## Why
|
|
20
|
-
|
|
21
|
-
Agent-native apps are defined by parity: everything the UI can do, the agent can do, and vice versa. A feature that only has UI is invisible to the agent. A feature that only has scripts is invisible to the user. A feature without app-state sync means the agent is blind to what the user is doing.
|
|
22
|
-
|
|
23
|
-
## The Checklist
|
|
24
|
-
|
|
25
|
-
When you add a new feature, work through these four areas in order:
|
|
26
|
-
|
|
27
|
-
### 1. UI Component
|
|
28
|
-
|
|
29
|
-
Build the user-facing interface — a page, component, dialog, or route. Use `useActionQuery` and `useActionMutation` from `@agent-native/core/client` to call actions for data fetching and mutations. Do not create a custom REST endpoint just so React can call action-backed data; the action endpoint already exists.
|
|
30
|
-
|
|
31
|
-
**Auto-refresh on agent writes is non-negotiable** — when the agent mutates data, the UI must reflect the change without a manual refresh. There are two paths, and you must pick the right one:
|
|
32
|
-
|
|
33
|
-
- **`useActionQuery` / `useActionMutation`** — covered automatically. The framework's `useDbSync` invalidates `["action"]` on every change event, so every `useActionQuery` hook refetches on agent activity. No extra wiring required. **Prefer this path.**
|
|
34
|
-
- **Raw `useQuery` with custom keys** — needs explicit wiring. Fold `useChangeVersions([<source>, "action"])` from `@agent-native/core/client` into the `queryKey` and set `placeholderData: (prev) => prev`. The `action` source is the reliable signal (the agent runner emits it after every successful tool call); the resource-specific source (`"dashboards"`, `"analyses"`, `"settings"`, etc.) is bonus when emitted. Without this wiring, agent writes will be invisible until manual refresh — that breaks the framework's #1 promise.
|
|
35
|
-
|
|
36
|
-
```tsx
|
|
37
|
-
import { useChangeVersions } from "@agent-native/core/client/hooks";
|
|
38
|
-
import { useQuery } from "@tanstack/react-query";
|
|
39
|
-
|
|
40
|
-
const v = useChangeVersions(["dashboards", "action"]);
|
|
41
|
-
useQuery({
|
|
42
|
-
queryKey: ["dashboard", id, v],
|
|
43
|
-
queryFn: () => fetchDashboard(id),
|
|
44
|
-
placeholderData: (prev) => prev, // no flicker on refetch
|
|
45
|
-
});
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
See the `real-time-sync` skill for the full pattern and source catalog.
|
|
49
|
-
|
|
50
|
-
### 2. Action
|
|
51
|
-
|
|
52
|
-
Create an action in `actions/` using `defineAction`. This serves double duty: the agent calls it as a tool, and the UI calls it through `useActionQuery` / `useActionMutation` while the framework owns the HTTP transport. Set `http: { method: "GET" }` for read actions, leave default for writes, or set `http: false` for agent-only actions like `navigate` and `view-screen`.
|
|
53
|
-
|
|
54
|
-
Before adding a new route or endpoint, inspect the existing actions. Reuse an
|
|
55
|
-
action if it already covers the business operation, extend it if the shared
|
|
56
|
-
contract is incomplete, or create a new `defineAction` if the agent and UI both
|
|
57
|
-
need the capability. Do not add pass-through `/api/*` routes that re-export
|
|
58
|
-
actions. If client code needs a new framework/app route, expose a named helper
|
|
59
|
-
or hook first and use that helper from components and docs.
|
|
60
|
-
|
|
61
|
-
For provider-backed analysis/query/reporting integrations, do not turn every
|
|
62
|
-
provider endpoint or filter into a rigid action. Prefer the shared
|
|
63
|
-
`provider-api-catalog` / `provider-api-docs` / `provider-api-request` pattern
|
|
64
|
-
from `@agent-native/core/provider-api`, then add narrow convenience actions only
|
|
65
|
-
for workflows that truly deserve a first-class shortcut. Treat this as a
|
|
66
|
-
capability requirement, not a nice-to-have: convenience actions must not become
|
|
67
|
-
the ceiling of what the agent can ask the provider to do. Pair broad provider
|
|
68
|
-
access with staging or sandboxed code execution when responses may be too large
|
|
69
|
-
for chat context. If provider credentials live on resource/share rows, add the
|
|
70
|
-
scoped resolver first so broad access preserves the same ownership boundary as
|
|
71
|
-
the app UI.
|
|
72
|
-
|
|
73
|
-
If the feature needs credentials, design the credential path in the same change.
|
|
74
|
-
Never hardcode API keys, tokens, webhook URLs, signing secrets, private
|
|
75
|
-
Builder/internal data, or customer data in the action, UI, seed data, fixtures,
|
|
76
|
-
docs, prompts, or generated extension/app content. Register required secrets,
|
|
77
|
-
use OAuth helpers, or read scoped values from the vault/credential store.
|
|
78
|
-
|
|
79
|
-
If the feature involves attachments, images, recordings, screenshots, exports,
|
|
80
|
-
or other file-like payloads, design the upload path in the same change:
|
|
81
|
-
provider upload first, then URL/id/blob handle in SQL. Do not add base64/binary
|
|
82
|
-
columns or stuff files into `application_state`.
|
|
83
|
-
|
|
84
|
-
**If the action produces or lists a navigable resource**, add a `link` builder that returns `{ url: buildDeepLink({ app, view, params }), label }`. External coding agents and MCP hosts (Claude / ChatGPT / Claude Code / Cowork / Codex, over MCP/A2A) then surface an "Open in … →" deep link that drops the user back into the running UI focused on the record — for free. If a compatible MCP host should render an inline review/edit surface, also add `mcpApp` with `embedApp()` so the action embeds the real React app route instead of a one-off HTML UI. The `link` builder and `mcpApp` metadata must be pure and synchronous (no I/O). Any external-agent read/ingest action must be `http: { method: "GET" }` + `readOnly: true` + `publicAgent: { expose: true, readOnly: true, requiresAuth: true }`. See the `external-agents` skill.
|
|
85
|
-
|
|
86
|
-
### 3. Skills / Instructions
|
|
87
|
-
|
|
88
|
-
Update `AGENTS.md` and/or create a skill in `.agents/skills/` if the feature introduces patterns the agent needs to know. At minimum, add the new actions to the action table in the template's `AGENTS.md`.
|
|
89
|
-
|
|
90
|
-
Reusable actions are part of the app contract, not just implementation detail. When an action is useful outside one screen, update agent instructions in the same change so app agents know when to call it, which arguments matter, and what output to preserve. If the capability is workflow-heavy, cross-app, provider-backed, or has a non-obvious sequence of actions, add or update a skill instead of burying the behavior in one long `AGENTS.md` paragraph.
|
|
91
|
-
|
|
92
|
-
Instruction examples may name secret keys like `SLACK_WEBHOOK`, but must use
|
|
93
|
-
placeholders such as `${keys.SLACK_WEBHOOK}` or `<SLACK_WEBHOOK>`. Do not paste
|
|
94
|
-
real keys, internal data, or customer data into instructions as examples.
|
|
95
|
-
|
|
96
|
-
If the feature adds or changes visible UI copy, prompts, toasts, labels, empty
|
|
97
|
-
states, or formatting, read `internationalization` and update the app's i18n
|
|
98
|
-
catalogs in the same change.
|
|
99
|
-
|
|
100
|
-
For app-backed skills, declare skill visibility in the app-skill manifest:
|
|
101
|
-
|
|
102
|
-
- `internal` — only the app's own agents should use it.
|
|
103
|
-
- `exported` — marketplace installs receive it, but the app does not need it loaded internally.
|
|
104
|
-
- `both` — shared between the app's internal agents and exported marketplace bundles.
|
|
105
|
-
|
|
106
|
-
### 4. Application State Sync
|
|
107
|
-
|
|
108
|
-
Expose navigation and selection state so the agent knows what the user is looking at. Write to the `navigation` app-state key on route changes. Update the `view-screen` action to fetch relevant data for the new feature. Add a `navigate` command if the agent needs to open the new view.
|
|
109
|
-
|
|
110
|
-
## Examples
|
|
111
|
-
|
|
112
|
-
### Adding "compose email" to a mail app
|
|
113
|
-
|
|
114
|
-
| Area | What to build |
|
|
115
|
-
| --------------- | ---------------------------------------------------------------------------------------- |
|
|
116
|
-
| UI | Compose panel with tabs, to/cc/bcc fields, body editor. Use `useActionQuery`/`useActionMutation` for data. |
|
|
117
|
-
| Action | `manage-draft` action (create/update/delete drafts), `send-email` action |
|
|
118
|
-
| Skills/AGENTS | Document compose state shape, draft lifecycle, action args in AGENTS.md |
|
|
119
|
-
| App-state sync | `compose-{id}` keys for each draft tab, `navigation` includes compose state |
|
|
120
|
-
|
|
121
|
-
### Adding "create form" to a forms app
|
|
122
|
-
|
|
123
|
-
| Area | What to build |
|
|
124
|
-
| --------------- | ---------------------------------------------------------------------------------------- |
|
|
125
|
-
| UI | Form builder page with drag-and-drop fields, preview, settings. Use `useActionQuery` for lists. |
|
|
126
|
-
| Action | `create-form` action, `update-form` action, `list-forms` action (GET) |
|
|
127
|
-
| Skills/AGENTS | Document form schema shape, field types, validation rules in AGENTS.md |
|
|
128
|
-
| App-state sync | `navigation` includes `{ view: "form-builder", formId: "..." }`, `view-screen` fetches form data |
|
|
129
|
-
|
|
130
|
-
### Adding "chart type" to an analytics app
|
|
131
|
-
|
|
132
|
-
| Area | What to build |
|
|
133
|
-
| --------------- | ---------------------------------------------------------------------------------------- |
|
|
134
|
-
| UI | New chart component, chart type selector in dashboard |
|
|
135
|
-
| Action | `create-chart` or `update-dashboard` action that sets chart type and config |
|
|
136
|
-
| Skills/AGENTS | Document supported chart types, config options, data requirements |
|
|
137
|
-
| App-state sync | `navigation` includes selected chart/dashboard, `view-screen` returns chart config |
|
|
138
|
-
|
|
139
|
-
## Adding a new route
|
|
140
|
-
|
|
141
|
-
Templates are single-page apps with client-side routing. The app shell (AgentSidebar + top-level nav) MUST persist across navigation — it is mounted once, either in `root.tsx` around `<Outlet />` or via a pathless `_app.tsx` layout route that all authed routes nest under.
|
|
142
|
-
|
|
143
|
-
**Never wrap each new route in its own `<AppLayout>` / `<Layout>`.** That causes React to unmount the entire app shell on every navigation, reloading the agent sidebar and destroying in-progress work.
|
|
144
|
-
|
|
145
|
-
- If the template has `<AppLayout>` in `root.tsx` — just render page content in your new route file, nothing else.
|
|
146
|
-
- If the template has `app/routes/_app.tsx` (pathless layout) — name your new route `_app.<segment>.tsx` to inherit the shell, or bare `<segment>.tsx` for public routes that should NOT have the shell.
|
|
147
|
-
- If a page needs per-route data (e.g. highlighting the active item in the sidebar), read it in the layout from `useParams()` / `useLocation()`. Don't pass it as a prop through every route file.
|
|
148
|
-
|
|
149
|
-
See the "Client-Side Routing" section in the root `CLAUDE.md` for full details.
|
|
150
|
-
|
|
151
|
-
## Anti-Patterns
|
|
152
|
-
|
|
153
|
-
- **Per-route `<AppLayout>` wrappers** — Every route file wraps its content in `<AppLayout>` or `<Layout>`. React sees a different component at the outlet on each nav and unmounts the whole shell, causing the agent sidebar to reload on every click. Mount the shell once above `<Outlet />` (root.tsx or `_app.tsx` pathless layout).
|
|
154
|
-
- **UI without actions** — The user can create forms but the agent cannot. The agent says "I don't have access to that" when it should be able to do it.
|
|
155
|
-
- **Actions without AGENTS.md** — The actions exist but the agent doesn't know about them because they're not documented. The agent reinvents solutions instead of using the actions.
|
|
156
|
-
- **Duplicate API routes** — Creating `/api/` routes for operations that actions already handle, including pass-through routes that just call or repackage an action. Use `useActionQuery`/`useActionMutation` instead.
|
|
157
|
-
- **Raw client route calls** — Teaching or adding `fetch("/_agent-native/...")`,
|
|
158
|
-
`fetch(agentNativePath(...))`, or template `/api/*` calls in components for
|
|
159
|
-
normal app work. Add a named client helper/hook and call that instead.
|
|
160
|
-
- **Features without app-state** — The agent cannot see that the user is looking at a specific form, email, or chart. It asks "which one?" instead of acting on the current selection.
|
|
161
|
-
- **Actions without UI** — The agent can do something the user cannot. This is less common but still breaks parity.
|
|
162
|
-
|
|
163
|
-
## Verification
|
|
164
|
-
|
|
165
|
-
After completing all four areas, verify:
|
|
166
|
-
|
|
167
|
-
1. Can the user perform the operation from the UI?
|
|
168
|
-
2. Can the agent perform the same operation via actions?
|
|
169
|
-
3. Does `pnpm action view-screen` show the relevant state when the user is using the feature?
|
|
170
|
-
4. Can the agent navigate to the feature view via the `navigate` action?
|
|
171
|
-
5. Is the feature documented in AGENTS.md with action names and args?
|
|
172
|
-
6. Are credentials and sensitive data supplied only through approved runtime
|
|
173
|
-
channels, with no hardcoded real keys, tokens, webhook URLs, Builder/internal
|
|
174
|
-
data, or customer data?
|
|
175
|
-
|
|
176
|
-
## One more area — sharing
|
|
177
|
-
|
|
178
|
-
If the feature stores **user-authored resources** (documents, dashboards, forms, decks, etc.), make them ownable so they get private-by-default semantics and a share dialog for free. See the `sharing` skill.
|
|
179
|
-
|
|
180
|
-
TL;DR: spread `ownableColumns()` into the resource table, pair it with `createSharesTable(...)`, call `registerShareableResource(...)`, wrap list/read queries with `accessFilter`, guard writes with `assertAccess`, and drop `<ShareButton>` in the resource header. The `share-resource`, `unshare-resource`, `list-resource-shares`, and `set-resource-visibility` actions are auto-mounted framework-wide.
|
|
181
|
-
|
|
182
|
-
## Related Skills
|
|
183
|
-
|
|
184
|
-
- **sharing** — How to make a new resource ownable (private by default, share with users/orgs/public)
|
|
185
|
-
- **context-awareness** — How to expose UI state to the agent (area 4 in detail)
|
|
186
|
-
- **actions** — How to create actions with `defineAction` and the `http` option (area 2 in detail)
|
|
187
|
-
- **external-agents** — Add a `link` builder so external agents (MCP/A2A) get an "Open in … →" deep link
|
|
188
|
-
- **create-skill** — How to create skills for new patterns (area 3 in detail)
|
|
189
|
-
- **storing-data** — Where to store the feature's data
|
|
190
|
-
- **real-time-sync** — How the UI stays in sync when the agent writes data
|
|
191
|
-
- **internationalization** — How to update localized UI copy and catalogs
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agent-native-docs
|
|
3
|
-
description: >-
|
|
4
|
-
How to find version-matched Agent Native framework docs and source bundled in
|
|
5
|
-
node_modules. Use before implementing or answering questions about
|
|
6
|
-
@agent-native/core APIs, generated apps, workspaces, templates, or advanced
|
|
7
|
-
features.
|
|
8
|
-
scope: dev
|
|
9
|
-
metadata:
|
|
10
|
-
internal: true
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Agent Native Docs Lookup
|
|
14
|
-
|
|
15
|
-
## Rule
|
|
16
|
-
|
|
17
|
-
Before implementing or explaining non-trivial Agent Native behavior, read the
|
|
18
|
-
version-matched docs installed with `@agent-native/core`. When examples,
|
|
19
|
-
imports, or implementation details matter, inspect the packaged source corpus
|
|
20
|
-
too.
|
|
21
|
-
|
|
22
|
-
## Why
|
|
23
|
-
|
|
24
|
-
Generated apps and workspaces may be on a different framework version than the
|
|
25
|
-
public docs or model memory. The installed package is the source that matches
|
|
26
|
-
the app in front of you. It also includes a source-only corpus of core and
|
|
27
|
-
first-party templates so agents can replicate current best-practice patterns
|
|
28
|
-
without needing the framework monorepo checkout.
|
|
29
|
-
|
|
30
|
-
## How
|
|
31
|
-
|
|
32
|
-
From a generated app directory:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
pnpm action docs-search --query "<feature>"
|
|
36
|
-
pnpm action docs-search --slug <slug>
|
|
37
|
-
pnpm action docs-search --list
|
|
38
|
-
pnpm action source-search --query "<pattern>"
|
|
39
|
-
pnpm action source-search --path templates/plan/AGENTS.md
|
|
40
|
-
pnpm action source-search --path toolkit/src/index.ts
|
|
41
|
-
pnpm action source-search --list
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
The headless `pnpm agent` loop and built-in app agent also expose a read-only
|
|
45
|
-
`docs-search` tool with the same `query`, `slug`, and `list` options, plus a
|
|
46
|
-
read-only `source-search` tool with `query`, `path`, and `list`.
|
|
47
|
-
|
|
48
|
-
If the action runner is unavailable, search the package directly:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
rg -n "actions|automations|a2a|sharing" node_modules/@agent-native/core/docs
|
|
52
|
-
rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Then read `node_modules/@agent-native/core/docs/AGENTS.md` or the matching file
|
|
56
|
-
under `node_modules/@agent-native/core/docs/content/`. For source examples,
|
|
57
|
-
read files under `node_modules/@agent-native/core/corpus/core/` or
|
|
58
|
-
`node_modules/@agent-native/core/corpus/templates/`.
|
|
59
|
-
|
|
60
|
-
Toolkit source is searchable at `toolkit/` in the Core corpus and also ships as
|
|
61
|
-
readable TypeScript under `node_modules/@agent-native/toolkit/src/`. Read
|
|
62
|
-
`customizing-agent-native` before taking ownership of a shared component: inspect package
|
|
63
|
-
source as a read-only reference, then configure, compose, or eject the smallest
|
|
64
|
-
supported unit into app-owned source. Preserve public actions, application
|
|
65
|
-
state, auth, and agent-chat runtime contracts. Never edit `node_modules` or
|
|
66
|
-
deep-import its private source. Manual copying is only the fallback described by
|
|
67
|
-
an unknown third-party package's add-style blueprint.
|
|
68
|
-
|
|
69
|
-
## Reuse Proven Patterns (rg + cp)
|
|
70
|
-
|
|
71
|
-
Version-matched installed source outranks web docs or memory: it is the exact
|
|
72
|
-
code shipping with this app. `node_modules/@agent-native/core/corpus/templates/`
|
|
73
|
-
holds source for every first-party template, not just the one this app started
|
|
74
|
-
from, so a pattern from the mail template is fair game for a tasks app. Grep
|
|
75
|
-
across it, then copy a whole file as a starting point instead of writing the
|
|
76
|
-
pattern from scratch:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
# Find how other templates solved a similar problem
|
|
80
|
-
rg -n "drag.*drop|reorder" node_modules/@agent-native/core/corpus/templates
|
|
81
|
-
|
|
82
|
-
# Grab a proven action file as a starting point, then adapt names/schema
|
|
83
|
-
cp node_modules/@agent-native/core/corpus/templates/mail/actions/archive-email.ts \
|
|
84
|
-
actions/archive-item.ts
|
|
85
|
-
|
|
86
|
-
# Read the full framework source behind an API, not just the corpus copy
|
|
87
|
-
rg -n "defineAction" node_modules/@agent-native/core/src/action.ts
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Copying template-level app code (actions, components, skill files) is the
|
|
91
|
-
expected reuse path — templates exist to be forked. This is different from
|
|
92
|
-
copying `core`/`toolkit` **runtime internals**: for those, follow
|
|
93
|
-
`customizing-agent-native`'s configure/compose/eject ladder instead of
|
|
94
|
-
hand-duplicating framework logic.
|
|
95
|
-
|
|
96
|
-
## Useful Slugs
|
|
97
|
-
|
|
98
|
-
| Need | Slugs |
|
|
99
|
-
| ------------------------------ | ------------------------------------------------------------- |
|
|
100
|
-
| Actions and typed client calls | `actions`, `client` |
|
|
101
|
-
| SQL, auth, access, sharing | `database`, `authentication`, `security`, `sharing` |
|
|
102
|
-
| UI state visible to the agent | `context-awareness` |
|
|
103
|
-
| Headless and chat-first apps | `pure-agent-apps`, `agent-surfaces`, `using-your-agent` |
|
|
104
|
-
| Automations and schedules | `automations`, `recurring-jobs` |
|
|
105
|
-
| Cross-app and external agents | `a2a-protocol`, `external-agents`, `mcp-protocol`, `mcp-apps` |
|
|
106
|
-
| Skills and instructions | `skills-guide`, `writing-agent-instructions` |
|
|
107
|
-
|
|
108
|
-
## Don't
|
|
109
|
-
|
|
110
|
-
- Do not rely on memory for framework APIs when package docs are present.
|
|
111
|
-
- Do not add custom REST wrappers for app data before reading `actions`.
|
|
112
|
-
- Do not add inline LLM calls before reading `using-your-agent` and
|
|
113
|
-
`agent-surfaces`.
|
|
114
|
-
- Do not copy framework runtime internals when a public API or narrow UI copy
|
|
115
|
-
will do; read `customizing-agent-native` for the supported override ladder.
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agent-native-toolkit
|
|
3
|
-
description: >-
|
|
4
|
-
Inventory and ownership rules for shared Agent Native workspace UI. Use
|
|
5
|
-
before building app chrome, settings, navigation, sharing, collaboration,
|
|
6
|
-
setup, history, comments, chat rails, agent UX, or repeated workspace behavior.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Agent-Native Toolkit
|
|
13
|
-
|
|
14
|
-
Use this skill when deciding whether app chrome, settings, collaboration,
|
|
15
|
-
sharing, navigation, organization, setup, history, comments, or agent UX should
|
|
16
|
-
be built app-locally or moved into reusable framework/toolkit pieces.
|
|
17
|
-
|
|
18
|
-
## Core Rule
|
|
19
|
-
|
|
20
|
-
Apps own domain models, domain actions, and product-specific workflows. The
|
|
21
|
-
framework and `@agent-native/toolkit` own repeated workspace behavior users
|
|
22
|
-
expect to work the same everywhere.
|
|
23
|
-
|
|
24
|
-
Move behavior into shared toolkit primitives when it is:
|
|
25
|
-
|
|
26
|
-
- workspace-wide, such as settings, nav, search, org membership, or setup
|
|
27
|
-
- agent-visible, such as context, actions, run progress, or proof-of-done
|
|
28
|
-
- governed, such as secrets, permissions, sharing, audit, or billing
|
|
29
|
-
- repeated by two or more apps
|
|
30
|
-
- not tied to one domain model
|
|
31
|
-
|
|
32
|
-
Keep behavior app-local when the abstraction would hide important domain
|
|
33
|
-
language or make a simple app-specific workflow harder to understand.
|
|
34
|
-
|
|
35
|
-
## Discover Before Building
|
|
36
|
-
|
|
37
|
-
Before creating an app-local version of repeated workspace or agent UI:
|
|
38
|
-
|
|
39
|
-
1. Check the reusable kits below and the installed package documentation.
|
|
40
|
-
2. Search installed public components and source with `docs-search` and
|
|
41
|
-
`source-search`.
|
|
42
|
-
3. Run `agent-native eject --list` to see the version-matched units published
|
|
43
|
-
by the packages installed in this app.
|
|
44
|
-
4. Read `customizing-agent-native` and configure, compose, or eject the
|
|
45
|
-
smallest unit instead of recreating shared behavior from memory.
|
|
46
|
-
|
|
47
|
-
Use public package exports at runtime. Published source and ejection manifests
|
|
48
|
-
are discovery and ownership-transfer mechanisms, not private runtime APIs.
|
|
49
|
-
|
|
50
|
-
## Design-System Boundary
|
|
51
|
-
|
|
52
|
-
Every app keeps an explicit design-system seam in `app/design-system.ts` using
|
|
53
|
-
`defineDesignSystem` from `@agent-native/toolkit/design-system`, and supplies it
|
|
54
|
-
to `ToolkitProvider`. The semantic contract contains:
|
|
55
|
-
|
|
56
|
-
- nine leaf components: `ActionButton`, `IconButton`, `TextField`, `TextArea`,
|
|
57
|
-
`Spinner`, `Skeleton`, `Status`, `Surface`, and `Avatar`
|
|
58
|
-
- eight behavior components: `Tooltip`, `Menu`, `Popover`, `Dialog`, `Picker`,
|
|
59
|
-
`Checkbox`, `Switch`, and `Tabs`
|
|
60
|
-
|
|
61
|
-
These are semantic contracts, not styling contracts. An adapter may use
|
|
62
|
-
Tailwind/shadcn, MUI-style theme providers, React Aria, CSS modules, CSS-in-JS,
|
|
63
|
-
or another React design system. Do not assume CVA, utility classes, or even a
|
|
64
|
-
`className`; behavior adapters may supply their overlay and focus
|
|
65
|
-
implementation wholesale while honoring portal, focus-restoration, keyboard,
|
|
66
|
-
dismissal, ARIA, and z-index interoperability.
|
|
67
|
-
|
|
68
|
-
Pages, routes, and domain components import ordinary controls through the app's
|
|
69
|
-
local adapter layer, usually `@/components/ui/*`. They must not import
|
|
70
|
-
`@agent-native/toolkit/ui/*` directly. Toolkit feature exports are still the
|
|
71
|
-
right home for shared workspace behavior; their presentation flows through the
|
|
72
|
-
registered semantic components, feature controller, and product-level slots.
|
|
73
|
-
|
|
74
|
-
Customer adapter packages are normal npm packages imported explicitly by the
|
|
75
|
-
app. Never auto-detect them or load React components from JSON. Run the adapter
|
|
76
|
-
against `@agent-native/toolkit/conformance` in customer CI before adopting it.
|
|
77
|
-
|
|
78
|
-
## Settings Direction
|
|
79
|
-
|
|
80
|
-
Durable settings belong in the Settings app or a registered settings route. The
|
|
81
|
-
agent sidebar should not become a second settings app. It can show contextual
|
|
82
|
-
quick controls and deep links such as:
|
|
83
|
-
|
|
84
|
-
- `/settings/ai`
|
|
85
|
-
- `/settings/connections`
|
|
86
|
-
- `/settings/secrets`
|
|
87
|
-
- `/settings/usage`
|
|
88
|
-
- `/settings/apps/:appId`
|
|
89
|
-
|
|
90
|
-
The shared Account section is the canonical profile surface at
|
|
91
|
-
`/settings#account`. It owns the editable display name and existing avatar
|
|
92
|
-
control through the authenticated `get-user-profile` and `update-user-profile`
|
|
93
|
-
actions. Shared workspace chrome such as `OrgSwitcher` should link to this
|
|
94
|
-
surface rather than creating an app-local profile page.
|
|
95
|
-
|
|
96
|
-
When adding a new API key, OAuth grant, provider connection, model selector, app
|
|
97
|
-
preference, notification preference, or usage/billing surface, register it as a
|
|
98
|
-
settings tab or app settings panel first. Only add sidebar UI when it is needed
|
|
99
|
-
in the moment of agent use.
|
|
100
|
-
|
|
101
|
-
## Reusable Kits
|
|
102
|
-
|
|
103
|
-
- **Settings kit**: a searchable settings page with account, workspace, AI
|
|
104
|
-
models, LLM keys, connections, secrets, usage, notifications, changelog, and
|
|
105
|
-
app-specific panels. Search is on by default; register a `SettingsSearchEntry`
|
|
106
|
-
per control so users find settings by name across tabs.
|
|
107
|
-
- **Collaboration kit**: Yjs docs, presence, agent presence, live cursors,
|
|
108
|
-
remote selections, recent edit highlights, real-time sync indicators, and
|
|
109
|
-
undo/redo grouping.
|
|
110
|
-
- **Sharing kit**: private/workspace/org/public-link access, invites, roles,
|
|
111
|
-
expirations, agent-readable links, and resource registration.
|
|
112
|
-
- **Navigation and command kit**: app shell, side nav, breadcrumbs, app switcher,
|
|
113
|
-
command palette entries, recent resources, pinned resources, and global search.
|
|
114
|
-
- **Organization kit**: folders, tags, favorites, archive, trash, ownership,
|
|
115
|
-
membership, and common resource metadata.
|
|
116
|
-
- **Setup and connections kit**: declarative setup requirements, model readiness,
|
|
117
|
-
missing-secret states, OAuth grants, and provider connection health.
|
|
118
|
-
- **Agent UX kit**: sidebar, composer, staged context, mentions, voice, human
|
|
119
|
-
approval, generative UI, progress, and screen-state exposure.
|
|
120
|
-
- **Chat history kit**: presentational chat lists and recent-chat rails belong
|
|
121
|
-
in Toolkit; Core keeps thread persistence, agent execution, transport, and
|
|
122
|
-
page-to-sidebar handoff. Use Toolkit's `ChatHistoryRail` for the standard
|
|
123
|
-
five-item sidebar preview and a footer row with New chat followed by an
|
|
124
|
-
ellipsis disclosure up to fifteen. Apps inject routing, labels, and domain
|
|
125
|
-
actions.
|
|
126
|
-
- **Agent page kit**: the full-page `/agent` surface (`AgentTabsPage` from
|
|
127
|
-
`@agent-native/core/client`) with Context, Files, Connections, Jobs, and
|
|
128
|
-
Access tabs plus a Personal/Organization scope toggle. The canonical home
|
|
129
|
-
for context transparency, MCP servers, A2A remote agents, recurring
|
|
130
|
-
jobs/automations, and external-client connect flows. See the `agent-page`
|
|
131
|
-
skill.
|
|
132
|
-
- **History and recovery kit**: audit log, activity feed, version history,
|
|
133
|
-
checkpoints, undo, redo, restore, and proof-of-done.
|
|
134
|
-
- **Comments and review kit**: anchored comments, pins, mentions, review
|
|
135
|
-
requests, resolved threads, agent follow-up tasks, and notifications.
|
|
136
|
-
- **Workflow and observability kit**: notifications, approvals, scheduled work,
|
|
137
|
-
background runs, recurring jobs, traces, evals, feedback, and run timelines.
|
|
138
|
-
|
|
139
|
-
## Implementation Checklist
|
|
140
|
-
|
|
141
|
-
When adding or refactoring one of these areas:
|
|
142
|
-
|
|
143
|
-
1. Search existing framework and template code for duplicated UI or actions.
|
|
144
|
-
2. Decide the shared contract: data shape, action API, feature-level headless
|
|
145
|
-
controller, default view, semantic components, and product-level render
|
|
146
|
-
slots.
|
|
147
|
-
3. Keep shared data provider-agnostic and scoped by auth/sharing rules.
|
|
148
|
-
4. Expose the same capability to the UI and agent through actions or documented
|
|
149
|
-
client helpers.
|
|
150
|
-
5. Register app-specific labels, routes, resource adapters, and settings panels
|
|
151
|
-
instead of hardcoding app names in core UI.
|
|
152
|
-
6. Update docs and relevant skills so future apps discover the shared path.
|
|
153
|
-
7. Keep the component easy to adopt piecemeal: expose props/slots first and
|
|
154
|
-
ship readable source plus a complete ejection unit so apps can take ownership
|
|
155
|
-
of the smallest feature when needed. See `customizing-agent-native` for the
|
|
156
|
-
configure → compose → eject → propose seam ladder.
|
|
157
|
-
8. Keep one controller as the source of truth for the default and custom render
|
|
158
|
-
paths. A custom design must not fork actions, analytics, async state, or
|
|
159
|
-
accessibility behavior.
|
|
160
|
-
9. Verify the default adapter and at least one non-Tailwind adapter with the
|
|
161
|
-
conformance kit, including focus and portal stacking across mixed overlay
|
|
162
|
-
implementations.
|
|
163
|
-
|
|
164
|
-
## Related Skills
|
|
165
|
-
|
|
166
|
-
Read these alongside this skill when the work touches the specific area:
|
|
167
|
-
|
|
168
|
-
- `sharing`
|
|
169
|
-
- `real-time-collab`
|
|
170
|
-
- `real-time-sync`
|
|
171
|
-
- `client-side-routing`
|
|
172
|
-
- `context-awareness`
|
|
173
|
-
- `onboarding`
|
|
174
|
-
- `secrets`
|
|
175
|
-
- `audit-log`
|
|
176
|
-
- `observability`
|
|
177
|
-
- `frontend-design`
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: capture-learnings
|
|
3
|
-
description: >-
|
|
4
|
-
Capture and apply accumulated knowledge via structured memory. Use when the
|
|
5
|
-
user gives feedback, shares preferences, corrects a mistake, or when you
|
|
6
|
-
discover something worth remembering for future conversations.
|
|
7
|
-
user-invocable: false
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Capture Learnings
|
|
13
|
-
|
|
14
|
-
This is background knowledge, not a slash command. **Organization learnings and your personal memory index are loaded at the start of every conversation, including Slack/integration turns.** Capture durable context proactively when you learn something worth remembering.
|
|
15
|
-
|
|
16
|
-
## How to Read & Write Memories
|
|
17
|
-
|
|
18
|
-
Memories are stored as **resources** in the SQL database, not as files on disk.
|
|
19
|
-
|
|
20
|
-
- **Team/organization knowledge:** shared `LEARNINGS.md`. Read it first, merge the new fact, then write the full updated file with the `resources` tool using `scope: "shared"`. Shared scope resolves to the active organization; it must never leak to another organization in the same deployment.
|
|
21
|
-
- **Personal knowledge:** `memory/MEMORY.md` plus `memory/<name>.md`, written with `save-memory`.
|
|
22
|
-
|
|
23
|
-
- **Save a memory:** `save-memory --name <name> --type <type> --description "..." --content "..."`
|
|
24
|
-
- **Read a memory:** `resource-read --path memory/<name>.md`
|
|
25
|
-
- **Delete a memory:** `delete-memory --name <name>`
|
|
26
|
-
- **List all memories:** `resource-list --prefix memory/`
|
|
27
|
-
|
|
28
|
-
## Memory Types
|
|
29
|
-
|
|
30
|
-
| Type | Use for |
|
|
31
|
-
|------|---------|
|
|
32
|
-
| `user` | Preferences, role, personal context, contacts |
|
|
33
|
-
| `feedback` | Corrections, confirmed approaches, things to avoid or repeat |
|
|
34
|
-
| `project` | Ongoing work context, decisions, deadlines, status |
|
|
35
|
-
| `reference` | Pointers to external systems, URLs, API details |
|
|
36
|
-
|
|
37
|
-
## When to Capture
|
|
38
|
-
|
|
39
|
-
### Team and organization knowledge (`LEARNINGS.md`, shared scope)
|
|
40
|
-
- Canonical destinations and workflows (for example, which Content database receives a type of Slack request)
|
|
41
|
-
- Required intake fields, ownership, prioritization conventions, metric definitions, and approved terminology
|
|
42
|
-
- Durable external references that the whole team needs, including the canonical page/database URL
|
|
43
|
-
- Corrections or decisions that should affect every organization member's future Slack and app conversations
|
|
44
|
-
|
|
45
|
-
Store the fact and a concise provenance link when available. Do not paste full private conversations, customer data, credentials, or secrets into learnings. Put stable always-on policy in shared `AGENTS.md`; put learned facts and evolving conventions in shared `LEARNINGS.md`.
|
|
46
|
-
|
|
47
|
-
### User Preferences & Memory (`user`)
|
|
48
|
-
- **Tone and style** — "I prefer casual tone", "don't use emojis", "keep replies short"
|
|
49
|
-
- **Personal context** — contacts, relationships, habits ("my wife's email is...", "I'm in PST timezone")
|
|
50
|
-
- **Workflow preferences** — "always CC my assistant", "I like to review before sending"
|
|
51
|
-
- **Role and expertise** — "I'm a data scientist", "new to React"
|
|
52
|
-
|
|
53
|
-
### Feedback & Corrections (`feedback`)
|
|
54
|
-
- **Corrections** — user says "no, do it this way" → capture the right way
|
|
55
|
-
- **Confirmed approaches** — user validates a non-obvious choice ("yes, that's perfect")
|
|
56
|
-
- **Repeated friction** — you hit the same issue twice; save it
|
|
57
|
-
|
|
58
|
-
### Project Context (`project`)
|
|
59
|
-
- **Ongoing work** — who is doing what, why, by when
|
|
60
|
-
- **Decisions** — why something is done a certain way
|
|
61
|
-
- **Status** — current state of initiatives
|
|
62
|
-
|
|
63
|
-
### References (`reference`)
|
|
64
|
-
- **External systems** — "bugs are tracked in Linear project INGEST"
|
|
65
|
-
- **URLs** — dashboards, documentation, tools
|
|
66
|
-
- **API quirks** — undocumented behavior, version-specific gotchas
|
|
67
|
-
|
|
68
|
-
### Don't Capture
|
|
69
|
-
- Things obvious from reading the code
|
|
70
|
-
- Standard language/framework behavior
|
|
71
|
-
- Temporary debugging notes
|
|
72
|
-
- Anything already in AGENTS.md, shared LEARNINGS.md, or skills
|
|
73
|
-
- Ephemeral task details (use tasks/plans instead)
|
|
74
|
-
|
|
75
|
-
## Key Rules
|
|
76
|
-
|
|
77
|
-
1. **Save proactively — don't ask permission.** When you learn something durable, save it immediately at the correct scope.
|
|
78
|
-
2. **Choose scope by audience.** Organization workflow or reference → shared `LEARNINGS.md`; one person's preference/context → personal memory.
|
|
79
|
-
3. **One memory per topic** — e.g. `coding-style`, `project-alpha`, not one giant dump
|
|
80
|
-
4. **Read before updating** — if a memory exists, read it first and merge, don't overwrite
|
|
81
|
-
5. **Keep descriptions concise** — the index is loaded every conversation
|
|
82
|
-
6. **Memories are SQL-backed** — they persist across sessions and are not in git; still minimize sensitive content
|
|
83
|
-
|
|
84
|
-
## Graduation
|
|
85
|
-
|
|
86
|
-
When a memory is referenced repeatedly, it may belong in AGENTS.md or a skill:
|
|
87
|
-
- Saving a personal memory is lightweight (auto-apply, personal scope)
|
|
88
|
-
- Shared LEARNINGS.md is the lightweight organization knowledge layer
|
|
89
|
-
- Updating AGENTS.md or a skill is heavier (affects all users/agents)
|