@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
|
@@ -3,6 +3,8 @@ import { listWorkspaceConnectionProviders, } from "../connections/catalog.js";
|
|
|
3
3
|
import { getDbExec, intType, isPostgres, isUniqueViolation, retryOnDdlRace, safeJsonParse, } from "../db/client.js";
|
|
4
4
|
import { ensureColumnExists, ensureIndexExists, ensureTableExists, } from "../db/ddl-guard.js";
|
|
5
5
|
import { getRequestOrgId, getRequestUserEmail, } from "../server/request-context.js";
|
|
6
|
+
import { credentialKeyMatches } from "./credential-key-aliases.js";
|
|
7
|
+
import { assertWorkspaceUserGroupIds, normalizeWorkspaceUserGroupIds, workspaceUserGroupsIncludeUser, } from "./groups.js";
|
|
6
8
|
import { notifyWorkspaceConnectionLifecycle } from "./lifecycle.js";
|
|
7
9
|
let _initPromise;
|
|
8
10
|
function workspaceConnectionsTable() {
|
|
@@ -44,6 +46,8 @@ async function ensureWorkspaceConnectionColumns(client, table) {
|
|
|
44
46
|
await ensureColumn(client, table, "scopes_json", "TEXT NOT NULL DEFAULT '[]'");
|
|
45
47
|
await ensureColumn(client, table, "config_json", "TEXT NOT NULL DEFAULT '{}'");
|
|
46
48
|
await ensureColumn(client, table, "allowed_apps_json", "TEXT NOT NULL DEFAULT '[]'");
|
|
49
|
+
await ensureColumn(client, table, "allowed_users_json", "TEXT NOT NULL DEFAULT '[]'");
|
|
50
|
+
await ensureColumn(client, table, "allowed_user_groups_json", "TEXT NOT NULL DEFAULT '[]'");
|
|
47
51
|
await ensureColumn(client, table, "credential_refs_json", "TEXT NOT NULL DEFAULT '[]'");
|
|
48
52
|
await ensureColumn(client, table, "owner_email", "TEXT NOT NULL DEFAULT ''");
|
|
49
53
|
await ensureColumn(client, table, "org_id", "TEXT");
|
|
@@ -84,6 +88,8 @@ export async function ensureWorkspaceConnectionsTable() {
|
|
|
84
88
|
scopes_json TEXT NOT NULL DEFAULT '[]',
|
|
85
89
|
config_json TEXT NOT NULL DEFAULT '{}',
|
|
86
90
|
allowed_apps_json TEXT NOT NULL DEFAULT '[]',
|
|
91
|
+
allowed_users_json TEXT NOT NULL DEFAULT '[]',
|
|
92
|
+
allowed_user_groups_json TEXT NOT NULL DEFAULT '[]',
|
|
87
93
|
credential_refs_json TEXT NOT NULL DEFAULT '[]',
|
|
88
94
|
owner_email TEXT NOT NULL DEFAULT '',
|
|
89
95
|
org_id TEXT,
|
|
@@ -127,6 +133,8 @@ export async function ensureWorkspaceConnectionsTable() {
|
|
|
127
133
|
await ensureColumnExists("workspace_connections", "scopes_json", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS scopes_json TEXT NOT NULL DEFAULT '[]'`);
|
|
128
134
|
await ensureColumnExists("workspace_connections", "config_json", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS config_json TEXT NOT NULL DEFAULT '{}'`);
|
|
129
135
|
await ensureColumnExists("workspace_connections", "allowed_apps_json", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS allowed_apps_json TEXT NOT NULL DEFAULT '[]'`);
|
|
136
|
+
await ensureColumnExists("workspace_connections", "allowed_users_json", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS allowed_users_json TEXT NOT NULL DEFAULT '[]'`);
|
|
137
|
+
await ensureColumnExists("workspace_connections", "allowed_user_groups_json", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS allowed_user_groups_json TEXT NOT NULL DEFAULT '[]'`);
|
|
130
138
|
await ensureColumnExists("workspace_connections", "credential_refs_json", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS credential_refs_json TEXT NOT NULL DEFAULT '[]'`);
|
|
131
139
|
await ensureColumnExists("workspace_connections", "owner_email", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS owner_email TEXT NOT NULL DEFAULT ''`);
|
|
132
140
|
await ensureColumnExists("workspace_connections", "org_id", `ALTER TABLE workspace_connections ADD COLUMN IF NOT EXISTS org_id TEXT`);
|
|
@@ -201,6 +209,26 @@ function normalizeStringArray(value) {
|
|
|
201
209
|
.map((entry) => entry.trim())
|
|
202
210
|
.filter(Boolean);
|
|
203
211
|
}
|
|
212
|
+
export function normalizeWorkspaceConnectionAllowedUsers(value) {
|
|
213
|
+
return Array.from(new Set(normalizeStringArray(value).map((email) => email.toLowerCase())));
|
|
214
|
+
}
|
|
215
|
+
function workspaceConnectionHasDirectUserAccess(connection, userEmail) {
|
|
216
|
+
const allowedUserGroups = connection.allowedUserGroups ?? [];
|
|
217
|
+
return ((connection.allowedUsers.length === 0 && allowedUserGroups.length === 0) ||
|
|
218
|
+
connection.allowedUsers.includes(userEmail));
|
|
219
|
+
}
|
|
220
|
+
async function filterWorkspaceConnectionsForUser(connections, scope) {
|
|
221
|
+
return Promise.all(connections.map(async (connection) => {
|
|
222
|
+
if (workspaceConnectionHasDirectUserAccess(connection, scope.ownerEmail)) {
|
|
223
|
+
return connection;
|
|
224
|
+
}
|
|
225
|
+
if ((connection.allowedUserGroups?.length ?? 0) === 0)
|
|
226
|
+
return null;
|
|
227
|
+
return (await workspaceUserGroupsIncludeUser(scope.orgId, connection.allowedUserGroups, scope.ownerEmail))
|
|
228
|
+
? connection
|
|
229
|
+
: null;
|
|
230
|
+
})).then((items) => items.filter((connection) => connection !== null));
|
|
231
|
+
}
|
|
204
232
|
function normalizeRequiredString(value, label) {
|
|
205
233
|
const normalized = typeof value === "string" ? value.trim() : "";
|
|
206
234
|
if (!normalized) {
|
|
@@ -305,6 +333,8 @@ function parseRow(row) {
|
|
|
305
333
|
scopes: normalizeStringArray(safeJsonParse(row.scopes_json, [])),
|
|
306
334
|
config: normalizeObject(safeJsonParse(row.config_json, {})),
|
|
307
335
|
allowedApps: normalizeStringArray(safeJsonParse(row.allowed_apps_json, [])),
|
|
336
|
+
allowedUsers: normalizeWorkspaceConnectionAllowedUsers(safeJsonParse(row.allowed_users_json, [])),
|
|
337
|
+
allowedUserGroups: normalizeWorkspaceUserGroupIds(safeJsonParse(row.allowed_user_groups_json, [])),
|
|
308
338
|
credentialRefs: normalizeCredentialRefs(safeJsonParse(row.credential_refs_json, [])),
|
|
309
339
|
ownerEmail: String(row.owner_email ?? ""),
|
|
310
340
|
orgId: row.org_id == null ? null : String(row.org_id),
|
|
@@ -338,6 +368,8 @@ export function serializeWorkspaceConnection(connection) {
|
|
|
338
368
|
scopes: normalizeStringArray(connection.scopes),
|
|
339
369
|
config: sanitizeConfig(connection.config),
|
|
340
370
|
allowedApps: normalizeStringArray(connection.allowedApps),
|
|
371
|
+
allowedUsers: normalizeWorkspaceConnectionAllowedUsers(connection.allowedUsers),
|
|
372
|
+
allowedUserGroups: normalizeWorkspaceUserGroupIds(connection.allowedUserGroups),
|
|
341
373
|
credentialRefs: normalizeCredentialRefs(connection.credentialRefs),
|
|
342
374
|
};
|
|
343
375
|
}
|
|
@@ -450,6 +482,8 @@ function serializeConnectionForApp(connection, appId, grants) {
|
|
|
450
482
|
grantScope: connection.allowedApps.length === 0 ? "all-apps" : "selected-apps",
|
|
451
483
|
appAccess,
|
|
452
484
|
allowedApps: connection.allowedApps,
|
|
485
|
+
allowedUsers: connection.allowedUsers,
|
|
486
|
+
allowedUserGroups: connection.allowedUserGroups ?? [],
|
|
453
487
|
credentialRefs: publicCredentialRefs(connection.credentialRefs, "connection"),
|
|
454
488
|
lastUsedAt: latestIso([connection.lastUsedAt, explicitGrant?.lastUsedAt]),
|
|
455
489
|
lastCheckedAt: connection.lastCheckedAt,
|
|
@@ -545,7 +579,7 @@ function missingRequiredCredentialKeys(provider, connection, grants = []) {
|
|
|
545
579
|
]
|
|
546
580
|
.map((ref) => ref.key.trim())
|
|
547
581
|
.filter(Boolean));
|
|
548
|
-
return requiredCredentialKeys(provider).filter((key) => !available.
|
|
582
|
+
return requiredCredentialKeys(provider).filter((key) => !Array.from(available).some((refKey) => credentialKeyMatches(provider.id, key, refKey)));
|
|
549
583
|
}
|
|
550
584
|
export function summarizeWorkspaceConnectionProviderReadiness({ provider, connections, grants = [], appId, includeConnections, }) {
|
|
551
585
|
const providerConnections = connections.filter((connection) => connection.provider === provider.id);
|
|
@@ -593,7 +627,11 @@ export function summarizeWorkspaceConnectionProviderReadiness({ provider, connec
|
|
|
593
627
|
}
|
|
594
628
|
export async function listWorkspaceConnectionProviderCatalogForApp({ appId, provider, capability, templateUse, includeDisabled = true, includeConnections = "all", }) {
|
|
595
629
|
const [connections, grants] = await Promise.all([
|
|
596
|
-
listWorkspaceConnections({
|
|
630
|
+
listWorkspaceConnections({
|
|
631
|
+
provider,
|
|
632
|
+
appId,
|
|
633
|
+
includeDisabled,
|
|
634
|
+
}),
|
|
597
635
|
listWorkspaceConnectionGrants({ provider, appId }),
|
|
598
636
|
]);
|
|
599
637
|
const providers = listWorkspaceConnectionProviders({
|
|
@@ -638,7 +676,11 @@ export async function listWorkspaceConnectionProviderCatalogForApp({ appId, prov
|
|
|
638
676
|
export async function listWorkspaceConnectionsForApp({ appId, provider, includeDisabled = false, }) {
|
|
639
677
|
const normalizedAppId = normalizeRequiredString(appId, "listWorkspaceConnectionsForApp appId");
|
|
640
678
|
const [connections, grants] = await Promise.all([
|
|
641
|
-
listWorkspaceConnections({
|
|
679
|
+
listWorkspaceConnections({
|
|
680
|
+
provider,
|
|
681
|
+
appId: normalizedAppId,
|
|
682
|
+
includeDisabled,
|
|
683
|
+
}),
|
|
642
684
|
listWorkspaceConnectionGrants({ provider, appId: normalizedAppId }),
|
|
643
685
|
]);
|
|
644
686
|
return connections
|
|
@@ -648,13 +690,15 @@ export async function listWorkspaceConnectionsForApp({ appId, provider, includeD
|
|
|
648
690
|
export async function resolveWorkspaceConnectionForApp({ appId, provider, includeDisabled = false, connectionId, requireConnected = false, }) {
|
|
649
691
|
const normalizedAppId = normalizeRequiredString(appId, "resolveWorkspaceConnectionForApp appId");
|
|
650
692
|
const normalizedConnectionId = connectionId?.trim();
|
|
693
|
+
const scope = requireWorkspaceConnectionScope();
|
|
651
694
|
const requestedConnections = await listWorkspaceConnections({
|
|
652
695
|
provider,
|
|
653
696
|
includeDisabled: includeDisabled || Boolean(normalizedConnectionId),
|
|
654
697
|
});
|
|
698
|
+
const userConnections = await filterWorkspaceConnectionsForUser(requestedConnections, scope);
|
|
655
699
|
const candidateConnections = normalizedConnectionId
|
|
656
|
-
?
|
|
657
|
-
:
|
|
700
|
+
? userConnections.filter((connection) => connection.id === normalizedConnectionId)
|
|
701
|
+
: userConnections;
|
|
658
702
|
const grants = await listWorkspaceConnectionGrants({
|
|
659
703
|
provider,
|
|
660
704
|
appId: normalizedAppId,
|
|
@@ -755,7 +799,8 @@ export async function listWorkspaceConnections(options = {}) {
|
|
|
755
799
|
if (!appId)
|
|
756
800
|
return connections;
|
|
757
801
|
const grantedConnectionIds = await getGrantedConnectionIdsForApp(client, scope, appId);
|
|
758
|
-
|
|
802
|
+
const userConnections = await filterWorkspaceConnectionsForUser(connections, scope);
|
|
803
|
+
return userConnections.filter((connection) => connection.allowedApps.length === 0 ||
|
|
759
804
|
connection.allowedApps.includes(appId) ||
|
|
760
805
|
grantedConnectionIds.has(connection.id));
|
|
761
806
|
}
|
|
@@ -784,12 +829,21 @@ export async function upsertWorkspaceConnection(input) {
|
|
|
784
829
|
const scope = requireWorkspaceConnectionScope();
|
|
785
830
|
const where = scopedWhere(scope);
|
|
786
831
|
const id = input.id?.trim() || randomUUID();
|
|
832
|
+
const existingConnection = input.id?.trim()
|
|
833
|
+
? await getWorkspaceConnection(id)
|
|
834
|
+
: null;
|
|
787
835
|
const now = Date.now();
|
|
788
836
|
const label = input.label?.trim() || input.accountLabel?.trim() || provider;
|
|
789
837
|
const status = normalizeStatus(input.status);
|
|
790
838
|
const scopes = normalizeStringArray(input.scopes);
|
|
791
839
|
const config = sanitizeConfig(input.config);
|
|
792
840
|
const allowedApps = normalizeStringArray(input.allowedApps);
|
|
841
|
+
const allowedUsers = input.allowedUsers === undefined
|
|
842
|
+
? (existingConnection?.allowedUsers ?? [])
|
|
843
|
+
: normalizeWorkspaceConnectionAllowedUsers(input.allowedUsers);
|
|
844
|
+
const allowedUserGroups = input.allowedUserGroups === undefined
|
|
845
|
+
? (existingConnection?.allowedUserGroups ?? [])
|
|
846
|
+
: ((await assertWorkspaceUserGroupIds(input.allowedUserGroups, scope.orgId)) ?? []);
|
|
793
847
|
const credentialRefs = normalizeCredentialRefs(input.credentialRefs);
|
|
794
848
|
const lastCheckedAt = millis(input.lastCheckedAt);
|
|
795
849
|
const lastError = input.lastError ?? null;
|
|
@@ -797,6 +851,7 @@ export async function upsertWorkspaceConnection(input) {
|
|
|
797
851
|
sql: `UPDATE ${table}
|
|
798
852
|
SET provider = ?, label = ?, account_id = ?, account_label = ?,
|
|
799
853
|
status = ?, scopes_json = ?, config_json = ?, allowed_apps_json = ?,
|
|
854
|
+
allowed_users_json = ?, allowed_user_groups_json = ?,
|
|
800
855
|
credential_refs_json = ?, updated_at = ?, last_checked_at = ?,
|
|
801
856
|
last_error = ?
|
|
802
857
|
WHERE id = ? AND ${where.sql}`,
|
|
@@ -809,6 +864,8 @@ export async function upsertWorkspaceConnection(input) {
|
|
|
809
864
|
JSON.stringify(scopes),
|
|
810
865
|
JSON.stringify(config),
|
|
811
866
|
JSON.stringify(allowedApps),
|
|
867
|
+
JSON.stringify(allowedUsers),
|
|
868
|
+
JSON.stringify(allowedUserGroups),
|
|
812
869
|
JSON.stringify(credentialRefs),
|
|
813
870
|
now,
|
|
814
871
|
lastCheckedAt,
|
|
@@ -822,10 +879,11 @@ export async function upsertWorkspaceConnection(input) {
|
|
|
822
879
|
await client.execute({
|
|
823
880
|
sql: `INSERT INTO ${table}
|
|
824
881
|
(id, provider, label, account_id, account_label, status,
|
|
825
|
-
scopes_json, config_json, allowed_apps_json,
|
|
882
|
+
scopes_json, config_json, allowed_apps_json, allowed_users_json,
|
|
883
|
+
allowed_user_groups_json, credential_refs_json,
|
|
826
884
|
owner_email, org_id, created_at, updated_at, last_checked_at,
|
|
827
885
|
last_error)
|
|
828
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
886
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
829
887
|
args: [
|
|
830
888
|
id,
|
|
831
889
|
provider,
|
|
@@ -836,6 +894,8 @@ export async function upsertWorkspaceConnection(input) {
|
|
|
836
894
|
JSON.stringify(scopes),
|
|
837
895
|
JSON.stringify(config),
|
|
838
896
|
JSON.stringify(allowedApps),
|
|
897
|
+
JSON.stringify(allowedUsers),
|
|
898
|
+
JSON.stringify(allowedUserGroups),
|
|
839
899
|
JSON.stringify(credentialRefs),
|
|
840
900
|
scope.ownerEmail,
|
|
841
901
|
scope.orgId,
|
|
@@ -233,11 +233,11 @@ outside the full agent runtime.
|
|
|
233
233
|
| `<AgentConversation>` | Render a list of normalized agent messages. |
|
|
234
234
|
| `<AgentConversationMessageView>` | Render one normalized message. |
|
|
235
235
|
| `normalizeCodeAgentTranscriptForConversation()` | Convert code-agent transcript events into conversation messages. |
|
|
236
|
-
| `useNearBottomAutoscroll()` | Keep a custom transcript pinned to the bottom while streaming. |
|
|
237
236
|
|
|
238
237
|
This layer is intentionally data-first: you own where messages come from, and
|
|
239
238
|
the renderer owns consistent markdown, attachments, notices, artifacts, and
|
|
240
|
-
tool-call display.
|
|
239
|
+
tool-call display. `<AgentConversation>` already keeps itself pinned to the
|
|
240
|
+
bottom while streaming — do not add your own scroll handling on top of it.
|
|
241
241
|
|
|
242
242
|
## Native Tool Widgets {#native-tool-widgets}
|
|
243
243
|
|
package/docs/content/sharing.mdx
CHANGED
|
@@ -80,6 +80,7 @@ Coarse visibility lives on the resource itself; fine-grained grants live in a co
|
|
|
80
80
|
When you share with a specific user or org, you pick a role:
|
|
81
81
|
|
|
82
82
|
- **Viewer** — read only.
|
|
83
|
+
- **Commenter** — read + add comments, but cannot edit the resource or manage shares.
|
|
83
84
|
- **Editor** — read + write.
|
|
84
85
|
- **Admin** — read + write + manage shares (can add/remove other people).
|
|
85
86
|
|
|
@@ -286,7 +287,7 @@ export const deckShares = createSharesTable("deck_shares");
|
|
|
286
287
|
{
|
|
287
288
|
name: "role",
|
|
288
289
|
type: "enum",
|
|
289
|
-
note: "viewer | editor | admin",
|
|
290
|
+
note: "viewer | commenter | editor | admin",
|
|
290
291
|
},
|
|
291
292
|
{
|
|
292
293
|
name: "created_by",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.153.0",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -279,6 +279,9 @@
|
|
|
279
279
|
"./mcp-client": "./dist/mcp-client/index.js",
|
|
280
280
|
"./tracking": "./dist/tracking/index.js",
|
|
281
281
|
"./usage": "./dist/usage/store.js",
|
|
282
|
+
"./usage/actions/get-usage-alerts": "./dist/usage/actions/get-usage-alerts.js",
|
|
283
|
+
"./usage/actions/manage-usage-alert": "./dist/usage/actions/manage-usage-alert.js",
|
|
284
|
+
"./usage/actions/get-usage-metrics": "./dist/usage/actions/get-usage-metrics.js",
|
|
282
285
|
"./connections": "./dist/connections/index.js",
|
|
283
286
|
"./connections/runtime": "./dist/connections/runtime.js",
|
|
284
287
|
"./provider-api": "./dist/provider-api/index.js",
|
|
@@ -310,6 +313,11 @@
|
|
|
310
313
|
"default": "./dist/local-artifacts/index.js"
|
|
311
314
|
},
|
|
312
315
|
"./workspace-files": "./dist/workspace-files/index.js",
|
|
316
|
+
"./workspace-connections/credential-key-aliases": "./dist/workspace-connections/credential-key-aliases.js",
|
|
317
|
+
"./workspace-connections/actions/list-workspace-user-groups": "./dist/workspace-connections/actions/list-workspace-user-groups.js",
|
|
318
|
+
"./workspace-connections/actions/upsert-workspace-user-group": "./dist/workspace-connections/actions/upsert-workspace-user-group.js",
|
|
319
|
+
"./workspace-connections/actions/bulk-update-workspace-user-groups": "./dist/workspace-connections/actions/bulk-update-workspace-user-groups.js",
|
|
320
|
+
"./workspace-connections/actions/delete-workspace-user-group": "./dist/workspace-connections/actions/delete-workspace-user-group.js",
|
|
313
321
|
"./package-lifecycle": {
|
|
314
322
|
"types": "./dist/package-lifecycle/index.d.ts",
|
|
315
323
|
"default": "./dist/package-lifecycle/index.js"
|
|
@@ -414,7 +422,7 @@
|
|
|
414
422
|
"yjs": "^13.6.31",
|
|
415
423
|
"zod": "^4.3.6",
|
|
416
424
|
"@agent-native/recap-cli": "0.5.4",
|
|
417
|
-
"@agent-native/toolkit": "^0.14.
|
|
425
|
+
"@agent-native/toolkit": "^0.14.1"
|
|
418
426
|
},
|
|
419
427
|
"devDependencies": {
|
|
420
428
|
"@ai-sdk/anthropic": "^3.0.71",
|
|
@@ -101,8 +101,9 @@ placeholders such as `${keys.SLACK_WEBHOOK}` or `<SLACK_WEBHOOK>`. Do not paste
|
|
|
101
101
|
real keys, internal data, or customer data into instructions as examples.
|
|
102
102
|
|
|
103
103
|
If the feature adds or changes visible UI copy, prompts, toasts, labels, empty
|
|
104
|
-
states, or formatting,
|
|
105
|
-
|
|
104
|
+
states, or formatting, update the English source copy. Read the optional
|
|
105
|
+
`internationalization` skill and update additional catalogs only when
|
|
106
|
+
`translations.locales` in `agent-native.config.ts` includes them.
|
|
106
107
|
|
|
107
108
|
For app-backed skills, declare skill visibility in the app-skill manifest:
|
|
108
109
|
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-awareness
|
|
3
|
+
description: >-
|
|
4
|
+
How the agent knows what the user is looking at. Use when exposing UI state to
|
|
5
|
+
the agent, implementing view-screen or navigate actions, wiring navigation
|
|
6
|
+
state, or debugging agent context issues.
|
|
7
|
+
scope: dev
|
|
8
|
+
metadata:
|
|
9
|
+
internal: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Context Awareness
|
|
13
|
+
|
|
14
|
+
## Rule
|
|
15
|
+
|
|
16
|
+
The agent must always know what the user is currently viewing. The UI writes navigation state on every route change. The agent reads it before acting.
|
|
17
|
+
|
|
18
|
+
## Why
|
|
19
|
+
|
|
20
|
+
Without context awareness, the agent is blind. It asks "which email?" when the user is staring at one. It cannot act on the current selection, cannot provide relevant suggestions, and cannot modify what the user sees. Context awareness is what makes the agent feel like a collaborator rather than a disconnected chatbot.
|
|
21
|
+
|
|
22
|
+
## The Core Patterns
|
|
23
|
+
|
|
24
|
+
### 1. Navigation State (`navigation` key)
|
|
25
|
+
|
|
26
|
+
The UI writes a `navigation` key to application-state on every route change. This tells the agent the semantic screen state: view, open IDs, active tab, and focused object.
|
|
27
|
+
|
|
28
|
+
**UI side** — `useNavigationState`, an app-owned hook (not a framework import) that every template ships at `app/hooks/use-navigation-state.ts`. It is a thin wrapper around the framework primitive `useAgentRouteState`, handling both directions: writing `navigation` on route change and consuming the agent's `navigate` command.
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
// app/hooks/use-navigation-state.ts
|
|
32
|
+
import { useAgentRouteState } from "@agent-native/core/client/navigation";
|
|
33
|
+
import { TAB_ID } from "@/lib/tab-id";
|
|
34
|
+
|
|
35
|
+
export function useNavigationState() {
|
|
36
|
+
useAgentRouteState({
|
|
37
|
+
browserTabId: TAB_ID,
|
|
38
|
+
requestSource: TAB_ID,
|
|
39
|
+
getNavigationState: ({ pathname, searchParams }) => ({
|
|
40
|
+
view: pathname === "/" ? "home" : pathname.slice(1),
|
|
41
|
+
// Optional semantic alias. Raw query params are already exposed in
|
|
42
|
+
// <current-url> and controllable with set-search-params.
|
|
43
|
+
label: searchParams.get("label"),
|
|
44
|
+
}),
|
|
45
|
+
getCommandPath: (command: any) => command.path ?? "/",
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Agent side** — read before acting:
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
import { readAppState } from "@agent-native/core/application-state";
|
|
54
|
+
|
|
55
|
+
const navigation = await readAppState("navigation");
|
|
56
|
+
// e.g. { view: "thread", threadId: "abc123", subject: "Re: Q3 Planning" }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**What to include in navigation state:**
|
|
60
|
+
|
|
61
|
+
- `view` — the current page/section (e.g., "inbox", "form-builder", "dashboard")
|
|
62
|
+
- Item IDs — the selected/open item (e.g., `threadId`, `formId`, `issueKey`)
|
|
63
|
+
- Semantic aliases — label names, active tabs, focused row, or stable filter names the agent should reason about
|
|
64
|
+
- Any durable selection — focused item, selected text range, active tab
|
|
65
|
+
|
|
66
|
+
Raw URL query params are already synced by the framework to `__url__` and shown to the built-in agent as `<current-url>`. Keep shareable filters in URL state, then use `view-screen` to summarize important query params as `activeFilters` when helpful.
|
|
67
|
+
|
|
68
|
+
Keep `application_state` values small. Do not store pasted files, base64 images,
|
|
69
|
+
recording chunks, screenshots, or other large blobs in navigation or app-state
|
|
70
|
+
keys; upload them and store only a URL or storage handle.
|
|
71
|
+
|
|
72
|
+
### 2. Current URL (`__url__` key)
|
|
73
|
+
|
|
74
|
+
`AgentPanel` automatically writes `__url__` with `{ pathname, search, hash, searchParams }`. The built-in agent sees it as a `<current-url>` block in every turn.
|
|
75
|
+
|
|
76
|
+
Use this for URL-reachable filters and search state. The agent can update it with the built-in `set-search-params` and `set-url-path` tools; do not duplicate the whole query string into `navigation`.
|
|
77
|
+
|
|
78
|
+
### 3. The `view-screen` Script
|
|
79
|
+
|
|
80
|
+
Every template should have a `view-screen` script. It reads navigation state,
|
|
81
|
+
the current URL if filters matter, and selection state. It fetches the relevant
|
|
82
|
+
data from existing domain actions, shared data helpers, or Drizzle queries, and
|
|
83
|
+
returns a snapshot of what the user sees. Do not add REST wrappers just so
|
|
84
|
+
`view-screen` can read app data. This is the agent's eyes.
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
// actions/view-screen.ts
|
|
88
|
+
import { readAppState } from "@agent-native/core/application-state";
|
|
89
|
+
|
|
90
|
+
export default async function main() {
|
|
91
|
+
const navigation = await readAppState("navigation");
|
|
92
|
+
const url = (await readAppState("__url__")) as {
|
|
93
|
+
searchParams?: Record<string, string>;
|
|
94
|
+
} | null;
|
|
95
|
+
const screen: Record<string, unknown> = { navigation };
|
|
96
|
+
|
|
97
|
+
if (url?.searchParams) {
|
|
98
|
+
screen.activeFilters = url.searchParams;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Fetch data based on what the user is viewing
|
|
102
|
+
if (navigation?.view === "inbox") {
|
|
103
|
+
const emails = await fetchEmailList(navigation.label);
|
|
104
|
+
screen.emailList = emails;
|
|
105
|
+
}
|
|
106
|
+
if (navigation?.threadId) {
|
|
107
|
+
const thread = await fetchThread(navigation.threadId);
|
|
108
|
+
screen.thread = thread;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
console.log(JSON.stringify(screen, null, 2));
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Navigation state is auto-injected into every user message as a `<current-screen>` block**, so the agent always has basic context without calling any tool. The `view-screen` action is still useful when you need a richer snapshot (e.g., fetching the full email thread or form data for the current view).
|
|
116
|
+
|
|
117
|
+
### 4. The `navigate` Script
|
|
118
|
+
|
|
119
|
+
The agent writes a one-shot `navigate` command to application-state. The UI reads it, performs the navigation, and deletes the entry.
|
|
120
|
+
|
|
121
|
+
**Agent side:**
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
import { writeAppState } from "@agent-native/core/application-state";
|
|
125
|
+
|
|
126
|
+
// Navigate the user to a specific thread
|
|
127
|
+
await writeAppState("navigate", { view: "inbox", threadId: "abc123" });
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**UI side** — use `useAgentRouteState`, shown above. It polls command keys,
|
|
131
|
+
dedupes `_writeId`, deletes consumed commands, and applies app-local routing.
|
|
132
|
+
|
|
133
|
+
When a destination has a real URL, let the `navigate` command carry that local
|
|
134
|
+
`path` (plus semantic fields when useful) and have the UI prefer `path` before
|
|
135
|
+
falling back to semantic routing. Keep app navigation single-channel: do not
|
|
136
|
+
also write `__set_url__` for the same navigation. `__set_url__` belongs to the
|
|
137
|
+
framework URL tools (`set-url-path`, `set-search-params`) and URL-only filter
|
|
138
|
+
changes. If a command can arrive while a chat stream is rendering, prefer
|
|
139
|
+
`navigate(path, { replace: true, flushSync: true })` over a view-transition
|
|
140
|
+
wrapper so the URL and visible route commit together.
|
|
141
|
+
|
|
142
|
+
## Jitter Prevention
|
|
143
|
+
|
|
144
|
+
When the agent writes to application-state via script helpers (`writeAppState`), the write is tagged with `requestSource: "agent"`. The UI uses the `ignoreSource` option on `useDbSync()` with a per-tab ID so it ignores its own writes while still picking up changes from agents, other tabs, and scripts.
|
|
145
|
+
|
|
146
|
+
Client code can use `useAgentRouteState`, `useSemanticNavigationState`, `setClientAppState`, `writeClientAppState`, `readClientAppState`, and `deleteClientAppState` from `@agent-native/core/client` instead of hand-written `fetch` calls. Pass `{ requestSource: TAB_ID }` on UI writes when pairing with `useDbSync({ ignoreSource: TAB_ID })`; pass `{ keepalive: true }` for short-lived writes such as selection cleanup during unload.
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
// app/root.tsx
|
|
150
|
+
import { TAB_ID } from "@/lib/tab-id";
|
|
151
|
+
|
|
152
|
+
useDbSync({
|
|
153
|
+
queryClient,
|
|
154
|
+
ignoreSource: TAB_ID, // ignore events from this tab's own writes
|
|
155
|
+
});
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The UI sends its tab ID via `X-Request-Source` header on PUT/DELETE requests. The server stores this as the event's `requestSource`. When processing sync events, the UI filters out events matching its own `ignoreSource` value. This prevents the UI from refetching data it just wrote.
|
|
159
|
+
|
|
160
|
+
## Gold-Standard Example: Mail Template
|
|
161
|
+
|
|
162
|
+
The mail template demonstrates these patterns working together:
|
|
163
|
+
|
|
164
|
+
**Navigation state shape:**
|
|
165
|
+
```json
|
|
166
|
+
{ "view": "inbox", "threadId": "thread-123", "focusedEmailId": "msg-456", "label": "important" }
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**view-screen output:**
|
|
170
|
+
- Reads navigation state
|
|
171
|
+
- Reads `__url__` if URL query filters matter
|
|
172
|
+
- Fetches email list matching current view/filter state
|
|
173
|
+
- Fetches thread messages if a thread is open
|
|
174
|
+
- Returns everything as a single JSON snapshot
|
|
175
|
+
|
|
176
|
+
**navigate command:**
|
|
177
|
+
- `{ "view": "starred" }` — switch to starred view
|
|
178
|
+
- `{ "view": "inbox", "threadId": "thread-123" }` — open a specific thread
|
|
179
|
+
- For pure query-filter changes, use `set-search-params`
|
|
180
|
+
|
|
181
|
+
## Do
|
|
182
|
+
|
|
183
|
+
- Use the auto-injected `<current-screen>` block for basic context — call `view-screen` only when you need richer data
|
|
184
|
+
- Include semantic route state in the `navigation` key (view, item IDs, active tab, focused row)
|
|
185
|
+
- Keep shareable filters in URL query params so `<current-url>` and `set-search-params` work
|
|
186
|
+
- Update `view-screen` when adding new features — it should return data for every view
|
|
187
|
+
- Use `useAgentRouteState` or `useSemanticNavigationState` for UI-side navigation sync and command consumption
|
|
188
|
+
- Use the one-shot `navigate` command pattern for app navigation; include a same-origin `path` when the target URL is known
|
|
189
|
+
- Tag agent writes with `requestSource: "agent"` (the script helpers do this automatically)
|
|
190
|
+
|
|
191
|
+
## Don't
|
|
192
|
+
|
|
193
|
+
- Don't assume the user is on a specific page — always check navigation state
|
|
194
|
+
- Don't hardcode navigation paths in scripts — read the current state and branch
|
|
195
|
+
- Don't write to the `navigation` key from the agent — it belongs to the UI. Use `navigate` instead.
|
|
196
|
+
- Don't write both `navigate` and `__set_url__` for one app navigation; competing consumers can make the browser URL change before React Router commits the page.
|
|
197
|
+
- Don't ignore the `<current-screen>` block — it tells you where the user is
|
|
198
|
+
- Don't duplicate whole URL query strings into `navigation` when `<current-url>` already exposes them
|
|
199
|
+
- Don't store fetched data in navigation state — it holds IDs and semantic UI state only. The `view-screen` script fetches the actual data.
|
|
200
|
+
|
|
201
|
+
## Related Skills
|
|
202
|
+
|
|
203
|
+
- **adding-a-feature** — Context awareness is area 4 of the four-area checklist
|
|
204
|
+
- **real-time-sync** — How `useDbSync` delivers app-state changes to the UI
|
|
205
|
+
- **actions** — How to create the `view-screen` and `navigate` actions
|
|
206
|
+
- **storing-data** — Application-state is one of the core SQL stores
|