@agent-native/core 0.137.8 → 0.138.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/agent-native.eject.json +2 -0
- package/corpus/README.md +1 -1
- package/corpus/templates/analytics/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +15 -0
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/analytics/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/analytics/AGENTS.md +2 -2
- package/corpus/templates/analytics/actions/get-first-party-analytics-health.ts +65 -0
- package/corpus/templates/analytics/actions/provider-api-catalog.ts +3 -6
- package/corpus/templates/analytics/actions/provider-api-docs.ts +3 -6
- package/corpus/templates/analytics/actions/provider-api-request.ts +3 -6
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +3 -3
- package/corpus/templates/analytics/agent-native.json +12 -0
- package/corpus/templates/analytics/app/i18n-data.ts +162 -0
- package/corpus/templates/analytics/app/pages/DataSources.tsx +126 -1
- package/corpus/templates/analytics/changelog/2026-08-05-analytics-now-flags-neon-pressure-and-guides-high-volume-tra.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-05-first-party-analytics-uses-compact-rollups-for-faster-usage-.md +6 -0
- package/corpus/templates/analytics/server/db/schema.ts +52 -0
- package/corpus/templates/analytics/server/lib/credential-keys.ts +3 -0
- package/corpus/templates/analytics/server/lib/first-party-analytics-health.ts +397 -0
- package/corpus/templates/analytics/server/lib/first-party-analytics-rollups.ts +182 -0
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +86 -15
- package/corpus/templates/analytics/server/lib/provider-api.ts +20 -1
- package/corpus/templates/analytics/server/lib/replay-storage.ts +1 -1
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +1 -0
- package/corpus/templates/analytics/server/plugins/db.ts +60 -0
- package/corpus/templates/assets/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/assets/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/assets/agent-native.json +12 -0
- package/corpus/templates/assets/server/lib/generation.ts +8 -8
- package/corpus/templates/assets/server/lib/storage.ts +1 -1
- package/corpus/templates/assets/server/plugins/onboarding.ts +1 -1
- package/corpus/templates/brain/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/brain/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/brain/agent-native.json +12 -0
- package/corpus/templates/calendar/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/calendar/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/calendar/agent-native.json +12 -0
- package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/chat/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/chat/AGENTS.md +3 -0
- package/corpus/templates/chat/DESIGN.md +28 -0
- package/corpus/templates/chat/agent-native.json +12 -0
- package/corpus/templates/clips/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/clips/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/clips/actions/cleanup-transcript.ts +2 -2
- package/corpus/templates/clips/actions/delete-recording-permanent.ts +3 -0
- package/corpus/templates/clips/actions/get-playback-position.ts +68 -0
- package/corpus/templates/clips/actions/import-loom-recording.ts +2 -2
- package/corpus/templates/clips/actions/save-playback-position.ts +80 -0
- package/corpus/templates/clips/actions/set-thumbnail.ts +1 -1
- package/corpus/templates/clips/agent-native.json +12 -0
- package/corpus/templates/clips/app/components/player/video-player.tsx +54 -5
- package/corpus/templates/clips/app/hooks/use-playback-position.ts +188 -0
- package/corpus/templates/clips/app/hooks/use-view-tracking.ts +6 -24
- package/corpus/templates/clips/app/lib/playback-position.ts +99 -0
- package/corpus/templates/clips/app/lib/viewer-session.ts +29 -0
- package/corpus/templates/clips/changelog/2026-08-05-clip-buffering-now-uses-buffering-copy-after-playback.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-05-clips-remembers-your-playback-position-when-you-reopen-a-cli.md +6 -0
- package/corpus/templates/clips/learnings.defaults.md +1 -1
- package/corpus/templates/clips/server/db/schema.ts +18 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +1 -1
- package/corpus/templates/clips/server/lib/video-storage.ts +1 -1
- package/corpus/templates/clips/server/plugins/db.ts +15 -0
- package/corpus/templates/clips/server/routes/api/media/index.post.ts +1 -1
- package/corpus/templates/content/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/content/.agents/skills/document-editing/references/databases.md +13 -0
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/content/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/content/AGENTS.md +1 -0
- package/corpus/templates/content/actions/_content-database-mutation-lock.ts +41 -0
- package/corpus/templates/content/actions/_content-database-row-migration.ts +569 -0
- package/corpus/templates/content/actions/_database-source-utils.ts +82 -36
- package/corpus/templates/content/actions/_database-utils.ts +5 -0
- package/corpus/templates/content/actions/_delete-content-space.ts +25 -11
- package/corpus/templates/content/actions/add-database-item.ts +60 -42
- package/corpus/templates/content/actions/attach-content-database-source.ts +2 -0
- package/corpus/templates/content/actions/configure-document-property.ts +99 -104
- package/corpus/templates/content/actions/delete-content-database.ts +19 -7
- package/corpus/templates/content/actions/delete-document-property.ts +47 -58
- package/corpus/templates/content/actions/delete-document.ts +390 -167
- package/corpus/templates/content/actions/disconnect-content-database-source.ts +41 -24
- package/corpus/templates/content/actions/duplicate-database-item.ts +63 -31
- package/corpus/templates/content/actions/duplicate-database-items.ts +86 -43
- package/corpus/templates/content/actions/duplicate-document-property.ts +37 -14
- package/corpus/templates/content/actions/migrate-content-database-rows.ts +830 -0
- package/corpus/templates/content/actions/move-database-item.ts +14 -0
- package/corpus/templates/content/actions/permanently-delete-document.ts +27 -6
- package/corpus/templates/content/actions/remove-database-items.ts +13 -0
- package/corpus/templates/content/actions/reorder-document-property.ts +45 -46
- package/corpus/templates/content/actions/set-document-property.ts +68 -28
- package/corpus/templates/content/actions/submit-content-database-form.ts +49 -0
- package/corpus/templates/content/actions/transcribe-media.ts +1 -1
- package/corpus/templates/content/agent-native.json +12 -0
- package/corpus/templates/content/app/components/editor/image-upload.ts +2 -2
- package/corpus/templates/content/app/i18n-data.ts +1 -1
- package/corpus/templates/content/changelog/2026-08-01-content-can-reorganize-every-row-in-an-existing-database-as-.md +6 -0
- package/corpus/templates/content/parity/matrix.md +1 -1
- package/corpus/templates/content/parity/matrix.ts +4 -2
- package/corpus/templates/content/server/db/schema.ts +30 -0
- package/corpus/templates/content/server/plugins/db.ts +24 -0
- package/corpus/templates/content/server/plugins/onboarding.ts +2 -2
- package/corpus/templates/crm/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/crm/agent-native.json +12 -0
- package/corpus/templates/design/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/design/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/design/CODE_NATIVE_DESIGN_STUDIO_IMPLEMENTATION_PLAN.md +2 -2
- package/corpus/templates/design/DESIGN-STUDIO-PLAN.md +2 -2
- package/corpus/templates/design/actions/apply-design-token-edit.ts +1 -1
- package/corpus/templates/design/actions/capture-design-state.ts +1 -1
- package/corpus/templates/design/actions/connect-builder-app.ts +2 -2
- package/corpus/templates/design/actions/create-design-branch.ts +1 -1
- package/corpus/templates/design/actions/create-fusion-app.ts +3 -3
- package/corpus/templates/design/actions/deploy-design-preview.ts +1 -1
- package/corpus/templates/design/actions/get-component-details.ts +1 -1
- package/corpus/templates/design/actions/get-design-branch-diff.ts +1 -1
- package/corpus/templates/design/actions/index-components.ts +3 -3
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +1 -1
- package/corpus/templates/design/actions/migrate-inline-design-to-app.ts +3 -3
- package/corpus/templates/design/actions/open-component-source.ts +1 -1
- package/corpus/templates/design/actions/update-design.ts +61 -0
- package/corpus/templates/design/agent-native.json +12 -0
- package/corpus/templates/design/app/components/design/edit-panel/component-section.tsx +1 -1
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +1 -1
- package/corpus/templates/design/scripts/qa-figma-stress-import.ts +1 -1
- package/corpus/templates/design/server/lib/figma-node-import.ts +1 -1
- package/corpus/templates/design/shared/design-source-capabilities.ts +25 -9
- package/corpus/templates/dispatch/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/dispatch/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/dispatch/agent-native.json +12 -0
- package/corpus/templates/factory/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/factory/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/factory/agent-native.json +12 -0
- package/corpus/templates/forms/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/forms/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/forms/actions/export-responses.ts +1 -1
- package/corpus/templates/forms/agent-native.json +12 -0
- package/corpus/templates/macros/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/macros/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/macros/agent-native.json +12 -0
- package/corpus/templates/mail/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/mail/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/mail/agent-native.json +12 -0
- package/corpus/templates/mail/app/i18n/en-US.ts +1 -1
- package/corpus/templates/mail/server/lib/media-upload.ts +1 -1
- package/corpus/templates/plan/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/plan/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/plan/agent-native.json +12 -0
- package/corpus/templates/plan/server/lib/plan-assets.ts +1 -1
- package/corpus/templates/slides/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/slides/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/slides/actions/generate-image-api.ts +1 -1
- package/corpus/templates/slides/actions/generate-slides-ai.ts +1 -1
- package/corpus/templates/slides/actions/import-file.ts +2 -2
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +1 -1
- package/corpus/templates/slides/agent-native.json +12 -0
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +1 -1
- package/corpus/templates/slides/app/i18n/en-US.ts +2 -2
- package/corpus/templates/slides/app/lib/deck-sorting.ts +19 -0
- package/corpus/templates/slides/app/lib/image-drop-to-agent.ts +1 -1
- package/corpus/templates/slides/app/pages/Index.tsx +7 -2
- package/corpus/templates/slides/changelog/2026-08-05-decks-are-now-sorted-by-most-recently-updated.md +6 -0
- package/corpus/templates/slides/server/handlers/assets.ts +1 -1
- package/corpus/templates/slides/server/handlers/uploads.ts +1 -1
- package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +23 -2
- package/corpus/templates/tasks/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/corpus/templates/tasks/agent-native.json +12 -0
- package/dist/action.d.ts +6 -0
- package/dist/agent/engine/builder-engine.js +2 -2
- package/dist/agent/engine/credential-errors.d.ts +1 -1
- package/dist/agent/engine/credential-errors.js +2 -2
- package/dist/agent/production-agent.js +3 -2
- package/dist/brand-kit/fig/index.js +1 -1
- package/dist/cli/agent.js +45 -3
- package/dist/cli/code-agent-executor.js +2 -1
- package/dist/cli/create.d.ts +9 -1
- package/dist/cli/create.js +94 -1
- package/dist/cli/doctor.d.ts +8 -11
- package/dist/cli/doctor.js +92 -24
- package/dist/cli/index.js +6 -5
- package/dist/client/AgentAskPopover.d.ts +3 -1
- package/dist/client/AgentAskPopover.js +2 -2
- package/dist/client/AgentPanel.js +9 -3
- package/dist/client/AssistantChat.js +54 -33
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/RouteTransitionIndicator.d.ts +7 -0
- package/dist/client/RouteTransitionIndicator.js +31 -0
- package/dist/client/agent-engine-key.js +1 -1
- package/dist/client/app-providers.js +11 -2
- package/dist/client/chat/message-components.js +1 -1
- package/dist/client/chat/run-recovery.js +1 -1
- package/dist/client/chat/tool-call-display.d.ts +3 -1
- package/dist/client/chat/tool-call-display.js +4 -3
- package/dist/client/chat-model-groups.d.ts +6 -0
- package/dist/client/chat-model-groups.js +11 -0
- package/dist/client/error-format.js +1 -1
- package/dist/client/i18n.js +1 -1
- package/dist/client/onboarding/FirstRunOnboarding.d.ts +5 -1
- package/dist/client/onboarding/FirstRunOnboarding.js +29 -13
- package/dist/client/onboarding/first-run-enabled.d.ts +6 -1
- package/dist/client/onboarding/first-run-enabled.js +33 -3
- package/dist/client/onboarding/use-onboarding.js +16 -11
- package/dist/client/resources/mcp-integration-catalog.js +26 -0
- package/dist/client/resources/mcp-integration-logos.js +4 -0
- package/dist/client/route-warmup.js +56 -10
- package/dist/client/settings/AccountSettingsCard.js +78 -3
- package/dist/client/settings/SettingsPanel.js +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +2 -2
- package/dist/client/settings/useBuilderStatus.js +1 -1
- package/dist/client/setup-connections/useBuilderConnectCardController.js +1 -1
- package/dist/client/ui/index.d.ts +1 -0
- package/dist/client/ui/index.js +1 -0
- package/dist/client/uploads/upload-editor-image.js +1 -1
- package/dist/client/use-chat-threads.js +3 -0
- package/dist/collab/routes.d.ts +2 -2
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/config.d.ts +48 -0
- package/dist/config.js +111 -0
- package/dist/db/migrations.js +5 -0
- package/dist/eject/provider-api-definitions.d.ts +1 -1
- package/dist/eject/provider-api-definitions.js +1 -0
- package/dist/eject/remote-mcp-presets.js +1 -0
- package/dist/extensions/web-search-tool.js +2 -2
- package/dist/file-upload/actions/upload-image.js +1 -1
- package/dist/file-upload/registry.js +1 -1
- package/dist/guards/index.d.ts +3 -0
- package/dist/guards/index.js +2 -0
- package/dist/guards/no-empty-migrations.d.ts +14 -0
- package/dist/guards/no-empty-migrations.js +126 -0
- package/dist/index.browser.d.ts +1 -0
- package/dist/index.browser.js +3 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/localization/default-messages.d.ts +24 -0
- package/dist/localization/default-messages.js +26 -2
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/onboarding/app-profile.js +1 -1
- package/dist/onboarding/plugin.d.ts +2 -0
- package/dist/onboarding/plugin.js +29 -2
- package/dist/provider-api/actions/custom-provider-registration.d.ts +16 -16
- package/dist/provider-api/actions/provider-api.d.ts +13 -13
- package/dist/provider-api/index.d.ts +4 -4
- package/dist/provider-api/index.js +35 -0
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/resources/handlers.js +1 -1
- package/dist/scripts/docs/framework-search.d.ts +9 -0
- package/dist/scripts/docs/framework-search.js +239 -0
- package/dist/scripts/docs/index.js +1 -0
- package/dist/scripts/docs/search.d.ts +10 -0
- package/dist/scripts/docs/search.js +1 -1
- package/dist/scripts/docs/source-search.d.ts +10 -2
- package/dist/scripts/docs/source-search.js +108 -41
- package/dist/search-utils/index.d.ts +11 -0
- package/dist/search-utils/index.js +72 -0
- package/dist/server/action-change.d.ts +6 -0
- package/dist/server/action-change.js +28 -14
- package/dist/server/action-discovery.js +9 -0
- package/dist/server/action-routes.js +1 -0
- package/dist/server/agent-chat/browser-team-tools.js +1 -1
- package/dist/server/agent-chat/script-entries.js +43 -2
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/auth-login-mode.d.ts +8 -0
- package/dist/server/auth-login-mode.js +17 -0
- package/dist/server/auth.js +100 -15
- package/dist/server/better-auth-instance.d.ts +36 -0
- package/dist/server/better-auth-instance.js +25 -3
- package/dist/server/builder-design-systems.js +1 -1
- package/dist/server/core-routes-plugin.js +17 -14
- package/dist/server/credential-provider.js +3 -3
- package/dist/server/email-templates.d.ts +7 -0
- package/dist/server/email-templates.js +24 -0
- package/dist/server/email.d.ts +17 -0
- package/dist/server/email.js +22 -1
- package/dist/server/framework-request-handler.js +6 -0
- package/dist/server/onboarding-html.d.ts +2 -0
- package/dist/server/onboarding-html.js +169 -8
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/realtime-voice.js +1 -1
- package/dist/server/sentry.d.ts +1 -1
- package/dist/server/transcribe-voice.js +3 -3
- package/dist/shared/first-run-onboarding.d.ts +1 -0
- package/dist/shared/first-run-onboarding.js +1 -0
- package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +23 -2
- package/dist/templates/chat/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/dist/templates/chat/AGENTS.md +3 -0
- package/dist/templates/chat/DESIGN.md +28 -0
- package/dist/templates/chat/agent-native.json +12 -0
- package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +23 -2
- package/dist/templates/default/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/dist/templates/default/AGENTS.md +4 -0
- package/dist/templates/default/DESIGN.md +30 -0
- package/dist/templates/default/agent-native.json +9 -0
- package/dist/templates/default/app/i18n/ar-SA.ts +2 -2
- package/dist/templates/default/app/i18n/de-DE.ts +2 -2
- package/dist/templates/default/app/i18n/en-US.ts +2 -2
- package/dist/templates/default/app/i18n/es-ES.ts +2 -2
- package/dist/templates/default/app/i18n/fr-FR.ts +2 -2
- package/dist/templates/default/app/i18n/hi-IN.ts +2 -2
- package/dist/templates/default/app/i18n/ja-JP.ts +2 -2
- package/dist/templates/default/app/i18n/ko-KR.ts +2 -2
- package/dist/templates/default/app/i18n/pt-BR.ts +2 -2
- package/dist/templates/default/app/i18n/zh-CN.ts +2 -2
- package/dist/templates/default/app/i18n/zh-TW.ts +1 -1
- package/dist/templates/default/package.json +1 -0
- package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/dist/templates/headless/agent-native.json +9 -0
- package/dist/templates/headless/package.json +2 -0
- package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +23 -2
- package/dist/templates/workspace-core/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/dist/templates/workspace-core/AGENTS.md +3 -0
- package/dist/templates/workspace-core/DESIGN.md +35 -0
- package/dist/templates/workspace-root/AGENTS.md +3 -0
- package/dist/templates/workspace-root/DESIGN.md +35 -0
- package/dist/templates/workspace-root/agent-native.json +9 -0
- package/dist/templates/workspace-root/package.json +3 -0
- package/dist/transcription/builder-transcription.js +1 -1
- package/dist/user-profile/actions/change-password.d.ts +8 -0
- package/dist/user-profile/actions/change-password.js +24 -0
- package/dist/user-profile/actions/get-auth-methods.d.ts +6 -0
- package/dist/user-profile/actions/get-auth-methods.js +23 -0
- package/dist/user-profile/actions/set-password.d.ts +7 -0
- package/dist/user-profile/actions/set-password.js +23 -0
- package/dist/vite/client.d.ts +8 -1
- package/dist/vite/client.js +63 -12
- package/dist/vite/index.d.ts +1 -0
- package/dist/vite/index.js +1 -0
- package/docs/AGENTS.md +7 -2
- package/docs/SKILL.md +7 -5
- package/docs/content/agent-native-config.mdx +165 -0
- package/docs/content/agent-native-toolkit.mdx +1 -1
- package/docs/content/deployment.mdx +7 -2
- package/docs/content/doctor.mdx +21 -13
- package/docs/content/environment-variables.mdx +158 -0
- package/docs/content/file-uploads.mdx +1 -1
- package/docs/content/getting-started.mdx +1 -1
- package/docs/content/key-concepts.mdx +1 -1
- package/docs/content/multi-app-workspace.mdx +1 -1
- package/docs/content/template-clips-ai-and-editing.mdx +6 -6
- package/docs/content/template-clips-developers.mdx +3 -3
- package/docs/content/toolkit-settings.mdx +1 -1
- package/docs/content/voice-input.mdx +4 -4
- package/package.json +6 -2
- package/src/eject/provider-api-definitions.ts +1 -0
- package/src/eject/remote-mcp-presets.ts +1 -0
- package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +23 -2
- package/src/templates/chat/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/src/templates/chat/AGENTS.md +3 -0
- package/src/templates/chat/DESIGN.md +28 -0
- package/src/templates/chat/agent-native.json +12 -0
- package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +23 -2
- package/src/templates/default/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/src/templates/default/AGENTS.md +4 -0
- package/src/templates/default/DESIGN.md +30 -0
- package/src/templates/default/agent-native.json +9 -0
- package/src/templates/default/app/i18n/ar-SA.ts +2 -2
- package/src/templates/default/app/i18n/de-DE.ts +2 -2
- package/src/templates/default/app/i18n/en-US.ts +2 -2
- package/src/templates/default/app/i18n/es-ES.ts +2 -2
- package/src/templates/default/app/i18n/fr-FR.ts +2 -2
- package/src/templates/default/app/i18n/hi-IN.ts +2 -2
- package/src/templates/default/app/i18n/ja-JP.ts +2 -2
- package/src/templates/default/app/i18n/ko-KR.ts +2 -2
- package/src/templates/default/app/i18n/pt-BR.ts +2 -2
- package/src/templates/default/app/i18n/zh-CN.ts +2 -2
- package/src/templates/default/app/i18n/zh-TW.ts +1 -1
- package/src/templates/default/package.json +1 -0
- package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/src/templates/headless/agent-native.json +9 -0
- package/src/templates/headless/package.json +2 -0
- package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +23 -3
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +16 -0
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +23 -2
- package/src/templates/workspace-core/.agents/skills/frontend-design/references/visual-direction.md +99 -0
- package/src/templates/workspace-core/AGENTS.md +3 -0
- package/src/templates/workspace-core/DESIGN.md +35 -0
- package/src/templates/workspace-root/AGENTS.md +3 -0
- package/src/templates/workspace-root/DESIGN.md +35 -0
- package/src/templates/workspace-root/agent-native.json +9 -0
- package/src/templates/workspace-root/package.json +3 -0
package/docs/AGENTS.md
CHANGED
|
@@ -21,6 +21,9 @@ version installed in the app.
|
|
|
21
21
|
From a generated app root:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
+
pnpm action framework-search --pattern "defineAction"
|
|
25
|
+
pnpm action framework-search --pattern "templates/*/actions/*.ts" --mode glob --scope source
|
|
26
|
+
pnpm action framework-search --pattern "Agent(?:Panel|Sidebar)" --mode regex --scope source
|
|
24
27
|
pnpm action docs-search --list
|
|
25
28
|
pnpm action docs-search --query "actions"
|
|
26
29
|
pnpm action docs-search --slug actions
|
|
@@ -30,8 +33,10 @@ pnpm action source-search --path templates/plan/AGENTS.md
|
|
|
30
33
|
pnpm action source-search --path templates/chat/actions/hello.ts
|
|
31
34
|
```
|
|
32
35
|
|
|
33
|
-
The built-in app agent also has read-only `
|
|
34
|
-
|
|
36
|
+
The built-in app agent also has a read-only `framework-search` tool for one
|
|
37
|
+
bounded search across docs and readable Core, Toolkit, and first-party
|
|
38
|
+
template source. Use `docs-search` and `source-search` for focused reads after
|
|
39
|
+
it identifies the relevant page or file.
|
|
35
40
|
|
|
36
41
|
If the action runner is unavailable, search the package files directly:
|
|
37
42
|
|
package/docs/SKILL.md
CHANGED
|
@@ -14,14 +14,16 @@ examples or template patterns matter, inspect the packaged source corpus too.
|
|
|
14
14
|
## How
|
|
15
15
|
|
|
16
16
|
1. Start from the generated app root.
|
|
17
|
-
2.
|
|
18
|
-
3.
|
|
19
|
-
|
|
17
|
+
2. Start cross-corpus discovery with `pnpm action framework-search --pattern "<feature>"`.
|
|
18
|
+
3. Use `--scope docs` or `--scope source` and `--mode glob`, `--mode sql-like`,
|
|
19
|
+
or `--mode regex` when the question needs a narrower pattern.
|
|
20
|
+
4. Read a specific page with `pnpm action docs-search --slug <slug>`.
|
|
21
|
+
5. Search source examples with `pnpm action source-search --query "<pattern>"`
|
|
20
22
|
or read a file with `pnpm action source-search --path <path>`.
|
|
21
|
-
|
|
23
|
+
6. If the action runner is unavailable, search
|
|
22
24
|
`node_modules/@agent-native/core/docs` directly with `rg`.
|
|
23
25
|
Search `node_modules/@agent-native/core/corpus` for source examples.
|
|
24
|
-
|
|
26
|
+
7. For app-specific rules, also read the app's own `AGENTS.md` and any relevant
|
|
25
27
|
`.agents/skills/<name>/SKILL.md`.
|
|
26
28
|
|
|
27
29
|
## Useful Slugs
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Agent-Native app configuration"
|
|
3
|
+
description: "Configure public app defaults with agent-native.json or a typed agent-native.config.ts file."
|
|
4
|
+
search: "agent-native.json agent-native.config.ts onboarding first-run Builder BYOK integrations configuration"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Agent-Native app configuration
|
|
8
|
+
|
|
9
|
+
Use app configuration for committed, non-secret defaults that should travel
|
|
10
|
+
with the app. Use environment variables for deployment values, credentials,
|
|
11
|
+
and local machine controls. The framework reads `agent-native.json` from the
|
|
12
|
+
app root when the `agentNative()` Vite preset runs.
|
|
13
|
+
|
|
14
|
+
The file is an additive app manifest. Existing feature-owned sections such as
|
|
15
|
+
`doctor`, `apps`, and local-file declarations can stay in the same file; the
|
|
16
|
+
onboarding reader only consumes the `version` and `onboarding` fields described
|
|
17
|
+
here.
|
|
18
|
+
|
|
19
|
+
## The onboarding contract
|
|
20
|
+
|
|
21
|
+
The shared first-run surface has three supported modes:
|
|
22
|
+
|
|
23
|
+
| Mode | Local or hosted result |
|
|
24
|
+
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
25
|
+
| `off` | No shared first-run surface. This is the default for ordinary apps. |
|
|
26
|
+
| `connect` | Show Connect Builder or Add your own keys, then go straight to the app. The generic integrations catalog is omitted. |
|
|
27
|
+
| `connect-and-integrations` | Show Connect Builder or Add your own keys, followed by the generic integrations catalog. Use this for a hosted app that should expose its integration setup. |
|
|
28
|
+
|
|
29
|
+
A turn-into-app result normally commits a mode map so `pnpm dev` is useful
|
|
30
|
+
immediately while a production build has the hosted setup path:
|
|
31
|
+
|
|
32
|
+
```json filename="agent-native.json"
|
|
33
|
+
{
|
|
34
|
+
"version": 1,
|
|
35
|
+
"onboarding": {
|
|
36
|
+
"firstRun": {
|
|
37
|
+
"development": "connect",
|
|
38
|
+
"production": "connect-and-integrations"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
An ordinary app can omit `onboarding` or make the default explicit:
|
|
45
|
+
|
|
46
|
+
```json filename="agent-native.json"
|
|
47
|
+
{
|
|
48
|
+
"version": 1,
|
|
49
|
+
"onboarding": {
|
|
50
|
+
"firstRun": "off"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
First-party templates use `off` while running locally and
|
|
56
|
+
`connect-and-integrations` for a production build. The
|
|
57
|
+
`/turn-into-app` skill deliberately changes only the local value to `connect`
|
|
58
|
+
so a newly generated workflow is immediately testable without putting the
|
|
59
|
+
hosted integration catalog in front of the user.
|
|
60
|
+
|
|
61
|
+
The environment map uses the exact Vite `mode` first, then falls back to
|
|
62
|
+
`development` for `vite dev`, `production` for `vite build`, and finally
|
|
63
|
+
`default` or `off`. This lets a project add a named mode such as `staging`
|
|
64
|
+
without making the app depend on a new environment variable.
|
|
65
|
+
|
|
66
|
+
## Typed dynamic configuration
|
|
67
|
+
|
|
68
|
+
When a static JSON map is not enough, add `agent-native.config.ts`. It returns
|
|
69
|
+
the same serializable shape and can use the Vite command and mode:
|
|
70
|
+
|
|
71
|
+
```ts filename="agent-native.config.ts"
|
|
72
|
+
import { defineAgentNativeConfig } from "@agent-native/core/config";
|
|
73
|
+
|
|
74
|
+
export default defineAgentNativeConfig(({ command, mode }) => ({
|
|
75
|
+
version: 1,
|
|
76
|
+
onboarding: {
|
|
77
|
+
firstRun:
|
|
78
|
+
command === "serve" || mode === "preview"
|
|
79
|
+
? "connect"
|
|
80
|
+
: "connect-and-integrations",
|
|
81
|
+
},
|
|
82
|
+
}));
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The preset loads `agent-native.config.ts` or `agent-native.config.mts`
|
|
86
|
+
automatically on the supported Node runtime. The TypeScript file takes
|
|
87
|
+
precedence over the JSON app defaults. An explicit `agentNative({
|
|
88
|
+
agentNativeConfig })` option takes precedence over both when an app needs to
|
|
89
|
+
compose configuration in its Vite config.
|
|
90
|
+
|
|
91
|
+
The resolved config is serialized into the browser bundle. Keep it public:
|
|
92
|
+
never put API keys, tokens, database URLs, auth secrets, `AUTH_DISABLED`, or
|
|
93
|
+
other credentials in either config file.
|
|
94
|
+
|
|
95
|
+
## Precedence and compatibility
|
|
96
|
+
|
|
97
|
+
For a Vite app, the effective value is resolved in this order:
|
|
98
|
+
|
|
99
|
+
1. An explicit `agentNativeConfig` passed to `agentNative()` or `defineConfig()`.
|
|
100
|
+
2. The optional typed `agent-native.config.ts` or `.mts` file.
|
|
101
|
+
3. `agent-native.json`.
|
|
102
|
+
4. Framework defaults, which are `off` for first-run onboarding.
|
|
103
|
+
5. The legacy `VITE_AGENT_NATIVE_FIRST_RUN_ONBOARDING` flags can still
|
|
104
|
+
override the resolved public config for older apps, but new apps should not
|
|
105
|
+
add them. They are public browser flags and remain documented only for
|
|
106
|
+
migration.
|
|
107
|
+
|
|
108
|
+
The development Connect Builder card explains the deployment-level
|
|
109
|
+
`ANTHROPIC_API_KEY` and `OPENAI_API_KEY` fallback and links to the
|
|
110
|
+
[environment-variable reference](/docs/environment-variables). A key in the
|
|
111
|
+
deployment environment is not a substitute for user- or organization-scoped
|
|
112
|
+
credentials in a hosted multi-user app. See [Onboarding & API Keys](/docs/onboarding)
|
|
113
|
+
and [Security](/docs/security) for the credential boundary.
|
|
114
|
+
|
|
115
|
+
## What belongs in config versus `.env`
|
|
116
|
+
|
|
117
|
+
Good config candidates are public defaults that describe the product's shape:
|
|
118
|
+
|
|
119
|
+
- first-run onboarding mode and other setup presentation defaults;
|
|
120
|
+
- the app's default MCP catalog visibility or preset filters, once expressed
|
|
121
|
+
through the shared config contract;
|
|
122
|
+
- route warmup, public design tokens, and other build-time UX choices already
|
|
123
|
+
passed to the `agentNative()` Vite preset;
|
|
124
|
+
- non-secret app identity and default navigation metadata, if the framework
|
|
125
|
+
later gives those values a shared runtime consumer.
|
|
126
|
+
|
|
127
|
+
Keep these in environment variables or the secret store:
|
|
128
|
+
|
|
129
|
+
- API keys, OAuth secrets, signing keys, database URLs, and provider tokens;
|
|
130
|
+
- `APP_URL`, `APP_BASE_PATH`, deployment preset, port, and host-specific
|
|
131
|
+
values that change between deploy targets;
|
|
132
|
+
- `AUTH_DISABLED`, test switches, CI controls, and local machine paths;
|
|
133
|
+
- runtime flags whose safe value depends on the hosting environment rather than
|
|
134
|
+
the app's product contract.
|
|
135
|
+
|
|
136
|
+
The complete inventory is [Environment Variables](/docs/environment-variables).
|
|
137
|
+
That reference is intentionally broader than the config surface and is the
|
|
138
|
+
source to consult before adding a new environment variable.
|
|
139
|
+
|
|
140
|
+
## Environment audit and next candidates
|
|
141
|
+
|
|
142
|
+
The current config surface intentionally starts with onboarding, where a
|
|
143
|
+
committed app default is more useful than a deployment flag. The next good
|
|
144
|
+
public candidates are:
|
|
145
|
+
|
|
146
|
+
| Candidate | Why it belongs in app config | Status |
|
|
147
|
+
| ----------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
148
|
+
| MCP catalog visibility and preset filters | Describes which setup choices the app offers, not a secret or host policy. | A good next addition; currently keep using the `agentNative()` option. |
|
|
149
|
+
| Route warmup strategy | A product-level loading preference that can be reviewed with the app. | A good next addition; currently keep using the `agentNative()` option. |
|
|
150
|
+
| Default navigation or app identity | Makes generated apps open on the right domain route and name. | Add only after a shared runtime consumer exists. |
|
|
151
|
+
| Design-system theme | Can vary intentionally per app, but is a larger structured object. | Keep in `vite.config.ts` or app code until the schema is stable. |
|
|
152
|
+
|
|
153
|
+
Do not move `DATABASE_URL`, `APP_URL`, `PORT`, `NITRO_PRESET`, auth switches,
|
|
154
|
+
provider keys, OAuth secrets, signing keys, telemetry endpoints, or security
|
|
155
|
+
flags into this file. They vary by deploy target, affect trust boundaries, or
|
|
156
|
+
must remain outside the browser bundle. This split keeps config useful for
|
|
157
|
+
scaffolders without turning it into a second environment-variable system.
|
|
158
|
+
|
|
159
|
+
## Why there are two formats
|
|
160
|
+
|
|
161
|
+
`agent-native.json` is portable, inspectable, and easy for scaffolders and
|
|
162
|
+
other tools to write. `agent-native.config.ts` follows the typed-config pattern
|
|
163
|
+
used by frameworks such as Next.js while keeping the browser contract
|
|
164
|
+
serializable. Prefer JSON for a fixed app default and TypeScript when the
|
|
165
|
+
default genuinely depends on the Vite command or mode.
|
|
@@ -97,7 +97,7 @@ directly without adopting Toolkit or a template.
|
|
|
97
97
|
| [Collaboration](/docs/toolkit-collaboration) | Realtime editing, presence, live cursors, recent-edit highlights, collaborative undo. |
|
|
98
98
|
| [Settings](/docs/toolkit-settings) | Standard settings pages and tabs so app settings and agent/provider settings live in one predictable place. |
|
|
99
99
|
| [Org & Team](/docs/toolkit-org-team) | Team pages, org switching, invites, org domains, roles, and app switching. |
|
|
100
|
-
| [Setup & Connections](/docs/toolkit-setup-connections) | Onboarding, secrets, workspace connections, OAuth/provider readiness, and Builder connect.
|
|
100
|
+
| [Setup & Connections](/docs/toolkit-setup-connections) | Onboarding, secrets, workspace connections, OAuth/provider readiness, and Builder connect (free tier available). |
|
|
101
101
|
| [Command & Navigation](/docs/toolkit-command-navigation) | Command menu, deep links, standard app routes, sidebar and shell patterns. |
|
|
102
102
|
| [Resources](/docs/toolkit-resources) | Resource trees, editors, file picker/search, attachments, and local file mode. |
|
|
103
103
|
| [Agent UX](/docs/toolkit-agent-ux) | Composer, model picker, context chips, approvals, run recovery, and the runs tray. |
|
|
@@ -517,6 +517,11 @@ Three things to keep in mind:
|
|
|
517
517
|
|
|
518
518
|
## Environment Variables {#environment-variables}
|
|
519
519
|
|
|
520
|
+
For the repository-wide reference, including template, provider, local, and CI
|
|
521
|
+
variables, see [Environment Variables](/docs/environment-variables). The tables
|
|
522
|
+
below remain the authoritative deployment guide for production values and
|
|
523
|
+
hosting behavior.
|
|
524
|
+
|
|
520
525
|
### Build / Runtime {#env-runtime}
|
|
521
526
|
|
|
522
527
|
| Variable | Description |
|
|
@@ -640,11 +645,11 @@ In a standard production deployment with [production code execution](#production
|
|
|
640
645
|
|
|
641
646
|
### Builder.io: Visual Editing in Production {#builderio}
|
|
642
647
|
|
|
643
|
-
[Builder.io](https://www.builder.io?utm_source=agent-native&utm_medium=docs&utm_campaign=framework&utm_content=deployment) is a separate managed code-capable workflow where an agent can modify your app's UI in production. Connect your repo to Builder.io and prompt for UI changes directly — no redeploy needed.
|
|
648
|
+
[Builder.io](https://www.builder.io?utm_source=agent-native&utm_medium=docs&utm_campaign=framework&utm_content=deployment) is a separate managed code-capable workflow where an agent can modify your app's UI in production. Connect your repo to Builder.io (free tier available) and prompt for UI changes directly — no redeploy needed.
|
|
644
649
|
|
|
645
650
|
**How it works:**
|
|
646
651
|
|
|
647
|
-
1. Connect your agent-native repo to Builder.io
|
|
652
|
+
1. Connect your agent-native repo to Builder.io (free tier available)
|
|
648
653
|
2. Builder.io provides a cloud frame with the agent, visual editing, and real-time collaboration
|
|
649
654
|
3. Prompt the agent to make UI changes — it edits your components, routes, and styles live
|
|
650
655
|
4. Changes are committed back to your repo
|
package/docs/content/doctor.mdx
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Doctor (Code Checks)"
|
|
3
|
-
description: "agent-native doctor scans
|
|
3
|
+
description: "agent-native doctor scans generated app and workspace source for the framework's security and architecture invariants — the portable code-safety guards shared outside the monorepo CI suite."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Doctor (Code Checks)
|
|
7
7
|
|
|
8
|
-
Generated apps contain source code that can be changed through the repository's
|
|
8
|
+
Generated apps and workspaces contain source code that can be changed through the repository's
|
|
9
9
|
development workflow, including by an agent frame intentionally granted
|
|
10
10
|
workspace and write tooling. `agent-native doctor` is the automated check for that: it
|
|
11
11
|
scans app source for the framework's security-critical code-safety invariants —
|
|
12
12
|
the same class of check that lives in this framework's own CI as
|
|
13
|
-
`scripts/guard-*.mjs` — ported to run against
|
|
14
|
-
the framework's multi-template monorepo layout.
|
|
15
|
-
|
|
13
|
+
`scripts/guard-*.mjs` — ported to run against generated projects instead of
|
|
14
|
+
the framework's multi-template monorepo layout. A workspace-root run scans each
|
|
15
|
+
`apps/<name>` project and the workspace's `packages/shared` package when present,
|
|
16
|
+
prefixing findings with the project path. It's read-only: doctor never edits
|
|
17
|
+
your code, it only reports.
|
|
16
18
|
|
|
17
19
|
## Quick start {#quick-start}
|
|
18
20
|
|
|
@@ -20,12 +22,17 @@ edits your code, it only reports.
|
|
|
20
22
|
agent-native doctor
|
|
21
23
|
```
|
|
22
24
|
|
|
23
|
-
Every scaffolded app
|
|
25
|
+
Every scaffolded app and workspace gets the collision-free
|
|
26
|
+
`pnpm agent-native:doctor` command. When a template does not already define its
|
|
27
|
+
own `doctor` script, the CLI also adds the shorter `pnpm doctor` alias:
|
|
24
28
|
|
|
25
29
|
```bash
|
|
26
30
|
pnpm doctor
|
|
27
31
|
```
|
|
28
32
|
|
|
33
|
+
The full framework-repository `pnpm guards` suite remains a monorepo check;
|
|
34
|
+
generated projects use this version-matched portable Doctor surface instead.
|
|
35
|
+
|
|
29
36
|
A clean run:
|
|
30
37
|
|
|
31
38
|
```
|
|
@@ -83,7 +90,7 @@ installed.
|
|
|
83
90
|
agent-native doctor Scan app source for security-critical guard violations
|
|
84
91
|
agent-native doctor --json Machine-readable report: { ok, findings, guardsRun, strict }
|
|
85
92
|
agent-native doctor --only <guard,guard> Run only the named guard(s)
|
|
86
|
-
agent-native doctor --strict
|
|
93
|
+
agent-native doctor --strict Keep the build gate explicit when invoked by `agent-native build`
|
|
87
94
|
agent-native doctor --cwd <dir> Run against a project root other than the current directory
|
|
88
95
|
agent-native doctor --fix Not implemented in this version
|
|
89
96
|
agent-native doctor --help Show this help
|
|
@@ -97,16 +104,16 @@ Exit codes: **`0`** clean, **`1`** findings present, **`2`** usage or execution
|
|
|
97
104
|
|
|
98
105
|
## The build hook {#build-hook}
|
|
99
106
|
|
|
100
|
-
`agent-native build` always runs doctor as a pre-step before the real build. It
|
|
107
|
+
`agent-native build` always runs doctor as a pre-step before the real build. It is a **hard gate by default**: findings print to stderr prefixed `[doctor]`, and the build exits before publishing. A project using `agent-native build` can explicitly opt out with `failOnBuild: false`, but `--strict` always keeps the gate enabled. Community templates that use another build command receive a strict `prebuild` hook instead:
|
|
101
108
|
|
|
102
|
-
- `agent-native
|
|
103
|
-
- `agent-native.json` sets `{ "doctor": { "failOnBuild": true } }`.
|
|
109
|
+
- `agent-native.json` sets `{ "doctor": { "failOnBuild": false } }` only when that exception has been reviewed.
|
|
104
110
|
|
|
105
|
-
If the doctor pre-step itself throws —
|
|
111
|
+
If the doctor pre-step itself throws — for example, because a source file is unreadable or a guard crashes — the build is blocked. A partial security scan must never look like a clean result.
|
|
106
112
|
|
|
107
113
|
## Per-app configuration {#config}
|
|
108
114
|
|
|
109
|
-
`agent-native.json`'s optional `"doctor"` key.
|
|
115
|
+
`agent-native.json`'s optional `"doctor"` key. A fresh app runs every v1 guard
|
|
116
|
+
with zero config and fails builds on findings by default:
|
|
110
117
|
|
|
111
118
|
```json
|
|
112
119
|
{
|
|
@@ -124,7 +131,7 @@ If the doctor pre-step itself throws — an unreadable file, a bug in a guard
|
|
|
124
131
|
| ----------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
125
132
|
| `disabledGuards` | `string[]` | Guard names (from the table above) to skip — excluded from the default run and from the build hook. An explicit `--only` list overrides this and runs even a disabled guard. |
|
|
126
133
|
| `dbToolScopingDenylist` | `Record<table, reason>` | Bare table name (the SQL name, not template-prefixed) → reviewer-readable reason. Used only by `db-tool-scoping`. A denylist entry with no matching table in `server/db/schema.ts` itself becomes a finding — "stale … entry — remove it." |
|
|
127
|
-
| `failOnBuild` | `boolean` | See [The build hook](#build-hook). Default `false
|
|
134
|
+
| `failOnBuild` | `boolean` | See [The build hook](#build-hook). Default `true`; set `false` only for a reviewed exception. |
|
|
128
135
|
|
|
129
136
|
## Opt-out markers {#opt-out}
|
|
130
137
|
|
|
@@ -174,6 +181,7 @@ The actual `--json` payload also carries a `strict` field reflecting whether `--
|
|
|
174
181
|
"explicit-collab-access",
|
|
175
182
|
"migration-manifest"
|
|
176
183
|
],
|
|
184
|
+
"workspaceApps": ["apps/mail", "apps/tasks"],
|
|
177
185
|
"strict": false
|
|
178
186
|
}
|
|
179
187
|
```
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Environment Variables"
|
|
3
|
+
description: "Reference for Agent-Native framework, workspace, authentication, and deployment environment variables."
|
|
4
|
+
search: "environment variables env .env DATABASE_URL APP_URL BETTER_AUTH_SECRET Google OAuth workspace app"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Environment Variables
|
|
8
|
+
|
|
9
|
+
This page covers the environment variables owned by the Agent-Native framework
|
|
10
|
+
and workspace runtime. It is not a setup inventory of every template or
|
|
11
|
+
deployment system in this repository. Template-only values stay in the
|
|
12
|
+
maintainer inventory; the setup tables below focus on the shared configuration
|
|
13
|
+
most apps need.
|
|
14
|
+
|
|
15
|
+
For a normal app, start with [Deployment](/docs/deployment#environment-variables)
|
|
16
|
+
and [Authentication](/docs/authentication). Keep user-, organization-, and
|
|
17
|
+
workspace-scoped credentials in the database-backed secret or connection store;
|
|
18
|
+
use environment variables for deploy-level configuration.
|
|
19
|
+
|
|
20
|
+
For committed, non-secret app defaults such as first-run onboarding, use the
|
|
21
|
+
[Agent-Native app configuration guide](/docs/agent-native-config) instead of
|
|
22
|
+
adding another browser-exposed environment setting. Keep credentials and
|
|
23
|
+
deployment-specific values in the environment or scoped secret store.
|
|
24
|
+
|
|
25
|
+
## Common application and deployment variables
|
|
26
|
+
|
|
27
|
+
| Variable | What it controls | Supported values or format |
|
|
28
|
+
| ------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
29
|
+
| `DATABASE_URL` | Primary SQL connection. Local development falls back to SQLite when it is unset. | A provider-specific SQL URL, or unset for local SQLite. |
|
|
30
|
+
| `DATABASE_AUTH_TOKEN` | Separate database token when the database provider requires one. | An opaque provider token, or unset when the URL includes authentication. |
|
|
31
|
+
| `APP_URL` | Canonical public origin used for auth, OAuth, A2A, webhooks, and generated links. | An absolute public `http(s)` origin. |
|
|
32
|
+
| `BETTER_AUTH_URL` | Public origin used by Better Auth for cookies and callbacks. | An absolute public `http(s)` origin. |
|
|
33
|
+
| `APP_BASE_PATH` | Mounts an app under a path such as `/mail`. | Unset for a standalone app, or a slash-prefixed path. |
|
|
34
|
+
| `PORT` | Local Node/Nitro server port. | A decimal TCP port. |
|
|
35
|
+
| `NITRO_PRESET` | Build and deployment adapter. | A preset supported by the target host, such as `node`, `netlify`, `vercel`, or `cloudflare_pages`. |
|
|
36
|
+
| `BETTER_AUTH_SECRET` | Better Auth session signing and the legacy encryption fallback. Required in production. | A fresh random value of at least 32 characters. |
|
|
37
|
+
| `OAUTH_STATE_SECRET` | Dedicated signing key for OAuth state envelopes. Falls back to `BETTER_AUTH_SECRET` when unset. | A fresh random value of at least 32 characters. |
|
|
38
|
+
| `A2A_SECRET` | Shared HMAC for trusted cross-app A2A calls and signed handoffs. | One shared random value across trusted apps. |
|
|
39
|
+
| `SECRETS_ENCRYPTION_KEY` | Legacy app-local/shared encryption fallback. | A stable encryption key; prefer the workspace key for new shared vaults. |
|
|
40
|
+
| `WORKSPACE_SECRETS_ENCRYPTION_KEY` | Stable encryption key for a workspace-shared secrets vault. | The same stable key in every app that reads the vault. |
|
|
41
|
+
| `WORKSPACE_SECRETS_ENCRYPTION_KEY_PREVIOUS` | Previous workspace key during rotation. | The old key only; remove it after migration. |
|
|
42
|
+
| `ANTHROPIC_API_KEY` | Optional deploy-level fallback for the embedded production agent. | An API key; prefer scoped credentials for multi-tenant apps. |
|
|
43
|
+
| `AUTH_MODE` | Selects the local authentication behavior used by CLI and agent flows. | Unset or `local`; this is not a browser login bypass. |
|
|
44
|
+
| `AUTH_DISABLED` | Disables auth for local or preview-only work. | `true` or `1`; never use on a public production app. |
|
|
45
|
+
| `AUTH_MAGIC_LINK` | Controls the password-first versus magic-link sign-in path. | `0` keeps password-first sign-in; otherwise a configured email transport can enable magic links. |
|
|
46
|
+
| `AUTH_SKIP_EMAIL_VERIFICATION` | Skips signup email verification for local QA or previews. | `1`; never use it to weaken production auth. |
|
|
47
|
+
| `ACCESS_TOKEN` / `ACCESS_TOKENS` | Static bearer fallback for MCP and Connect clients. | One token or a delimited token list; these are not browser auth. |
|
|
48
|
+
| `AGENT_PROD_CODE_EXECUTION` | Production code-execution policy. | `off`, `sandboxed`, or `trusted`. See [Production Code Execution](/docs/deployment#production-code-execution). |
|
|
49
|
+
| `AGENT_NATIVE_SSR_CACHE` | Deployment-wide public SSR shell cache policy. | Unset/`on`, `off`, or a duration such as `30s` or `5m`. See [SSR Caching](/docs/deployment#ssr-caching). |
|
|
50
|
+
| `COOKIE_DOMAIN` | Shares auth cookies across same-database subdomains when explicitly configured. | A cookie domain. |
|
|
51
|
+
| `CORS_ALLOWED_ORIGINS` | Cross-origin request allowlist. | A comma-separated list of exact origins. |
|
|
52
|
+
| `WEBHOOK_BASE_URL` | Optional public base URL for self-callback and webhook targets. | An absolute public `http(s)` origin. |
|
|
53
|
+
| `APP_NAME` | App identity used by workspace and app-scoped configuration. | A short app name, such as `mail`. |
|
|
54
|
+
| `APP_ID` / `APP_TEMPLATE` | Optional app identity and generated-template metadata. | App-owned strings. |
|
|
55
|
+
| `NODE_ENV` | Node runtime mode. | Normally `development`, `test`, or `production`. |
|
|
56
|
+
| `CI` | Marks CI-driven test and build behavior. | A CI-provided truthy value. |
|
|
57
|
+
| `DEBUG` | Enables resolver-specific debug logging. | A resolver-supported truthy or namespace value. |
|
|
58
|
+
|
|
59
|
+
Generate strong secrets with:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
openssl rand -hex 32
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Google sign-in
|
|
66
|
+
|
|
67
|
+
Set one complete Google OAuth client pair to show the Google sign-in flow.
|
|
68
|
+
Prefer a low-scope identity-only client for app login, and keep API access in a
|
|
69
|
+
separate connection when a product needs broader Google scopes.
|
|
70
|
+
|
|
71
|
+
| Variable | What it controls | Supported values or format |
|
|
72
|
+
| ------------------------------ | ----------------------------------------------------------------------------------------------- | ----------------------------------------- |
|
|
73
|
+
| `GOOGLE_SIGN_IN_CLIENT_ID` | Preferred low-scope Google OAuth client ID for app login. | The client ID from Google Cloud Console. |
|
|
74
|
+
| `GOOGLE_SIGN_IN_CLIENT_SECRET` | Secret for the preferred sign-in client. | The matching client secret. |
|
|
75
|
+
| `GOOGLE_CLIENT_ID` | Backwards-compatible sign-in fallback and provider OAuth client ID for Google API integrations. | The matching Google OAuth client ID. |
|
|
76
|
+
| `GOOGLE_CLIENT_SECRET` | Secret for `GOOGLE_CLIENT_ID`. | The matching client secret. |
|
|
77
|
+
| `GOOGLE_AUTH_MODE` | Chooses the sign-in interaction. | `auto` (default), `popup`, or `redirect`. |
|
|
78
|
+
|
|
79
|
+
Register the callback URL in Google Cloud Console as the app's public URL,
|
|
80
|
+
including its base path, followed by
|
|
81
|
+
`/_agent-native/google/callback`. See [Authentication - Google OAuth](/docs/authentication#social-providers).
|
|
82
|
+
|
|
83
|
+
`GOOGLE_LEGACY_CLIENT_ID` and `GOOGLE_LEGACY_CLIENT_SECRET` are accepted for
|
|
84
|
+
older Google provider connections. `GOOGLE_SERVICE_ACCOUNT_KEY` and
|
|
85
|
+
`GOOGLE_APPLICATION_CREDENTIALS` are server-side service-account options for
|
|
86
|
+
specific Google API integrations; they are not required for browser sign-in.
|
|
87
|
+
|
|
88
|
+
## Optional AI, search, and email fallbacks
|
|
89
|
+
|
|
90
|
+
These are deploy-level fallbacks for single-tenant or local use. Hosted,
|
|
91
|
+
multi-user apps should prefer the scoped credential and connection store.
|
|
92
|
+
|
|
93
|
+
| Variable | What it controls | Supported values or format |
|
|
94
|
+
| ------------------------------ | -------------------------------------------------------- | ------------------------------------------------------- |
|
|
95
|
+
| `OPENAI_API_KEY` | OpenAI model, realtime voice, or transcription fallback. | An OpenAI API key. |
|
|
96
|
+
| `OPENAI_BASE_URL` | OpenAI-compatible endpoint used with `OPENAI_API_KEY`. | An absolute `http(s)` URL without embedded credentials. |
|
|
97
|
+
| `GOOGLE_GENERATIVE_AI_API_KEY` | Gemini model fallback for the built-in AI engine. | A Google AI API key. |
|
|
98
|
+
| `GEMINI_API_KEY` | Gemini transcription fallback. | A Google AI API key. |
|
|
99
|
+
| `OPENROUTER_API_KEY` | OpenRouter model fallback. | An OpenRouter API key. |
|
|
100
|
+
| `GROQ_API_KEY` | Groq model or transcription fallback. | A Groq API key. |
|
|
101
|
+
| `MISTRAL_API_KEY` | Mistral model fallback. | A Mistral API key. |
|
|
102
|
+
| `COHERE_API_KEY` | Cohere model fallback. | A Cohere API key. |
|
|
103
|
+
| `BRAVE_SEARCH_API_KEY` | Brave web-search fallback. | A Brave Search API key. |
|
|
104
|
+
| `TAVILY_API_KEY` | Tavily web-search fallback. | A Tavily API key. |
|
|
105
|
+
| `EXA_API_KEY` | Exa web-search fallback. | An Exa API key. |
|
|
106
|
+
| `FIRECRAWL_API_KEY` | Firecrawl web-search fallback. | A Firecrawl API key. |
|
|
107
|
+
| `RESEND_API_KEY` | Resend transactional email delivery. | A Resend API key. |
|
|
108
|
+
| `SENDGRID_API_KEY` | SendGrid transactional email delivery. | A SendGrid API key. |
|
|
109
|
+
| `EMAIL_FROM` | Sender address used for transactional email. | A valid email address or display-name address. |
|
|
110
|
+
| `EMAIL_AGENT_ADDRESS` | Inbound address used by email-enabled apps. | A valid email address. |
|
|
111
|
+
| `EMAIL_INBOUND_WEBHOOK_SECRET` | Verifies inbound email webhook signatures. | A stable random secret. |
|
|
112
|
+
|
|
113
|
+
## Per-app values in a workspace
|
|
114
|
+
|
|
115
|
+
The workspace root `.env` is loaded into every app. An app-local file such as
|
|
116
|
+
`apps/mail/.env` wins when the same key exists in both places, so use the root
|
|
117
|
+
file for shared values and the app file for app-specific values.
|
|
118
|
+
|
|
119
|
+
Some deploy-level values also support an app-name prefix. Set `APP_NAME`,
|
|
120
|
+
uppercase it, and replace non-alphanumeric characters with `_`:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
APP_NAME=mail
|
|
124
|
+
MAIL_DATABASE_URL=<MAIL_DATABASE_URL>
|
|
125
|
+
MAIL_DATABASE_AUTH_TOKEN=<MAIL_DATABASE_AUTH_TOKEN>
|
|
126
|
+
MAIL_SECRETS_ENCRYPTION_KEY=<MAIL_SECRETS_ENCRYPTION_KEY>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The prefix form is supported for database URLs/tokens and app-local secret
|
|
130
|
+
encryption. Do not invent a prefix for an arbitrary variable; use
|
|
131
|
+
`apps/<name>/.env` or the shared root `.env` according to the variable's scope.
|
|
132
|
+
|
|
133
|
+
## Public versus secret values
|
|
134
|
+
|
|
135
|
+
Variables whose names start with `VITE_` and values read through
|
|
136
|
+
`import.meta.env` can be bundled into browser code. Treat them as public
|
|
137
|
+
configuration. Never put an API key, token, password, or private key in a
|
|
138
|
+
browser-exposed variable.
|
|
139
|
+
|
|
140
|
+
Advanced integration and host-detection keys stay with their owning feature
|
|
141
|
+
guides and the maintainer inventory rather than appearing as a generic setup
|
|
142
|
+
block here. Use a scoped workspace connection for user or provider credentials,
|
|
143
|
+
and follow the owning app or feature guide when one is actually needed.
|
|
144
|
+
See [Security](/docs/security) for the credential boundary and
|
|
145
|
+
[Deployment](/docs/deployment) for production hosting.
|
|
146
|
+
|
|
147
|
+
## Keeping the reference complete
|
|
148
|
+
|
|
149
|
+
The maintainer-only repository inventory remains broader than this public page.
|
|
150
|
+
Run the focused check from the repository root when adding a framework variable:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pnpm run guard:env-documentation
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The check keeps the exhaustive internal inventory aligned with source while
|
|
157
|
+
also checking that the curated setup tables above do not omit a key they
|
|
158
|
+
explicitly document.
|
|
@@ -102,7 +102,7 @@ A one-time warning is logged when the fallback is used.
|
|
|
102
102
|
|
|
103
103
|
## Builder.io Hosting {#builder-hosting}
|
|
104
104
|
|
|
105
|
-
When your app is connected to Builder.io, file uploads are automatically routed to Builder's asset hosting. Files are served from a CDN with no configuration needed. This is the recommended production setup.
|
|
105
|
+
When your app is connected to Builder.io, file uploads are automatically routed to Builder's asset hosting. Builder.io's free tier includes this managed storage. Files are served from a CDN with no configuration needed. This is the recommended production setup.
|
|
106
106
|
|
|
107
107
|
## Custom Providers {#custom-providers}
|
|
108
108
|
|
|
@@ -99,7 +99,7 @@ The agent chat can't respond until you connect an AI engine. After you're logged
|
|
|
99
99
|
|
|
100
100
|
| Path | Steps |
|
|
101
101
|
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
102
|
-
| **Connect Builder** | Click **Connect Builder.io
|
|
102
|
+
| **Connect Builder** | Click **Connect Builder.io** (free tier available), choose the Builder Space, then click **Authorize**. No keys to manage yourself. |
|
|
103
103
|
| **Bring your own key** | Enter your Anthropic or OpenAI API key in the Setup panel. Get an Anthropic key at [console.anthropic.com](https://console.anthropic.com). |
|
|
104
104
|
|
|
105
105
|
Alternatively, create a `.env` file in the `my-app/` directory (the same
|
|
@@ -25,7 +25,7 @@ At runtime, every agent-native app is three things working together:
|
|
|
25
25
|
|
|
26
26
|
- **Agent** — Autonomous AI that reads data, writes data, runs actions, and uses configured tools. It can also modify source when its frame is intentionally granted workspace and write tooling. Customizable with skills and instructions.
|
|
27
27
|
- **Application** — The product surface around the agent. This may start as chat, add native inline results, grow into a small control plane, or become a full React UI with dashboards, flows, and visualizations.
|
|
28
|
-
- **Computer** — Database, browser, and configured tool runtimes. Agents work through the app's action and data surface; MCP servers
|
|
28
|
+
- **Computer** — Database, browser, and configured tool runtimes. Agents work through the app's action and data surface; an app may expose that same action surface over MCP, while external MCP servers remain optional add-ons rather than the foundation.
|
|
29
29
|
|
|
30
30
|
<Diagram id="doc-block-t1f7pj" title="Agent, application, and computer" summary="Three layers working together over one shared SQL store. The agent and the application both read and write the same data.">
|
|
31
31
|
|
|
@@ -260,7 +260,7 @@ my-company-platform/
|
|
|
260
260
|
|
|
261
261
|
A few onboarding flows are workspace-aware out of the box:
|
|
262
262
|
|
|
263
|
-
- **Builder `/cli-auth`**: clicking "Connect Builder" from any app writes `BUILDER_PRIVATE_KEY` and friends to scoped DB secrets, so every app can resolve the connection without sharing a deploy-global key.
|
|
263
|
+
- **Builder `/cli-auth`**: clicking "Connect Builder" (free tier available) from any app writes `BUILDER_PRIVATE_KEY` and friends to scoped DB secrets, so every app can resolve the connection without sharing a deploy-global key.
|
|
264
264
|
- **Compatibility key route** (`POST /_agent-native/env-vars`): older onboarding forms still call this route name, but it now saves values as scoped DB secrets. Pass `scope: "workspace"` to share with the active org, or omit it for a per-user key.
|
|
265
265
|
|
|
266
266
|
This works because every app in the same workspace points at the same `DATABASE_URL` by default, so framework credential storage (`@agent-native/core/credentials`) makes a credential available to every app without per-app config. Add a thin helper in `packages/shared` if your workspace wants a stricter naming convention.
|
|
@@ -12,11 +12,11 @@ This page covers what happens to a recording after it's captured: transcription
|
|
|
12
12
|
|
|
13
13
|
Transcription tries the fastest, free option first and only falls back to a paid one when it has to:
|
|
14
14
|
|
|
15
|
-
| Order | Provider | Notes
|
|
16
|
-
| ----- | ------------------------------- |
|
|
17
|
-
| 1 | Native (on-device) | Browser Web Speech API or desktop local Whisper/macOS speech — instant, no API key
|
|
18
|
-
| 2 | Builder.io managed (Gemini) | Cloud fallback when native text is missing; no extra key needed once Builder is connected |
|
|
19
|
-
| 3 | Groq (`whisper-large-v3-turbo`) | Optional backup if you'd rather bring your own key
|
|
15
|
+
| Order | Provider | Notes |
|
|
16
|
+
| ----- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| 1 | Native (on-device) | Browser Web Speech API or desktop local Whisper/macOS speech — instant, no API key |
|
|
18
|
+
| 2 | Builder.io managed (Gemini) | Cloud fallback when native text is missing; no extra key needed once Builder is connected; Builder.io's free tier includes managed AI credits |
|
|
19
|
+
| 3 | Groq (`whisper-large-v3-turbo`) | Optional backup if you'd rather bring your own key |
|
|
20
20
|
|
|
21
21
|
Once a transcript is ready, the agent fills in a title, summary, and chapter markers automatically, and keeps them current as you edit. You can also ask directly:
|
|
22
22
|
|
|
@@ -104,7 +104,7 @@ Human views and agent views are tracked in separate counters on purpose, so an a
|
|
|
104
104
|
|
|
105
105
|
## Builder credit status
|
|
106
106
|
|
|
107
|
-
Backup transcription, transcript cleanup, and AI titles/summaries run on Builder.io-managed AI credits by default. If one of those stops working, ask the agent — it checks the current credit status and explains whether credits are paused rather than treating it as a bug. The fix is either adding Builder.io credits/upgrading, or connecting a personal Groq key as a fallback for transcription.
|
|
107
|
+
Backup transcription, transcript cleanup, and AI titles/summaries run on Builder.io-managed AI credits by default, including the free tier's credits. If one of those stops working, ask the agent — it checks the current credit status and explains whether credits are paused rather than treating it as a bug. The fix is either adding Builder.io credits/upgrading, or connecting a personal Groq key as a fallback for transcription.
|
|
108
108
|
|
|
109
109
|
## What's next
|
|
110
110
|
|
|
@@ -18,7 +18,7 @@ See [Getting started](/docs/getting-started) for installing dependencies, runnin
|
|
|
18
18
|
|
|
19
19
|
Clips is a larger template with a native recorder (it ships a desktop companion for local capture). Four setup steps get recordings uploading end to end:
|
|
20
20
|
|
|
21
|
-
1. **Video storage (required).** Connect a storage backend through the onboarding wizard or Clips Settings. The easiest path is Builder.io (free
|
|
21
|
+
1. **Video storage (required).** Connect a storage backend through the onboarding wizard or Clips Settings. The easiest path is Builder.io (free tier includes video storage and AI credits, one-click). For self-hosted storage, save `S3_ENDPOINT`, `S3_BUCKET`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, and optionally `S3_REGION` and `S3_PUBLIC_BASE_URL` in the app; the values are stored as scoped DB secrets. Cloudflare R2 and DigitalOcean Spaces use the same key names with the `R2_*` prefix.
|
|
22
22
|
2. **Google Calendar (optional).** To sync upcoming meetings, connect a Google Calendar account from Settings. The OAuth callback URL in dev is `http://localhost:8094/_agent-native/google/callback`. Set up a Google OAuth client in [Google Cloud Console](https://console.cloud.google.com/) with the Gmail and Google Calendar APIs enabled.
|
|
23
23
|
3. **Screen-capture permissions.** On macOS, grant Screen Recording permission to the browser (or the desktop companion app) in System Settings → Privacy & Security → Screen Recording.
|
|
24
24
|
4. **Slack previews (optional).** Create a Slack app with `links:read`, `links:write`, and `links.embed:write`; subscribe to `link_shared`; add your Clips share domain under **App Unfurl Domains**; set the Request URL to `https://your-clips.example.com/api/slack/unfurl`; and add the OAuth redirect URL `https://your-clips.example.com/api/slack/oauth/callback`. Configure `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, and `SLACK_SIGNING_SECRET`, then connect workspaces from Clips Settings.
|
|
@@ -29,7 +29,7 @@ The hosted Clips app at [clips.agent-native.com](https://clips.agent-native.com)
|
|
|
29
29
|
|
|
30
30
|
1. **Create the app** with the quick-start command above.
|
|
31
31
|
|
|
32
|
-
2. **Configure production state.** Set a persistent `DATABASE_URL`, the normal production auth/secrets variables from [Deployment](/docs/deployment), and a video storage provider. Builder.io Connect is the easiest storage path; for self-hosted storage, save `S3_*` or `R2_*` keys from Clips Settings for an S3-compatible bucket.
|
|
32
|
+
2. **Configure production state.** Set a persistent `DATABASE_URL`, the normal production auth/secrets variables from [Deployment](/docs/deployment), and a video storage provider. Builder.io Connect is the easiest storage path, and its free tier includes video storage and AI credits; for self-hosted storage, save `S3_*` or `R2_*` keys from Clips Settings for an S3-compatible bucket.
|
|
33
33
|
|
|
34
34
|
3. **Deploy the web app.** For a plain Node deploy:
|
|
35
35
|
|
|
@@ -44,7 +44,7 @@ The hosted Clips app at [clips.agent-native.com](https://clips.agent-native.com)
|
|
|
44
44
|
|
|
45
45
|
5. **Enable the Chrome extension after publishing.** See [Chrome extension and embedded bug reports](#chrome-extension-and-embedded-bug-reports) below.
|
|
46
46
|
|
|
47
|
-
6. **Connect optional integrations.** Google Calendar powers the Meetings tab, `GEMINI_API_KEY` or Builder.io Connect powers transcript cleanup and titles, `GROQ_API_KEY` can provide speech-to-text fallback, and the Slack OAuth connection in Settings enables playable Slack unfurls.
|
|
47
|
+
6. **Connect optional integrations.** Google Calendar powers the Meetings tab, `GEMINI_API_KEY` or Builder.io Connect (free tier includes AI credits) powers transcript cleanup and titles, `GROQ_API_KEY` can provide speech-to-text fallback, and the Slack OAuth connection in Settings enables playable Slack unfurls.
|
|
48
48
|
|
|
49
49
|
For local development, run the web app with `pnpm dev` and point the desktop tray app at `http://localhost:8094`.
|
|
50
50
|
|
|
@@ -105,7 +105,7 @@ on so settings stay findable everywhere.
|
|
|
105
105
|
|
|
106
106
|
## UX Standard {#ux-standard}
|
|
107
107
|
|
|
108
|
-
- Keep model keys, OAuth connections, Builder connect, language, team, and app
|
|
108
|
+
- Keep model keys, OAuth connections, Builder connect (free tier available), language, team, and app
|
|
109
109
|
preferences in one route.
|
|
110
110
|
- Keep search on and register a `SettingsSearchEntry` for every meaningful
|
|
111
111
|
control so users can find settings by name instead of scanning tabs.
|