@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
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: secrets
|
|
3
|
+
description: >-
|
|
4
|
+
Declaratively register API keys and service credentials a template needs so
|
|
5
|
+
they appear in the agent sidebar settings UI and the onboarding checklist.
|
|
6
|
+
Use for any third-party API key (OpenAI, Stripe, Twilio, etc.) and for
|
|
7
|
+
surfacing OAuth connections in the unified settings UI.
|
|
8
|
+
scope: dev
|
|
9
|
+
metadata:
|
|
10
|
+
internal: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Secrets Registry
|
|
14
|
+
|
|
15
|
+
## Non-negotiable rule
|
|
16
|
+
|
|
17
|
+
Never hardcode credential values. Source, docs, tests, fixtures, prompts, seed
|
|
18
|
+
data, and generated extension/app content may mention credential **names** such
|
|
19
|
+
as `OPENAI_API_KEY`, but must not contain real API keys, tokens, webhook URLs,
|
|
20
|
+
signing secrets, OAuth refresh tokens, or private Builder/customer data.
|
|
21
|
+
|
|
22
|
+
Secret values are supplied at runtime through deployment configuration, the
|
|
23
|
+
encrypted `app_secrets` vault, `saveCredential` / `resolveCredential`, OAuth, or
|
|
24
|
+
`${keys.NAME}` substitution. Examples must use obvious placeholders such as
|
|
25
|
+
`<OPENAI_API_KEY>` or `${keys.SLACK_WEBHOOK}`, not real-looking copied values.
|
|
26
|
+
|
|
27
|
+
## When to use
|
|
28
|
+
|
|
29
|
+
Use this for any external credential your template needs: API keys, service
|
|
30
|
+
tokens, webhook secrets. It gives you:
|
|
31
|
+
|
|
32
|
+
- A sidebar UI entry for each credential (masked input, rotate, test, delete).
|
|
33
|
+
- Automatic onboarding-checklist items for `required: true` secrets.
|
|
34
|
+
- A stable server-side read API (`readAppSecret`) that decrypts values on
|
|
35
|
+
demand.
|
|
36
|
+
- Validator hooks for health-checking keys before save and from a Test button.
|
|
37
|
+
|
|
38
|
+
## When NOT to use
|
|
39
|
+
|
|
40
|
+
- OAuth flows that need to run the full authorization code exchange — use
|
|
41
|
+
`@agent-native/core/oauth-tokens` directly to save/refresh tokens. The
|
|
42
|
+
registry can still surface the OAuth connection in the sidebar by
|
|
43
|
+
registering a secret with `kind: "oauth"` — that just delegates status
|
|
44
|
+
lookup to oauth-tokens and renders a Connect button, no `app_secrets` row
|
|
45
|
+
is written.
|
|
46
|
+
- Purely process-level env vars that are never user-facing (e.g. `NODE_ENV`,
|
|
47
|
+
deployment flags). Those belong in the onboarding `form` method or the
|
|
48
|
+
`envKeys` list in `core-routes-plugin`.
|
|
49
|
+
|
|
50
|
+
## Registering a secret
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
// server/plugins/register-secrets.ts
|
|
54
|
+
import { defineNitroPlugin } from "@agent-native/core/server";
|
|
55
|
+
import { registerRequiredSecret } from "@agent-native/core/secrets";
|
|
56
|
+
|
|
57
|
+
export default defineNitroPlugin(() => {
|
|
58
|
+
registerRequiredSecret({
|
|
59
|
+
key: "OPENAI_API_KEY",
|
|
60
|
+
label: "OpenAI API Key",
|
|
61
|
+
description: "Used for Whisper transcription of your recordings.",
|
|
62
|
+
docsUrl: "https://platform.openai.com/api-keys",
|
|
63
|
+
scope: "user",
|
|
64
|
+
kind: "api-key",
|
|
65
|
+
required: true,
|
|
66
|
+
validator: async (value) => {
|
|
67
|
+
const res = await fetch("https://api.openai.com/v1/models", {
|
|
68
|
+
headers: { Authorization: `Bearer ${value}` },
|
|
69
|
+
});
|
|
70
|
+
return res.ok
|
|
71
|
+
? { ok: true }
|
|
72
|
+
: { ok: false, error: `OpenAI rejected the key (HTTP ${res.status})` };
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### OAuth in the unified UI
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
registerRequiredSecret({
|
|
82
|
+
key: "GOOGLE_CONNECTED",
|
|
83
|
+
label: "Google account",
|
|
84
|
+
description: "Grants access to Gmail / Calendar APIs.",
|
|
85
|
+
scope: "user",
|
|
86
|
+
kind: "oauth",
|
|
87
|
+
required: true,
|
|
88
|
+
oauthProvider: "google", // must match the provider id in oauth-tokens
|
|
89
|
+
oauthConnectUrl: "/_agent-native/google/auth-url",
|
|
90
|
+
});
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The sidebar shows a Connect button instead of a text input; no `app_secrets`
|
|
94
|
+
row is written — status is derived from `hasOAuthTokens("google")`.
|
|
95
|
+
|
|
96
|
+
## Registered options
|
|
97
|
+
|
|
98
|
+
| Field | Type | Purpose |
|
|
99
|
+
| ------------------ | --------------------------------------- | ------------------------------------------------------------------------ |
|
|
100
|
+
| `key` | `string` | Env-var style name (`OPENAI_API_KEY`). Also the storage key. |
|
|
101
|
+
| `label` | `string` | Human-readable title in the sidebar. |
|
|
102
|
+
| `description` | `string?` | Subtitle under the label. |
|
|
103
|
+
| `docsUrl` | `string?` | "Get key" link rendered on the card. |
|
|
104
|
+
| `scope` | `"user" \| "workspace"` | Per-user or shared across the active org. |
|
|
105
|
+
| `kind` | `"api-key" \| "oauth"` | Drives UI and storage behavior. |
|
|
106
|
+
| `required` | `boolean?` | When true, an onboarding step is auto-injected. |
|
|
107
|
+
| `validator` | `(v) => Promise<boolean \| {ok,error}>` | Runs on save and from the Test button. Never log `v`. |
|
|
108
|
+
| `oauthProvider` | `string?` (oauth-kind only) | Provider id in `oauth-tokens` that backs this entry. |
|
|
109
|
+
| `oauthConnectUrl` | `string?` (oauth-kind only) | URL the Connect button points at. |
|
|
110
|
+
|
|
111
|
+
## Reading a secret from an action
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
import { z } from "zod";
|
|
115
|
+
import { defineAction } from "@agent-native/core/action";
|
|
116
|
+
import { readAppSecret } from "@agent-native/core/secrets";
|
|
117
|
+
import { getRequestUserEmail } from "@agent-native/core/server";
|
|
118
|
+
|
|
119
|
+
export default defineAction({
|
|
120
|
+
description: "Transcribe an audio file with Whisper",
|
|
121
|
+
schema: z.object({ fileUrl: z.string() }),
|
|
122
|
+
run: async ({ fileUrl }) => {
|
|
123
|
+
const email = await getRequestUserEmail();
|
|
124
|
+
if (!email) throw new Error("Not signed in");
|
|
125
|
+
|
|
126
|
+
const stored = await readAppSecret({
|
|
127
|
+
key: "OPENAI_API_KEY",
|
|
128
|
+
scope: "user",
|
|
129
|
+
scopeId: email,
|
|
130
|
+
});
|
|
131
|
+
const apiKey = stored?.value;
|
|
132
|
+
if (!apiKey) {
|
|
133
|
+
throw new Error(
|
|
134
|
+
"OPENAI_API_KEY is not set. Configure it in the sidebar settings.",
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// …call OpenAI. NEVER log the key or include it in error messages.
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Rules:
|
|
144
|
+
|
|
145
|
+
- **Never log the value.** The read layer enforces this server-side; your
|
|
146
|
+
code must do the same.
|
|
147
|
+
- **Use env vars only for deploy-level secrets.** If a credential is
|
|
148
|
+
user-scoped, org-scoped, or workspace-scoped, read the scoped vault/credential
|
|
149
|
+
store. Do not add a `process.env` fallback that makes every user inherit one
|
|
150
|
+
deployment's key.
|
|
151
|
+
- **Scope matches the registration.** `scope: "user"` → pass the user email.
|
|
152
|
+
`scope: "workspace"` → pass the active `orgId` from
|
|
153
|
+
`getOrgContext(event).orgId`.
|
|
154
|
+
- **One resolver per key, and every runtime path goes through it.** Before
|
|
155
|
+
reading a credential, grep the app for the key name. If a resolver already
|
|
156
|
+
exists (`resolveXConfig`, a connector, a client factory), call it — do not
|
|
157
|
+
read `process.env` for that key a second time somewhere else.
|
|
158
|
+
- **Identity comes from the caller, not the module.** A shared helper under
|
|
159
|
+
`server/lib/` takes the email as a parameter; only an entrypoint (action,
|
|
160
|
+
route, cron) decides whose identity it is. A library that resolves its own
|
|
161
|
+
identity from `process.env.AGENT_USER_EMAIL` authorizes the deployment rather
|
|
162
|
+
than the caller.
|
|
163
|
+
|
|
164
|
+
The failure this prevents is not a leak — it is a split brain. When the config
|
|
165
|
+
check reads the vault and the feature reads `process.env`, the settings UI and
|
|
166
|
+
onboarding checklist report the integration as **configured** while every actual
|
|
167
|
+
call fails with "env var is required". The credential is right there in the
|
|
168
|
+
vault, so the error names the wrong cause and sends everyone hunting for a sync
|
|
169
|
+
or redeploy problem that does not exist. This has now shipped four times in one
|
|
170
|
+
app (BigQuery, Jira, Pylon, Academy).
|
|
171
|
+
|
|
172
|
+
Before finishing any change that touches a credential, run the guard from the
|
|
173
|
+
app directory — it finds this whether the app lives in `templates/` or in a
|
|
174
|
+
workspace repo:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npx agent-native doctor --only no-env-credentials
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## `resolveCredential` sees exactly one organization
|
|
181
|
+
|
|
182
|
+
`resolveCredential(key, { userEmail, orgId })` checks the user scope, then the
|
|
183
|
+
one `orgId` you pass, then the solo workspace. That is the whole search. It is
|
|
184
|
+
correct for a signed-in request, and wrong for two common cases:
|
|
185
|
+
|
|
186
|
+
- **The caller has no organization.** A cron, a scheduled job, or any CLI run
|
|
187
|
+
without a real member identity resolves no `orgId`, so only the user and solo
|
|
188
|
+
scopes are ever consulted — and a shared key is in neither.
|
|
189
|
+
- **The key was synced under a different organization.** `app_secrets` has no
|
|
190
|
+
scope visible to every org (`readAppSecret` is strict equality on
|
|
191
|
+
`(scope, scope_id, key)`), so a key the vault UI advertises as available to
|
|
192
|
+
every app is unreadable from any org except the one that ran the sync.
|
|
193
|
+
|
|
194
|
+
Both produce the same misleading "not set" that the split brain above produces,
|
|
195
|
+
which is why swapping `process.env` for `resolveCredential` can look like a fix
|
|
196
|
+
and change nothing. A workspace app should read shared keys through a resolver
|
|
197
|
+
that also sweeps the caller's other memberships and a designated vault org —
|
|
198
|
+
see `resolveConnectorSecret` and `AGENT_VAULT_ORG_ID` in the builder-workspace
|
|
199
|
+
repo for the shape, including the boot-time assertion that the deployment really
|
|
200
|
+
is single-tenant before a non-membership-gated fallback is safe.
|
|
201
|
+
|
|
202
|
+
**The doctor guard does not catch this second form** — it looks for
|
|
203
|
+
`process.env` reads, and `resolveCredential` is not one. Grep for
|
|
204
|
+
`resolveCredential` yourself and confirm each call sits somewhere a single-org
|
|
205
|
+
lookup is genuinely the right question. Findings that pair it with a
|
|
206
|
+
`?? process.env.KEY` fallback are the sanctioned deploy-level escape hatch; the
|
|
207
|
+
bugs are calls whose value can only live in another org's vault.
|
|
208
|
+
|
|
209
|
+
## HTTP routes
|
|
210
|
+
|
|
211
|
+
Core routes plugin mounts these under `/_agent-native/secrets/` automatically:
|
|
212
|
+
|
|
213
|
+
- `GET /_agent-native/secrets` — list registered secrets with status (`set`
|
|
214
|
+
/ `unset` / `invalid`), metadata, and — for set api-keys — the last 4
|
|
215
|
+
characters. Values are never returned.
|
|
216
|
+
- `POST /_agent-native/secrets/:key` — body `{ value, scope?, scopeId? }`.
|
|
217
|
+
Runs the registered validator; returns 400 with the error on failure.
|
|
218
|
+
- `DELETE /_agent-native/secrets/:key` — remove the stored value.
|
|
219
|
+
- `POST /_agent-native/secrets/:key/test` — re-run the validator against the
|
|
220
|
+
currently stored value.
|
|
221
|
+
|
|
222
|
+
## Storage & encryption
|
|
223
|
+
|
|
224
|
+
- Values are stored in `app_secrets` (created on-demand; no migration
|
|
225
|
+
needed).
|
|
226
|
+
- Values are encrypted at rest with AES-256-GCM. Generic app-local secrets
|
|
227
|
+
prefer `<APP_NAME>_SECRETS_ENCRYPTION_KEY` (for example,
|
|
228
|
+
`ANALYTICS_SECRETS_ENCRYPTION_KEY`), then `SECRETS_ENCRYPTION_KEY`, then
|
|
229
|
+
`BETTER_AUTH_SECRET`.
|
|
230
|
+
- Workspace-shared `app_secrets` prefer
|
|
231
|
+
`WORKSPACE_SECRETS_ENCRYPTION_KEY`, then the legacy shared
|
|
232
|
+
`SECRETS_ENCRYPTION_KEY`, then a purpose-derived key from `A2A_SECRET`.
|
|
233
|
+
Better Auth and app-scoped keys remain legacy read candidates; a successful
|
|
234
|
+
legacy decrypt is compare-and-swap migrated to the preferred shared key
|
|
235
|
+
without changing the row timestamp.
|
|
236
|
+
- Set the same stable `WORKSPACE_SECRETS_ENCRYPTION_KEY` in every app that
|
|
237
|
+
reads a shared vault. It is intentionally separate from app-local OAuth
|
|
238
|
+
encryption. If the vault still relies on `A2A_SECRET`, rotating A2A material
|
|
239
|
+
also rotates its encryption key. Add the stable vault key everywhere and
|
|
240
|
+
read/migrate existing rows before rotating A2A.
|
|
241
|
+
- To rotate the dedicated workspace key itself, deploy the new value together
|
|
242
|
+
with `WORKSPACE_SECRETS_ENCRYPTION_KEY_PREVIOUS=<old value>`, let reads
|
|
243
|
+
migrate ciphertext, then remove the previous key after the migration window.
|
|
244
|
+
- If no configured key material exists, development uses a machine-local
|
|
245
|
+
fallback and logs a one-time warning. Production fails closed.
|
|
246
|
+
|
|
247
|
+
## Ad-hoc Keys
|
|
248
|
+
|
|
249
|
+
Ad-hoc keys are user-created secrets that are not declared by the template.
|
|
250
|
+
Users create them through the settings UI or the agent chat to use with
|
|
251
|
+
automations and the `web-request` tool. They support `${keys.NAME}`
|
|
252
|
+
substitution in outbound HTTP requests.
|
|
253
|
+
|
|
254
|
+
### Ad-hoc API
|
|
255
|
+
|
|
256
|
+
Core routes plugin mounts these under `/_agent-native/secrets/adhoc`:
|
|
257
|
+
|
|
258
|
+
- `GET /_agent-native/secrets/adhoc` — list all ad-hoc keys (name, last 4
|
|
259
|
+
chars, URL allowlist). Values are never returned.
|
|
260
|
+
- `POST /_agent-native/secrets/adhoc` — body `{ name, value, urlAllowlist? }`.
|
|
261
|
+
Creates or updates an ad-hoc key.
|
|
262
|
+
- `DELETE /_agent-native/secrets/adhoc/:name` — remove an ad-hoc key.
|
|
263
|
+
|
|
264
|
+
### URL Allowlists
|
|
265
|
+
|
|
266
|
+
Each ad-hoc key can have a URL allowlist — an array of origin URLs that
|
|
267
|
+
restrict where the key's value can be sent. The check is origin-level
|
|
268
|
+
(scheme + host + port). If no allowlist is configured, the key can be used
|
|
269
|
+
with any URL.
|
|
270
|
+
|
|
271
|
+
```ts
|
|
272
|
+
// Creating a key with an allowlist
|
|
273
|
+
POST /_agent-native/secrets/adhoc
|
|
274
|
+
{
|
|
275
|
+
"name": "SLACK_WEBHOOK",
|
|
276
|
+
"value": "<SLACK_WEBHOOK_URL_FROM_SETTINGS>",
|
|
277
|
+
"urlAllowlist": ["https://hooks.slack.com"]
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### `${keys.NAME}` Substitution
|
|
282
|
+
|
|
283
|
+
The `web-request` tool supports `${keys.NAME}` placeholders in the URL,
|
|
284
|
+
headers, and body. Substitution happens server-side after the agent emits
|
|
285
|
+
the tool call — the raw secret value never enters the agent's context.
|
|
286
|
+
|
|
287
|
+
```ts
|
|
288
|
+
import {
|
|
289
|
+
resolveKeyReferences,
|
|
290
|
+
validateUrlAllowlist,
|
|
291
|
+
} from "@agent-native/core/secrets/substitution";
|
|
292
|
+
|
|
293
|
+
// Resolve all ${keys.NAME} references in a string
|
|
294
|
+
const { resolved, usedKeys } = await resolveKeyReferences(
|
|
295
|
+
"Bearer ${keys.API_TOKEN}",
|
|
296
|
+
"user",
|
|
297
|
+
"user@example.com",
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
// Validate a URL against a key's allowlist
|
|
301
|
+
const allowed = validateUrlAllowlist(
|
|
302
|
+
"https://hooks.slack.com/services/<WORKSPACE>/<CHANNEL>/<SECRET>",
|
|
303
|
+
["https://hooks.slack.com"],
|
|
304
|
+
);
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Key resolution falls back from user scope to workspace scope, so users can
|
|
308
|
+
override shared keys without breaking automations that reference workspace
|
|
309
|
+
defaults.
|
|
310
|
+
|
|
311
|
+
## Dispatch Vault Access
|
|
312
|
+
|
|
313
|
+
Dispatch workspaces have a vault access policy for workspace app credentials:
|
|
314
|
+
|
|
315
|
+
- `all-apps` is the default. Every saved Dispatch vault key is available to
|
|
316
|
+
every workspace app; `sync-vault-to-app` pushes all vault keys to the target
|
|
317
|
+
app.
|
|
318
|
+
- `manual` requires explicit per-app grants. Use
|
|
319
|
+
`create-vault-grant` / `grant-vault-secrets-to-app`, then
|
|
320
|
+
`sync-vault-to-app`.
|
|
321
|
+
|
|
322
|
+
Use `get-vault-access-settings` before deciding whether to create grants, and
|
|
323
|
+
use `set-vault-access-settings` only when the user asks to change the policy.
|
|
324
|
+
|
|
325
|
+
### Key Files (ad-hoc)
|
|
326
|
+
|
|
327
|
+
| File | Purpose |
|
|
328
|
+
| ---------------------------------------------- | ------------------------------------------- |
|
|
329
|
+
| `packages/core/src/secrets/substitution.ts` | `resolveKeyReferences()`, `validateUrlAllowlist()` |
|
|
330
|
+
| `packages/core/src/tools/fetch-tool.ts` | `web-request` tool consuming key references |
|
|
331
|
+
|
|
332
|
+
## Related skills
|
|
333
|
+
|
|
334
|
+
- `onboarding` — the setup checklist that required secrets show up in.
|
|
335
|
+
- `actions` — where you'll read secrets when calling third-party APIs.
|
|
336
|
+
- `authentication` — session scoping; `scope: "user"` uses the session
|
|
337
|
+
email.
|
|
338
|
+
- `security` — input validation and never logging secrets.
|
|
339
|
+
- `automations` — ad-hoc keys power `${keys.NAME}` in automation web requests.
|
|
@@ -90,9 +90,9 @@ el.dataset.selectedId = selectedItem?.id || "";
|
|
|
90
90
|
**Use configuration-driven rendering** — Extract visual decisions (colors, layouts, sizes) into JSON config files in `data/`. The agent can modify the config (Tier 1) instead of the component source (Tier 2).
|
|
91
91
|
|
|
92
92
|
**Keep localized copy in catalogs** — When editing visible UI copy, labels,
|
|
93
|
-
toasts, empty states, prompts, or formatting,
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
toasts, empty states, prompts, or formatting, update the English source catalog.
|
|
94
|
+
Read the optional `internationalization` skill and update additional catalogs
|
|
95
|
+
only when `translations.locales` in `agent-native.config.ts` includes them.
|
|
96
96
|
|
|
97
97
|
## Don't
|
|
98
98
|
|
|
@@ -60,7 +60,7 @@ behavior comes from the company design system.
|
|
|
60
60
|
## Component Composition
|
|
61
61
|
|
|
62
62
|
- Use existing primitives before custom markup: `Alert` for callouts, `Badge` for small status labels, `Separator` for dividers, `Skeleton` for placeholders, `Table` for tabular data, and `Card` for framed content.
|
|
63
|
-
-
|
|
63
|
+
- Compose cards from `CardHeader`, `CardTitle`, `CardContent`, and `CardFooter`. Leave `CardDescription` out: a card gets a title or a description, never both. See `frontend-design` → Default Surface Density.
|
|
64
64
|
- Dialog, Sheet, Drawer, and AlertDialog content must include an accessible title. Use visually hidden titles only when the visible UI already communicates the title.
|
|
65
65
|
- Put items inside their group components: `SelectItem` in `SelectGroup`, `DropdownMenuItem` in `DropdownMenuGroup`, `CommandItem` in `CommandGroup`, and equivalent menu groups.
|
|
66
66
|
- `TabsTrigger` belongs inside `TabsList`.
|
|
@@ -31,6 +31,7 @@ Visibility is coarse. Explicit share grants are fine-grained (per user or per or
|
|
|
31
31
|
### Roles on a share grant
|
|
32
32
|
|
|
33
33
|
- **`viewer`** — read only.
|
|
34
|
+
- **`commenter`** — read + add comments, but cannot edit the resource or manage shares.
|
|
34
35
|
- **`editor`** — read + write.
|
|
35
36
|
- **`admin`** — read + write + manage shares. Does NOT replace the single `owner_email` on the resource.
|
|
36
37
|
|
|
@@ -3,9 +3,10 @@ name: turn-into-app
|
|
|
3
3
|
description: >-
|
|
4
4
|
Turn visible project context, a proven thread, skill, or workflow into a
|
|
5
5
|
runnable Agent-Native app with simple buttons, visible agent steps, preview,
|
|
6
|
-
and deployment handoff. Use when a user invokes `/turn-into-app
|
|
7
|
-
|
|
8
|
-
Claude or ChatGPT on the web
|
|
6
|
+
and deployment handoff. Use when a user invokes `/turn-into-app` or asks to
|
|
7
|
+
make a workflow into an app, including from
|
|
8
|
+
Claude or ChatGPT on the web, including when the source is a spreadsheet
|
|
9
|
+
link or upload.
|
|
9
10
|
user-invocable: true
|
|
10
11
|
scope: both
|
|
11
12
|
metadata:
|
|
@@ -16,43 +17,59 @@ metadata:
|
|
|
16
17
|
|
|
17
18
|
## Host execution boundary
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
Classify the runtime before choosing a build path. The presence of a Dispatch
|
|
21
|
+
or Builder connector does not make a coding host an online host:
|
|
22
|
+
|
|
23
|
+
- **Local coding host** - Codex Desktop/Code, Claude Code, Cursor, or any
|
|
24
|
+
runtime with a terminal, filesystem, and target checkout. Build in that
|
|
25
|
+
checkout: scaffold, edit, run, and verify the app locally. Do not call
|
|
26
|
+
`start-workspace-app-creation`, `create_workspace_app`, or any Builder
|
|
27
|
+
handoff for this path. The local implementation steps below are required.
|
|
28
|
+
- **Non-coding browser host** - Claude Web, ChatGPT Web, or a
|
|
29
|
+
Claude/ChatGPT Project in the browser when no target checkout or filesystem
|
|
30
|
+
is available. Act as the source analyst and handoff orchestrator. Do not run
|
|
31
|
+
`npm`, `pnpm`, `npx`, `agent-native create`, or `add-app`; do not edit files,
|
|
32
|
+
create artifacts, or start a local dev server. After writing the bounded
|
|
33
|
+
source brief, call the connected Dispatch action
|
|
26
34
|
`start-workspace-app-creation`. Pass the brief and repeatable workflow in
|
|
27
35
|
`prompt`, plus the inferred `appId`, `description`, `template`, and selected
|
|
28
|
-
`resourceIds` when available. This is the Builder handoff
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
`resourceIds` when available. This is the Builder handoff for browser hosts
|
|
37
|
+
only.
|
|
38
|
+
- If the host is ambiguous, inspect the environment. A real cwd, terminal, and
|
|
39
|
+
target workspace mean local coding host. Do not infer browser mode from the
|
|
40
|
+
availability of a Builder connector.
|
|
41
|
+
- For the browser-only path, do not substitute the generic
|
|
42
|
+
`create_workspace_app` MCP tool. That tool is a local workspace scaffolder,
|
|
43
|
+
not the Builder handoff. Connect the Agent-Native Dispatch MCP connector
|
|
44
|
+
only; Dispatch uses the authenticated Builder Projects API to reuse or
|
|
45
|
+
provision the workspace project before starting the Builder Cloud Agent.
|
|
46
|
+
- If the browser-only handoff action is unavailable or Dispatch is not
|
|
36
47
|
authenticated, stop with the connector setup needed. Do not fall back to a
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
host sandbox build or claim that the app exists.
|
|
49
|
+
- Never invent a Builder branch URL. If Dispatch returns only an acknowledgement
|
|
50
|
+
or a path without a URL, report the handoff as unverified rather than calling
|
|
51
|
+
it a ready or verified Builder branch.
|
|
41
52
|
|
|
42
53
|
Once the source brief is sufficient to identify a repeatable workflow, the
|
|
43
54
|
handoff is non-interactive. Do not ask the user for visual, product, copy,
|
|
44
55
|
layout, template, integration, or implementation choices that can be resolved
|
|
45
56
|
from the source. Select the source's recommended option; otherwise choose the
|
|
46
57
|
most direct conventional default and record the assumption for later review.
|
|
58
|
+
There is one source-integrity exception: for a spreadsheet, if candidate
|
|
59
|
+
workflows or the input/output mapping remain materially ambiguous after the
|
|
60
|
+
bounded review, ask one compact confirmation question before handoff. Show the
|
|
61
|
+
recommended interpretation and let the user confirm, correct, or multi-select
|
|
62
|
+
the candidates. Do not turn this into a generic app-builder questionnaire.
|
|
47
63
|
Only stop for a genuine hard blocker such as missing authorization, a
|
|
48
64
|
destructive external action, an ambiguous target workspace, or no identifiable
|
|
49
65
|
workflow at all.
|
|
50
66
|
|
|
51
67
|
## Default behavior
|
|
52
68
|
|
|
53
|
-
For a local
|
|
54
|
-
for an app proposal. For
|
|
55
|
-
Builder handoff and the resulting workspace app, not code written in
|
|
69
|
+
For a local coding host this is an end-to-end local build skill, not a request
|
|
70
|
+
for an app proposal. For a non-coding browser host, the end-to-end result is a
|
|
71
|
+
verified Builder handoff and the resulting workspace app, not code written in
|
|
72
|
+
the browser host.
|
|
56
73
|
|
|
57
74
|
- With no argument, choose the source in this order: visible project context,
|
|
58
75
|
then the current thread. A fresh Claude or ChatGPT Project is a valid source
|
|
@@ -66,9 +83,10 @@ Builder handoff and the resulting workspace app, not code written in the host.
|
|
|
66
83
|
- With an attachment or path, read the supplied artifact as the source.
|
|
67
84
|
- Do not ask the user to restate context that is already in the thread.
|
|
68
85
|
- When invoked from an Agent-Native app, use its visible project context first,
|
|
69
|
-
then the current thread
|
|
70
|
-
|
|
71
|
-
|
|
86
|
+
then the current thread. If the current runtime has a target checkout, use
|
|
87
|
+
the local implementation path; use a workspace/coding-agent handoff only
|
|
88
|
+
when the runtime cannot edit files. Do not claim the app exists without an
|
|
89
|
+
actual path and verification result.
|
|
72
90
|
|
|
73
91
|
## Source support
|
|
74
92
|
|
|
@@ -98,22 +116,62 @@ Spreadsheet attachments are valid source artifacts for this workflow:
|
|
|
98
116
|
provider API catalog/docs/request path to read only the required sheet or
|
|
99
117
|
range. If that connection is unavailable, ask for a CSV/XLSX export or the
|
|
100
118
|
required connection; do not use a public export URL to bypass access.
|
|
119
|
+
- First inventory the workbook before choosing an app: list every available
|
|
120
|
+
worksheet, its bounded shape, whether it is readable, and any visible
|
|
121
|
+
formulas or formatting signals. Do not assume the first tab is the product
|
|
122
|
+
or that every tab deserves its own app.
|
|
123
|
+
- Treat the workbook's visual conventions as evidence, not as a silent truth:
|
|
124
|
+
yellow-filled cells are proposed inputs, blue text is proposed output, and
|
|
125
|
+
black text is static historical context. Apply those signals to cell/range
|
|
126
|
+
mappings only when the source exposes formatting metadata. The current
|
|
127
|
+
bounded Excel preview is text-only, so an upload alone cannot prove those
|
|
128
|
+
colors; ask the user to confirm or clarify instead of inferring from plain
|
|
129
|
+
text. See [the spreadsheet source guide](references/spreadsheet-source.md).
|
|
130
|
+
- If the workbook contains several plausible repeatable jobs, present one
|
|
131
|
+
compact Q&A review with multi-select candidate options. Each option must
|
|
132
|
+
show its proposed name, source worksheet/range IDs, purpose, inferred inputs,
|
|
133
|
+
inferred outputs, confidence, and unresolved question. Default-select only
|
|
134
|
+
high-confidence recommendations. Mark the strongest recommendations in the
|
|
135
|
+
Q&A UI without silently selecting them. When the user selects multiple candidates,
|
|
136
|
+
implement them as separate named left-navigation destinations in one app,
|
|
137
|
+
with each destination preserving its own source tabs/ranges and I/O mapping.
|
|
138
|
+
- In generated app code, render this review with
|
|
139
|
+
`askUserQuestion` from `@agent-native/core/client/agent-chat` using
|
|
140
|
+
`allowMultiple: true`, stable candidate IDs as option values, and
|
|
141
|
+
`allowFreeText: true` for corrections. It renders inline in the agent panel;
|
|
142
|
+
do not build a custom modal. Group a large workbook into 2-4 candidate jobs
|
|
143
|
+
per question instead of presenting a tab dump.
|
|
144
|
+
- Before handoff or the first generated-app run, show the proposed source,
|
|
145
|
+
inputs, outputs, static historicals, refresh/snapshot choice, and truncation
|
|
146
|
+
limits as a review state. Let the user confirm or correct the mapping. Do not
|
|
147
|
+
publish, overwrite the source, or claim a complete import before confirmation.
|
|
148
|
+
- Do not promote every numeric cell or model assumption into an editable app
|
|
149
|
+
input. Classify candidates as primary controllable drivers, secondary
|
|
150
|
+
controllable levers, or fixed model context. Opening balances, current-period
|
|
151
|
+
anchors, historicals, and policy or tax rates stay in fixed context unless
|
|
152
|
+
the source or user explicitly identifies them as editable.
|
|
153
|
+
- Rank the primary edit surface by controllability and modeled leverage. Put the
|
|
154
|
+
smallest useful set of high-impact drivers first, keep lower-frequency levers
|
|
155
|
+
behind progressive disclosure, and keep fixed context visible for orientation
|
|
156
|
+
without presenting it as a control. Name these categories in the source brief
|
|
157
|
+
and preserve the distinction in the generated app's actions and agent context.
|
|
101
158
|
- Decide whether the generated app needs a one-time snapshot or a refreshable
|
|
102
159
|
source. For a snapshot, pass bounded sample context and provenance to the
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
160
|
+
local build or the browser-only Builder handoff selected by the host. For a
|
|
161
|
+
live source, preserve the provider/file identity, worksheet or range, and
|
|
162
|
+
refresh semantics, then implement a scoped action for reads or refreshes.
|
|
163
|
+
Never copy workbook bytes, base64 data, credentials, or a full unbounded
|
|
164
|
+
sheet into SQL, application state, or the handoff prompt.
|
|
107
165
|
- Do not claim the app imported the whole workbook when only a preview was
|
|
108
166
|
available. Keep unreadable, partial, and failed source states distinct from
|
|
109
167
|
an empty sheet.
|
|
110
168
|
|
|
111
|
-
For local
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
169
|
+
For local coding hosts, deliver a fresh app in a new directory, implement the
|
|
170
|
+
repeatable workflow with buttons and agent handoffs, start its dev server,
|
|
171
|
+
verify the main path, and continue through build/deployment handoff. Do not stop
|
|
172
|
+
at a plan or route the work to Builder. For non-coding browser hosts, call
|
|
173
|
+
Dispatch first after the source brief, then report only the returned Builder
|
|
174
|
+
branch URL/path and verification result; if the URL is absent, say so plainly.
|
|
117
175
|
|
|
118
176
|
## Fresh project context mode
|
|
119
177
|
|
|
@@ -182,6 +240,11 @@ Generated apps must follow the shared Agent-Native surface model:
|
|
|
182
240
|
message or neutral action icon, or no icon when the button label is enough.
|
|
183
241
|
- Make the left navigation describe domain destinations. Chat is a separate
|
|
184
242
|
destination, not the label for every app page.
|
|
243
|
+
- For a spreadsheet-derived app with multiple confirmed candidates, make each
|
|
244
|
+
candidate a separate named left-navigation destination. Keep the shared
|
|
245
|
+
source provenance visible, but show that candidate's selected worksheets,
|
|
246
|
+
ranges, inputs, outputs, historical context, and confirmation state on its
|
|
247
|
+
destination.
|
|
185
248
|
- Start with one primary action and one compact state. Put setup choices,
|
|
186
249
|
advanced inputs, diagnostics, and long explanations behind progressive
|
|
187
250
|
disclosure or later workflow steps.
|
|
@@ -211,6 +274,14 @@ brief:
|
|
|
211
274
|
- the buttons, review points, and retry states a user needs;
|
|
212
275
|
- data, permissions, integrations, and failure boundaries.
|
|
213
276
|
|
|
277
|
+
For a spreadsheet source, also include the workbook/file or spreadsheet ID,
|
|
278
|
+
worksheet and range candidates, source snapshot/live semantics, formatting
|
|
279
|
+
signals and their confidence, selected candidate destinations, and the exact
|
|
280
|
+
confirmation or clarification still needed. A spreadsheet's inputs and
|
|
281
|
+
outputs have two layers: the mapped source cells/ranges, and the generated
|
|
282
|
+
app's user-facing results/actions. Name both so the Builder does not confuse
|
|
283
|
+
an output cell with an app write or a historical value with an editable input.
|
|
284
|
+
|
|
214
285
|
Preserve useful judgment from the source, but do not turn a one-off answer,
|
|
215
286
|
private data, or an unverified result into a product contract. If the source is
|
|
216
287
|
not available or does not contain a repeatable job, say what is missing rather
|
|
@@ -243,12 +314,13 @@ Do not use `create` for an existing workspace; it scaffolds a new standalone
|
|
|
243
314
|
workspace rather than adding an app to the current one.
|
|
244
315
|
|
|
245
316
|
When the source came from a fresh external Project and the target is a Builder
|
|
246
|
-
workspace, the
|
|
247
|
-
call `start-workspace-app-creation` with a concise prompt, the inferred
|
|
248
|
-
and the brief's repeatable workflow. Pass selected workspace resource
|
|
249
|
-
they are available, rather than pasting entire knowledge files.
|
|
250
|
-
the returned workspace path or Builder branch handoff and report
|
|
251
|
-
verification result.
|
|
317
|
+
workspace, the browser-only host path is mandatory: after writing the source
|
|
318
|
+
brief, call `start-workspace-app-creation` with a concise prompt, the inferred
|
|
319
|
+
app id, and the brief's repeatable workflow. Pass selected workspace resource
|
|
320
|
+
IDs when they are available, rather than pasting entire knowledge files.
|
|
321
|
+
Continue from the returned workspace path or Builder branch handoff and report
|
|
322
|
+
the actual verification result. This rule does not override local host
|
|
323
|
+
classification: Codex/Claude Code with a target checkout must build locally.
|
|
252
324
|
|
|
253
325
|
Use a first-party template only when it materially fits the workflow. Keep the
|
|
254
326
|
new app independent from the source thread's working tree unless the user
|
|
@@ -28,11 +28,13 @@ Write a compact brief before starting the app:
|
|
|
28
28
|
```text
|
|
29
29
|
Source: host-provided Claude/ChatGPT Project context
|
|
30
30
|
Provenance: project instructions, selected knowledge files, and visible runs
|
|
31
|
+
Source artifact type: project context, thread, skill, spreadsheet link, or upload
|
|
31
32
|
Project goal:
|
|
32
33
|
Configuration and constraints:
|
|
33
34
|
Knowledge sources:
|
|
34
35
|
Repeatable workflow:
|
|
35
36
|
Inputs and outputs:
|
|
37
|
+
Workbook candidates and confirmation: worksheet/range options, inferred I/O, selected destinations, unresolved questions
|
|
36
38
|
Judgment and review points:
|
|
37
39
|
Representative runs: none, or 1-3 selected examples
|
|
38
40
|
Integrations and permissions:
|
|
@@ -72,9 +74,13 @@ skill.
|
|
|
72
74
|
The brief is an implementation authorization, not a questionnaire. After a
|
|
73
75
|
repeatable workflow is identifiable, choose any source-recommended option
|
|
74
76
|
automatically. For unresolved non-blocking choices, use the most direct
|
|
75
|
-
conventional default, record it under assumptions, and continue.
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
conventional default, record it under assumptions, and continue. A spreadsheet
|
|
78
|
+
is the narrow exception when its candidate workflows or input/output mapping
|
|
79
|
+
cannot be grounded from the bounded source: show the recommended candidates
|
|
80
|
+
and mapping in one compact multi-select confirmation, then continue after the
|
|
81
|
+
user confirms or corrects it. Ask only for that source-integrity clarification,
|
|
82
|
+
no identifiable workflow, no authorized target workspace, or a
|
|
83
|
+
destructive/credential boundary that genuinely prevents the handoff.
|
|
78
84
|
|
|
79
85
|
In a new Project chat, say:
|
|
80
86
|
|