@agent-native/core 0.152.1 → 0.153.1
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/components/calendar/DayView.tsx +3 -2
- package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +3 -2
- package/corpus/templates/calendar/app/lib/event-layout.ts +16 -35
- 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/meetings/share-meeting-dialog.tsx +27 -44
- package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +84 -41
- 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 +20 -7
- 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/app.tsx +1 -1
- package/corpus/templates/clips/desktop/src/styles.css +10 -2
- 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/clips/mod.rs +2 -2
- 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/desktop/src-tauri/src/util.rs +1 -1
- 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 -430
- 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 +81 -81
- package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +28 -25
- package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +175 -10
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +256 -69
- 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/agent/production-agent.d.ts +8 -0
- package/dist/agent/production-agent.js +25 -2
- package/dist/agent/run-manager.js +13 -3
- 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 +44 -26
- 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/org/WorkspaceNotice.js +7 -4
- 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 +4 -2
- package/dist/client/sharing/ShareButton.js +26 -14
- package/dist/client/sharing/ShareDialog.d.ts +1 -1
- package/dist/client/sharing/ShareDialog.js +17 -11
- 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/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 +6 -6
- package/dist/onboarding/plugin.js +17 -2
- package/dist/org/context.js +16 -0
- package/dist/progress/routes.d.ts +1 -1
- 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/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/auth.js +18 -4
- package/dist/server/better-auth-instance.js +8 -1
- package/dist/server/builder-browser.js +31 -0
- package/dist/server/magic-link-attribution.d.ts +21 -0
- package/dist/server/magic-link-attribution.js +115 -0
- package/dist/server/onboarding-html.js +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/workspace-provider-oauth.js +38 -26
- package/dist/setup-connections/index.d.ts +1 -1
- package/dist/setup-connections/index.js +1 -1
- package/dist/shared/first-run-onboarding.d.ts +6 -0
- package/dist/shared/first-run-onboarding.js +6 -0
- package/dist/sharing/access.d.ts +1 -1
- package/dist/sharing/access.js +4 -1
- package/dist/sharing/actions/share-resource.d.ts +1 -1
- package/dist/sharing/actions/share-resource.js +2 -2
- package/dist/sharing/registry.d.ts +2 -2
- package/dist/sharing/schema.d.ts +5 -5
- package/dist/sharing/schema.js +9 -6
- package/dist/styles/agent-native.css +21 -0
- package/dist/styles/chat-history-list.css +1 -1
- package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/dist/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
- package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
- package/dist/templates/chat/.agents/skills/portability/SKILL.md +107 -0
- package/dist/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
- package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/dist/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
- package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/dist/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/dist/templates/chat/AGENTS.md +4 -5
- package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/dist/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
- package/dist/templates/default/.agents/skills/portability/SKILL.md +107 -0
- package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/dist/templates/default/.agents/skills/sharing/SKILL.md +233 -0
- package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/dist/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/dist/templates/default/AGENTS.md +17 -2
- package/dist/templates/default/agent-native.config.ts +6 -0
- package/dist/templates/default/app/i18n/ar-SA.ts +2 -0
- package/dist/templates/default/app/i18n/de-DE.ts +2 -0
- package/dist/templates/default/app/i18n/en-US.ts +3 -1
- package/dist/templates/default/app/i18n/es-ES.ts +2 -0
- package/dist/templates/default/app/i18n/fr-FR.ts +2 -0
- package/dist/templates/default/app/i18n/hi-IN.ts +2 -0
- package/dist/templates/default/app/i18n/ja-JP.ts +2 -0
- package/dist/templates/default/app/i18n/ko-KR.ts +2 -0
- package/dist/templates/default/app/i18n/pt-BR.ts +2 -0
- package/dist/templates/default/app/i18n/zh-CN.ts +2 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +2 -0
- package/dist/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/dist/templates/headless/.agents/skills/security/SKILL.md +324 -0
- package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
- package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
- package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
- package/dist/templates/workspace-core/AGENTS.md +9 -3
- package/dist/templates/workspace-root/AGENTS.md +26 -1
- package/dist/templates/workspace-root/agent-native.config.ts +8 -0
- package/dist/triggers/actions.js +2 -2
- package/dist/usage/actions/get-usage-alerts.d.ts +5 -0
- package/dist/usage/actions/get-usage-alerts.js +16 -0
- package/dist/usage/actions/get-usage-metrics.d.ts +7 -0
- package/dist/usage/actions/get-usage-metrics.js +26 -0
- package/dist/usage/actions/manage-usage-alert.d.ts +14 -0
- package/dist/usage/actions/manage-usage-alert.js +48 -0
- package/dist/usage/alerts-store.d.ts +78 -0
- package/dist/usage/alerts-store.js +592 -0
- package/dist/usage/metrics-store.d.ts +95 -0
- package/dist/usage/metrics-store.js +386 -0
- package/dist/usage/store.js +10 -0
- package/dist/vite/action-types-plugin.js +28 -0
- package/dist/vite/agent-native-config-loader.d.ts +6 -0
- package/dist/vite/agent-native-config-loader.js +54 -2
- package/dist/vite/client.js +11 -5
- package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.d.ts +6 -0
- package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.js +24 -0
- package/dist/workspace-connections/actions/delete-workspace-user-group.d.ts +7 -0
- package/dist/workspace-connections/actions/delete-workspace-user-group.js +29 -0
- package/dist/workspace-connections/actions/list-workspace-user-groups.d.ts +2 -0
- package/dist/workspace-connections/actions/list-workspace-user-groups.js +13 -0
- package/dist/workspace-connections/actions/upsert-workspace-user-group.d.ts +6 -0
- package/dist/workspace-connections/actions/upsert-workspace-user-group.js +22 -0
- package/dist/workspace-connections/credential-key-aliases.d.ts +3 -0
- package/dist/workspace-connections/credential-key-aliases.js +31 -0
- package/dist/workspace-connections/credentials.js +1 -25
- package/dist/workspace-connections/groups.d.ts +32 -0
- package/dist/workspace-connections/groups.js +288 -0
- package/dist/workspace-connections/index.d.ts +3 -1
- package/dist/workspace-connections/index.js +3 -1
- package/dist/workspace-connections/store.d.ts +9 -0
- package/dist/workspace-connections/store.js +68 -8
- package/docs/content/components.mdx +2 -2
- package/docs/content/sharing.mdx +2 -1
- package/package.json +10 -2
- package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/src/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
- package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
- package/src/templates/chat/.agents/skills/portability/SKILL.md +107 -0
- package/src/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
- package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/src/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
- package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/src/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/src/templates/chat/AGENTS.md +4 -5
- package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/src/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
- package/src/templates/default/.agents/skills/portability/SKILL.md +107 -0
- package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/src/templates/default/.agents/skills/sharing/SKILL.md +233 -0
- package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/src/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/src/templates/default/AGENTS.md +17 -2
- package/src/templates/default/agent-native.config.ts +6 -0
- package/src/templates/default/app/i18n/ar-SA.ts +2 -0
- package/src/templates/default/app/i18n/de-DE.ts +2 -0
- package/src/templates/default/app/i18n/en-US.ts +3 -1
- package/src/templates/default/app/i18n/es-ES.ts +2 -0
- package/src/templates/default/app/i18n/fr-FR.ts +2 -0
- package/src/templates/default/app/i18n/hi-IN.ts +2 -0
- package/src/templates/default/app/i18n/ja-JP.ts +2 -0
- package/src/templates/default/app/i18n/ko-KR.ts +2 -0
- package/src/templates/default/app/i18n/pt-BR.ts +2 -0
- package/src/templates/default/app/i18n/zh-CN.ts +2 -0
- package/src/templates/default/app/i18n/zh-TW.ts +2 -0
- package/src/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/src/templates/headless/.agents/skills/security/SKILL.md +324 -0
- package/src/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
- package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
- package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
- package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/src/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
- package/src/templates/workspace-core/AGENTS.md +9 -3
- package/src/templates/workspace-root/AGENTS.md +26 -1
- package/src/templates/workspace-root/agent-native.config.ts +8 -0
- package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/assets/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +0 -195
- package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
- package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/dist/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
- package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/dist/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
- package/dist/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
- package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
- package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
- package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
- package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
- package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
- package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
- package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
- package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
- package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
- package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
- package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
- package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
- package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
- package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
- package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
- package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
- package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
- package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
- package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
- package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
- package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
- package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
- package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
- package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
- package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
- package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
- package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
- package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
- package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
- package/dist/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
- package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
- package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
- package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
- package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
- package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
- package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
- package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
- package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
- package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
- package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
- package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/src/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
- package/src/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/src/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
- package/src/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
- package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
- package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
- package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
- package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
- package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
- package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
- package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
- package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
- package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
- package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
- package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
- package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
- package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
- package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
- package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
- package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
- package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
- package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
- package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
- package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
- package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
- package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
- package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
- package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
- package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
- package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
- package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
- package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
- package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
- package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
- package/src/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
- package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
- package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
- package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
- package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
- package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
- package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
- package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
- package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
- package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
- package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
- package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: address-feedback
|
|
3
|
-
description: >-
|
|
4
|
-
Triage feedback from docs, issues, Slack threads, or pasted notes into
|
|
5
|
-
verified bugs, UX proposals, unclear questions, and skipped noise. Use when a
|
|
6
|
-
user asks you to address product feedback or investigate a reported workflow.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Address Feedback
|
|
13
|
-
|
|
14
|
-
Use this skill when the user shares a feedback document, issue, thread, or pasted notes and asks you to address the feedback.
|
|
15
|
-
|
|
16
|
-
The default posture is judgment plus action: fix clear, verified bugs you agree with; propose UX changes with rationale; skip or flag low-signal, unclear, or out-of-scope items.
|
|
17
|
-
|
|
18
|
-
## Prerequisites
|
|
19
|
-
|
|
20
|
-
- If no link or feedback text is provided, ask for it.
|
|
21
|
-
- Read the repo `AGENTS.md` before touching code.
|
|
22
|
-
- Use the relevant connector/plugin/skill for the source when available, instead of scraping authenticated pages.
|
|
23
|
-
- Before starting work, search available task history and local Git/PR metadata for the exact feedback link or issue identifiers. Reuse existing work instead of creating a duplicate fix.
|
|
24
|
-
|
|
25
|
-
## Steps
|
|
26
|
-
|
|
27
|
-
1. Read the feedback source.
|
|
28
|
-
|
|
29
|
-
| Source | Reader |
|
|
30
|
-
| --- | --- |
|
|
31
|
-
| Notion link | Notion connector or Notion skill |
|
|
32
|
-
| Google Docs/Drive link | Google Drive connector or Google Docs skill |
|
|
33
|
-
| Linear link | Linear connector if installed; otherwise ask for pasted content |
|
|
34
|
-
| GitHub issue or PR | GitHub connector or `gh issue view` / `gh pr view` |
|
|
35
|
-
| Slack thread | Slack connector |
|
|
36
|
-
| Public URL | Web browsing |
|
|
37
|
-
| Pasted text | Read directly |
|
|
38
|
-
|
|
39
|
-
Use web browsing only for public URLs. Auth-gated docs usually need their matching connector. For threads, read the parent and all replies; note when there are no replies, and inspect linked files or newer follow-ups when the source refers to them.
|
|
40
|
-
|
|
41
|
-
2. Check whether this defect has already been reported.
|
|
42
|
-
|
|
43
|
-
A feedback channel holds months of reports and nobody remembers all of them,
|
|
44
|
-
so the same defect gets filed by different people weeks apart and every
|
|
45
|
-
filing reads as new. One recorded case: the same Clips recording bug was
|
|
46
|
-
filed almost word-for-word 29 days apart by the same reporter, and neither
|
|
47
|
-
message mentions the other. Another defect was reported fifteen times by
|
|
48
|
-
nine people across three months, was announced as fixed once in the middle,
|
|
49
|
-
and was reported again two weeks later.
|
|
50
|
-
|
|
51
|
-
Search before fixing, going back at least three months: the source channel
|
|
52
|
-
in the reporter's words and in your own, Sentry, and merged PR titles. Search
|
|
53
|
-
the feature name, the error text, and the surface separately — repeat reports
|
|
54
|
-
rarely share vocabulary.
|
|
55
|
-
|
|
56
|
-
- **No prior report** — proceed normally.
|
|
57
|
-
- **Prior report, no fix landed** — say how long it has been open. The person
|
|
58
|
-
forwarding it to you is likely seeing it for the second time too.
|
|
59
|
-
- **Prior report, fix landed** — this is a regression, and the bar is now
|
|
60
|
-
different. Patching it again and reporting done is exactly how it returns a
|
|
61
|
-
third time. Find why the first fix stopped holding, and leave behind
|
|
62
|
-
something that fails when it breaks again: a test that reproduces the
|
|
63
|
-
user's path, or an assertion in the flow the report names.
|
|
64
|
-
|
|
65
|
-
Report the repeat explicitly, with dates and reporters. A defect on its third
|
|
66
|
-
report is not a bug ticket, it is a missing check — and the missing check is
|
|
67
|
-
the deliverable, not the patch.
|
|
68
|
-
|
|
69
|
-
3. Decompose and categorize every actionable item.
|
|
70
|
-
|
|
71
|
-
Build a compact checklist before changing code. For each item, record the
|
|
72
|
-
symptom, expected behavior, evidence, and owning surface: UI, action/tool,
|
|
73
|
-
data model, provider/runtime, or product policy.
|
|
74
|
-
|
|
75
|
-
- **Bug**: Broken behavior, crash, wrong data, dead link, package/API mismatch, or captured exception. Verify and fix when you agree.
|
|
76
|
-
- **UX suggestion**: Design, discoverability, workflow, or feature feedback. Propose the cleanest version first unless the user explicitly asked you to implement UX changes.
|
|
77
|
-
- **Question or unclear**: Missing detail, contradictory feedback, or behavior you cannot inspect. Ask or flag it.
|
|
78
|
-
- **Out of scope**: Outside this repo, already shipped, intentionally unsupported, or too low-signal. Note briefly and skip.
|
|
79
|
-
|
|
80
|
-
4. For data, permissions, or resource-lifecycle feedback, verify the whole capability boundary before calling it UX.
|
|
81
|
-
|
|
82
|
-
- Check the supported create/read/update/delete lifecycle, including whether the backend/action exists when a UI control is missing.
|
|
83
|
-
- Inspect both the UI and the shared action/tool surface so agent and UI behavior stay in parity.
|
|
84
|
-
- Verify scope semantics such as owner/private, organization, shared, and public access. Test owner and non-owner paths with safe fixtures or read-only checks; never use another user's production data to test access.
|
|
85
|
-
- Treat possible cross-user or cross-organization exposure as a security/correctness bug and verify it before proposing polish.
|
|
86
|
-
- Keep undefined product policy separate from implementation bugs. If supported source types or scope semantics are not defined, flag the contract question instead of inventing behavior.
|
|
87
|
-
|
|
88
|
-
5. Check Sentry when the feedback smells like an error.
|
|
89
|
-
|
|
90
|
-
- Use the Sentry skill/plugin if available, or the repo's Sentry scripts if documented.
|
|
91
|
-
- Search by route, stack symbol, error text, and symptom keywords.
|
|
92
|
-
- Default org is `builder-io` unless the user specifies another.
|
|
93
|
-
- Cite issue IDs or links when you find a match.
|
|
94
|
-
- If nothing matches, say that plainly.
|
|
95
|
-
|
|
96
|
-
6. Fix only the clear bugs you agree with.
|
|
97
|
-
|
|
98
|
-
- Verify before fixing: reproduce locally, read the relevant code, inspect logs, or confirm with a stack trace.
|
|
99
|
-
- Keep each fix narrow and mapped to a feedback item.
|
|
100
|
-
- Follow existing project conventions and nearby patterns.
|
|
101
|
-
- Do not switch branches, stash, reset, force-push, or open a PR unless the user asks.
|
|
102
|
-
- Add or update focused tests when the bug risk warrants it.
|
|
103
|
-
|
|
104
|
-
7. Treat UX feedback with product judgment.
|
|
105
|
-
|
|
106
|
-
Do not add visible UI as the default response. Address the underlying user
|
|
107
|
-
problem first, then choose the smallest change that makes the current state,
|
|
108
|
-
decision, action, or recovery path clearer.
|
|
109
|
-
|
|
110
|
-
- Make the current intent, state, and meaningful next step easier to find.
|
|
111
|
-
- Remove competing or redundant elements before adding controls, helper
|
|
112
|
-
text, banners, top-level navigation, or always-open panels.
|
|
113
|
-
- Put secondary or advanced actions in a `DropdownMenu`, `Popover`, `Sheet`,
|
|
114
|
-
`Collapsible`, tabs, or another contextual surface. Keep essential meaning,
|
|
115
|
-
labels, focus, hit targets, and recovery in the default path.
|
|
116
|
-
- Improve empty, loading, and error states around the user's actual need.
|
|
117
|
-
|
|
118
|
-
When the user has corrected the same visual preference more than once, treat
|
|
119
|
-
it as an acceptance criterion for the surface, not as a one-off copy edit.
|
|
120
|
-
State the underlying invariant before coding, such as “the default state
|
|
121
|
-
makes one next decision obvious and defers secondary detail,” then check the
|
|
122
|
-
rendered result against it. A screenshot showing unrelated forms, repeated
|
|
123
|
-
explanatory copy, documentation links, or competing controls in the default
|
|
124
|
-
state fails the review. Subtract that competition instead of explaining the
|
|
125
|
-
UI with more copy.
|
|
126
|
-
|
|
127
|
-
When proposing a UX change, write it as: what to change, why it helps, and the tradeoff. Keep each proposal short.
|
|
128
|
-
|
|
129
|
-
8. Verify changed behavior.
|
|
130
|
-
|
|
131
|
-
- Run the smallest relevant test or typecheck command.
|
|
132
|
-
- For UI fixes, inspect the actual screen with a browser tool you already
|
|
133
|
-
have. Do not write a browser-automation script to check a small fix.
|
|
134
|
-
- For resource visibility or lifecycle changes, verify both the screen and
|
|
135
|
-
shared action/tool behavior, including owner versus non-owner access when
|
|
136
|
-
relevant.
|
|
137
|
-
- If you cannot run a useful verification, say why.
|
|
138
|
-
|
|
139
|
-
## Report Format
|
|
140
|
-
|
|
141
|
-
Keep the final report short:
|
|
142
|
-
|
|
143
|
-
```md
|
|
144
|
-
## Repeat Reports
|
|
145
|
-
- [defect] - reported [N] times since [date] by [reporters]; [what now fails if it regresses]
|
|
146
|
-
|
|
147
|
-
## Bugs Fixed
|
|
148
|
-
- [feedback item] - [what changed, file:line]
|
|
149
|
-
|
|
150
|
-
## Bugs Flagged But Not Fixed
|
|
151
|
-
- [feedback item] - [why]
|
|
152
|
-
|
|
153
|
-
## UX Suggestions
|
|
154
|
-
- [feedback item] -> [proposed change]
|
|
155
|
-
|
|
156
|
-
## Skipped
|
|
157
|
-
- [feedback item] - [reason]
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Only include sections that have content. The user can read the diff; do not write a second feedback document.
|
|
161
|
-
|
|
162
|
-
## Avoid
|
|
163
|
-
|
|
164
|
-
- Do not agree with every suggestion by default.
|
|
165
|
-
- Do not bundle unrelated cleanups.
|
|
166
|
-
- Do not implement UX changes that make an important screen busier without explicit user approval.
|
|
167
|
-
- Do not claim a UI change is done without browser verification when a local app can be run.
|
|
168
|
-
- Do not invent Sentry matches, affected users, or reproduction steps.
|
|
169
|
-
|
|
170
|
-
## Related Skills
|
|
171
|
-
|
|
172
|
-
- `github:gh-address-comments` for GitHub PR review threads.
|
|
173
|
-
- `github:gh-fix-ci` for failing GitHub checks.
|
|
174
|
-
- `sentry:sentry` for production error investigation.
|
|
175
|
-
- `frontend-design` for approved UI implementation work.
|
|
176
|
-
- `qa` for broader browser verification.
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agent-page
|
|
3
|
-
description: >-
|
|
4
|
-
The full-page Agent surface (/agent) with Context, Files, Connections,
|
|
5
|
-
Automations, and Access tabs. Use when mounting the Agent page in a template, adding an
|
|
6
|
-
app-specific tab, surfacing context transparency, MCP servers, A2A agents,
|
|
7
|
-
recurring jobs, or external-client connect flows in the UI.
|
|
8
|
-
scope: dev
|
|
9
|
-
metadata:
|
|
10
|
-
internal: true
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Agent Page
|
|
14
|
-
|
|
15
|
-
`AgentTabsPage` (from `@agent-native/core/client`, source
|
|
16
|
-
`packages/core/src/client/agent-page/`) is the canonical full-page surface for
|
|
17
|
-
everything that can influence the agent. Design principles:
|
|
18
|
-
|
|
19
|
-
- The page answers "what can influence this agent, and why" — it is not a
|
|
20
|
-
generic admin console.
|
|
21
|
-
- Capability and access stay separate: **Connections** is what this agent can
|
|
22
|
-
reach; **Access** is who can reach this agent.
|
|
23
|
-
- It is a thin shell that re-hosts existing components (ResourcesPanel, MCP
|
|
24
|
-
hooks, AgentsSection, context X-Ray, jobs actions) — do not re-implement
|
|
25
|
-
those surfaces inside it.
|
|
26
|
-
- Context must be inspectable, attributable, and governable — provenance and
|
|
27
|
-
governance tiers, not just a token meter.
|
|
28
|
-
|
|
29
|
-
## Tabs
|
|
30
|
-
|
|
31
|
-
| Tab | Contents |
|
|
32
|
-
| --- | --- |
|
|
33
|
-
| `context` | System-vs-conversation split meter, provenance-grouped system sections (governance tiers: required/inherited/user), live-thread manifest. Backed by `context-preview-get` / `context-manifest-get` (see `context-xray` skill). |
|
|
34
|
-
| `files` | ResourcesPanel (skills, instructions, memory, uploads) with the virtual `mcp-servers/` folder hidden (`showMcpServers={false}`). |
|
|
35
|
-
| `connections` | MCP server management (both scopes, admin-gated org writes) plus A2A remote agents this app can call. |
|
|
36
|
-
| `jobs` | **Automations**: personal and organization Scheduled/Event tasks with pause/resume/delete. The `jobs` hash is stable for compatibility (see `automations` and `recurring-jobs`). |
|
|
37
|
-
| `access` | Copyable MCP URL and A2A agent-card URL, per-client connect steps (Claude, ChatGPT, Cursor, Claude Code, Codex, Other) from `packages/core/src/shared/mcp-connect-content.ts` (shared with the `/mcp/connect` route — edit the shared module, never fork copy), static-token fallback link. Grants/scopes/revocation UI is future work. |
|
|
38
|
-
|
|
39
|
-
## Mounting In A Template
|
|
40
|
-
|
|
41
|
-
1. Add an `/agent` route following the template's settings-route pattern
|
|
42
|
-
(`app/routes/agent.tsx` or `_app.agent.tsx`), mounting `AgentTabsPage`.
|
|
43
|
-
CSR is fine; keep the app shell in `root.tsx` so navigation does not
|
|
44
|
-
remount it (`client-side-routing` skill).
|
|
45
|
-
2. Add an "Agent" item to primary navigation and the command palette,
|
|
46
|
-
mirroring the Settings entries. Link-first (`native-navigation` skill).
|
|
47
|
-
3. Pass `agentPageHref="/agent"` to `AgentSidebar` so the sidebar Resources
|
|
48
|
-
and settings modes link out to the full page.
|
|
49
|
-
4. Hash deep-links work out of the box: `/agent#context`, `/agent#files`,
|
|
50
|
-
`/agent#connections`, `/agent#jobs`, `/agent#access`.
|
|
51
|
-
5. App-specific additions go in `extraTabs` (same `SettingsTabItem` shape as
|
|
52
|
-
the settings page); hide built-ins only with `hiddenTabs` when a template
|
|
53
|
-
genuinely lacks the underlying capability.
|
|
54
|
-
|
|
55
|
-
## Scope
|
|
56
|
-
|
|
57
|
-
The page currently passes personal `scope` (and `canManageOrg`) to tabs via
|
|
58
|
-
`AgentPageTabProps`; it does not expose a page-level Personal/Organization
|
|
59
|
-
toggle. A tab may render its own scoped sections where the underlying actions
|
|
60
|
-
support them. The Automations tab shows personal and organization sections for
|
|
61
|
-
both Scheduled and Event triggers. Organization event automations remain
|
|
62
|
-
creator-run: administrators can manage them, but cannot retarget the creator's
|
|
63
|
-
identity.
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: audit-log
|
|
3
|
-
description: >-
|
|
4
|
-
Durable, access-scoped, append-only record of who changed what app data,
|
|
5
|
-
when, and whether it was the agent or a human. Use when adding an activity
|
|
6
|
-
feed or change history, declaring what a mutating action targets, auditing
|
|
7
|
-
sensitive reads, or answering "what did the agent change / who edited this".
|
|
8
|
-
scope: dev
|
|
9
|
-
metadata:
|
|
10
|
-
internal: true
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Audit Log
|
|
14
|
-
|
|
15
|
-
## Rule
|
|
16
|
-
|
|
17
|
-
Every mutating action automatically records an audit event — **no wiring
|
|
18
|
-
needed**. The framework captures who/what/when/from-where at the `defineAction`
|
|
19
|
-
seam, redacts credentials, and attributes the change to a human or the agent
|
|
20
|
-
(with the agent thread/turn that caused it). You only touch `audit` config to
|
|
21
|
-
make events *more useful* (declare the target) or to opt a read in / a noisy
|
|
22
|
-
write out.
|
|
23
|
-
|
|
24
|
-
This is distinct from:
|
|
25
|
-
|
|
26
|
-
- **observability** — sampled agent-run telemetry (traces, evals), developer-facing.
|
|
27
|
-
- **tracking** — fire-and-forget product analytics to external SaaS.
|
|
28
|
-
|
|
29
|
-
Audit is complete, durable, locally queryable, and scoped to the data it
|
|
30
|
-
describes.
|
|
31
|
-
|
|
32
|
-
## Declare the target so it lands in the owner's trail
|
|
33
|
-
|
|
34
|
-
By default an event is scoped to the **actor** (you see your own changes and the
|
|
35
|
-
agent's changes on your behalf). To make a change to a *shared* resource show up
|
|
36
|
-
in the **owner's** audit trail, declare the target:
|
|
37
|
-
|
|
38
|
-
```ts
|
|
39
|
-
defineAction({
|
|
40
|
-
description: "Delete a recording",
|
|
41
|
-
schema: z.object({ id: z.string() }),
|
|
42
|
-
audit: {
|
|
43
|
-
// type + id label the event; ownerEmail/orgId/visibility scope who can read it.
|
|
44
|
-
target: (args, result, meta) => ({
|
|
45
|
-
type: "recording",
|
|
46
|
-
id: args.id,
|
|
47
|
-
// Optional — defaults to the actor. Set when editing someone else's resource.
|
|
48
|
-
ownerEmail: result?.ownerEmail,
|
|
49
|
-
visibility: "org",
|
|
50
|
-
}),
|
|
51
|
-
summary: (args) => `Deleted recording ${args.id}`,
|
|
52
|
-
},
|
|
53
|
-
run: async (args, ctx) => { /* ... */ },
|
|
54
|
-
});
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
`target`, `ownerEmail`, `visibility`, and `summary` are all optional. The
|
|
58
|
-
minimum useful addition is `target: () => ({ type, id })`.
|
|
59
|
-
|
|
60
|
-
## Defaults and how to override them
|
|
61
|
-
|
|
62
|
-
- **Mutations** (anything not GET / `readOnly`) are audited automatically.
|
|
63
|
-
- **Read-only** actions are skipped. Audit a sensitive read (secret access, bulk
|
|
64
|
-
export) with `audit: { onRead: true }`.
|
|
65
|
-
- **High-frequency framework actions** (app-state sync, context-xray, navigate,
|
|
66
|
-
appearance) are skipped by default. Force one on with `audit: { enabled: true }`.
|
|
67
|
-
- **Opt a noisy write out** with `audit: { enabled: false }`.
|
|
68
|
-
- **Skip capturing arguments** (large/sensitive payloads) with
|
|
69
|
-
`audit: { recordInputs: false }`. Inputs are credential-redacted regardless.
|
|
70
|
-
|
|
71
|
-
## Reading the log
|
|
72
|
-
|
|
73
|
-
Two actions are available to the agent and the frontend in every app, scoped in
|
|
74
|
-
SQL to the caller — they never leak another tenant's rows:
|
|
75
|
-
|
|
76
|
-
- `list-audit-events` — filter by `targetType`/`targetId`, `actorKind`
|
|
77
|
-
(`agent` | `human` | `system`), `status`, `threadId`/`turnId`, `action`,
|
|
78
|
-
`sinceMs`, `limit`.
|
|
79
|
-
- `get-audit-event` — one event by id, with its redacted input payload.
|
|
80
|
-
- `export-audit-events` — bulk CSV/NDJSON export (same filters minus `limit`,
|
|
81
|
-
plus `format` and `maxRows`) for offline/compliance pulls; itself audited
|
|
82
|
-
via `onRead`.
|
|
83
|
-
|
|
84
|
-
Call them from the UI with `useActionQuery` to build an activity feed or a
|
|
85
|
-
"who changed this" line — never hand-write a fetch to the audit table.
|
|
86
|
-
|
|
87
|
-
## Never
|
|
88
|
-
|
|
89
|
-
- Don't write a parallel "history" table for a resource — declare an `audit.target`
|
|
90
|
-
and read it back instead.
|
|
91
|
-
- Don't put secrets in `summary` or rely on inputs being safe — redaction covers
|
|
92
|
-
credential-shaped values, but keep summaries free of sensitive data.
|
|
93
|
-
- Don't expose an update/delete path for audit rows. The log is append-only; the
|
|
94
|
-
only deletion is the retention purge (`AGENT_NATIVE_AUDIT_RETENTION_DAYS`,
|
|
95
|
-
default 365 days; `0` = keep forever). Global kill switch:
|
|
96
|
-
`AGENT_NATIVE_AUDIT_ENABLED=false`.
|
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: authentication
|
|
3
|
-
description: >-
|
|
4
|
-
How auth works in agent-native apps. Use when wiring login/signup,
|
|
5
|
-
configuring auth modes, setting up organizations, protecting routes, or
|
|
6
|
-
debugging session issues.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Authentication
|
|
13
|
-
|
|
14
|
-
## Rule
|
|
15
|
-
|
|
16
|
-
Auth is powered by **Better Auth** with account-first design. Every new user creates an account on first visit. Use `getSession(event)` to authenticate custom routes; actions are auto-protected. Normal app HTML and React Router page-data responses are one impersonal, public-cacheable shell for every visitor. The client decides whether to render private UI or redirect to sign-in.
|
|
17
|
-
|
|
18
|
-
## Auth Modes
|
|
19
|
-
|
|
20
|
-
| Mode | Behavior |
|
|
21
|
-
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
|
-
| **Development (default)** | Real Better Auth — same flow as production. There is **no auth bypass**. On first run the framework auto-creates a throwaway dev account and signs you in without printing its credentials (disable with `AGENT_NATIVE_DISABLE_AUTO_DEV_ACCOUNT=1`), so you are not stuck at a login wall. `getSession()` returns the signed-in user or `null` — it never falls back to a sentinel identity. |
|
|
23
|
-
| **Production (default)** | Magic-link-first Better Auth when outbound email is ready, with email/password fallback and social providers (Google, GitHub). Organizations built in. |
|
|
24
|
-
| **`AUTH_MODE=local`** | **Not** a browser auth bypass, and never returns `local@localhost`. It only affects CLI/agent identity: it lets `pnpm action` / the local agent loop auto-bind to the single real signed-in dev user from the `sessions` table (see `scripts/dev-session.ts`). Browser login is unchanged. |
|
|
25
|
-
| **`AUTH_SKIP_EMAIL_VERIFICATION=1`** | QA/preview escape hatch for password-fallback accounts. Signup skips email verification and does not send the signup verification email. Local dev/test skips verification by default; set `AUTH_SKIP_EMAIL_VERIFICATION=0` only when testing verification itself. It does not change magic-link delivery. Use `+qa` emails for test accounts. |
|
|
26
|
-
| **`AUTH_MAGIC_LINK=0`** | Force the email/password fallback even when outbound email is ready. |
|
|
27
|
-
| **`AUTH_DISABLED=true`** | Skip login/signup entirely — every request runs as `dev@local.test`. For local dev, cloud previews, and internal demos only; not for production with real users. |
|
|
28
|
-
| **`ACCESS_TOKEN` / `ACCESS_TOKENS`** | Static bearer fallback for MCP/connect clients that cannot use OAuth. Not browser auth and never a token login page. |
|
|
29
|
-
| **Custom** | Pass your own `getSession` to `autoMountAuth(app, { getSession })`. |
|
|
30
|
-
|
|
31
|
-
> **Never** use `local@localhost` as a fallback identity in app code
|
|
32
|
-
> (`getRequestUserEmail() ?? "local@localhost"`, `session?.email ?? "local@localhost"`,
|
|
33
|
-
> etc.). There is no dev auth shim. That pattern pools every unauthenticated
|
|
34
|
-
> request into one shared tenant and caused the 2026-04-29 credentials leak.
|
|
35
|
-
> When there is no session, **throw or return 401** — never substitute a
|
|
36
|
-
> sentinel. Enforced by `scripts/guard-no-localhost-fallback.mjs`.
|
|
37
|
-
|
|
38
|
-
## Remote MCP OAuth
|
|
39
|
-
|
|
40
|
-
Every app's `/mcp` endpoint is also a standard protected MCP
|
|
41
|
-
resource. OAuth-capable hosts connect with the remote MCP URL only, receive a
|
|
42
|
-
`WWW-Authenticate` challenge, discover `/.well-known/oauth-protected-resource`
|
|
43
|
-
and `/.well-known/oauth-authorization-server`, then use a validated Client ID
|
|
44
|
-
Metadata Document when the client id is an HTTPS URL or dynamically register a
|
|
45
|
-
public client otherwise. URL-like client ids never fall back to dynamic
|
|
46
|
-
registration when their metadata is missing or invalid. Clients complete
|
|
47
|
-
authorization-code + PKCE at
|
|
48
|
-
`/mcp/oauth/authorize` / `/mcp/oauth/token`.
|
|
49
|
-
Access tokens are audience-bound to the exact MCP URL and carry user/org
|
|
50
|
-
identity plus `mcp:read`, `mcp:write`, `mcp:apps`, and/or `offline_access`;
|
|
51
|
-
advertising `offline_access` lets hosts such as ChatGPT retain refresh access.
|
|
52
|
-
Refresh tokens are stored hashed and rotate. Keep `ACCESS_TOKEN` and `pnpm exec agent-native connect` for
|
|
53
|
-
local stdio proxying and fallback clients. The CLI
|
|
54
|
-
uses the OAuth-native URL-only entry for Claude Code/Claude Code CLI by
|
|
55
|
-
default; use the Connect page or `npx @agent-native/core@latest connect --token <token>` when a
|
|
56
|
-
client needs explicit bearer headers.
|
|
57
|
-
|
|
58
|
-
## Local → Real Account Migration
|
|
59
|
-
|
|
60
|
-
Upgrading from `local@localhost` to a real account preserves SQL-backed workspace data. The built-in migration moves `application_state`, user-scoped `settings`, `oauth_tokens`, and any template table that uses `owner_email`.
|
|
61
|
-
|
|
62
|
-
Templates with legacy global settings can provide `POST /api/local-migration` for one-time re-homing during the upgrade flow.
|
|
63
|
-
|
|
64
|
-
## Organizations
|
|
65
|
-
|
|
66
|
-
Organizations are **framework-managed**, not handled by Better Auth's organization plugin (which is intentionally NOT registered). Org data lives in the framework's own `organizations`, `org_members`, and `org_invitations` tables. Every app supports creating orgs, inviting members, and role-based access (owner/admin/member).
|
|
67
|
-
|
|
68
|
-
Owners and admins can require Google sign-in for an organization from Team
|
|
69
|
-
settings or `PUT /_agent-native/org/auth-provider` with `{ provider: "google" }`.
|
|
70
|
-
Enabling it revokes current Better Auth and legacy sessions; password signup,
|
|
71
|
-
password login, and non-Google social sessions are rejected for that org.
|
|
72
|
-
|
|
73
|
-
The active org flows automatically: `session.orgId` — resolved by `getOrgContext` from `org_members` plus the user's `active-org-id` setting (_not_ from a Better Auth session field) — → `AGENT_ORG_ID` → SQL scoping (see `security` skill).
|
|
74
|
-
|
|
75
|
-
When an authenticated user has no org memberships, the framework auto-creates a
|
|
76
|
-
default org (named after the user) the first time `getOrgContext` runs. This
|
|
77
|
-
keeps org-scoped templates from showing a manual "create organization" step.
|
|
78
|
-
The auto-create path skips users with pending invites or a matching
|
|
79
|
-
`allowed_domain` org so they can join the intended team instead. Set
|
|
80
|
-
`AUTO_CREATE_DEFAULT_ORG=0` only for deployments that intentionally want manual
|
|
81
|
-
org creation.
|
|
82
|
-
|
|
83
|
-
### App-Specific Roles
|
|
84
|
-
|
|
85
|
-
When a request needs "only some teammates may do this **inside this app**", the
|
|
86
|
-
answer is per-app roles — **not** a second organization. App roles are an
|
|
87
|
-
overlay on the one org membership, never a second roster. Three role systems
|
|
88
|
-
coexist and never imply one another: the org role (`org_members.role`) says what
|
|
89
|
-
a person may do to the *team*, an app role says what they may do inside *one
|
|
90
|
-
app*, and a share role (`sharing` skill) says what they may do to *one row*. An
|
|
91
|
-
app `admin` is not an org admin, and org handlers never read app roles.
|
|
92
|
-
|
|
93
|
-
Declare the vocabulary once on the server and guard actions with it:
|
|
94
|
-
|
|
95
|
-
```ts
|
|
96
|
-
import { defineAppRoles } from "@agent-native/core/org-team";
|
|
97
|
-
|
|
98
|
-
export const coachAccess = defineAppRoles({
|
|
99
|
-
appId: "coach",
|
|
100
|
-
roles: ["member", "coach-admin"] as const,
|
|
101
|
-
defaultRole: "member",
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
// in an action
|
|
105
|
-
authorize: coachAccess.requireAny("coach-admin"),
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Roles are an unordered set, not a ladder — declaration order carries no meaning,
|
|
109
|
-
and every guard names its accepted roles explicitly. `defaultRole` is **display
|
|
110
|
-
only**: `requireAny` matches an explicit assignment row and nothing else, so
|
|
111
|
-
"nobody assigned this person" never reads as "granted", and widening the default
|
|
112
|
-
cannot silently widen a guard. Org membership is a precondition, resolved in the
|
|
113
|
-
same statement as the assignment, so a leftover assignment for a removed member
|
|
114
|
-
can never authorize. Only org owners/admins may assign app roles; render the
|
|
115
|
-
picker with `<TeamPage appRoles={descriptor} />`.
|
|
116
|
-
|
|
117
|
-
`requireAny` validates at definition time — no roles, or a role outside the
|
|
118
|
-
declared vocabulary, throws when the module loads rather than surfacing as an
|
|
119
|
-
unexplained 403 later. When calling `resolve`/`assertAny` directly, note that an
|
|
120
|
-
explicit `userEmail: null` / `orgId: null` means "this run has no identity" and
|
|
121
|
-
does **not** fall back to the ambient request context; only `undefined` does.
|
|
122
|
-
|
|
123
|
-
### Stop And Confirm Before Creating Or Switching Organizations
|
|
124
|
-
|
|
125
|
-
Vault credentials are scoped per organization and are **not** shared between
|
|
126
|
-
them. A second organization therefore orphans every key synced under the first,
|
|
127
|
-
and the only symptom is a missing-credential error somewhere else entirely,
|
|
128
|
-
naming the key rather than the org change that caused it.
|
|
129
|
-
|
|
130
|
-
So: **do not create an organization, repoint anyone's `active-org-id`, or
|
|
131
|
-
migrate a user/roster/identity list into a new organization on your own
|
|
132
|
-
initiative.** Stop, say plainly that it will orphan the existing organization's
|
|
133
|
-
credentials, and get an explicit yes first — even when the user asked for
|
|
134
|
-
something that seems to imply it ("use the real org user list", "align this to
|
|
135
|
-
the Settings team view", "migrate my users").
|
|
136
|
-
|
|
137
|
-
The intended pattern is **one organization per workspace**, with every app
|
|
138
|
-
sharing it. When a request needs real org members, add them to the existing
|
|
139
|
-
organization; never provision a parallel one per app. `createOrganization()`
|
|
140
|
-
logs a loud warning when it creates an additional org for an account that
|
|
141
|
-
already belongs to one, and `setActiveOrgId()` logs one whenever it moves an
|
|
142
|
-
account from one org to another, naming both orgs and the orphaned credentials.
|
|
143
|
-
Treat either warning as a bug report against your own change, not as noise.
|
|
144
|
-
|
|
145
|
-
Write `active-org-id` only through `setActiveOrgId(email, orgId, reason)` from
|
|
146
|
-
`@agent-native/core` (`src/org/active-org.ts`). Calling `putUserSetting(email,
|
|
147
|
-
"active-org-id", ...)` directly is how a roster migration silently repointed 21
|
|
148
|
-
accounts with nothing in the logs; the helper exists so that cannot happen
|
|
149
|
-
again.
|
|
150
|
-
|
|
151
|
-
Do not wrap normal app shells in `<RequireActiveOrg>` just to force setup. Use
|
|
152
|
-
non-blocking org UI such as `InvitationBanner`, `OrgSwitcher`, and a `/team`
|
|
153
|
-
route so users can accept invites, join domain-matched teams, or switch orgs
|
|
154
|
-
without blocking the primary product experience. Place org UI inside the agent
|
|
155
|
-
sidebar so the setup
|
|
156
|
-
checklist, chat, and CLI stay usable during setup.
|
|
157
|
-
|
|
158
|
-
## A2A Identity
|
|
159
|
-
|
|
160
|
-
Set `A2A_SECRET` (same value) on all apps that must verify each other's identity.
|
|
161
|
-
|
|
162
|
-
- Outbound A2A calls are signed with JWTs
|
|
163
|
-
- Inbound calls are verified cryptographically
|
|
164
|
-
- Without `A2A_SECRET`, A2A calls are unauthenticated (fine for local dev)
|
|
165
|
-
|
|
166
|
-
## Cross-App SSO (Dispatch identity hub)
|
|
167
|
-
|
|
168
|
-
Each hosted `*.agent-native.com` app has its **own user store**, so "sign in once" is identity federation, not a shared cookie. **Dispatch is the identity authority.**
|
|
169
|
-
|
|
170
|
-
- **Opt-in per app via one env var:** set `AGENT_NATIVE_IDENTITY_HUB_URL=https://dispatch.agent-native.com` and the app shows a "Sign in with Agent-Native" option. **Unset = zero behavior change** — the whole path is dormant. Reversible at any time.
|
|
171
|
-
- **Flow:** the app creates a bound state and PKCE verifier, then opens `GET <hub>/_agent-native/identity/authorize?response_type=code&app=&client_id=&redirect_uri=&state=&code_challenge=`. Dispatch authenticates the human and redirects back with only a short-lived, one-time authorization code. The app keeps the verifier in a callback-scoped HttpOnly cookie and redeems the code server-to-server at `/_agent-native/identity/token`; only that response contains the short-lived `A2A_SECRET`-signed identity assertion. No bearer token or JWT is placed in a browser URL. Canonical clients require an exact registered app ID, client ID, origin, and callback path; localhost remains available for development. The app verifies the assertion, **JIT-links strictly by verified email** (existing same-email user → reused unchanged; new email → created), then mints a normal local session.
|
|
172
|
-
- **Invariant (do not break):** identity rows are only ever **added** — never modified, renamed, or deleted. Enabling SSO logs users out, but they always log back into the **same email-matched account with data intact**. Email is the only thing that crosses the trust boundary; the app never trusts a user id, role, or org from the wire.
|
|
173
|
-
- **Canary rollout:** deploy with the env unset everywhere (no-op) → set it on **one** app (mail) only → verify (logout → SSO → Dispatch → back to the same pre-existing account, data intact, direct logins still work) → expand app-by-app → rollback = unset the env on that app's deploy (instant, no data change).
|
|
174
|
-
|
|
175
|
-
### Packaged Desktop workspace sign-in
|
|
176
|
-
|
|
177
|
-
For canonical first-party hosted apps, the packaged Desktop SSO Canary may compose the same
|
|
178
|
-
federation into one workspace sign-in. Dispatch owns the default-off
|
|
179
|
-
`desktop.workspace-sso` availability flag; every app still owns its local
|
|
180
|
-
session. One explicit Settings action opens one interactive Dispatch ceremony,
|
|
181
|
-
then provisions every currently eligible app. Later eligible webviews are
|
|
182
|
-
provisioned lazily when they load. The flag is never an auth or authorization
|
|
183
|
-
boundary. Keep nonce, signature, exact origin/callback, authenticated-session,
|
|
184
|
-
app-binding, cookie allowlist, revocation, and credential-custody checks
|
|
185
|
-
unconditional. When the flag is Off or unreadable, Desktop must leave ordinary
|
|
186
|
-
per-app sign-in, sign-out, and Settings unchanged. Never extend the broker to
|
|
187
|
-
arbitrary third-party sites, and never expose cookies, identity tokens, or
|
|
188
|
-
provider credentials through IPC.
|
|
189
|
-
Canonical hosted apps recognize packaged Desktop requests without per-app
|
|
190
|
-
identity-hub environment configuration. A custom workspace app is eligible only
|
|
191
|
-
when its Desktop config explicitly sets `workspaceSso: true`, its production
|
|
192
|
-
origin is exact HTTPS, and Dispatch has an exact registration in
|
|
193
|
-
`IDENTITY_SSO_APP_REGISTRY_JSON` with its app ID, client ID, callback path, and
|
|
194
|
-
`identity-sso` capability. The custom app also needs
|
|
195
|
-
`AGENT_NATIVE_IDENTITY_HUB_URL=https://dispatch.agent-native.com` and the shared
|
|
196
|
-
`A2A_SECRET`. Ordinary browsers and self-hosted apps still require the explicit
|
|
197
|
-
hub configuration.
|
|
198
|
-
Stable Desktop builds must not initialize the broker until a later release is
|
|
199
|
-
separately approved.
|
|
200
|
-
Treat the Canary user-agent marker only as an availability hint, never as
|
|
201
|
-
remote attestation or an authentication boundary. Bind supervised acceptance
|
|
202
|
-
to exact signed-artifact provenance.
|
|
203
|
-
The Canary must not intercept anonymous app sign-in navigation. The user
|
|
204
|
-
explicitly chooses workspace sign-in in Desktop Settings for the active eligible
|
|
205
|
-
app; ordinary app sign-in remains the default path. A failed app fan-out is
|
|
206
|
-
reported as incomplete and can be retried; Desktop must not claim workspace
|
|
207
|
-
sign-in is complete until every eligible app in that snapshot succeeds.
|
|
208
|
-
|
|
209
|
-
Full runbook + flow detail: [Cross-App SSO doc](/docs/cross-app-sso).
|
|
210
|
-
|
|
211
|
-
## Builder Browser Access
|
|
212
|
-
|
|
213
|
-
Apps can connect to Builder via the `cli-auth` flow and persist shared browser credentials in `.env`. Agents then use the built-in `get-browser-connection` tool to provision a real browser session via AI Services.
|
|
214
|
-
|
|
215
|
-
## Protecting Custom Routes
|
|
216
|
-
|
|
217
|
-
Actions are auto-protected. Do not create custom `/api/` routes for normal
|
|
218
|
-
CRUD, data queries, or action-backed operations; use `defineAction` and the
|
|
219
|
-
auto-mounted action endpoint instead. If a route-only concern forces a custom
|
|
220
|
-
route:
|
|
221
|
-
|
|
222
|
-
```ts
|
|
223
|
-
import { getSession } from "@agent-native/core/server";
|
|
224
|
-
|
|
225
|
-
export default defineEventHandler(async (event) => {
|
|
226
|
-
const session = await getSession(event);
|
|
227
|
-
if (!session) throw createError({ statusCode: 401 });
|
|
228
|
-
// ...
|
|
229
|
-
});
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
Never create unprotected routes that modify data.
|
|
233
|
-
|
|
234
|
-
## Sign-In from a Public Page
|
|
235
|
-
|
|
236
|
-
For public pages (share links, embeds, marketing pages) that need anonymous viewers to sign in and return to where they were, navigate them through the framework's sign-in entry point — never roll your own:
|
|
237
|
-
|
|
238
|
-
```ts
|
|
239
|
-
const ret = window.location.pathname + window.location.search;
|
|
240
|
-
window.location.href =
|
|
241
|
-
"/sign-in?return=" + encodeURIComponent(ret);
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
After successful sign-in (token / email-password / Google OAuth), the framework redirects to `return`. The path is validated as same-origin via the URL parser — open-redirect / header-injection inputs fall back to `/`.
|
|
245
|
-
|
|
246
|
-
Bookmarked private paths work through the client session gate: the shared shell hydrates, `AppProviders` redirects the signed-out visitor to the framework sign-in entrypoint with the current path as `return`, and successful sign-in sends them back.
|
|
247
|
-
|
|
248
|
-
## Gating the App Shell (avoid the logged-out infinite spinner)
|
|
249
|
-
|
|
250
|
-
Normal app HTML and React Router page-data responses deliberately bypass the
|
|
251
|
-
server session guard. They are rendered impersonally and cached as one shared,
|
|
252
|
-
public, hard-cached-at-the-CDN shell; APIs, actions, and framework data routes
|
|
253
|
-
remain server-protected. The client session gate is therefore the
|
|
254
|
-
authoritative decision point for whether private app UI renders.
|
|
255
|
-
|
|
256
|
-
**Never**, on the SSR HTML/`.data` path: set `private`, `no-store`, or
|
|
257
|
-
`Vary: Cookie`; call `getSession` or read cookies in the SSR route or the
|
|
258
|
-
login HTML path; or embed tokens/secrets into the rendered HTML — a
|
|
259
|
-
token-bearing page still returns the same anonymous shell and resolves access
|
|
260
|
-
client-side. This has regressed repeatedly (agents "fixing" it back to
|
|
261
|
-
per-user SSR); it is enforced by `guard:ssr-cache-shell` and
|
|
262
|
-
`ssr-handler.spec.ts` (`packages/core/src/server/ssr-handler.ts`), and reverts
|
|
263
|
-
will be rejected.
|
|
264
|
-
|
|
265
|
-
`AppProviders` applies `RequireSession` automatically on its private branch. It
|
|
266
|
-
resolves the session on the client and redirects signed-out visitors to
|
|
267
|
-
`/sign-in?return=…` before mounting the routed shell. The legacy
|
|
268
|
-
`/_agent-native/sign-in` path remains supported for older generated apps and
|
|
269
|
-
bookmarks:
|
|
270
|
-
|
|
271
|
-
```tsx
|
|
272
|
-
import { AppProviders } from "@agent-native/core/client/hooks";
|
|
273
|
-
|
|
274
|
-
<AppProviders queryClient={queryClient}>
|
|
275
|
-
<AppLayout>
|
|
276
|
-
<Outlet />
|
|
277
|
-
</AppLayout>
|
|
278
|
-
</AppProviders>;
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
- Keep the layout/outlet and always-mounted effects (poll, automation trigger)
|
|
282
|
-
inside `AppProviders` so they do not fire 401s before the gate resolves.
|
|
283
|
-
- Pass `sessionBypass` to `AppProviders` only for a private-looking surface that
|
|
284
|
-
authenticates by another mechanism (for example, an embed iframe carrying
|
|
285
|
-
its own scoped token).
|
|
286
|
-
- Pass `isPublicPath` for public/anonymous and SEO routes. That branch does not
|
|
287
|
-
mount `RequireSession` and SSRs real content.
|
|
288
|
-
- Use `RequireSession` directly only when a nested subtree needs custom
|
|
289
|
-
`redirect={false}` / `signedOut` behavior.
|
|
290
|
-
|
|
291
|
-
## Related Skills
|
|
292
|
-
|
|
293
|
-
- `security` — Data scoping, SQL injection, secrets
|
|
294
|
-
- `actions` — Auto-protected by the auth guard
|
|
295
|
-
- [Cross-App SSO doc](/docs/cross-app-sso) — Dispatch identity hub, federation flow, canary runbook
|