@agent-native/core 0.152.1 → 0.153.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 +1 -1
- package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/analytics/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +6 -4
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/analytics/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/analytics/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/analytics/actions/data-source-status.ts +4 -1
- package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +2 -2
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +7 -2
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +7 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +30 -32
- package/corpus/templates/analytics/app/components/layout/layout-route-policy.ts +10 -0
- package/corpus/templates/analytics/app/global.css +5 -1
- package/corpus/templates/analytics/app/lib/data-source-status.ts +3 -3
- package/corpus/templates/analytics/app/lib/resource-access.ts +6 -1
- package/corpus/templates/analytics/app/pages/DataSources.tsx +79 -51
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -0
- package/corpus/templates/analytics/changelog/2026-08-12-analytics-sidebar-ask-toggle-and-compact-rail.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-12-data-source-statuses-now-distinguish-workspace-access-from-c.md +6 -0
- package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +559 -147
- package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +79 -5
- package/corpus/templates/analytics/server/plugins/db.ts +84 -0
- package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/assets/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/assets/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/assets/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +13 -5
- package/corpus/templates/assets/app/lib/asset-urls.ts +13 -0
- package/corpus/templates/assets/app/routes/asset.$id.tsx +16 -6
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +1 -0
- package/corpus/templates/assets/app/routes/library.tsx +336 -78
- package/corpus/templates/assets/shared/api.ts +1 -1
- package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/brain/.agents/skills/brain/SKILL.md +8 -6
- package/corpus/templates/brain/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +7 -0
- package/corpus/templates/brain/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/brain/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/brain/AGENTS.md +2 -1
- package/corpus/templates/brain/actions/ask-brain.ts +19 -16
- package/corpus/templates/brain/actions/create-source.ts +11 -2
- package/corpus/templates/brain/actions/import-markdown-files.ts +237 -0
- package/corpus/templates/brain/actions/resanitize-captures.ts +3 -1
- package/corpus/templates/brain/actions/test-slack-connection.ts +12 -3
- package/corpus/templates/brain/actions/update-source.ts +10 -1
- package/corpus/templates/brain/app/components/brain/Surface.tsx +1 -11
- package/corpus/templates/brain/app/i18n-data.ts +111 -0
- package/corpus/templates/brain/app/lib/brain.ts +23 -1
- package/corpus/templates/brain/app/routes/knowledge.tsx +0 -2
- package/corpus/templates/brain/app/routes/ops.tsx +0 -2
- package/corpus/templates/brain/app/routes/review.tsx +0 -2
- package/corpus/templates/brain/app/routes/search.tsx +0 -2
- package/corpus/templates/brain/app/routes/sources.tsx +354 -6
- package/corpus/templates/brain/server/lib/brain-response-guard.ts +63 -1
- package/corpus/templates/brain/server/lib/brain.ts +9 -6
- package/corpus/templates/brain/server/lib/connectors.ts +20 -6
- package/corpus/templates/brain/server/lib/search.ts +9 -1
- package/corpus/templates/brain/server/lib/source-credentials.ts +95 -57
- package/corpus/templates/brain/server/plugins/agent-chat.ts +5 -2
- package/corpus/templates/brain/server/plugins/auth.ts +2 -0
- package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/calendar/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/calendar/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/calendar/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +1 -0
- package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/chat/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/chat/AGENTS.md +4 -5
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/clips/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/clips/actions/add-comment.ts +1 -2
- package/corpus/templates/clips/actions/delete-comment.ts +2 -0
- package/corpus/templates/clips/actions/get-recording-insights.ts +9 -8
- package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -1
- package/corpus/templates/clips/actions/react-to-comment.ts +1 -1
- package/corpus/templates/clips/actions/react-to-recording.ts +1 -1
- package/corpus/templates/clips/actions/reply-to-comment.ts +1 -1
- package/corpus/templates/clips/actions/resolve-comment.ts +1 -2
- package/corpus/templates/clips/actions/update-comment.ts +1 -1
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +1 -0
- package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +59 -16
- package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +12 -8
- package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +3 -1
- package/corpus/templates/clips/app/components/player/video-player.tsx +1 -1
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +2 -1
- package/corpus/templates/clips/app/lib/public-meeting.ts +1 -1
- package/corpus/templates/clips/app/lib/thumbnail-capture.ts +71 -0
- package/corpus/templates/clips/app/lib/thumbnail-picker-state.ts +93 -0
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +25 -19
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -0
- package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +1 -1
- package/corpus/templates/clips/changelog/2026-08-11-clips-asks-to-take-notes-again-when-you-join-an-adhoc-zoom-o.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +166 -14
- package/corpus/templates/clips/desktop/src-tauri/src/call_activity.rs +146 -0
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
- package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +2 -122
- package/corpus/templates/clips/server/lib/recording-page-access.ts +6 -1
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +5 -0
- package/corpus/templates/clips/shared/share-meta.ts +19 -3
- package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/content/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/content/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/content/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/content/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/content/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/content/actions/_database-utils.ts +10 -0
- package/corpus/templates/content/actions/add-comment.ts +1 -1
- package/corpus/templates/content/actions/attach-content-database-source.ts +158 -61
- package/corpus/templates/content/actions/create-document.ts +1 -0
- package/corpus/templates/content/actions/delete-comment.ts +1 -1
- package/corpus/templates/content/actions/get-document.ts +9 -1
- package/corpus/templates/content/actions/import-content-source.ts +8 -0
- package/corpus/templates/content/actions/list-documents.ts +10 -1
- package/corpus/templates/content/actions/update-comment.ts +1 -1
- package/corpus/templates/content/actions/update-document.ts +11 -0
- package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +52 -29
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +13 -8
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +62 -2
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +163 -53
- package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +16 -0
- package/corpus/templates/content/app/components/editor/database/settings.tsx +22 -13
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +7 -7
- package/corpus/templates/content/app/hooks/use-documents.ts +2 -0
- package/corpus/templates/content/app/i18n-data.ts +10 -0
- package/corpus/templates/content/app/root.tsx +1 -21
- package/corpus/templates/content/changelog/2026-08-05-connect-sources-from-add-column.md +6 -0
- package/corpus/templates/content/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/content/shared/api.ts +7 -1
- package/corpus/templates/crm/.agents/skills/actions/SKILL.md +146 -0
- package/corpus/templates/crm/.agents/skills/actions/references/action-fields.md +136 -0
- package/corpus/templates/crm/.agents/skills/actions/references/examples.md +94 -0
- package/corpus/templates/crm/.agents/skills/actions/references/provider-apis.md +95 -0
- package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/crm/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/crm/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +296 -0
- package/corpus/templates/crm/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/crm/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/crm/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/crm/.agents/skills/security/SKILL.md +324 -0
- package/corpus/templates/crm/.agents/skills/self-modifying-code/SKILL.md +123 -0
- package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +123 -0
- package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/crm/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/design/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/design/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/design/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/design/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/design/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/design/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -2
- package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +6 -18
- package/corpus/templates/design/app/i18n/en-US.ts +1 -1
- package/corpus/templates/design/app/i18n-data.ts +40 -0
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +153 -131
- package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -61
- package/corpus/templates/design/app/pages/Present.tsx +8 -2
- package/corpus/templates/design/app/pages/Templates.tsx +1 -0
- package/corpus/templates/design/app/pages/design-editor/tool-state.ts +4 -1
- package/corpus/templates/design/app/pages/design-editor/types.ts +6 -1
- package/corpus/templates/design/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/dispatch/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/dispatch/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/dispatch/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/dispatch/actions/apply-workspace-connection-setup.ts +97 -15
- package/corpus/templates/dispatch/actions/connection-permissions.ts +77 -0
- package/corpus/templates/dispatch/actions/delete-workspace-connection.ts +12 -2
- package/corpus/templates/dispatch/actions/list-workspace-user-groups.ts +19 -0
- package/corpus/templates/dispatch/actions/plan-workspace-connection-setup.ts +9 -2
- package/corpus/templates/dispatch/actions/set-workspace-connection-grant.ts +21 -2
- package/corpus/templates/dispatch/actions/upsert-workspace-connection.ts +66 -1
- package/corpus/templates/dispatch/actions/upsert-workspace-user-group.ts +27 -0
- package/corpus/templates/dispatch/app/chat-first-pages.ts +84 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +3989 -3527
- package/corpus/templates/dispatch/app/routes/integrations.tsx +1568 -685
- package/corpus/templates/dispatch/app/routes/settings.tsx +14 -9
- package/corpus/templates/dispatch/changelog/2026-08-12-search-and-pin-workspace-apps-from-the-app-catalog.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-08-12-workspace-integration-access-now-shows-exactly-which-apps-ca.md +6 -0
- package/corpus/templates/dispatch/server/lib/app-roles.ts +5 -0
- package/corpus/templates/dispatch/shared/app-roles.ts +1 -0
- package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/factory/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/factory/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/factory/AGENTS.md +10 -1
- package/corpus/templates/factory/README.md +18 -7
- package/corpus/templates/factory/actions/list-triage-items.ts +10 -4
- package/corpus/templates/factory/actions/poll-github-sources.ts +53 -14
- package/corpus/templates/factory/actions/poll-sentry-errors.ts +31 -13
- package/corpus/templates/factory/actions/poll-slack-channel.ts +41 -5
- package/corpus/templates/factory/actions/provider-api-catalog.ts +13 -0
- package/corpus/templates/factory/actions/provider-api-docs.ts +11 -0
- package/corpus/templates/factory/actions/provider-api-request.ts +17 -0
- package/corpus/templates/factory/actions/save-triage-config.ts +87 -38
- package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +14 -12
- package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +60 -77
- package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +66 -125
- package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/factory/app/components/layout/Layout.tsx +8 -3
- package/corpus/templates/factory/app/components/layout/Sidebar.tsx +9 -5
- package/corpus/templates/factory/app/components/ui/input.tsx +15 -1
- package/corpus/templates/factory/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/textarea.tsx +20 -1
- package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -3
- package/corpus/templates/factory/app/i18n/en-US.ts +17 -0
- package/corpus/templates/factory/app/routes/_index.tsx +5 -87
- package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -1
- package/corpus/templates/factory/app/routes/chat.tsx +91 -0
- package/corpus/templates/factory/app/routes/factory.tsx +554 -427
- package/corpus/templates/factory/app/routes/settings.tsx +1 -1
- package/corpus/templates/factory/server/connectors/credentials.ts +25 -0
- package/corpus/templates/factory/server/lib/provider-api.ts +34 -0
- package/corpus/templates/factory/server/plugins/agent-chat.ts +15 -3
- package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +96 -24
- package/corpus/templates/factory/server/triage/review-state.ts +33 -0
- package/corpus/templates/factory/server/triage/slack-poller.ts +1 -0
- package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/forms/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/forms/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/forms/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +1 -0
- package/corpus/templates/forms/shared/types.ts +1 -1
- package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/macros/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/macros/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/macros/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/macros/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/macros/.agents/skills/self-modifying-code/SKILL.md +123 -0
- package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/macros/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/mail/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/mail/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/mail/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/mail/actions/send-email.ts +9 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
- package/corpus/templates/mail/changelog/2026-08-12-agent-sent-messages-appear-immediately.md +6 -0
- package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/plan/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/plan/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/plan/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/plan/actions/delete-plan-comment.ts +6 -0
- package/corpus/templates/plan/actions/reply-to-plan-comment.ts +7 -1
- package/corpus/templates/plan/actions/resolve-plan-comment.ts +7 -1
- package/corpus/templates/plan/actions/update-visual-plan.ts +6 -0
- package/corpus/templates/plan/app/hooks/use-plans.ts +1 -1
- package/corpus/templates/plan/app/pages/PlansPage.tsx +51 -23
- package/corpus/templates/plan/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/plan/server/plans.ts +2 -2
- package/corpus/templates/plan/shared/types.ts +1 -1
- package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/slides/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +6 -0
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/slides/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/slides/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/slides/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/slides/AGENTS.md +4 -0
- package/corpus/templates/slides/actions/add-slide-comment.ts +1 -1
- package/corpus/templates/slides/actions/delete-slide-comment.ts +1 -1
- package/corpus/templates/slides/actions/get-layout-overflows.ts +67 -2
- package/corpus/templates/slides/actions/update-slide-comment.ts +1 -1
- package/corpus/templates/slides/actions/view-screen.ts +76 -26
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +30 -8
- package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -1
- package/corpus/templates/slides/app/components/editor/AlignmentGuides.tsx +75 -0
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +80 -80
- package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +125 -10
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +244 -9
- package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +3 -3
- package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +218 -0
- package/corpus/templates/slides/app/context/DeckContext.tsx +56 -30
- package/corpus/templates/slides/app/hooks/use-deck-role.ts +13 -5
- package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -1
- package/corpus/templates/slides/app/i18n/en-US.ts +6 -2
- package/corpus/templates/slides/app/lib/create-deck-generation.ts +1 -0
- package/corpus/templates/slides/app/lib/pending-deck-changes.ts +32 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +85 -4
- package/corpus/templates/slides/app/pages/Index.tsx +65 -66
- package/corpus/templates/slides/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/tasks/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/tasks/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/tasks/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +1 -4
- package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +0 -1
- package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +0 -1
- package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +0 -3
- package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +1 -4
- package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +0 -1
- package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +0 -1
- package/dist/agent/engine/ai-sdk-engine.js +5 -0
- package/dist/agent/engine/anthropic-engine.js +8 -0
- package/dist/agent/engine/registry.js +24 -19
- package/dist/agent/engine/translate-anthropic.js +16 -1
- package/dist/automations/service.d.ts +2 -0
- package/dist/automations/service.js +5 -1
- package/dist/chat-threads/schema.d.ts +2 -2
- package/dist/cli/changelog.js +21 -4
- package/dist/cli/create.d.ts +12 -1
- package/dist/cli/create.js +99 -11
- package/dist/cli/index.js +6 -6
- package/dist/cli/process.d.ts +7 -0
- package/dist/cli/process.js +12 -0
- package/dist/cli/workspace-skill-policy.d.ts +15 -0
- package/dist/cli/workspace-skill-policy.js +62 -0
- package/dist/cli/workspacify.js +36 -0
- package/dist/client/AgentPanel.d.ts +14 -2
- package/dist/client/AgentPanel.js +40 -24
- package/dist/client/AssistantChat.js +90 -182
- package/dist/client/FeedbackButton.js +15 -2
- package/dist/client/RouteTransitionIndicator.d.ts +14 -2
- package/dist/client/RouteTransitionIndicator.js +16 -5
- package/dist/client/agent-page/AgentTabsPage.js +19 -6
- package/dist/client/app-config.d.ts +3 -0
- package/dist/client/app-config.js +6 -0
- package/dist/client/app-providers.js +2 -1
- package/dist/client/changelog/Changelog.d.ts +2 -1
- package/dist/client/changelog/Changelog.js +7 -5
- package/dist/client/chat/markdown-renderer.d.ts +3 -1
- package/dist/client/chat/markdown-renderer.js +24 -24
- package/dist/client/chat/message-components.d.ts +23 -0
- package/dist/client/chat/message-components.js +27 -44
- package/dist/client/chat/tool-call-display.d.ts +2 -2
- package/dist/client/chat/tool-call-display.js +6 -3
- package/dist/client/chat-first/app-open-actions.d.ts +28 -0
- package/dist/client/chat-first/app-open-actions.js +25 -0
- package/dist/client/chat-first/index.d.ts +1 -0
- package/dist/client/chat-first/index.js +1 -0
- package/dist/client/chat-first/primary-nav.d.ts +2 -1
- package/dist/client/chat-first/primary-nav.js +12 -5
- package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +14 -0
- package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -0
- package/dist/client/error-format.js +32 -3
- package/dist/client/extensions/EmbeddedExtension.js +1 -0
- package/dist/client/extensions/ExtensionViewer.js +3 -1
- package/dist/client/extensions/InlineExtensionFrame.js +1 -0
- package/dist/client/extensions/iframe-bridge.d.ts +3 -2
- package/dist/client/extensions/iframe-bridge.js +4 -2
- package/dist/client/i18n.js +28 -5
- package/dist/client/integrations/IntegrationConnectionChoice.d.ts +11 -0
- package/dist/client/integrations/IntegrationConnectionChoice.js +6 -0
- package/dist/client/integrations/IntegrationGrid.d.ts +23 -0
- package/dist/client/integrations/IntegrationGrid.js +12 -0
- package/dist/client/integrations/IntegrationsPanel.js +92 -26
- package/dist/client/integrations/index.d.ts +2 -0
- package/dist/client/integrations/index.js +2 -0
- package/dist/client/onboarding/FirstRunOnboarding.d.ts +3 -1
- package/dist/client/onboarding/FirstRunOnboarding.js +26 -16
- package/dist/client/onboarding/first-run-enabled.js +1 -5
- package/dist/client/onboarding/first-run-startup-gate.d.ts +5 -0
- package/dist/client/onboarding/first-run-startup-gate.js +51 -0
- package/dist/client/onboarding/first-run-status.d.ts +7 -0
- package/dist/client/onboarding/first-run-status.js +26 -0
- package/dist/client/onboarding/index.d.ts +3 -0
- package/dist/client/onboarding/index.js +3 -0
- package/dist/client/onboarding/use-onboarding.d.ts +1 -0
- package/dist/client/onboarding/use-onboarding.js +13 -11
- package/dist/client/org/TeamPage.js +174 -28
- package/dist/client/resources/McpConnectionSuggestion.js +29 -72
- package/dist/client/resources/McpIntegrationDialog.d.ts +3 -1
- package/dist/client/resources/McpIntegrationDialog.js +176 -51
- package/dist/client/resources/index.d.ts +1 -0
- package/dist/client/resources/index.js +1 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts +8 -0
- package/dist/client/resources/mcp-integration-catalog.js +28 -0
- package/dist/client/settings/ExtensionsSettingsContent.js +2 -2
- package/dist/client/settings/SettingsPanel.d.ts +6 -0
- package/dist/client/settings/SettingsPanel.js +21 -8
- package/dist/client/settings/SettingsRow.d.ts +3 -1
- package/dist/client/settings/SettingsRow.js +4 -2
- package/dist/client/settings/SettingsSkeleton.js +5 -3
- package/dist/client/settings/SettingsTabsPage.js +2 -2
- package/dist/client/settings/UsageSection.d.ts +4 -1
- package/dist/client/settings/UsageSection.js +187 -93
- package/dist/client/settings/agent-settings-search.js +6 -2
- package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +1 -1
- package/dist/client/setup-connections/useBuilderConnectCardController.js +2 -2
- package/dist/client/sharing/ShareButton.d.ts +2 -0
- package/dist/client/sharing/ShareButton.js +9 -2
- package/dist/client/sharing/ShareDialog.js +4 -1
- package/dist/client/sharing/useShareButtonController.d.ts +2 -1
- package/dist/client/sharing/useShareButtonController.js +8 -0
- package/dist/client/sharing/useShareDialogController.d.ts +1 -1
- package/dist/client/sharing/useShareDialogController.js +2 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.js +53 -0
- package/dist/dashboard-storage/schema.d.ts +2 -2
- package/dist/data-programs/schema.d.ts +2 -2
- package/dist/extensions/actions.js +2 -1
- package/dist/extensions/html-shell.d.ts +2 -2
- package/dist/extensions/routes.js +4 -1
- package/dist/extensions/schema.d.ts +2 -2
- package/dist/file-upload/pre-upload-attachments.js +1 -1
- package/dist/framework-tools.js +3 -0
- package/dist/history/types.d.ts +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/jobs/background-automation-runner.d.ts +1 -0
- package/dist/jobs/background-automation-runner.js +4 -2
- package/dist/jobs/frontmatter.d.ts +4 -0
- package/dist/jobs/frontmatter.js +16 -0
- package/dist/jobs/run-history.js +1 -1
- package/dist/jobs/tools.js +9 -5
- package/dist/localization/default-messages.d.ts +27 -0
- package/dist/localization/default-messages.js +28 -1
- package/dist/notifications/routes.d.ts +5 -5
- package/dist/observability/routes.d.ts +3 -3
- package/dist/onboarding/plugin.js +17 -2
- package/dist/org/context.js +16 -0
- package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
- package/dist/provider-api/actions/provider-api.d.ts +8 -8
- package/dist/review/actions/create-review-comment.js +1 -1
- package/dist/review/actions/delete-review-comment.js +4 -1
- package/dist/review/actions/list-review-comments.js +4 -2
- package/dist/review/actions/reply-review-comment.js +1 -1
- package/dist/review/types.d.ts +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/action-discovery.js +29 -0
- package/dist/server/agent-chat/plugin-options.d.ts +7 -0
- package/dist/server/agent-chat-plugin.d.ts +2 -0
- package/dist/server/agent-chat-plugin.js +12 -4
- package/dist/server/builder-browser.js +31 -0
- package/dist/server/onboarding-html.js +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/workspace-provider-oauth.js +38 -26
- package/dist/setup-connections/index.d.ts +1 -1
- package/dist/setup-connections/index.js +1 -1
- package/dist/shared/first-run-onboarding.d.ts +6 -0
- package/dist/shared/first-run-onboarding.js +6 -0
- package/dist/sharing/access.d.ts +1 -1
- package/dist/sharing/access.js +4 -1
- package/dist/sharing/actions/share-resource.d.ts +1 -1
- package/dist/sharing/actions/share-resource.js +2 -2
- package/dist/sharing/registry.d.ts +2 -2
- package/dist/sharing/schema.d.ts +5 -5
- package/dist/sharing/schema.js +9 -6
- package/dist/styles/agent-native.css +21 -0
- package/dist/styles/chat-history-list.css +1 -1
- package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/dist/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
- package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
- package/dist/templates/chat/.agents/skills/portability/SKILL.md +107 -0
- package/dist/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
- package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/dist/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
- package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/dist/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/dist/templates/chat/AGENTS.md +4 -5
- package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/dist/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
- package/dist/templates/default/.agents/skills/portability/SKILL.md +107 -0
- package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/dist/templates/default/.agents/skills/sharing/SKILL.md +233 -0
- package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/dist/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/dist/templates/default/AGENTS.md +17 -2
- package/dist/templates/default/agent-native.config.ts +6 -0
- package/dist/templates/default/app/i18n/ar-SA.ts +2 -0
- package/dist/templates/default/app/i18n/de-DE.ts +2 -0
- package/dist/templates/default/app/i18n/en-US.ts +3 -1
- package/dist/templates/default/app/i18n/es-ES.ts +2 -0
- package/dist/templates/default/app/i18n/fr-FR.ts +2 -0
- package/dist/templates/default/app/i18n/hi-IN.ts +2 -0
- package/dist/templates/default/app/i18n/ja-JP.ts +2 -0
- package/dist/templates/default/app/i18n/ko-KR.ts +2 -0
- package/dist/templates/default/app/i18n/pt-BR.ts +2 -0
- package/dist/templates/default/app/i18n/zh-CN.ts +2 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +2 -0
- package/dist/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/dist/templates/headless/.agents/skills/security/SKILL.md +324 -0
- package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
- package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
- package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
- package/dist/templates/workspace-core/AGENTS.md +9 -3
- package/dist/templates/workspace-root/AGENTS.md +26 -1
- package/dist/templates/workspace-root/agent-native.config.ts +8 -0
- package/dist/triggers/actions.js +2 -2
- package/dist/usage/actions/get-usage-alerts.d.ts +5 -0
- package/dist/usage/actions/get-usage-alerts.js +16 -0
- package/dist/usage/actions/get-usage-metrics.d.ts +7 -0
- package/dist/usage/actions/get-usage-metrics.js +26 -0
- package/dist/usage/actions/manage-usage-alert.d.ts +14 -0
- package/dist/usage/actions/manage-usage-alert.js +48 -0
- package/dist/usage/alerts-store.d.ts +78 -0
- package/dist/usage/alerts-store.js +592 -0
- package/dist/usage/metrics-store.d.ts +95 -0
- package/dist/usage/metrics-store.js +386 -0
- package/dist/usage/store.js +10 -0
- package/dist/vite/action-types-plugin.js +28 -0
- package/dist/vite/agent-native-config-loader.d.ts +6 -0
- package/dist/vite/agent-native-config-loader.js +54 -2
- package/dist/vite/client.js +11 -5
- package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.d.ts +6 -0
- package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.js +24 -0
- package/dist/workspace-connections/actions/delete-workspace-user-group.d.ts +7 -0
- package/dist/workspace-connections/actions/delete-workspace-user-group.js +29 -0
- package/dist/workspace-connections/actions/list-workspace-user-groups.d.ts +2 -0
- package/dist/workspace-connections/actions/list-workspace-user-groups.js +13 -0
- package/dist/workspace-connections/actions/upsert-workspace-user-group.d.ts +6 -0
- package/dist/workspace-connections/actions/upsert-workspace-user-group.js +22 -0
- package/dist/workspace-connections/credential-key-aliases.d.ts +3 -0
- package/dist/workspace-connections/credential-key-aliases.js +31 -0
- package/dist/workspace-connections/credentials.js +1 -25
- package/dist/workspace-connections/groups.d.ts +32 -0
- package/dist/workspace-connections/groups.js +288 -0
- package/dist/workspace-connections/index.d.ts +3 -1
- package/dist/workspace-connections/index.js +3 -1
- package/dist/workspace-connections/store.d.ts +9 -0
- package/dist/workspace-connections/store.js +68 -8
- package/docs/content/components.mdx +2 -2
- package/docs/content/sharing.mdx +2 -1
- package/package.json +10 -2
- package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/src/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
- package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
- package/src/templates/chat/.agents/skills/portability/SKILL.md +107 -0
- package/src/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
- package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/src/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
- package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/src/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/src/templates/chat/AGENTS.md +4 -5
- package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/src/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
- package/src/templates/default/.agents/skills/portability/SKILL.md +107 -0
- package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/src/templates/default/.agents/skills/sharing/SKILL.md +233 -0
- package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/src/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/src/templates/default/AGENTS.md +17 -2
- package/src/templates/default/agent-native.config.ts +6 -0
- package/src/templates/default/app/i18n/ar-SA.ts +2 -0
- package/src/templates/default/app/i18n/de-DE.ts +2 -0
- package/src/templates/default/app/i18n/en-US.ts +3 -1
- package/src/templates/default/app/i18n/es-ES.ts +2 -0
- package/src/templates/default/app/i18n/fr-FR.ts +2 -0
- package/src/templates/default/app/i18n/hi-IN.ts +2 -0
- package/src/templates/default/app/i18n/ja-JP.ts +2 -0
- package/src/templates/default/app/i18n/ko-KR.ts +2 -0
- package/src/templates/default/app/i18n/pt-BR.ts +2 -0
- package/src/templates/default/app/i18n/zh-CN.ts +2 -0
- package/src/templates/default/app/i18n/zh-TW.ts +2 -0
- package/src/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/src/templates/headless/.agents/skills/security/SKILL.md +324 -0
- package/src/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
- package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
- package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
- package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/src/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
- package/src/templates/workspace-core/AGENTS.md +9 -3
- package/src/templates/workspace-root/AGENTS.md +26 -1
- package/src/templates/workspace-root/agent-native.config.ts +8 -0
- package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/assets/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
- package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/dist/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
- package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/dist/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
- package/dist/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
- package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
- package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
- package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
- package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
- package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
- package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
- package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
- package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
- package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
- package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
- package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
- package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
- package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
- package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
- package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
- package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
- package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
- package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
- package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
- package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
- package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
- package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
- package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
- package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
- package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
- package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
- package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
- package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
- package/dist/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
- package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
- package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
- package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
- package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
- package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
- package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
- package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
- package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
- package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
- package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
- package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/src/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
- package/src/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/src/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
- package/src/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
- package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
- package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
- package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
- package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
- package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
- package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
- package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
- package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
- package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
- package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
- package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
- package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
- package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
- package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
- package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
- package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
- package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
- package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
- package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
- package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
- package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
- package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
- package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
- package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
- package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
- package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
- package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
- package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
- package/src/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
- package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
- package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
- package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
- package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
- package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
- package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
- package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
- package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
- package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
|
@@ -1,547 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: external-agents
|
|
3
|
-
description: >-
|
|
4
|
-
Connect external agents and MCP hosts (Claude, Claude Desktop, Claude Code,
|
|
5
|
-
ChatGPT custom MCP apps, Codex, Cursor, Claude Cowork, VS Code GitHub
|
|
6
|
-
Copilot, Goose, Postman, MCPJam) to an agent-native app over MCP, and
|
|
7
|
-
round-trip artifacts back into the UI with MCP Apps and deep links. Use when
|
|
8
|
-
adding an action's `link` builder or `mcpApp`, wiring the
|
|
9
|
-
`/_agent-native/open` route, exposing an "ingest" action to MCP/A2A, or
|
|
10
|
-
scaffolding apps from an external agent.
|
|
11
|
-
scope: dev
|
|
12
|
-
metadata:
|
|
13
|
-
internal: true
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# External Agents (MCP bridge + deep links)
|
|
17
|
-
|
|
18
|
-
## Rule
|
|
19
|
-
|
|
20
|
-
An agent-native app is reachable by any MCP-compatible host (Claude, Claude
|
|
21
|
-
Desktop, Claude Code, ChatGPT custom MCP apps, Codex, Cursor, Cowork, VS Code
|
|
22
|
-
GitHub Copilot, Goose, Postman, MCPJam, and future standard clients). Keep
|
|
23
|
-
setup simple: for workspace or cross-app access, add one remote MCP connector:
|
|
24
|
-
`https://dispatch.agent-native.com/mcp`. Dispatch's Agents page
|
|
25
|
-
controls whether that single connector reaches all apps or only selected apps,
|
|
26
|
-
and Dispatch filters `list_apps`, `ask_app`, and `open_app` to the granted set.
|
|
27
|
-
For a deliberately isolated app, add that app directly at
|
|
28
|
-
`https://<app>.agent-native.com/mcp` or
|
|
29
|
-
`https://<your-host>/mcp`.
|
|
30
|
-
|
|
31
|
-
In-app, the Agent page's **Access** tab (`/agent#access`, see the
|
|
32
|
-
`agent-page` skill) is the discoverable home for all of this: it shows the
|
|
33
|
-
app's copyable MCP URL and A2A agent-card URL, per-client setup steps
|
|
34
|
-
(Claude, ChatGPT, Cursor, Claude Code, Codex, Other), and links to the full
|
|
35
|
-
`/mcp/connect` page including the static-token fallback. Point users there
|
|
36
|
-
instead of dictating URLs in chat.
|
|
37
|
-
|
|
38
|
-
OAuth-capable hosts should use the standard remote MCP OAuth flow. Claude
|
|
39
|
-
connectors and Claude Code `/mcp` authentication discover the protected
|
|
40
|
-
resource, open the Agent-Native authorization page, and store their own tokens.
|
|
41
|
-
ChatGPT custom MCP connectors use the same URL: choose OAuth, scan/discover
|
|
42
|
-
tools, sign in, and approve the scopes. Local stdio proxying and older clients
|
|
43
|
-
can still use `npx @agent-native/core connect <url>`, which mints a per-user,
|
|
44
|
-
scoped, revocable token from a logged-in browser session; no shared secret is
|
|
45
|
-
copied.
|
|
46
|
-
|
|
47
|
-
The framework serves MCP `2026-07-28` natively over stateless, per-request HTTP
|
|
48
|
-
and keeps the established stateless path for 2025-era clients. New MCP client
|
|
49
|
-
code uses the split `@modelcontextprotocol/client` package with
|
|
50
|
-
`versionNegotiation: { mode: "auto" }`; do not pin a protocol header or
|
|
51
|
-
hand-send `initialize`. OAuth callback handlers preserve `state` and pass the
|
|
52
|
-
RFC 9207 `iss` parameter to the v2 SDK for validation before exchanging a
|
|
53
|
-
code. The authorization server accepts HTTPS Client ID Metadata Documents after
|
|
54
|
-
strict URL, SSRF, size, redirect, schema, and exact callback validation; URL-like
|
|
55
|
-
client ids never fall back to dynamic registration. Traditional non-URL clients
|
|
56
|
-
continue to use public-client dynamic registration.
|
|
57
|
-
|
|
58
|
-
Actions marked `needsApproval` use MCP 2026 `input_required` elicitation. The
|
|
59
|
-
approval is bound to the authenticated caller, exact action, exact arguments,
|
|
60
|
-
and expiry, and its durable grant is consumed atomically before the action runs.
|
|
61
|
-
If the host cannot complete the approval exchange, the predicate throws, the
|
|
62
|
-
state is invalid or replayed, or durable storage is unavailable, the action
|
|
63
|
-
fails closed.
|
|
64
|
-
|
|
65
|
-
Claude and ChatGPT can cache custom connector tool/resource metadata. After
|
|
66
|
-
changing MCP App metadata or the shared `embedApp()` shell, validate with a
|
|
67
|
-
fresh tool call; if the host still behaves like the old descriptor, reconnect
|
|
68
|
-
the Claude connector or rescan/review the ChatGPT connector.
|
|
69
|
-
|
|
70
|
-
Once connected, every action that produces or lists a navigable resource SHOULD
|
|
71
|
-
return a deep link from a `link` builder, so the external agent can surface an
|
|
72
|
-
**"Open in <app> →"** link that drops the user back into the running UI at the
|
|
73
|
-
right view and record. Actions can also declare `mcpApp` so hosts that support
|
|
74
|
-
MCP Apps render an inline interactive preview. The link is a pure pointer —
|
|
75
|
-
the record-focusing write is always scoped to the **browser session**, never
|
|
76
|
-
the agent's token.
|
|
77
|
-
|
|
78
|
-
## Why
|
|
79
|
-
|
|
80
|
-
External agents are great at producing artifacts (a draft, an event, a
|
|
81
|
-
dashboard) but they live in a terminal, chat host, or another app. Without a
|
|
82
|
-
bridge, the user gets a wall of JSON and has to go find the thing. MCP Apps
|
|
83
|
-
give compatible hosts an inline review/edit surface; the deep-link bridge
|
|
84
|
-
closes the loop everywhere else by handing the user a single link that opens
|
|
85
|
-
the real app focused on exactly what was produced. It reuses the existing
|
|
86
|
-
`navigate` / `application_state` contract the UI already drains every 2s (see
|
|
87
|
-
**context-awareness**) — we never invent a second navigation mechanism.
|
|
88
|
-
|
|
89
|
-
## App-facing MCP connectors
|
|
90
|
-
|
|
91
|
-
Apps can also consume connected remote MCP servers as a server-side API. The
|
|
92
|
-
framework stores each connector's OAuth client registration, discovery metadata,
|
|
93
|
-
access token, and refresh token in the encrypted `oauth_tokens` store, scoped to
|
|
94
|
-
the user or organization. The browser and sandboxed MCP App iframes never
|
|
95
|
-
receive those credentials.
|
|
96
|
-
|
|
97
|
-
Use the hidden core actions `list-mcp-tools` and `call-mcp-tool` when an app UI
|
|
98
|
-
needs a request-scoped API surface. Server-side app actions can import
|
|
99
|
-
`listVisibleMcpTools` and `callMcpTool` from `@agent-native/core/mcp-client`.
|
|
100
|
-
Both paths require an authenticated request context and enforce user/org server
|
|
101
|
-
visibility plus MCP App visibility metadata. Pass the configured server id and
|
|
102
|
-
the server's original tool name; the framework resolves the internal prefixed
|
|
103
|
-
tool name and injects the connector's bearer token.
|
|
104
|
-
|
|
105
|
-
```ts
|
|
106
|
-
import { callMcpTool } from "@agent-native/core/mcp-client";
|
|
107
|
-
|
|
108
|
-
const result = await callMcpTool("org_acme_linear", "list_issues", {
|
|
109
|
-
project: "<PROJECT_ID>",
|
|
110
|
-
});
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Use this for bounded product workflows (for example, syncing issues or
|
|
114
|
-
refreshing analytics). Do not expose a raw token, arbitrary server URL, or
|
|
115
|
-
unbounded proxy from an app action. Keep provider-specific schemas and access
|
|
116
|
-
checks in the app action, and use the connector catalog/OAuth button for setup.
|
|
117
|
-
|
|
118
|
-
## Provider API connectors
|
|
119
|
-
|
|
120
|
-
The shared workspace connection catalog is also the setup surface for provider
|
|
121
|
-
APIs. When a provider advertises OAuth, show that connection as the primary
|
|
122
|
-
setup action and retain its API key or token as an explicit fallback. Current
|
|
123
|
-
shared OAuth providers include Figma, GitHub, Google Drive, HubSpot, Jira Cloud, Notion, and Sentry. Slack
|
|
124
|
-
uses its managed messaging-install OAuth flow. Gmail,
|
|
125
|
-
Calendar, and Slides may use template-owned Google OAuth flows with broader
|
|
126
|
-
scopes; do not replace those flows with the narrower Drive connection.
|
|
127
|
-
|
|
128
|
-
Provider API actions resolve credentials server-side. Pass a granted
|
|
129
|
-
`connectionId` when a request must use a particular OAuth account; never copy
|
|
130
|
-
the access token into a browser, extension, MCP App, prompt, or stored action
|
|
131
|
-
payload. Key-only providers should remain in the normal scoped secrets flow
|
|
132
|
-
until their upstream OAuth app, scopes, refresh behavior, and identity mapping
|
|
133
|
-
have been implemented and configured.
|
|
134
|
-
|
|
135
|
-
Extensions can consume both classes of connection through the same host-side
|
|
136
|
-
action bridge. Use `agentNative.mcp.listTools()` / `callTool()` for connected
|
|
137
|
-
remote MCP servers, and `agentNative.providerApi.catalog()` / `docs()` to
|
|
138
|
-
discover template-owned provider API actions. The bridge
|
|
139
|
-
preserves the current user's or organization's access scope and never exposes
|
|
140
|
-
MCP URLs, OAuth tokens, refresh tokens, or client secrets to the iframe. Local
|
|
141
|
-
file extensions must declare the corresponding action names in
|
|
142
|
-
`permissions.appActions`.
|
|
143
|
-
|
|
144
|
-
## How
|
|
145
|
-
|
|
146
|
-
### 1. Connect to hosted apps
|
|
147
|
-
|
|
148
|
-
Use one connector for normal workspace access:
|
|
149
|
-
|
|
150
|
-
```text
|
|
151
|
-
https://dispatch.agent-native.com/mcp
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Then open Dispatch → Agents to choose whether the gateway exposes every app or
|
|
155
|
-
only selected app IDs. External agents call `list_apps` to see the granted set,
|
|
156
|
-
`ask_app` to route a natural-language task over A2A to a granted app, and
|
|
157
|
-
`open_app` to return a deep link or inline app preview.
|
|
158
|
-
|
|
159
|
-
Use a direct app URL only when you intentionally want one isolated app:
|
|
160
|
-
|
|
161
|
-
```text
|
|
162
|
-
https://mail.agent-native.com/mcp
|
|
163
|
-
https://<your-app>.agent-native.com/mcp
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Claude / Claude Desktop: add a custom connector with the URL, click Connect,
|
|
167
|
-
then sign in and approve `mcp:read`, `mcp:write`, `mcp:apps`, and
|
|
168
|
-
`offline_access`. Claude Code:
|
|
169
|
-
add the same remote HTTP URL, restart if needed, run `/mcp`, and choose
|
|
170
|
-
Authenticate. ChatGPT: create a custom MCP connector/app, paste the same URL,
|
|
171
|
-
choose OAuth, scan/discover tools, then sign in and approve scopes. Each host
|
|
172
|
-
stores its own OAuth tokens; MCP App iframes never receive raw tokens because
|
|
173
|
-
the host mediates tool and resource calls over the authenticated MCP
|
|
174
|
-
connection.
|
|
175
|
-
|
|
176
|
-
For local stdio proxying, Codex/Cowork compatibility, or clients without
|
|
177
|
-
remote MCP OAuth, use the hosted connect fallback:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
npx @agent-native/core@latest connect https://dispatch.agent-native.com
|
|
181
|
-
# or, for an isolated app:
|
|
182
|
-
npx @agent-native/core@latest connect https://mail.agent-native.com
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
The command opens the app in the browser, the user clicks **Authorize**, and a
|
|
186
|
-
per-user, scoped, revocable token is written to the selected client config. The
|
|
187
|
-
no-CLI equivalent is `https://<app>/mcp/connect`, which shows
|
|
188
|
-
the copyable MCP URL, Claude / ChatGPT / Cursor / Claude Code / Codex / Other
|
|
189
|
-
steps, and static-token fallback for clients that need it.
|
|
190
|
-
|
|
191
|
-
Re-running `npx @agent-native/core@latest connect <url> --client claude-code` over an older
|
|
192
|
-
Claude bearer-token entry is the migration path: the CLI replaces
|
|
193
|
-
`Authorization` headers with URL-only OAuth config and tells the user to
|
|
194
|
-
authenticate from `/mcp`.
|
|
195
|
-
|
|
196
|
-
To re-authenticate an already-installed local/fallback client without
|
|
197
|
-
reinstalling skills or connectors, use:
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
npx -y @agent-native/core@latest reconnect https://dispatch.agent-native.com --client codex
|
|
201
|
-
# or:
|
|
202
|
-
npx -y @agent-native/core@latest connect reconnect https://dispatch.agent-native.com --client codex
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
With no URL, `reconnect` searches local client configs for the existing Agent
|
|
206
|
-
Native MCP entry. With a URL, it reconnects only the clients that already have
|
|
207
|
-
that MCP URL; pass `--client` to limit which configs it searches. Pass
|
|
208
|
-
`--name <serverName>` only when you need to force a custom server name.
|
|
209
|
-
|
|
210
|
-
Under the hood: a logged-in browser session mints an `A2A_SECRET`-signed JWT
|
|
211
|
-
carrying the caller's `sub` + `org_domain` and a unique `jti`, so tool runs
|
|
212
|
-
stay tenant-scoped via `runWithRequestContext`. The existing
|
|
213
|
-
`/mcp` endpoint accepts it like any bearer — no new endpoint.
|
|
214
|
-
The same Connect page lists and revokes minted tokens by `jti`; treat them
|
|
215
|
-
like personal access tokens. Nothing exposes the deployment's shared secret.
|
|
216
|
-
|
|
217
|
-
### 1a. Generic cross-app verbs + scaffolding
|
|
218
|
-
|
|
219
|
-
Once connected, on top of the per-action tools the MCP server also exposes a
|
|
220
|
-
stable verb set (see `packages/core/src/mcp/builtin-tools.ts`) so an external
|
|
221
|
-
agent has a predictable surface without guessing per-app action names:
|
|
222
|
-
|
|
223
|
-
- `list_apps` — workspace apps + their URLs / running state.
|
|
224
|
-
- `open_app({ app, view?, path?, params?, embed? })` — returns a deep link or
|
|
225
|
-
direct same-origin app route (no user-data side effects); surfaces as an
|
|
226
|
-
"Open …" link and, with `embed: true`, an inline full-app MCP App in capable
|
|
227
|
-
hosts.
|
|
228
|
-
- `ask_app({ app, message })` — routes a natural-language task to that app's
|
|
229
|
-
in-app agent (delegates to the existing `ask-agent` meta-tool). It also
|
|
230
|
-
accepts `async` and `maxWaitMs`; hosted calls wait at most 25 seconds inline
|
|
231
|
-
and return a durable `taskId` plus an `ask_app_status` poll instruction when
|
|
232
|
-
the task is still running.
|
|
233
|
-
- `ask_app_status({ app, taskId })` — retrieves the current or terminal result
|
|
234
|
-
for a durable `ask_app` task. Dispatch checks the selected-app grant again
|
|
235
|
-
before polling.
|
|
236
|
-
- `create_workspace_app({ name, template })` — scaffolds + boots a new app via
|
|
237
|
-
the workspace path (rejects non-allow-listed templates), returns its running
|
|
238
|
-
URL + deep link.
|
|
239
|
-
- `list_templates` — the allow-listed templates only.
|
|
240
|
-
|
|
241
|
-
A same-named template action overrides a builtin (template-over-core
|
|
242
|
-
precedence). Disable the set with `MCPConfig.builtinCrossAppTools: false`.
|
|
243
|
-
|
|
244
|
-
The advertised `tools/list` and `resources/list` catalogs are intentionally
|
|
245
|
-
tiny by default for ChatGPT/Claude-style app hosts, including OAuth MCP Apps
|
|
246
|
-
callers and generic authenticated remote HTTP/static-token callers. The model
|
|
247
|
-
sees the generic app-facing verbs (`list_apps`, `open_app`, `ask_app`, and
|
|
248
|
-
app-only `create_embed_session`) and routes UI through
|
|
249
|
-
`open_app({ embed: true })`. Stdio/code clients use the same compact surface
|
|
250
|
-
unless they explicitly opt into the full catalog, and
|
|
251
|
-
`publicAgent.expose` remains the action-level opt-in for safe read/ingest tools
|
|
252
|
-
outside the compact MCP Apps catalog. Apps can set
|
|
253
|
-
`externalAgents.authenticatedReads: "auto"` to automatically advertise every
|
|
254
|
-
action that is GET + `readOnly` + `publicAgent.requiresAuth`, instead of
|
|
255
|
-
maintaining a long connector allow-list. This policy never includes writes by
|
|
256
|
-
default; use `writes: "ask_app_only"` to keep mutations behind `ask_app`, and
|
|
257
|
-
use `denyActions` for defense-in-depth vetoes. `tool-search` remains available
|
|
258
|
-
for discovery, but a searched action still needs to be in the connector
|
|
259
|
-
catalog, included by the authenticated-read policy, or enabled by the explicit
|
|
260
|
-
full-catalog opt-in before `tools/call` can execute it. Do not rely on
|
|
261
|
-
action-specific `mcpApp` resources appearing in ChatGPT/Claude discovery by
|
|
262
|
-
default; use `open_app` for the
|
|
263
|
-
first-class app embed path. If a specific
|
|
264
|
-
action truly must remain visible in that compact app-host catalog, set
|
|
265
|
-
`mcpApp.compactCatalog: true` as a rare escape hatch.
|
|
266
|
-
|
|
267
|
-
Generic core `db-schema` and `db-query` are intentionally not automatic
|
|
268
|
-
external reads. They remain available to the in-app agent through the normal
|
|
269
|
-
scoped SQL path, but broad schema/SQL access is too powerful to infer from
|
|
270
|
-
read-only metadata alone. If an app needs direct external querying, expose an
|
|
271
|
-
app-owned bounded GET action or add an explicit table/column allow-list with
|
|
272
|
-
row, byte, timeout, and audit limits. Keep `db-exec` and `db-patch` outside
|
|
273
|
-
automatic external-agent exposure.
|
|
274
|
-
|
|
275
|
-
Authentication and authorization are separate gates. A verified MCP OAuth or
|
|
276
|
-
connect token identifies the caller and organization; `publicAgent` only opts
|
|
277
|
-
an action into the external protocol surface and does not grant record access.
|
|
278
|
-
Actions still need `accessFilter`, `resolveAccess`, or `assertAccess` so private
|
|
279
|
-
documents/dashboards, shares, organization boundaries, and roles are enforced.
|
|
280
|
-
For Slack, verified DMs are linked to an existing Agent Native org member
|
|
281
|
-
before execution and run with that user's context; shared channels use a
|
|
282
|
-
service principal, and guests/external members cannot borrow personal access.
|
|
283
|
-
Managed Slack OAuth and the generated app manifest both request
|
|
284
|
-
`users:read.email`; existing installs must reconnect/reinstall after a scope
|
|
285
|
-
change, while legacy bot-token installs must add the scope in Slack manually.
|
|
286
|
-
|
|
287
|
-
### 1b. Fast-path expectations for MCP Apps hosts
|
|
288
|
-
|
|
289
|
-
Keep ChatGPT/Claude paths short. For a known app-facing intent, the external
|
|
290
|
-
agent should call the specific action that creates or opens the thing, then let
|
|
291
|
-
the MCP App launch the route. Do **not** route simple UI handoffs
|
|
292
|
-
through `ask_app`, broad `list_resources`, or generic app-agent delegation just
|
|
293
|
-
to find a screen.
|
|
294
|
-
|
|
295
|
-
Expected shape:
|
|
296
|
-
|
|
297
|
-
- Email draft: `manage_draft` → inline Mail compose route. The widget calls
|
|
298
|
-
`create_embed_session` itself.
|
|
299
|
-
- Dashboard/filter/search: `open_app({ path, embed: true })` or the dashboard
|
|
300
|
-
action with `mcpApp` → inline full app/dashboard route.
|
|
301
|
-
- Calendar invite: `manage-event-draft` → inline Calendar event draft route.
|
|
302
|
-
- Forms/content/slides/design/clips: create/search action with `mcpApp` →
|
|
303
|
-
inline editor/player route.
|
|
304
|
-
|
|
305
|
-
`list_apps` is fine when the model genuinely needs to choose among granted
|
|
306
|
-
apps. `resources/list`/`resources/read` are host plumbing for MCP Apps UI
|
|
307
|
-
resources; they are not a planning strategy. If a host/model repeatedly calls
|
|
308
|
-
large discovery tools before obvious app-facing actions, tighten action names,
|
|
309
|
-
descriptions, `mcpApp` metadata, or compact-catalog filtering until the direct
|
|
310
|
-
path is obvious.
|
|
311
|
-
|
|
312
|
-
### 2. Add a `link` builder to an action
|
|
313
|
-
|
|
314
|
-
`defineAction` accepts an optional `link` builder. When set, every MCP/A2A
|
|
315
|
-
result for that tool auto-appends a markdown `[label →](absoluteUrl)` block and
|
|
316
|
-
a structured `_meta["agent-native/openLink"] = { label, view, webUrl,
|
|
317
|
-
desktopUrl, vscodeUrl }`; `tools/list` adds
|
|
318
|
-
`annotations["agent-native/producesOpenLink"]` plus a description suffix so the
|
|
319
|
-
external agent knows the tool yields an openable link.
|
|
320
|
-
|
|
321
|
-
Real example — mail's `manage-draft` (`templates/mail/actions/manage-draft.ts`):
|
|
322
|
-
|
|
323
|
-
```ts
|
|
324
|
-
import { buildDeepLink } from "@agent-native/core/server";
|
|
325
|
-
|
|
326
|
-
function composeDeepLink(draft: Record<string, string>): string {
|
|
327
|
-
return buildDeepLink({
|
|
328
|
-
app: "mail",
|
|
329
|
-
view: "inbox",
|
|
330
|
-
compose: encodeComposeDraft(draft), // base64url JSON → compose-<id> draft
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
export default defineAction({
|
|
335
|
-
// ...schema, run...
|
|
336
|
-
link: ({ result }) => {
|
|
337
|
-
if (!result || typeof result !== "object") return null;
|
|
338
|
-
const draft = (result as { draft?: Record<string, string> }).draft;
|
|
339
|
-
const id = (result as { id?: string }).id;
|
|
340
|
-
if (!draft || !id) return null;
|
|
341
|
-
return { url: composeDeepLink(draft), label: "Open draft in Mail", view: "inbox" };
|
|
342
|
-
},
|
|
343
|
-
});
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
List/search actions point at a record-focused view the same way — mail's
|
|
347
|
-
`list-emails` returns
|
|
348
|
-
`{ url: buildDeepLink({ app: "mail", view: "inbox", params: { label, search } }), label: "Open list in Mail" }`.
|
|
349
|
-
|
|
350
|
-
**The `link` contract:** pure, synchronous, **no I/O, no awaits**. It runs
|
|
351
|
-
best-effort — a throw, `null`, or `undefined` is swallowed and **never** fails
|
|
352
|
-
the tool call. It only reads the call's `args` and `result`; it must not query
|
|
353
|
-
the DB, read app-state, or call other actions.
|
|
354
|
-
|
|
355
|
-
### 2a. Optional MCP Apps UI
|
|
356
|
-
|
|
357
|
-
For hosts that support the MCP Apps extension, an action can also advertise an
|
|
358
|
-
inline UI resource with `mcpApp`. This is a progressive enhancement for flows
|
|
359
|
-
where the external agent should hand the user an interactive surface instead of
|
|
360
|
-
only text — for example reviewing an email draft, editing a calendar invite, or
|
|
361
|
-
choosing between generated dashboard variants.
|
|
362
|
-
|
|
363
|
-
Use the real React app with `embedApp()` whenever the user needs UI. The mental
|
|
364
|
-
model is simple: the action's `link` target is also the MCP App embed target.
|
|
365
|
-
Expose the operation as a normal action/tool, return a focused deep link with
|
|
366
|
-
`link`, and add `mcpApp.resource = embedApp(...)` so capable hosts load that
|
|
367
|
-
same route inline instead of opening a new tab. Keep the `link` fallback even
|
|
368
|
-
when adding `mcpApp` — non-UI clients still need the "Open in … →" link.
|
|
369
|
-
|
|
370
|
-
```ts
|
|
371
|
-
import { embedApp } from "@agent-native/core";
|
|
372
|
-
|
|
373
|
-
export default defineAction({
|
|
374
|
-
// ...schema, run, link...
|
|
375
|
-
mcpApp: {
|
|
376
|
-
resource: embedApp({
|
|
377
|
-
title: "Review draft",
|
|
378
|
-
description: "Open the generated draft in the real Mail compose UI.",
|
|
379
|
-
iframeTitle: "Agent-Native Mail",
|
|
380
|
-
openLabel: "Open in Mail",
|
|
381
|
-
}),
|
|
382
|
-
},
|
|
383
|
-
});
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
Do not hand-write one-off plain HTML MCP Apps for product UI; if the action
|
|
387
|
-
needs a custom surface, add or reuse a real app route/component first and embed
|
|
388
|
-
that route. For known first-party handoffs, prefer a direct action with
|
|
389
|
-
`mcpApp` (e.g. Mail `manage-draft`, Calendar `manage-event-draft`) over letting
|
|
390
|
-
the model hunt through screens; `open_app({ path, embed: true })` is the
|
|
391
|
-
generic escape hatch for full dashboards, filtered inboxes, analyses, or
|
|
392
|
-
extension pages.
|
|
393
|
-
|
|
394
|
-
The host bridges (Claude transplant vs. ChatGPT `window.openai`), embed start
|
|
395
|
-
tickets, extension-page `srcDoc` rendering inside chat embeds, host sizing
|
|
396
|
-
(`embedApp({ height })`), `sendToAgentChat`, `_meta.ui.domain` rules, and
|
|
397
|
-
ngrok/prod testing caveats are documented in
|
|
398
|
-
**`references/mcp-apps-embedding.md`**. Read it before changing the
|
|
399
|
-
`embedApp()` shell, the `ui://` resource, or any host-bridge behavior.
|
|
400
|
-
|
|
401
|
-
### 3. The `/_agent-native/open` route
|
|
402
|
-
|
|
403
|
-
`buildDeepLink(...)` returns the app-relative path
|
|
404
|
-
`/_agent-native/open?app=…&view=…&<recordId>=…`. The MCP layer turns that into
|
|
405
|
-
an absolute web URL (`toAbsoluteOpenUrl`, using the request origin), a
|
|
406
|
-
desktop `agentnative://open?…` URL (`toDesktopOpenUrl`), and a VS Code
|
|
407
|
-
extension URL (`toVsCodeOpenUrl`) for
|
|
408
|
-
`vscode://builderio.agent-native/open?url=…`. When the user clicks the web
|
|
409
|
-
link in any browser or inline webview, `GET /_agent-native/open`
|
|
410
|
-
(`createOpenRouteHandler`, mounted by the core routes plugin, gated by
|
|
411
|
-
`disableOpenRoute`, customizable via `resolveOpenPath`):
|
|
412
|
-
|
|
413
|
-
1. Resolves the **browser** session via `getSession` (the auth guard bypasses
|
|
414
|
-
the exact path `/_agent-native/open`).
|
|
415
|
-
2. If unauthenticated, serves the configured login HTML **at the same URL**
|
|
416
|
-
(`getConfiguredLoginHtml`); the form's success handler reloads
|
|
417
|
-
`window.location`, re-entering the route authenticated — no `?next=`
|
|
418
|
-
plumbing.
|
|
419
|
-
3. Writes the existing one-shot `navigate` application-state command (payload =
|
|
420
|
-
every non-reserved query param + `view`) scoped to the browser session's
|
|
421
|
-
email with `requestSource: "deep-link"`, and decodes a `compose` base64url
|
|
422
|
-
draft into a `compose-<id>` key.
|
|
423
|
-
4. 302-redirects to a safe same-origin relative path (`to=`, else `/<view>`,
|
|
424
|
-
else `resolveOpenPath`), forwarding `f_*` filter params so lists/dashboards
|
|
425
|
-
open pre-filtered before the `navigate` command is even drained.
|
|
426
|
-
|
|
427
|
-
Cross-origin, scheme-relative `//host`, and control-char redirects are rejected
|
|
428
|
-
(open-redirect guard). **Identity rule:** the link carries no privileged
|
|
429
|
-
state — it is just `view` + record ids + filters. The record-focusing
|
|
430
|
-
`navigate` write is scoped to whoever is logged into the browser, never the
|
|
431
|
-
external agent's MCP token. See **context-awareness** for the
|
|
432
|
-
`navigate`/`application_state` contract this bridges to.
|
|
433
|
-
|
|
434
|
-
### 4. "Ingest" actions for external agents
|
|
435
|
-
|
|
436
|
-
An action an external agent reads to pull live app state into its own context
|
|
437
|
-
must be: `http: { method: "GET" }` + `readOnly: true` +
|
|
438
|
-
`publicAgent: { expose: true, readOnly: true, requiresAuth: true }`. GET +
|
|
439
|
-
`readOnly` keeps it side-effect-free and out of the screen-refresh change event;
|
|
440
|
-
`publicAgent` is the explicit opt-in (public web routes never imply public
|
|
441
|
-
MCP/A2A exposure). Design/content ingest actions MUST read **live** state
|
|
442
|
-
(e.g. the Yjs document) — not the stale DB snapshot column — so the external
|
|
443
|
-
agent sees what the user actually has on screen.
|
|
444
|
-
|
|
445
|
-
### 5. Advanced: local development & manual setup
|
|
446
|
-
|
|
447
|
-
The hosted `connect` flow above is the recommended path. For local dev, run
|
|
448
|
-
the app (`pnpm dev` / `pnpm exec agent-native dev`) then point a local agent at it:
|
|
449
|
-
|
|
450
|
-
```bash
|
|
451
|
-
pnpm exec agent-native mcp install --client claude-code|claude-code-cli|codex|cowork|cursor|opencode|github-copilot \
|
|
452
|
-
[--app <id>] [--scope user|project]
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
It provisions a token (random `ACCESS_TOKEN` into the workspace `.env` for
|
|
456
|
-
local dev, or a `signA2AToken` JWT for a detected hosted origin) and writes an
|
|
457
|
-
idempotent stdio server entry — `.mcp.json` / `~/.claude.json` for Claude Code,
|
|
458
|
-
the `[mcp_servers.*]` block in `~/.codex/config.toml` for Codex,
|
|
459
|
-
`.cursor/mcp.json` / `~/.cursor/mcp.json` for Cursor, `opencode.json` /
|
|
460
|
-
`~/.config/opencode/opencode.json` for OpenCode, `.vscode/mcp.json` / VS Code
|
|
461
|
-
user `mcp.json` for GitHub Copilot / VS Code, and the Claude-Code JSON shape
|
|
462
|
-
for Cowork. The entry runs `pnpm exec agent-native mcp serve --app <id>`, by
|
|
463
|
-
default a **thin stdio proxy** to the running local app's
|
|
464
|
-
`/mcp` (live registry + HMR + correct deep links stay the single
|
|
465
|
-
source of truth; `--standalone` builds the registry in-process). Companion
|
|
466
|
-
subcommands: `mcp uninstall`, `mcp status`, `mcp token [--rotate]`. You can
|
|
467
|
-
also hand-write an `http` `.mcp.json` entry with a token you supply yourself —
|
|
468
|
-
the unmanaged equivalent of what `connect` writes.
|
|
469
|
-
|
|
470
|
-
**Dev vs production tool surface:** in plain local dev
|
|
471
|
-
(`NODE_ENV=development` and `AGENT_MODE !== "production"`) the MCP `tools/list`
|
|
472
|
-
deliberately exposes only the generic builtins plus actions with
|
|
473
|
-
`publicAgent.requiresAuth === false` — per-app ingest (`requiresAuth: true`)
|
|
474
|
-
and mutating actions are filtered out (`filterPublicAgentActions`). The full
|
|
475
|
-
surface appears when authenticated as a real caller: a deployed /
|
|
476
|
-
`AGENT_MODE=production` app, or a local app reached through `connect` /
|
|
477
|
-
`pnpm exec agent-native mcp install` (which provisions an identity-bearing token). A
|
|
478
|
-
sparse or empty `tools/list` is diagnostic, not proof of auth failure: check
|
|
479
|
-
OAuth scopes, compact-catalog filtering, and the client/server auth status
|
|
480
|
-
before telling the user they are unauthenticated.
|
|
481
|
-
|
|
482
|
-
## Do
|
|
483
|
-
|
|
484
|
-
- Do connect local/fallback clients to Dispatch with
|
|
485
|
-
`npx @agent-native/core@latest connect https://dispatch.agent-native.com`;
|
|
486
|
-
use `npx -y @agent-native/core@latest reconnect ...` for reauth without
|
|
487
|
-
reinstalling; use a direct app URL only when the host should be isolated to
|
|
488
|
-
one app.
|
|
489
|
-
- Do add a `link` builder to any action that produces or lists a navigable
|
|
490
|
-
resource (draft, event, dashboard, document).
|
|
491
|
-
- Do add `mcpApp` when a UI-capable MCP host should render an inline review or
|
|
492
|
-
edit surface, while keeping the `link` fallback.
|
|
493
|
-
- Do use `embedApp()` / `open_app({ embed: true })` when the right UI is the
|
|
494
|
-
existing React app at a specific route, including full app routes and focused
|
|
495
|
-
component routes like an Analytics chart embed.
|
|
496
|
-
- Do test real ChatGPT/Claude web behavior with a fresh inline render after any
|
|
497
|
-
resource-shell or host-bridge change; old frames are not proof that a new
|
|
498
|
-
shell is still broken.
|
|
499
|
-
- Do build the URL with `buildDeepLink(...)` — it is the single source of truth
|
|
500
|
-
for the open-route format.
|
|
501
|
-
- Do keep `link` pure and synchronous; return `null` when there's nothing to
|
|
502
|
-
open.
|
|
503
|
-
- Do keep `link` and `mcpApp` metadata pure and synchronous; use `embedApp()`
|
|
504
|
-
so the user sees the shared React UI.
|
|
505
|
-
- Do make external-agent read/ingest actions GET + `readOnly` + `publicAgent`,
|
|
506
|
-
and read live (Yjs) state, not the stale DB column.
|
|
507
|
-
- Do let the open route resolve the browser session; pass record ids as deep-
|
|
508
|
-
link params and let the UI focus them via the polled `navigate` command.
|
|
509
|
-
|
|
510
|
-
## Don't
|
|
511
|
-
|
|
512
|
-
- Don't copy a deployment's shared `ACCESS_TOKEN` / `A2A_SECRET` into a client
|
|
513
|
-
config when `connect` can mint a per-user, revocable token instead.
|
|
514
|
-
- Don't hand-format the `/_agent-native/open` URL — always go through
|
|
515
|
-
`buildDeepLink`.
|
|
516
|
-
- Don't do I/O, awaits, DB reads, or app-state reads inside a `link` builder.
|
|
517
|
-
- Don't replace deep links with MCP Apps; non-UI clients still need the link.
|
|
518
|
-
- Don't hand-write product UI in `mcpApp.resource.html`; use a real React
|
|
519
|
-
route/component and embed it with `embedApp()`.
|
|
520
|
-
- Don't test Claude full-app embeds against raw Vite dev modules and conclude
|
|
521
|
-
production is broken; use `pnpm exec agent-native start`, a preview deploy, or prod.
|
|
522
|
-
- Don't scope the `navigate` write to the agent token, or pass privileged
|
|
523
|
-
state through the deep link — it's a pure pointer.
|
|
524
|
-
- Don't invent a new navigation mechanism; bridge to the existing
|
|
525
|
-
`navigate`/`application_state` contract.
|
|
526
|
-
- Don't widen the public template allow-list when scaffolding an app from an
|
|
527
|
-
external agent — the allow-list in `packages/shared-app-config/templates.ts`
|
|
528
|
-
is authoritative and guarded.
|
|
529
|
-
|
|
530
|
-
## Related Skills
|
|
531
|
-
|
|
532
|
-
- **actions** — defining actions, `publicAgent`, GET/`readOnly`
|
|
533
|
-
- **context-awareness** — the `navigate` / `application_state` contract the
|
|
534
|
-
open route bridges to
|
|
535
|
-
- **a2a-protocol** — the `ask-agent` meta-tool and JSON-RPC peer calls
|
|
536
|
-
- **adding-a-feature** — the four-area checklist (add a `link` builder when a
|
|
537
|
-
feature produces a navigable resource)
|
|
538
|
-
|
|
539
|
-
## Blueprint installer
|
|
540
|
-
|
|
541
|
-
To add a whole new integration the agent-native way, `agent-native add <kind>
|
|
542
|
-
<name|url>` prints a curated Markdown blueprint to stdout — pipe it into the
|
|
543
|
-
external coding agent you connected (`agent-native add provider stripe |
|
|
544
|
-
claude`) and it applies the changes against the live repo. A URL emits a
|
|
545
|
-
generic research-and-integrate blueprint instead. Seeded kinds:
|
|
546
|
-
`provider` / `channel` / `sandbox` / `action`. Add your own by dropping a
|
|
547
|
-
`.md` in `packages/core/blueprints/<kind>/`. See the Blueprint Installer doc.
|