@agent-native/core 0.152.0 → 0.153.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +1 -1
- package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/analytics/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +6 -4
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/analytics/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/analytics/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/analytics/actions/data-source-status.ts +4 -1
- package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +2 -2
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +7 -2
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +7 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +30 -32
- package/corpus/templates/analytics/app/components/layout/layout-route-policy.ts +10 -0
- package/corpus/templates/analytics/app/global.css +5 -1
- package/corpus/templates/analytics/app/lib/data-source-status.ts +3 -3
- package/corpus/templates/analytics/app/lib/resource-access.ts +6 -1
- package/corpus/templates/analytics/app/pages/DataSources.tsx +79 -51
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -0
- package/corpus/templates/analytics/changelog/2026-08-12-analytics-sidebar-ask-toggle-and-compact-rail.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-12-data-source-statuses-now-distinguish-workspace-access-from-c.md +6 -0
- package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +559 -147
- package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +79 -5
- package/corpus/templates/analytics/server/plugins/db.ts +84 -0
- package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/assets/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/assets/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/assets/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +13 -5
- package/corpus/templates/assets/app/lib/asset-urls.ts +13 -0
- package/corpus/templates/assets/app/routes/asset.$id.tsx +16 -6
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +1 -0
- package/corpus/templates/assets/app/routes/library.tsx +336 -78
- package/corpus/templates/assets/shared/api.ts +1 -1
- package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/brain/.agents/skills/brain/SKILL.md +8 -6
- package/corpus/templates/brain/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +7 -0
- package/corpus/templates/brain/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/brain/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/brain/AGENTS.md +2 -1
- package/corpus/templates/brain/actions/ask-brain.ts +19 -16
- package/corpus/templates/brain/actions/create-source.ts +11 -2
- package/corpus/templates/brain/actions/import-markdown-files.ts +237 -0
- package/corpus/templates/brain/actions/resanitize-captures.ts +3 -1
- package/corpus/templates/brain/actions/test-slack-connection.ts +12 -3
- package/corpus/templates/brain/actions/update-source.ts +10 -1
- package/corpus/templates/brain/app/components/brain/Surface.tsx +1 -11
- package/corpus/templates/brain/app/i18n-data.ts +111 -0
- package/corpus/templates/brain/app/lib/brain.ts +23 -1
- package/corpus/templates/brain/app/routes/knowledge.tsx +0 -2
- package/corpus/templates/brain/app/routes/ops.tsx +0 -2
- package/corpus/templates/brain/app/routes/review.tsx +0 -2
- package/corpus/templates/brain/app/routes/search.tsx +0 -2
- package/corpus/templates/brain/app/routes/sources.tsx +354 -6
- package/corpus/templates/brain/server/lib/brain-response-guard.ts +63 -1
- package/corpus/templates/brain/server/lib/brain.ts +9 -6
- package/corpus/templates/brain/server/lib/connectors.ts +20 -6
- package/corpus/templates/brain/server/lib/search.ts +9 -1
- package/corpus/templates/brain/server/lib/source-credentials.ts +95 -57
- package/corpus/templates/brain/server/plugins/agent-chat.ts +5 -2
- package/corpus/templates/brain/server/plugins/auth.ts +2 -0
- package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/calendar/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/calendar/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/calendar/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +1 -0
- package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/chat/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/chat/AGENTS.md +4 -5
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/clips/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/clips/actions/add-comment.ts +1 -2
- package/corpus/templates/clips/actions/delete-comment.ts +2 -0
- package/corpus/templates/clips/actions/get-recording-insights.ts +9 -8
- package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -1
- package/corpus/templates/clips/actions/react-to-comment.ts +1 -1
- package/corpus/templates/clips/actions/react-to-recording.ts +1 -1
- package/corpus/templates/clips/actions/reply-to-comment.ts +1 -1
- package/corpus/templates/clips/actions/resolve-comment.ts +1 -2
- package/corpus/templates/clips/actions/update-comment.ts +1 -1
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +1 -0
- package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +59 -16
- package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +12 -8
- package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +3 -1
- package/corpus/templates/clips/app/components/player/video-player.tsx +1 -1
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +2 -1
- package/corpus/templates/clips/app/lib/public-meeting.ts +1 -1
- package/corpus/templates/clips/app/lib/thumbnail-capture.ts +71 -0
- package/corpus/templates/clips/app/lib/thumbnail-picker-state.ts +93 -0
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +25 -19
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -0
- package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +1 -1
- package/corpus/templates/clips/changelog/2026-08-11-clips-asks-to-take-notes-again-when-you-join-an-adhoc-zoom-o.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +166 -14
- package/corpus/templates/clips/desktop/src-tauri/src/call_activity.rs +146 -0
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
- package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +2 -122
- package/corpus/templates/clips/server/lib/recording-page-access.ts +6 -1
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +5 -0
- package/corpus/templates/clips/shared/share-meta.ts +19 -3
- package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/content/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/content/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/content/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/content/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/content/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/content/actions/_database-utils.ts +10 -0
- package/corpus/templates/content/actions/add-comment.ts +1 -1
- package/corpus/templates/content/actions/attach-content-database-source.ts +158 -61
- package/corpus/templates/content/actions/create-document.ts +1 -0
- package/corpus/templates/content/actions/delete-comment.ts +1 -1
- package/corpus/templates/content/actions/get-document.ts +9 -1
- package/corpus/templates/content/actions/import-content-source.ts +8 -0
- package/corpus/templates/content/actions/list-documents.ts +10 -1
- package/corpus/templates/content/actions/update-comment.ts +1 -1
- package/corpus/templates/content/actions/update-document.ts +11 -0
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +196 -30
- 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-03-choose-text-or-a-heading-from-one-compact-formatting-control.md +6 -0
- 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/docs/solutions/evidence/content-text-selector/README.md +26 -0
- package/corpus/templates/content/shared/api.ts +7 -1
- package/corpus/templates/crm/.agents/skills/actions/SKILL.md +146 -0
- package/corpus/templates/crm/.agents/skills/actions/references/action-fields.md +136 -0
- package/corpus/templates/crm/.agents/skills/actions/references/examples.md +94 -0
- package/corpus/templates/crm/.agents/skills/actions/references/provider-apis.md +95 -0
- package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/crm/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/crm/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +296 -0
- package/corpus/templates/crm/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/crm/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/crm/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/crm/.agents/skills/security/SKILL.md +324 -0
- package/corpus/templates/crm/.agents/skills/self-modifying-code/SKILL.md +123 -0
- package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +123 -0
- package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/crm/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/design/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/design/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/design/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/design/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/design/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/design/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -2
- package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +6 -18
- package/corpus/templates/design/app/i18n/en-US.ts +1 -1
- package/corpus/templates/design/app/i18n-data.ts +40 -0
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +153 -131
- package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -61
- package/corpus/templates/design/app/pages/Present.tsx +8 -2
- package/corpus/templates/design/app/pages/Templates.tsx +1 -0
- package/corpus/templates/design/app/pages/design-editor/tool-state.ts +4 -1
- package/corpus/templates/design/app/pages/design-editor/types.ts +6 -1
- package/corpus/templates/design/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/dispatch/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/dispatch/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/dispatch/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/dispatch/actions/apply-workspace-connection-setup.ts +97 -15
- package/corpus/templates/dispatch/actions/connection-permissions.ts +77 -0
- package/corpus/templates/dispatch/actions/delete-workspace-connection.ts +12 -2
- package/corpus/templates/dispatch/actions/list-workspace-user-groups.ts +19 -0
- package/corpus/templates/dispatch/actions/plan-workspace-connection-setup.ts +9 -2
- package/corpus/templates/dispatch/actions/set-workspace-connection-grant.ts +21 -2
- package/corpus/templates/dispatch/actions/upsert-workspace-connection.ts +66 -1
- package/corpus/templates/dispatch/actions/upsert-workspace-user-group.ts +27 -0
- package/corpus/templates/dispatch/app/chat-first-pages.ts +84 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +3989 -3527
- package/corpus/templates/dispatch/app/routes/integrations.tsx +1568 -685
- package/corpus/templates/dispatch/app/routes/settings.tsx +14 -9
- package/corpus/templates/dispatch/changelog/2026-08-12-search-and-pin-workspace-apps-from-the-app-catalog.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-08-12-workspace-integration-access-now-shows-exactly-which-apps-ca.md +6 -0
- package/corpus/templates/dispatch/server/lib/app-roles.ts +5 -0
- package/corpus/templates/dispatch/shared/app-roles.ts +1 -0
- package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/factory/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/factory/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/factory/AGENTS.md +10 -1
- package/corpus/templates/factory/README.md +18 -7
- package/corpus/templates/factory/actions/list-triage-items.ts +10 -4
- package/corpus/templates/factory/actions/poll-github-sources.ts +53 -14
- package/corpus/templates/factory/actions/poll-sentry-errors.ts +31 -13
- package/corpus/templates/factory/actions/poll-slack-channel.ts +41 -5
- package/corpus/templates/factory/actions/provider-api-catalog.ts +13 -0
- package/corpus/templates/factory/actions/provider-api-docs.ts +11 -0
- package/corpus/templates/factory/actions/provider-api-request.ts +17 -0
- package/corpus/templates/factory/actions/save-triage-config.ts +87 -38
- package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +14 -12
- package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +60 -77
- package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +66 -125
- package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/factory/app/components/layout/Layout.tsx +8 -3
- package/corpus/templates/factory/app/components/layout/Sidebar.tsx +9 -5
- package/corpus/templates/factory/app/components/ui/input.tsx +15 -1
- package/corpus/templates/factory/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/factory/app/components/ui/textarea.tsx +20 -1
- package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -3
- package/corpus/templates/factory/app/i18n/en-US.ts +17 -0
- package/corpus/templates/factory/app/routes/_index.tsx +5 -87
- package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -1
- package/corpus/templates/factory/app/routes/chat.tsx +91 -0
- package/corpus/templates/factory/app/routes/factory.tsx +554 -427
- package/corpus/templates/factory/app/routes/settings.tsx +1 -1
- package/corpus/templates/factory/server/connectors/credentials.ts +25 -0
- package/corpus/templates/factory/server/lib/provider-api.ts +34 -0
- package/corpus/templates/factory/server/plugins/agent-chat.ts +15 -3
- package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +96 -24
- package/corpus/templates/factory/server/triage/review-state.ts +33 -0
- package/corpus/templates/factory/server/triage/slack-poller.ts +1 -0
- package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/forms/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/forms/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/forms/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +1 -0
- package/corpus/templates/forms/shared/types.ts +1 -1
- package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/macros/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/macros/.agents/skills/delegate-to-agent/SKILL.md +289 -0
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/macros/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/macros/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/macros/.agents/skills/self-modifying-code/SKILL.md +123 -0
- package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/macros/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/mail/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/mail/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/mail/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/mail/actions/send-email.ts +9 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
- package/corpus/templates/mail/changelog/2026-08-12-agent-sent-messages-appear-immediately.md +6 -0
- package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/plan/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/plan/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/plan/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/plan/actions/delete-plan-comment.ts +6 -0
- package/corpus/templates/plan/actions/reply-to-plan-comment.ts +7 -1
- package/corpus/templates/plan/actions/resolve-plan-comment.ts +7 -1
- package/corpus/templates/plan/actions/update-visual-plan.ts +6 -0
- package/corpus/templates/plan/app/hooks/use-plans.ts +1 -1
- package/corpus/templates/plan/app/pages/PlansPage.tsx +51 -23
- package/corpus/templates/plan/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/plan/server/plans.ts +2 -2
- package/corpus/templates/plan/shared/types.ts +1 -1
- package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +208 -0
- package/corpus/templates/slides/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +6 -0
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/slides/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/slides/.agents/skills/real-time-sync/SKILL.md +232 -0
- package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/slides/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/slides/AGENTS.md +4 -0
- package/corpus/templates/slides/actions/add-slide-comment.ts +1 -1
- package/corpus/templates/slides/actions/delete-slide-comment.ts +1 -1
- package/corpus/templates/slides/actions/get-layout-overflows.ts +67 -2
- package/corpus/templates/slides/actions/update-slide-comment.ts +1 -1
- package/corpus/templates/slides/actions/view-screen.ts +76 -26
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +30 -8
- package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -1
- package/corpus/templates/slides/app/components/editor/AlignmentGuides.tsx +75 -0
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +80 -80
- package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +125 -10
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +244 -9
- package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +3 -3
- package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +218 -0
- package/corpus/templates/slides/app/context/DeckContext.tsx +56 -30
- package/corpus/templates/slides/app/hooks/use-deck-role.ts +13 -5
- package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -1
- package/corpus/templates/slides/app/i18n/en-US.ts +6 -2
- package/corpus/templates/slides/app/lib/create-deck-generation.ts +1 -0
- package/corpus/templates/slides/app/lib/pending-deck-changes.ts +32 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +85 -4
- package/corpus/templates/slides/app/pages/Index.tsx +65 -66
- package/corpus/templates/slides/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
- package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +3 -2
- package/corpus/templates/tasks/.agents/skills/context-awareness/SKILL.md +206 -0
- package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +73 -80
- package/corpus/templates/tasks/.agents/skills/portability/SKILL.md +107 -0
- package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +339 -0
- package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +3 -3
- package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +1 -1
- package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +1 -0
- package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +116 -44
- package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
- package/corpus/templates/tasks/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
- package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +93 -0
- package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +1 -4
- package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +0 -1
- package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +0 -1
- package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +0 -3
- package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +1 -4
- package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +0 -1
- package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +0 -1
- package/dist/agent/engine/ai-sdk-engine.js +5 -0
- package/dist/agent/engine/anthropic-engine.js +8 -0
- package/dist/agent/engine/registry.js +24 -19
- package/dist/agent/engine/translate-anthropic.js +16 -1
- package/dist/agent/production-agent.d.ts +8 -0
- package/dist/agent/production-agent.js +66 -0
- package/dist/automations/service.d.ts +2 -0
- package/dist/automations/service.js +5 -1
- package/dist/chat-threads/schema.d.ts +2 -2
- package/dist/cli/changelog.js +21 -4
- package/dist/cli/create.d.ts +12 -1
- package/dist/cli/create.js +99 -11
- package/dist/cli/index.js +6 -6
- package/dist/cli/process.d.ts +7 -0
- package/dist/cli/process.js +12 -0
- package/dist/cli/workspace-skill-policy.d.ts +15 -0
- package/dist/cli/workspace-skill-policy.js +62 -0
- package/dist/cli/workspacify.js +36 -0
- package/dist/client/AgentPanel.d.ts +14 -2
- package/dist/client/AgentPanel.js +40 -24
- package/dist/client/AssistantChat.js +93 -183
- 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/guided-questions.d.ts +15 -1
- package/dist/client/guided-questions.js +33 -15
- package/dist/client/i18n.js +28 -5
- package/dist/client/integrations/IntegrationConnectionChoice.d.ts +11 -0
- package/dist/client/integrations/IntegrationConnectionChoice.js +6 -0
- package/dist/client/integrations/IntegrationGrid.d.ts +23 -0
- package/dist/client/integrations/IntegrationGrid.js +12 -0
- package/dist/client/integrations/IntegrationsPanel.js +92 -26
- package/dist/client/integrations/index.d.ts +2 -0
- package/dist/client/integrations/index.js +2 -0
- package/dist/client/onboarding/FirstRunOnboarding.d.ts +3 -1
- package/dist/client/onboarding/FirstRunOnboarding.js +26 -16
- package/dist/client/onboarding/first-run-enabled.js +1 -5
- package/dist/client/onboarding/first-run-startup-gate.d.ts +5 -0
- package/dist/client/onboarding/first-run-startup-gate.js +51 -0
- package/dist/client/onboarding/first-run-status.d.ts +7 -0
- package/dist/client/onboarding/first-run-status.js +26 -0
- package/dist/client/onboarding/index.d.ts +3 -0
- package/dist/client/onboarding/index.js +3 -0
- package/dist/client/onboarding/use-onboarding.d.ts +1 -0
- package/dist/client/onboarding/use-onboarding.js +13 -11
- package/dist/client/org/TeamPage.js +174 -28
- package/dist/client/resources/McpConnectionSuggestion.js +29 -72
- package/dist/client/resources/McpIntegrationDialog.d.ts +3 -1
- package/dist/client/resources/McpIntegrationDialog.js +176 -51
- package/dist/client/resources/index.d.ts +1 -0
- package/dist/client/resources/index.js +1 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts +8 -0
- package/dist/client/resources/mcp-integration-catalog.js +28 -0
- package/dist/client/settings/ExtensionsSettingsContent.js +2 -2
- package/dist/client/settings/SettingsPanel.d.ts +6 -0
- package/dist/client/settings/SettingsPanel.js +21 -8
- package/dist/client/settings/SettingsRow.d.ts +3 -1
- package/dist/client/settings/SettingsRow.js +4 -2
- package/dist/client/settings/SettingsSkeleton.js +5 -3
- package/dist/client/settings/SettingsTabsPage.js +2 -2
- package/dist/client/settings/UsageSection.d.ts +4 -1
- package/dist/client/settings/UsageSection.js +187 -93
- package/dist/client/settings/agent-settings-search.js +6 -2
- package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +1 -1
- package/dist/client/setup-connections/useBuilderConnectCardController.js +2 -2
- package/dist/client/sharing/ShareButton.d.ts +2 -0
- package/dist/client/sharing/ShareButton.js +9 -2
- package/dist/client/sharing/ShareDialog.js +4 -1
- package/dist/client/sharing/useShareButtonController.d.ts +2 -1
- package/dist/client/sharing/useShareButtonController.js +8 -0
- package/dist/client/sharing/useShareDialogController.d.ts +1 -1
- package/dist/client/sharing/useShareDialogController.js +2 -1
- package/dist/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/integrations/webhook-handler.js +11 -3
- 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/mcp/screen-memory-stdio.d.ts +7 -7
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +3 -3
- 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/server/action-discovery.js +29 -0
- package/dist/server/agent-chat/context-tools.js +27 -6
- 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/builder-browser.js +31 -0
- package/dist/server/onboarding-html.js +1 -1
- package/dist/server/realtime-token.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,392 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: real-time-collab
|
|
3
|
-
description: >-
|
|
4
|
-
Multi-user collaborative editing with Yjs CRDT, SSE fast-path transport, and
|
|
5
|
-
granular server-side merge. Use when adding real-time collaborative editing to
|
|
6
|
-
a template, debugging sync issues, or understanding how the agent and humans
|
|
7
|
-
edit documents simultaneously.
|
|
8
|
-
scope: dev
|
|
9
|
-
metadata:
|
|
10
|
-
internal: true
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Real-Time Collaboration
|
|
14
|
-
|
|
15
|
-
## Rule
|
|
16
|
-
|
|
17
|
-
Collaborative editing uses Yjs CRDT via TipTap. The agent and human users are
|
|
18
|
-
equal participants — both edit the same Y.Doc and changes merge cleanly without
|
|
19
|
-
conflicts. Always choose an explicit `access` mode on `createCollabPlugin`.
|
|
20
|
-
|
|
21
|
-
## How It Works
|
|
22
|
-
|
|
23
|
-
- **`Y.Doc`** stores the document as a `Y.XmlFragment` (ProseMirror node tree)
|
|
24
|
-
- **TipTap's Collaboration extension** binds the editor to the Y.XmlFragment
|
|
25
|
-
via `ySyncPlugin`
|
|
26
|
-
- **CollaborationCaret extension** renders remote users' cursors with names and
|
|
27
|
-
colors
|
|
28
|
-
- **SSE fast-path** — `/_agent-native/poll-events` `EventSource` delivers collab
|
|
29
|
-
events push-style; while SSE is healthy the collab poll interval relaxes to
|
|
30
|
-
~12 s
|
|
31
|
-
- **Polling fallback** — `/_agent-native/poll` is polled every 2 s when SSE is
|
|
32
|
-
unavailable; this is the universal serverless fallback
|
|
33
|
-
- **Update batching** — local Yjs updates are debounced ~80 ms and coalesced
|
|
34
|
-
with `Y.mergeUpdates` before sending; flushed immediately on
|
|
35
|
-
`visibilitychange` / `pagehide`
|
|
36
|
-
- **SQL `_collab_docs` table** persists Yjs state as base64 (SQLite/Postgres
|
|
37
|
-
compatible). Tombstone compaction fires automatically when the stored blob
|
|
38
|
-
exceeds 4× the fresh encoded size.
|
|
39
|
-
|
|
40
|
-
## Agent + Human Editing
|
|
41
|
-
|
|
42
|
-
1. **Human edits** → TipTap → ySyncPlugin → Y.XmlFragment → `POST /_agent-native/collab/:docId/update`
|
|
43
|
-
2. **Agent edits** → action edits canonical SQL content + bumps `updatedAt` → change-sync refetch → the open editor reconciles the new content into the live Y.Doc (see below) → poll update → all clients
|
|
44
|
-
|
|
45
|
-
Both produce Yjs operations that merge cleanly. Agent edits appear without
|
|
46
|
-
destroying cursor position, selection, or undo history.
|
|
47
|
-
|
|
48
|
-
The agent does **not** push edits into Yjs in-process and does **not** call any
|
|
49
|
-
localhost probe — those approaches silently no-op on serverless (the action runs
|
|
50
|
-
in a different process). The peer-editor model below replaced them.
|
|
51
|
-
|
|
52
|
-
## Agent Edits As A Real-Time Peer Editor
|
|
53
|
-
|
|
54
|
-
**SQL is the durable source of truth for document body content.** The agent
|
|
55
|
-
action edits the canonical content column and bumps `updatedAt`. No localhost
|
|
56
|
-
calls, no in-process Yjs mutation.
|
|
57
|
-
|
|
58
|
-
**The open editor reconciles authoritative external content into the live
|
|
59
|
-
Y.Doc.** The `updatedAt` bump flows through change-sync, which refetches the
|
|
60
|
-
record. The lead client applies the new content via `setContent`, producing Yjs
|
|
61
|
-
operations that merge with concurrent human edits. Every connected client
|
|
62
|
-
receives the result through normal Yjs sync.
|
|
63
|
-
|
|
64
|
-
### The `updatedAt` gate
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
// In the editor's reconcile effect
|
|
68
|
-
if (loaded.updatedAt > lastAppliedUpdatedAt.current) {
|
|
69
|
-
applyAuthoritativeContent(loaded.content); // adopt
|
|
70
|
-
lastAppliedUpdatedAt.current = loaded.updatedAt;
|
|
71
|
-
}
|
|
72
|
-
// else: lagging poll / stale snapshot → ignore
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Without the gate, a slightly-behind poll response re-applies old content and
|
|
76
|
-
the edit "reverts on next poll". A fresh mount always adopts whatever content
|
|
77
|
-
it loaded.
|
|
78
|
-
|
|
79
|
-
### Lead-client election
|
|
80
|
-
|
|
81
|
-
Exactly ONE connected client applies the authoritative snapshot; the rest
|
|
82
|
-
receive it through Yjs sync:
|
|
83
|
-
|
|
84
|
-
```ts
|
|
85
|
-
import { isReconcileLeadClient } from "@agent-native/core/client/collab";
|
|
86
|
-
|
|
87
|
-
if (
|
|
88
|
-
loaded.updatedAt > lastAppliedUpdatedAt.current &&
|
|
89
|
-
isReconcileLeadClient(awareness, ydoc.clientID)
|
|
90
|
-
) {
|
|
91
|
-
applyAuthoritativeContent(loaded.content);
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
The agent's awareness entry (`AGENT_CLIENT_ID`, max int) can never be the
|
|
96
|
-
lead. A sole client is always the lead. The election is deterministic with no
|
|
97
|
-
coordination round-trip.
|
|
98
|
-
|
|
99
|
-
### v1 limitation
|
|
100
|
-
|
|
101
|
-
Full-content reconcile is **last-writer-wins** for the rare case where a human
|
|
102
|
-
has unsaved edits in the exact region the agent simultaneously rewrites. Edits
|
|
103
|
-
in **different** regions merge fine through the CRDT.
|
|
104
|
-
|
|
105
|
-
## Security
|
|
106
|
-
|
|
107
|
-
### Always choose an explicit access mode
|
|
108
|
-
|
|
109
|
-
Inspect the schema and sharing registration before configuring collaboration:
|
|
110
|
-
|
|
111
|
-
- For owned or shareable records, use `mode: "resource"` and the resource type
|
|
112
|
-
registered through `registerShareableResource`.
|
|
113
|
-
- For records deliberately visible to every authenticated user on the
|
|
114
|
-
deployment, use `mode: "all-authenticated"`.
|
|
115
|
-
- Never invent a `resourceType` merely to silence a warning. Resource mode is
|
|
116
|
-
correct only when the matching ownership and sharing model exists.
|
|
117
|
-
|
|
118
|
-
```ts
|
|
119
|
-
// server/plugins/collab.ts
|
|
120
|
-
import { createCollabPlugin } from "@agent-native/core/server";
|
|
121
|
-
|
|
122
|
-
export default createCollabPlugin({
|
|
123
|
-
table: "documents",
|
|
124
|
-
contentColumn: "content",
|
|
125
|
-
idColumn: "id",
|
|
126
|
-
access: { mode: "resource", resourceType: "document" },
|
|
127
|
-
});
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
For intentionally deployment-wide authenticated collaboration:
|
|
131
|
-
|
|
132
|
-
```ts
|
|
133
|
-
createCollabPlugin({
|
|
134
|
-
table: "todos",
|
|
135
|
-
contentColumn: "content",
|
|
136
|
-
access: { mode: "all-authenticated" },
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Omitting `access` is supported only for legacy compatibility and is deprecated.
|
|
141
|
-
It behaves like `all-authenticated`, logs a warning, and is flagged by Doctor.
|
|
142
|
-
Choose the mode explicitly so access intent is reviewable.
|
|
143
|
-
|
|
144
|
-
Non-owner sharees who have explicit access fall back to state-vector catch-up
|
|
145
|
-
(safe, slightly higher latency). Awareness routes require the same viewer
|
|
146
|
-
access as read routes.
|
|
147
|
-
|
|
148
|
-
### Payload limits
|
|
149
|
-
|
|
150
|
-
Write routes reject payloads exceeding `maxPayloadBytes` (default 2 MB) with
|
|
151
|
-
HTTP 413. Override:
|
|
152
|
-
|
|
153
|
-
```ts
|
|
154
|
-
createCollabPlugin({
|
|
155
|
-
access: { mode: "resource", resourceType: "document" },
|
|
156
|
-
maxPayloadBytes: 512 * 1024,
|
|
157
|
-
});
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Enabling Collaboration
|
|
161
|
-
|
|
162
|
-
### 1. Install packages
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
pnpm add @tiptap/extension-collaboration @tiptap/extension-collaboration-caret @tiptap/y-tiptap @tiptap/core
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### 2. Add collab server plugin (with explicit access)
|
|
169
|
-
|
|
170
|
-
```ts
|
|
171
|
-
// server/plugins/collab.ts
|
|
172
|
-
import { createCollabPlugin } from "@agent-native/core/server";
|
|
173
|
-
|
|
174
|
-
export default createCollabPlugin({
|
|
175
|
-
table: "documents",
|
|
176
|
-
contentColumn: "content",
|
|
177
|
-
idColumn: "id",
|
|
178
|
-
access: { mode: "resource", resourceType: "document" },
|
|
179
|
-
});
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### 3. Use the client hook
|
|
183
|
-
|
|
184
|
-
```ts
|
|
185
|
-
import { useCollaborativeDoc, emailToColor, emailToName } from "@agent-native/core/client/collab";
|
|
186
|
-
|
|
187
|
-
const { ydoc, awareness, activeUsers, agentActive, agentPresent } =
|
|
188
|
-
useCollaborativeDoc({
|
|
189
|
-
docId: documentId,
|
|
190
|
-
requestSource: TAB_ID,
|
|
191
|
-
user: {
|
|
192
|
-
name: emailToName(session.email),
|
|
193
|
-
email: session.email,
|
|
194
|
-
color: emailToColor(session.email),
|
|
195
|
-
},
|
|
196
|
-
});
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### 4. Add TipTap extensions
|
|
200
|
-
|
|
201
|
-
```ts
|
|
202
|
-
import { Collaboration } from "@tiptap/extension-collaboration";
|
|
203
|
-
import { CollaborationCaret } from "@tiptap/extension-collaboration-caret";
|
|
204
|
-
|
|
205
|
-
const editor = useEditor({
|
|
206
|
-
extensions: [
|
|
207
|
-
StarterKit.configure({ history: false }), // Yjs handles undo
|
|
208
|
-
Collaboration.configure({ document: ydoc }),
|
|
209
|
-
CollaborationCaret.configure({
|
|
210
|
-
provider: { awareness },
|
|
211
|
-
user: { name: session.email, color: "#6366f1" },
|
|
212
|
-
}),
|
|
213
|
-
],
|
|
214
|
-
// Do NOT pass content — Yjs owns it
|
|
215
|
-
});
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### 5. Add to vite.config.ts optimizeDeps
|
|
219
|
-
|
|
220
|
-
```ts
|
|
221
|
-
optimizeDeps: {
|
|
222
|
-
include: [
|
|
223
|
-
"yjs",
|
|
224
|
-
"y-protocols/awareness",
|
|
225
|
-
"@tiptap/core",
|
|
226
|
-
"@tiptap/extension-collaboration",
|
|
227
|
-
"@tiptap/extension-collaboration-caret",
|
|
228
|
-
"@tiptap/y-tiptap",
|
|
229
|
-
],
|
|
230
|
-
}
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## Collab Routes (auto-mounted)
|
|
234
|
-
|
|
235
|
-
| Route | Purpose |
|
|
236
|
-
| ----- | ------- |
|
|
237
|
-
| `GET /_agent-native/collab/:docId/state` | Fetch full Y.Doc state (accepts `?stateVector=` for diff) |
|
|
238
|
-
| `POST /_agent-native/collab/:docId/update` | Apply client Yjs update |
|
|
239
|
-
| `POST /_agent-native/collab/:docId/text` | Apply full text (diff-based) |
|
|
240
|
-
| `POST /_agent-native/collab/:docId/search-replace` | Surgical find/replace in Y.XmlFragment |
|
|
241
|
-
| `POST /_agent-native/collab/:docId/json` | Apply full JSON diff to Y.Map/Y.Array |
|
|
242
|
-
| `GET /_agent-native/collab/:docId/json` | Read current JSON state |
|
|
243
|
-
| `POST /_agent-native/collab/:docId/patch` | Surgical JSON patch ops |
|
|
244
|
-
| `POST /_agent-native/collab/:docId/awareness` | Sync cursor/presence state |
|
|
245
|
-
| `GET /_agent-native/collab/:docId/users` | List active users |
|
|
246
|
-
|
|
247
|
-
## Granular Server-Side Merge Pattern
|
|
248
|
-
|
|
249
|
-
For structured documents (slides, forms, design files) where body collab would
|
|
250
|
-
cause LWW conflicts at the container level, use **granular server-side merge**:
|
|
251
|
-
define an action with targeted per-item operations.
|
|
252
|
-
|
|
253
|
-
**When to use granular merge vs body collab:**
|
|
254
|
-
|
|
255
|
-
| Scenario | Recommended approach |
|
|
256
|
-
| -------- | -------------------- |
|
|
257
|
-
| Free-form rich text, cursor-level CRDT matters | Body collab (Y.XmlFragment + TipTap) |
|
|
258
|
-
| Structured items (slides, fields) where different users edit different items | Granular server-side merge (action with patch ops) |
|
|
259
|
-
|
|
260
|
-
Example operation shape for slides:
|
|
261
|
-
|
|
262
|
-
```ts
|
|
263
|
-
type PatchDeckOp =
|
|
264
|
-
| { type: "patch"; slideId: string; fields: Partial<SlideFields> }
|
|
265
|
-
| { type: "add"; position: number; slide: SlideData }
|
|
266
|
-
| { type: "delete"; slideId: string }
|
|
267
|
-
| { type: "reorder"; slideId: string; newIndex: number };
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
Concurrent edits to different slides both succeed at the action level; there
|
|
271
|
-
is no whole-deck LWW. Forms use the same shape with field-level ops.
|
|
272
|
-
|
|
273
|
-
## Agent Presence & Lingering Edit Highlights
|
|
274
|
-
|
|
275
|
-
The agent is a *visible* collaborator, not a silent content-swapper. Core
|
|
276
|
-
handles most of this automatically:
|
|
277
|
-
|
|
278
|
-
- **Auto-presence on agent writes** — any `applyText` / `searchAndReplace` /
|
|
279
|
-
`applyJson` / `applyPatchOps` call with `requestSource: "agent"` publishes
|
|
280
|
-
an agent awareness entry plus a `recentEdits` attribution describing what
|
|
281
|
-
changed. Actions that route writes through the collab layer get full
|
|
282
|
-
presence UX with zero extra wiring.
|
|
283
|
-
- **Linger** — `agentLeaveDocument` (and the auto-presence path) keeps the
|
|
284
|
-
agent's awareness entry alive for ~6s (`AGENT_PRESENCE_LINGER_MS`) after the
|
|
285
|
-
last edit so viewers see who just changed what. Pass `{ lingerMs: 0 }` to
|
|
286
|
-
clear immediately. On serverless the linger degrades to the 30s awareness
|
|
287
|
-
expiry.
|
|
288
|
-
- **`agentTouchDocument(docId, { edit, metadata })`** — refcount-neutral
|
|
289
|
-
presence + attribution for actions that write SQL directly (no collab doc).
|
|
290
|
-
`edit.descriptor` is one of `{kind:"text",quote}`, `{kind:"selector",selector}`,
|
|
291
|
-
`{kind:"paths",paths}`, `{kind:"doc"}`.
|
|
292
|
-
- **Durable across instances** — awareness is mirrored to the additive
|
|
293
|
-
`_collab_awareness` table, so presence written by an action in one
|
|
294
|
-
serverless invocation is visible to clients polling any other instance.
|
|
295
|
-
|
|
296
|
-
Client rendering:
|
|
297
|
-
|
|
298
|
-
```tsx
|
|
299
|
-
import {
|
|
300
|
-
usePresence, useRecentEdits, RecentEditHighlights,
|
|
301
|
-
PresenceBar, LiveCursorOverlay, RemoteSelectionRings,
|
|
302
|
-
} from "@agent-native/core/client/collab";
|
|
303
|
-
|
|
304
|
-
const { others, setPresence } = usePresence(awareness, ydoc?.clientID);
|
|
305
|
-
const recentEdits = useRecentEdits(others); // non-expired, ~6s TTL
|
|
306
|
-
|
|
307
|
-
<RecentEditHighlights
|
|
308
|
-
edits={recentEdits}
|
|
309
|
-
containerRef={containerRef}
|
|
310
|
-
resolveRect={(edit) => /* map descriptor → DOMRect, or null */ null}
|
|
311
|
-
/>
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
Humans get the same treatment: call `publishRecentEdit(awareness, { descriptor })`
|
|
315
|
-
from local mutation paths so peers see lingering highlights for human edits
|
|
316
|
-
too. `CollabUser.avatarUrl` puts faces on avatars, cursors, and edit tags.
|
|
317
|
-
|
|
318
|
-
## Per-User Undo (never revert someone else's work)
|
|
319
|
-
|
|
320
|
-
Undo must only reverse the local user's edits — and must never restore a
|
|
321
|
-
whole-document snapshot (that clobbers concurrent edits by peers/the agent).
|
|
322
|
-
Core ships two primitives:
|
|
323
|
-
|
|
324
|
-
**Yjs surfaces — `useCollabUndo`** (wraps `Y.UndoManager` lifecycle):
|
|
325
|
-
|
|
326
|
-
```ts
|
|
327
|
-
import { useCollabUndo } from "@agent-native/core/client/collab";
|
|
328
|
-
|
|
329
|
-
const { undo, redo, canUndo, canRedo, transactLocal, localOrigin } =
|
|
330
|
-
useCollabUndo({
|
|
331
|
-
ydoc,
|
|
332
|
-
scope: (doc) => doc.getText("content"),
|
|
333
|
-
captureTimeout: 500,
|
|
334
|
-
enableKeyboardShortcuts: true, // Mod+Z / Shift+Mod+Z / Mod+Y
|
|
335
|
-
});
|
|
336
|
-
|
|
337
|
-
// Tag every local mutation so it is captured:
|
|
338
|
-
transactLocal(() => { /* mutate shared types */ });
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
Remote (`"remote"`) and agent (`"agent"`/`"server"`) origins are never
|
|
342
|
-
captured. The manager is recreated/destroyed automatically when `ydoc`
|
|
343
|
-
changes. (TipTap's Collaboration extension already provides this behavior
|
|
344
|
-
for its own editor content.)
|
|
345
|
-
|
|
346
|
-
**Op-based surfaces (slides/forms) — `useLocalOpUndo`**: record inverse
|
|
347
|
-
granular ops for each local mutation; undo replays the inverse ops through
|
|
348
|
-
your normal granular mutation path:
|
|
349
|
-
|
|
350
|
-
```ts
|
|
351
|
-
const { push, undo, redo, canUndo, canRedo } = useLocalOpUndo({
|
|
352
|
-
apply: (ops) => applyGranularOps(ops), // your patch path
|
|
353
|
-
});
|
|
354
|
-
|
|
355
|
-
push({
|
|
356
|
-
undo: [{ type: "patch", slideId, fields: prevFields }],
|
|
357
|
-
redo: [{ type: "patch", slideId, fields: nextFields }],
|
|
358
|
-
coalesceKey: `${slideId}:content`, // merge rapid bursts into one step
|
|
359
|
-
});
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
Entries whose target no longer exists should fail soft (skip), never reset
|
|
363
|
-
the whole history — external/agent edits must not wipe the user's undo stack.
|
|
364
|
-
|
|
365
|
-
## Common Pitfalls
|
|
366
|
-
|
|
367
|
-
- **Missing `access`** — Legacy omission behaves like `all-authenticated`, logs
|
|
368
|
-
a startup warning, and is flagged by Doctor. Choose `resource` for records
|
|
369
|
-
backed by ownership/sharing, or explicit `all-authenticated` for intentionally
|
|
370
|
-
deployment-wide records. Never invent a resource type to silence the warning.
|
|
371
|
-
- **Don't pass `content` as a TipTap prop** when Collaboration is enabled —
|
|
372
|
-
Yjs owns the content. Seed via `editor.commands.setContent()` only when the
|
|
373
|
-
Y.XmlFragment is empty.
|
|
374
|
-
- **Don't call `editor.setContent()` ad hoc for agent edits** — the only
|
|
375
|
-
sanctioned `setContent` is gated by `updatedAt` and guarded by
|
|
376
|
-
`isReconcileLeadClient`. Calling it from elsewhere duplicates content across
|
|
377
|
-
the CRDT or re-applies stale snapshots.
|
|
378
|
-
- **Add packages to `optimizeDeps`** — Vite won't pre-bundle Yjs correctly
|
|
379
|
-
otherwise, causing runtime errors in dev.
|
|
380
|
-
- **One `Y.Doc` per document** — Don't create multiple Y.Doc instances for the
|
|
381
|
-
same document ID. `useCollaborativeDoc` caches by ID.
|
|
382
|
-
- **Destroy Y.UndoManager on doc change** — Stale managers hold Y.Doc
|
|
383
|
-
references and grow unboundedly. Recreate on `docId` change.
|
|
384
|
-
|
|
385
|
-
## Related Skills
|
|
386
|
-
|
|
387
|
-
- `real-time-sync` — The change-sync system that delivers the `updatedAt` bump
|
|
388
|
-
driving editor reconciliation; also `useReconciledState` for non-Yjs surfaces
|
|
389
|
-
- `storing-data` — The `_collab_docs` table and SQL canonical content
|
|
390
|
-
- `security` — `registerShareableResource`, `resolveAccess`, `assertAccess`
|
|
391
|
-
- `self-modifying-code` — Agent edits to collaborative documents edit canonical
|
|
392
|
-
SQL content, not raw Yjs
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: upgrade-agent-native
|
|
3
|
-
description: >-
|
|
4
|
-
Bring an older Agent Native app or workspace current. Use when updating
|
|
5
|
-
@agent-native/core, fixing a broken upgrade, or when tempted to patch or
|
|
6
|
-
override core/dispatch packages to make an old branch run.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Upgrade Agent Native
|
|
13
|
-
|
|
14
|
-
## Rule
|
|
15
|
-
|
|
16
|
-
When an older Agent Native app/branch needs to run on current packages, use
|
|
17
|
-
`agent-native upgrade`. Never "fix" upgrade breakage with
|
|
18
|
-
`pnpm patch`, `pnpm patch-commit`, `pnpm.patchedDependencies`,
|
|
19
|
-
`pnpm.overrides`, `patchedDependencies`, `resolutions`, local patch artifacts,
|
|
20
|
-
or edits under `node_modules/@agent-native/*` — especially not against
|
|
21
|
-
`@agent-native/core` or `@agent-native/dispatch`.
|
|
22
|
-
|
|
23
|
-
## Why
|
|
24
|
-
|
|
25
|
-
Agents often respond to a failed core bump by inventing framework patches and
|
|
26
|
-
dispatch behavior overrides. That hides the real app-level break, drifts from
|
|
27
|
-
upstream, and makes the next upgrade worse. The supported path is bump →
|
|
28
|
-
install → refresh scaffold skills → verify, then fix **app** code only.
|
|
29
|
-
|
|
30
|
-
## How
|
|
31
|
-
|
|
32
|
-
1. **Preview migration codemods first**
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npx @agent-native/core@latest upgrade --codemods
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Codemods are preview-by-default: read the diff before applying it. Do not
|
|
39
|
-
manually edit imports before running this command; the migration manifest is
|
|
40
|
-
the source of truth for renamed specifiers and symbols.
|
|
41
|
-
|
|
42
|
-
2. **Apply the reviewed codemods, then run the upgrade**
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
npx @agent-native/core@latest upgrade --codemods --yes
|
|
46
|
-
npx @agent-native/core@latest upgrade
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Or from an already-installed CLI: `pnpm exec agent-native upgrade` /
|
|
50
|
-
`agent-native upgrade`.
|
|
51
|
-
|
|
52
|
-
What it does:
|
|
53
|
-
|
|
54
|
-
- Blocks (unless `--force`) when `@agent-native/*` overrides/patches exist
|
|
55
|
-
- Rewrites non-local `@agent-native/*` dependency pins to `latest`
|
|
56
|
-
- Runs the package manager install
|
|
57
|
-
- Rewrites those pins to the exact versions the install resolved, so the
|
|
58
|
-
committed manifest names one release instead of re-resolving next install
|
|
59
|
-
- Runs `skills update scaffold --project`
|
|
60
|
-
- Runs `typecheck` when the project has that script
|
|
61
|
-
|
|
62
|
-
3. **Pull upstream template changes (optional, separate from the bump)**
|
|
63
|
-
|
|
64
|
-
`agent-native upgrade` moves package versions. It never touches files that
|
|
65
|
-
were copied out of a template at scaffold time, so template fixes and
|
|
66
|
-
improvements do not arrive with a bump.
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
agent-native template status # recorded ref vs latest, drift counts
|
|
70
|
-
agent-native template diff # what upstream changed, read-only
|
|
71
|
-
agent-native template sync # 3-way merge it into the app
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
`sync` defaults to the ref matching the installed `@agent-native/core`, so
|
|
75
|
-
run it after `upgrade`. It merges per file against a pristine baseline
|
|
76
|
-
stored in `refs/agent-native/template-baseline/<app-path>`; files upstream
|
|
77
|
-
did not touch are left alone, and real collisions get conflict markers.
|
|
78
|
-
After resolving markers, run `agent-native template accept` — the baseline
|
|
79
|
-
deliberately does not advance past an unresolved merge.
|
|
80
|
-
|
|
81
|
-
Apps scaffolded before provenance existed have no baseline. Create one
|
|
82
|
-
with `agent-native template baseline` before the first sync.
|
|
83
|
-
|
|
84
|
-
4. **If upgrade or typecheck fails**
|
|
85
|
-
|
|
86
|
-
- Read the concrete error
|
|
87
|
-
- Fix **app** source, actions, config, or env — not framework packages
|
|
88
|
-
- Re-run `agent-native upgrade` or `pnpm typecheck`
|
|
89
|
-
- Stop and ask the user if you cannot fix the app-level error
|
|
90
|
-
|
|
91
|
-
Intentional app-level UI customization is a separate workflow. Read
|
|
92
|
-
`customizing-agent-native` when the product needs to own a selectively
|
|
93
|
-
copied component; do not use that path to reproduce framework runtime
|
|
94
|
-
behavior or hide version skew.
|
|
95
|
-
|
|
96
|
-
5. **Dry-run / partial runs**
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
agent-native upgrade --dry-run
|
|
100
|
-
agent-native upgrade --skip-verify
|
|
101
|
-
agent-native upgrade --skip-install # package.json bumps only
|
|
102
|
-
agent-native doctor --only migration-manifest
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
`migration-manifest` has no opt-out. Run it in CI before upgrading to find
|
|
106
|
-
imports that will break, then use `npx @agent-native/core@latest upgrade --codemods`
|
|
107
|
-
to preview the supported rewrite.
|
|
108
|
-
|
|
109
|
-
## Don't
|
|
110
|
-
|
|
111
|
-
- Don't add `pnpm.overrides`, `overrides`, `resolutions`, or
|
|
112
|
-
`patchedDependencies` for any `@agent-native/*` package
|
|
113
|
-
- Don't run `pnpm patch` or `pnpm patch-commit`, or commit files under
|
|
114
|
-
`patches/`, for any dependency
|
|
115
|
-
- Don't edit `node_modules/@agent-native/core` or
|
|
116
|
-
`node_modules/@agent-native/dispatch`
|
|
117
|
-
- Don't invent local "dispatch behavior" shims to paper over version skew
|
|
118
|
-
- Don't keep iterating with more framework patches after a failed install
|
|
119
|
-
- Don't skip `skills update scaffold --project` after a core bump (the
|
|
120
|
-
upgrade command does this for you)
|
|
121
|
-
|
|
122
|
-
## Related Skills
|
|
123
|
-
|
|
124
|
-
- **self-modifying-code** — Tier 4: framework packages are off limits
|
|
125
|
-
- **agent-native-docs** — version-matched docs after the bump
|
|
126
|
-
- **customizing-agent-native** — intentional app-owned UI copies, not upgrade patches
|
|
127
|
-
- **portability** — keep app code provider-agnostic across upgrades
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: feature-flags
|
|
3
|
-
description: >-
|
|
4
|
-
Declare, evaluate, manage, and remove framework feature flags. Use when
|
|
5
|
-
shipping a capability gradually, targeting users or organizations, or
|
|
6
|
-
replacing a compile-time rollout switch with a production-safe runtime flag.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Feature Flags
|
|
13
|
-
|
|
14
|
-
A feature flag is a boolean declared in app code, evaluated locally by Core,
|
|
15
|
-
and managed from the Analytics fleet control plane. Code owns whether a flag
|
|
16
|
-
exists. Runtime settings own only its rollout state.
|
|
17
|
-
|
|
18
|
-
Flags let an app deploy dormant code and turn it on in the real environment
|
|
19
|
-
without another deployment. They are not experiments: do not add variants,
|
|
20
|
-
hypotheses, conversion metrics, exposure tracking, or lifecycle states.
|
|
21
|
-
|
|
22
|
-
## When to use one
|
|
23
|
-
|
|
24
|
-
Use a flag for a reversible rollout of a user-facing capability whose dormant
|
|
25
|
-
code is safe to deploy. Flags are useful for production dogfooding, exact-user
|
|
26
|
-
or organization pilots, and deterministic percentage rollouts.
|
|
27
|
-
|
|
28
|
-
Do not use a flag for authentication, authorization, secrets, audit enablement,
|
|
29
|
-
SSR cache behavior, or another security boundary. Client hiding is presentation
|
|
30
|
-
only; every guarded server action must evaluate the same registered flag.
|
|
31
|
-
|
|
32
|
-
## Agent workflow
|
|
33
|
-
|
|
34
|
-
### 1. Declare
|
|
35
|
-
|
|
36
|
-
Keep definitions in a shared TypeScript module so server and client code use the
|
|
37
|
-
same stable key. Flags are boolean and default-off.
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
import { defineFeatureFlag } from "@agent-native/core/feature-flags/registry";
|
|
41
|
-
|
|
42
|
-
export const FULL_APP_BUILDING = defineFeatureFlag({
|
|
43
|
-
key: "full-app-building",
|
|
44
|
-
displayName: "Full app building",
|
|
45
|
-
description: "Create and edit Fusion-backed applications.",
|
|
46
|
-
});
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Keys are immutable, never reused, and contain only letters, numbers, dots,
|
|
50
|
-
underscores, or hyphens. Prefer a concise app-owned name. Do not create flag
|
|
51
|
-
definitions or rollout rows from Analytics.
|
|
52
|
-
|
|
53
|
-
### 2. Register
|
|
54
|
-
|
|
55
|
-
Register app definitions from a Nitro plugin before actions are discovered.
|
|
56
|
-
Do not add app-specific flags to a Core registry.
|
|
57
|
-
|
|
58
|
-
```ts
|
|
59
|
-
import { createFeatureFlagsPlugin } from "@agent-native/core/server";
|
|
60
|
-
|
|
61
|
-
import { FULL_APP_BUILDING } from "../../shared/feature-flags.js";
|
|
62
|
-
|
|
63
|
-
export default createFeatureFlagsPlugin({ flags: [FULL_APP_BUILDING] });
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 3. Guard server and client
|
|
67
|
-
|
|
68
|
-
The server action is the enforcement boundary:
|
|
69
|
-
|
|
70
|
-
```ts
|
|
71
|
-
import { isFeatureFlagEnabled } from "@agent-native/core/feature-flags";
|
|
72
|
-
|
|
73
|
-
run: async (args, ctx) => {
|
|
74
|
-
if (!(await isFeatureFlagEnabled(FULL_APP_BUILDING, ctx))) {
|
|
75
|
-
throw new Error("Full app building is not enabled for this account.");
|
|
76
|
-
}
|
|
77
|
-
// guarded operation
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Use the client hook only to hide or reveal hydrated UI:
|
|
82
|
-
|
|
83
|
-
```tsx
|
|
84
|
-
import { useFeatureFlag } from "@agent-native/core/client/feature-flags";
|
|
85
|
-
|
|
86
|
-
const enabled = useFeatureFlag(FULL_APP_BUILDING.key);
|
|
87
|
-
return enabled ? <FullAppOption /> : null;
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
The client hook intentionally returns false while loading or for an unknown
|
|
91
|
-
flag. Never replace that fail-closed behavior with app-local bucketing or a
|
|
92
|
-
compile-time fallback. Never evaluate personalized flags in the public SSR
|
|
93
|
-
shell; it is shared and cached for every visitor.
|
|
94
|
-
|
|
95
|
-
### 4. Verify and roll out
|
|
96
|
-
|
|
97
|
-
1. Verify the off path before changing rollout state.
|
|
98
|
-
2. Confirm the registered flag appears in **Analytics → Feature flags** for the
|
|
99
|
-
app and is Off by default.
|
|
100
|
-
3. Use **Enable for me** for initial production dogfood.
|
|
101
|
-
4. Expand to exact emails, organization IDs, or a percentage only from
|
|
102
|
-
Analytics.
|
|
103
|
-
5. Confirm the client presentation and authoritative server action agree.
|
|
104
|
-
|
|
105
|
-
## Management contract
|
|
106
|
-
|
|
107
|
-
Core mounts three actions in registered apps:
|
|
108
|
-
|
|
109
|
-
| Action | Purpose |
|
|
110
|
-
| --- | --- |
|
|
111
|
-
| `get-feature-flags` | Return the current caller's evaluated boolean values. |
|
|
112
|
-
| `list-feature-flags` | Return definitions and rollout metadata to an authorized operator. |
|
|
113
|
-
| `set-feature-flag` | Atomically turn a flag off, enable it for the operator, or replace targeting rules. |
|
|
114
|
-
|
|
115
|
-
Analytics calls the app-local operator actions through narrowly scoped A2A
|
|
116
|
-
delegation. Tokens require an exact audience, organization, scope, operator
|
|
117
|
-
role, and audit correlation id. Management is permission-checked and audited
|
|
118
|
-
by the target app. Never manage flags through generic settings routes, raw SQL,
|
|
119
|
-
or per-app toggle UIs.
|
|
120
|
-
|
|
121
|
-
## Rollout semantics
|
|
122
|
-
|
|
123
|
-
The operator modes are **Off**, **Targeted**, and **Everyone**. Core stores them
|
|
124
|
-
as `off`, `rules`, and `on`.
|
|
125
|
-
|
|
126
|
-
Targeted rules combine exact normalized emails, exact organization IDs, and a
|
|
127
|
-
percentage with OR semantics. Exact matches are checked first. Percentage
|
|
128
|
-
buckets use Core's stable hash of the flag key and authenticated user identity;
|
|
129
|
-
anonymous callers fail closed. Raising a percentage preserves the users already
|
|
130
|
-
included at a lower percentage. Do not implement bucketing in app code.
|
|
131
|
-
|
|
132
|
-
Unknown definitions, missing state, malformed state, storage errors, and
|
|
133
|
-
evaluation errors all return the code default (`false` in v1). Explicit Off
|
|
134
|
-
wins over every target; Everyone enables every authenticated caller.
|
|
135
|
-
|
|
136
|
-
## Remove a flag
|
|
137
|
-
|
|
138
|
-
After a rollout is permanent:
|
|
139
|
-
|
|
140
|
-
1. Replace guarded branches with the chosen behavior.
|
|
141
|
-
2. Delete the server and client gates.
|
|
142
|
-
3. Delete the definition and registration entry.
|
|
143
|
-
4. Verify the flag disappears from the Analytics fleet.
|
|
144
|
-
5. Remove stale tests and rollout instructions.
|
|
145
|
-
|
|
146
|
-
A permanent flag is just an if statement with a pension plan.
|
|
147
|
-
|
|
148
|
-
## Verification checklist
|
|
149
|
-
|
|
150
|
-
- Unknown and unregistered keys evaluate false.
|
|
151
|
-
- UI hiding and server enforcement use the same registered key.
|
|
152
|
-
- Exact-user, organization, deterministic percentage, Everyone, and Off paths
|
|
153
|
-
have focused tests.
|
|
154
|
-
- Increasing a percentage is monotonic; anonymous percentage evaluation is off.
|
|
155
|
-
- Unauthorized callers cannot list targeting details or mutate flags.
|
|
156
|
-
- Mutations are atomic, read back stored state, emit refresh, and appear in the
|
|
157
|
-
audit log with the flag key.
|
|
158
|
-
- Analytics represents ready, no-definition, unsupported, forbidden, legacy,
|
|
159
|
-
and unreachable directory apps honestly.
|
|
160
|
-
- Future agents can find this skill from root `AGENTS.md`, and
|
|
161
|
-
`pnpm guard:workspace-skills` passes after syncing generated copies.
|
|
162
|
-
|
|
163
|
-
## Related skills
|
|
164
|
-
|
|
165
|
-
- **adding-a-feature** — preserve UI/action/instruction/application-state parity
|
|
166
|
-
- **actions** — define and call guarded app operations
|
|
167
|
-
- **audit-log** — inspect automatic action mutation history
|
|
168
|
-
- **reliable-mutations** — make rollout changes atomic and provable
|
|
169
|
-
- **security** — keep security controls out of feature flags
|