@agent-native/core 0.137.7 → 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/components/recorder/pre-record-panel.tsx +65 -18
- 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/i18n/en-US.ts +4 -0
- 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/desktop/package.json +1 -0
- package/corpus/templates/clips/desktop/src/app.tsx +70 -6
- package/corpus/templates/clips/desktop/src/components/AlertDialog.tsx +131 -0
- package/corpus/templates/clips/desktop/src/styles.css +129 -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/design-generation/SKILL.md +2 -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/generate-design.ts +3 -2
- 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 +96 -14
- package/corpus/templates/design/agent-native.json +12 -0
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +7 -2
- package/corpus/templates/design/app/components/design/FigmaHydrationDialog.tsx +11 -2
- package/corpus/templates/design/app/components/design/edit-panel/component-section.tsx +1 -1
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +8 -1
- package/corpus/templates/design/app/i18n-data.ts +53 -22
- package/corpus/templates/design/app/lib/design-file-upload.ts +2 -3
- package/corpus/templates/design/app/lib/upload-limits.ts +4 -0
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +1 -1
- package/corpus/templates/design/changelog/2026-08-05-chat-attachments-now-warn-before-upload-when-they-exceed-the.md +6 -0
- package/corpus/templates/design/changelog/2026-08-05-figma-fig-uploads-now-show-a-clear-4-mb-limit-up-front-inste.md +6 -0
- package/corpus/templates/design/scripts/qa-figma-stress-import.ts +1 -1
- package/corpus/templates/design/server/handlers/import-design-file.ts +9 -5
- package/corpus/templates/design/server/handlers/uploads.ts +13 -9
- package/corpus/templates/design/server/lib/fig-file-limits.ts +2 -1
- package/corpus/templates/design/server/lib/figma-image-hydration.ts +1 -1
- package/corpus/templates/design/server/lib/figma-node-import.ts +1 -1
- package/corpus/templates/design/server/lib/request-body-limits.ts +11 -0
- package/corpus/templates/design/shared/canvas-frames.ts +81 -0
- 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/require-session.js +13 -4
- 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/client/use-session.d.ts +11 -0
- package/dist/client/use-session.js +34 -6
- package/dist/collab/routes.d.ts +2 -2
- 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 +6 -6
- 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/progress/routes.d.ts +1 -1
- 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/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/agent-native.eject.json
CHANGED
package/corpus/README.md
CHANGED
|
@@ -31,6 +31,26 @@ the framework monorepo checkout.
|
|
|
31
31
|
|
|
32
32
|
From a generated app directory:
|
|
33
33
|
|
|
34
|
+
```bash
|
|
35
|
+
pnpm action framework-search --pattern "defineAction"
|
|
36
|
+
pnpm action framework-search --pattern "templates/*/actions/*.ts" --mode glob --scope source
|
|
37
|
+
pnpm action framework-search --pattern "Agent(?:Panel|Sidebar)" --mode regex --scope source
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Use `framework-search` first when a question may cross the docs and source
|
|
41
|
+
boundary. It searches the version-matched framework docs, runtime-visible
|
|
42
|
+
skills, readable Core or Toolkit package source, and first-party template
|
|
43
|
+
corpus in one bounded read-only call. Use `scope: docs` or `scope: source` to
|
|
44
|
+
narrow it, then use the existing focused readers for the page or file you need.
|
|
45
|
+
|
|
46
|
+
The same tool is available in the headless `pnpm agent` loop and every built-in
|
|
47
|
+
app agent. Its default substring mode is safest for ordinary questions; use
|
|
48
|
+
`glob` for wildcard paths, `sql-like` for `%` and `_` wildcards, and `regex`
|
|
49
|
+
for precise structural matches. Results are bounded, so refine the pattern or
|
|
50
|
+
path instead of treating a truncated result as exhaustive.
|
|
51
|
+
|
|
52
|
+
From a generated app directory, the lower-level readers remain available:
|
|
53
|
+
|
|
34
54
|
```bash
|
|
35
55
|
pnpm action docs-search --query "<feature>"
|
|
36
56
|
pnpm action docs-search --slug <slug>
|
|
@@ -41,9 +61,9 @@ pnpm action source-search --path templates/chat/actions/hello.ts
|
|
|
41
61
|
pnpm action source-search --list
|
|
42
62
|
```
|
|
43
63
|
|
|
44
|
-
The headless `pnpm agent` loop and built-in app agent also expose
|
|
45
|
-
`
|
|
46
|
-
|
|
64
|
+
The headless `pnpm agent` loop and built-in app agent also expose read-only
|
|
65
|
+
`framework-search`, `docs-search`, and `source-search` tools. Use the unified
|
|
66
|
+
tool for discovery, then the focused tools for full page or file reads.
|
|
47
67
|
|
|
48
68
|
If the action runner is unavailable, search the package directly:
|
|
49
69
|
|
|
@@ -65,6 +65,22 @@ Contextual agent UI is not a reason to expose every option at once. Start with
|
|
|
65
65
|
the domain task's primary action, reveal review or configuration only when the
|
|
66
66
|
current state needs it, and let the sidebar carry conversational depth.
|
|
67
67
|
|
|
68
|
+
## Visual Direction And Workspace Variety
|
|
69
|
+
|
|
70
|
+
Shared workspace behavior should be consistent without forcing every app into
|
|
71
|
+
the same visual skin. Keep shell and component tokens semantic, then let each
|
|
72
|
+
app declare a named direction in `DESIGN.md` before styling. A new app should
|
|
73
|
+
choose its palette family and composition from the product context, compare
|
|
74
|
+
nearby apps, and avoid inheriting their accent by default. Use the
|
|
75
|
+
`frontend-design` visual-direction reference for mode, palette, type, density,
|
|
76
|
+
shape, anti-references, and the `distill` / `typeset` / `colorize` / `layout` /
|
|
77
|
+
`polish` / `audit` review vocabulary.
|
|
78
|
+
|
|
79
|
+
Do not make warm beige plus terracotta the workspace fallback. Preserve a
|
|
80
|
+
workspace-level brand when one exists; otherwise keep shared chrome neutral and
|
|
81
|
+
allow app-owned accents to distinguish products while retaining accessible
|
|
82
|
+
semantic states and the shared AgentSidebar contract.
|
|
83
|
+
|
|
68
84
|
## Discover Before Building
|
|
69
85
|
|
|
70
86
|
Before creating an app-local version of repeated workspace or agent UI:
|
|
@@ -20,6 +20,21 @@ The analytics app connects to multiple data sources. This skill covers general p
|
|
|
20
20
|
|
|
21
21
|
For events recorded by the analytics template itself via its `/track` endpoint, use `pnpm action query-agent-native-analytics --sql "SELECT ... FROM analytics_events ..."`. This includes pageviews, site/app traffic, template usage, app usage, and event counts collected by this analytics app. Pageviews and traffic can also live in GA4, BigQuery/warehouse tables, Mixpanel, PostHog, Amplitude, or another configured provider, so choose the source from the user's wording, connected-source status, existing dashboards, data dictionary, and user/org resources. Ask one concise clarification if multiple configured sources are plausible. Do not use `db-query` for data-source analysis; `db-query` is only for internal app tables and will confuse analytics questions. The shipped `agent-native-templates-first-party` SQL dashboard is the template engagement dashboard for the first-party collector source.
|
|
22
22
|
|
|
23
|
+
For first-party counts, active-user, and retention questions, prefer the compact
|
|
24
|
+
tenant-scoped daily event and user-day rollups. Use `analytics_events` only for a
|
|
25
|
+
bounded recent drill-down with an explicit date/time range; the built-in source
|
|
26
|
+
does not require a customer warehouse connection.
|
|
27
|
+
|
|
28
|
+
Before a large or historical first-party query, call
|
|
29
|
+
`get-first-party-analytics-health`. Keep Neon as the default while its status is
|
|
30
|
+
`healthy` or `monitor`; a `recommend_bigquery` result means the app has observed
|
|
31
|
+
1M+ events, repeated slow queries, or a timeout/30-second query. If BigQuery is
|
|
32
|
+
not configured, use the returned setup link or `data-source-status --key
|
|
33
|
+
bigquery` to guide the user through the existing Data Sources walkthrough. Do
|
|
34
|
+
not silently move the collector: `/track` still lands in first-party Analytics,
|
|
35
|
+
and BigQuery is the opt-in backend for high-volume or historical analysis after
|
|
36
|
+
the user connects it.
|
|
37
|
+
|
|
23
38
|
Example pageviews query for a local calendar day:
|
|
24
39
|
|
|
25
40
|
```sql
|
|
@@ -34,6 +34,22 @@ Before coding, decide:
|
|
|
34
34
|
|
|
35
35
|
Then implement working code that is cohesive, accessible, responsive, and polished in small details: typography, spacing, copy, motion, empty states, loading states, focus states, and error states.
|
|
36
36
|
|
|
37
|
+
## Visual Direction Contract
|
|
38
|
+
|
|
39
|
+
Before styling a new app or workspace surface, define its product mode,
|
|
40
|
+
audience, visual world, palette family, type treatment, composition, shape
|
|
41
|
+
language, and anti-references in `DESIGN.md`. Read
|
|
42
|
+
`references/visual-direction.md` for the direction families and review
|
|
43
|
+
vocabulary. This is the Impeccable-inspired design contract for Agent-Native
|
|
44
|
+
apps: understand the product, name the mode, deal a few coherent directions,
|
|
45
|
+
commit to one, and audit the result instead of averaging back to a starter.
|
|
46
|
+
|
|
47
|
+
Preserve an existing brand system and component library. When no brand exists,
|
|
48
|
+
choose a deliberate direction based on the domain and compare sibling apps
|
|
49
|
+
before selecting its accent family. Shared behavior and semantic token names
|
|
50
|
+
should stay consistent; palette, density, composition, type contrast, and
|
|
51
|
+
shape language should not be identical by default.
|
|
52
|
+
|
|
37
53
|
## Minimalism And Progressive Disclosure
|
|
38
54
|
|
|
39
55
|
Default to Apple/Linear-level restraint: make the primary workflow obvious, then remove everything that does not help that workflow right now. A polished UI often has fewer visible controls, fewer borders, fewer labels, and fewer explanatory surfaces than the first reasonable implementation.
|
|
@@ -81,13 +97,13 @@ passed this requirement yet.
|
|
|
81
97
|
operational apps, make a clear sans-serif hierarchy the default; reserve a
|
|
82
98
|
serif or editorial face for a deliberate content preview or brand moment,
|
|
83
99
|
not the whole application shell.
|
|
84
|
-
- **Color and theme**: Use semantic tokens and CSS variables. Avoid one-note palettes and default purple/blue gradients unless the brand demands them.
|
|
100
|
+
- **Color and theme**: Use semantic tokens and CSS variables. Avoid one-note palettes, default warm beige/terracotta, and default purple/blue gradients unless the brand demands them. New apps should choose a product-fitting accent family rather than inherit the previous app's color.
|
|
85
101
|
- **Motion**: Prefer purposeful transitions and small state changes. Use CSS transitions/keyframes unless the app already uses a motion library. Never `transition-all` — list the properties that actually change (e.g. `transition-[opacity,transform]`). Use the shared easing tokens defined in `packages/core/src/styles/agent-native.css` instead of hand-typing curves: `var(--ease-drawer)` (260ms, drawers/app chrome), `var(--ease-collapse)` (200ms, expand/collapse), `var(--ease-out-strong)` (snappy entrances) — in Tailwind, `ease-[var(--ease-collapse)]`. Enter/exit with ease-out, never `ease-in`. Overlays that zoom in must set the Radix origin var (e.g. `origin-[--radix-popover-content-transform-origin]`). Animate `transform`/`opacity`, not width/height/padding/box-shadow. Gate looping or large-movement animations with `motion-reduce:`. Command palettes and keyboard-triggered actions get no animation.
|
|
86
102
|
- **Composition**: Match the workflow. Operational apps should be dense and scannable; marketing or portfolio pages can be more immersive.
|
|
87
103
|
- **Visual assets**: Websites, games, and object-focused pages need real or generated media when images help users understand the subject.
|
|
88
104
|
- **Responsive fit**: Text must not overflow buttons, cards, tabs, sidebars, or fixed-format tools. Use stable dimensions for boards, grids, toolbars, and counters.
|
|
89
105
|
|
|
90
|
-
**Beat convergence, not just defaults.** You sample toward the "on-distribution" center, so naming what to avoid is not enough: every "don't" needs a "do", or you converge on the next safe option
|
|
106
|
+
**Beat convergence, not just defaults.** You sample toward the "on-distribution" center, so naming what to avoid is not enough: every "don't" needs a "do", or you converge on the next safe option. Commit to one named direction, pair any reference with the reason it fits, and match implementation effort to the vision. If the brief is open, consider two or three coherent visual worlds, then commit to one instead of averaging them. When building on an existing app, inspect its tokens/type/components first and treat any drift back to a default as a missing token to pin, not something to re-prompt.
|
|
91
107
|
|
|
92
108
|
## Agent-Native UI Rules
|
|
93
109
|
|
|
@@ -164,6 +180,9 @@ as an operator would use it repeatedly:
|
|
|
164
180
|
- For review flows, stack the source/original first and the generated or safe
|
|
165
181
|
result second by default. Use side-by-side comparison only when the content
|
|
166
182
|
is short enough to scan without excessive horizontal reading.
|
|
183
|
+
- Compare the result with sibling apps. Shared toolkit behavior should feel
|
|
184
|
+
consistent, but a repeated palette, hero composition, type pairing, and
|
|
185
|
+
radius language without a product reason is visual drift, not consistency.
|
|
167
186
|
- Check the result at the target desktop width and a narrow width. If the first
|
|
168
187
|
viewport feels like documentation instead of a tool, subtract again.
|
|
169
188
|
|
|
@@ -216,6 +235,8 @@ For substantial frontend work:
|
|
|
216
235
|
5. When registering or changing a company adapter, run
|
|
217
236
|
`@agent-native/toolkit/conformance`, including mixed-overlay focus,
|
|
218
237
|
`portalContainer`, and z-index stacking checks.
|
|
238
|
+
6. For a new app or a visual redesign, review `DESIGN.md` against the rendered
|
|
239
|
+
surface and run the anti-slop audit in `references/visual-direction.md`.
|
|
219
240
|
|
|
220
241
|
## Related Skills
|
|
221
242
|
|
package/corpus/templates/analytics/.agents/skills/frontend-design/references/visual-direction.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Visual Direction Reference
|
|
2
|
+
|
|
3
|
+
Use this reference when a new app or workspace needs a visual point of view and
|
|
4
|
+
does not already have an established brand system. It adapts the useful parts
|
|
5
|
+
of Impeccable's workflow: understand the product, name the surface mode, deal
|
|
6
|
+
several coherent directions, commit to one, and audit the result for defaults
|
|
7
|
+
that became the design by accident.
|
|
8
|
+
|
|
9
|
+
## The direction contract
|
|
10
|
+
|
|
11
|
+
Before writing UI, capture these decisions in the app's `DESIGN.md`:
|
|
12
|
+
|
|
13
|
+
| Decision | What to record |
|
|
14
|
+
| -------------------- | ------------------------------------------------------------------- |
|
|
15
|
+
| Product mode | `operate`, `read`, `persuade`, or `experience` |
|
|
16
|
+
| Audience and cadence | Who uses it, how often, and under what conditions |
|
|
17
|
+
| Visual world | A short name and the feeling it creates |
|
|
18
|
+
| Palette family | The semantic accent family and neutral undertone |
|
|
19
|
+
| Type treatment | Sans-first, editorial contrast, or display-led emphasis |
|
|
20
|
+
| Composition | Dense console, focused workbench, document, canvas, or guided steps |
|
|
21
|
+
| Shape language | Quiet corners, crisp geometry, or soft utility surfaces |
|
|
22
|
+
| Anti-references | Defaults this app must not drift toward |
|
|
23
|
+
|
|
24
|
+
`DESIGN.md` is a portable design contract, not a license to bypass the app's
|
|
25
|
+
tokens or component system. If the app already has a brand system, document it
|
|
26
|
+
and preserve it. If it does not, choose a direction before styling.
|
|
27
|
+
|
|
28
|
+
## Palette families
|
|
29
|
+
|
|
30
|
+
Use one family as an accent and keep the rest of the system semantic and quiet.
|
|
31
|
+
These are starting points, not a fixed theme library:
|
|
32
|
+
|
|
33
|
+
| Family | Good fit | Typical character |
|
|
34
|
+
| ---------------- | ------------------------------------------- | --------------------------------- |
|
|
35
|
+
| Ink / graphite | Admin, security, sensitive review | Serious, low-noise, high contrast |
|
|
36
|
+
| Cobalt / sky | Planning, collaboration, scheduling | Clear, trustworthy, alert |
|
|
37
|
+
| Pine / teal | Automation, systems, finance, data | Calm, capable, grounded |
|
|
38
|
+
| Indigo / violet | Slides, creative tools, research | Exploratory, focused, expressive |
|
|
39
|
+
| Plum / berry | Publishing, knowledge, editorial work | Distinctive, thoughtful, human |
|
|
40
|
+
| Coral / rose | Communication, people, customer workflows | Warm, direct, social |
|
|
41
|
+
| Ochre / citron | Lightweight planning or energetic utilities | Optimistic, sparing, directional |
|
|
42
|
+
| Paper / charcoal | Long-form reading, exports, approvals | Tactile, restrained, legible |
|
|
43
|
+
|
|
44
|
+
Do not make warm beige plus terracotta the universal fallback. Do not rotate
|
|
45
|
+
through saturated colors mechanically. Choose the family that supports the
|
|
46
|
+
workflow, then verify contrast, dark mode, focus states, destructive states,
|
|
47
|
+
and the sidebar boundary.
|
|
48
|
+
|
|
49
|
+
## Variation without chaos
|
|
50
|
+
|
|
51
|
+
Vary at least two independent axes when sibling apps share a workspace:
|
|
52
|
+
|
|
53
|
+
- accent family or neutral undertone;
|
|
54
|
+
- information density and page composition;
|
|
55
|
+
- type contrast and display treatment;
|
|
56
|
+
- radius and border language;
|
|
57
|
+
- navigation emphasis and use of whitespace.
|
|
58
|
+
|
|
59
|
+
Keep shared behavior, semantic token names, accessibility, and AgentSidebar
|
|
60
|
+
placement consistent. The goal is a family of products, not five unrelated
|
|
61
|
+
themes and not five copies of the same starter.
|
|
62
|
+
|
|
63
|
+
For a batch of apps, keep a small direction ledger in the workspace
|
|
64
|
+
`DESIGN.md` or the handoff. Record each app's mode, direction, and palette
|
|
65
|
+
family, then choose a new family or a clearly different composition for the
|
|
66
|
+
next app unless an existing brand requires reuse. Never copy a sibling's
|
|
67
|
+
`global.css` palette block or treat the last app's accent as the generator
|
|
68
|
+
default.
|
|
69
|
+
|
|
70
|
+
## Review vocabulary
|
|
71
|
+
|
|
72
|
+
Make one named intervention at a time so the agent can reason about the
|
|
73
|
+
change:
|
|
74
|
+
|
|
75
|
+
- `distill` - remove copy, controls, cards, and chrome that do not serve the
|
|
76
|
+
next decision;
|
|
77
|
+
- `typeset` - repair hierarchy, measure, line length, and emphasis;
|
|
78
|
+
- `colorize` - establish a restrained semantic palette and contrast states;
|
|
79
|
+
- `layout` - repair grouping, density, alignment, and responsive composition;
|
|
80
|
+
- `polish` - resolve the small visual inconsistencies after the structure is
|
|
81
|
+
right;
|
|
82
|
+
- `audit` - check slop, accessibility, responsive behavior, and visual drift.
|
|
83
|
+
|
|
84
|
+
Do not average several directions into a generic compromise. Deal two or three
|
|
85
|
+
coherent options when the brief is open, select one, and encode the decision in
|
|
86
|
+
tokens and `DESIGN.md`.
|
|
87
|
+
|
|
88
|
+
## Anti-slop audit
|
|
89
|
+
|
|
90
|
+
Before handoff, inspect the first viewport and ask:
|
|
91
|
+
|
|
92
|
+
- Did the app inherit the neighboring app's palette or hero layout without a
|
|
93
|
+
product reason?
|
|
94
|
+
- Are there equal-weight cards, status chips, helper paragraphs, or controls
|
|
95
|
+
that should be removed or disclosed?
|
|
96
|
+
- Does the typography fit the product mode instead of decorating the shell?
|
|
97
|
+
- Is the AgentSidebar distinct but quiet, with the domain page still primary?
|
|
98
|
+
- Are focus, loading, empty, error, dark, and narrow-width states part of the
|
|
99
|
+
same design direction?
|
|
@@ -4,8 +4,8 @@ Analytics is an agent-native BI workspace for data sources, queries, dashboards,
|
|
|
4
4
|
charts, and warehouse integrations. Dashboards are the canonical user-facing
|
|
5
5
|
artifact; legacy analyses remain readable only for compatibility.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Use all connected sources and MCP tools; reason over fetched data here, and do
|
|
8
|
+
not suggest another AI tool.
|
|
9
9
|
|
|
10
10
|
Prompt cap: 6,000; put detail in `.agents/skills/*`.
|
|
11
11
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { defineAction } from "@agent-native/core";
|
|
2
|
+
import {
|
|
3
|
+
getRequestOrgId,
|
|
4
|
+
getRequestUserEmail,
|
|
5
|
+
} from "@agent-native/core/server";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
getFirstPartyAnalyticsHealth,
|
|
10
|
+
unavailableFirstPartyAnalyticsHealth,
|
|
11
|
+
} from "../server/lib/first-party-analytics-health.js";
|
|
12
|
+
|
|
13
|
+
function resolveScope() {
|
|
14
|
+
const userEmail = getRequestUserEmail();
|
|
15
|
+
if (!userEmail) throw new Error("no authenticated user");
|
|
16
|
+
return { userEmail, orgId: getRequestOrgId() || null };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const healthSchema = z.object({
|
|
20
|
+
status: z.enum(["healthy", "monitor", "recommend_bigquery", "unavailable"]),
|
|
21
|
+
recommendation: z.enum(["none", "connect_bigquery", "use_bigquery"]),
|
|
22
|
+
reasons: z.array(z.enum(["event_volume", "slow_queries", "query_timeout"])),
|
|
23
|
+
observedAt: z.string(),
|
|
24
|
+
metrics: z.object({
|
|
25
|
+
eventCount: z.number(),
|
|
26
|
+
dailyRollupRows: z.number(),
|
|
27
|
+
firstEventDate: z.string().nullable(),
|
|
28
|
+
lastEventDate: z.string().nullable(),
|
|
29
|
+
spanDays: z.number(),
|
|
30
|
+
slowQueryCount24h: z.number(),
|
|
31
|
+
timeoutCount24h: z.number(),
|
|
32
|
+
errorCount24h: z.number(),
|
|
33
|
+
maxQueryDurationMs24h: z.number(),
|
|
34
|
+
}),
|
|
35
|
+
thresholds: z.object({
|
|
36
|
+
slowQueryMs: z.number(),
|
|
37
|
+
recommendEventCount: z.number(),
|
|
38
|
+
recommendSlowQueries24h: z.number(),
|
|
39
|
+
recommendMaxQueryMs: z.number(),
|
|
40
|
+
}),
|
|
41
|
+
bigQuery: z.object({
|
|
42
|
+
configured: z.boolean().nullable(),
|
|
43
|
+
missingRequiredKeys: z.array(z.string()),
|
|
44
|
+
setupLink: z.string(),
|
|
45
|
+
}),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
export default defineAction({
|
|
49
|
+
description:
|
|
50
|
+
"Check whether the built-in first-party Analytics source is still a good fit for Neon/Postgres. Use this before recommending BigQuery for tracking data. It reads compact daily rollups and the small slow-query pressure ledger, never the raw event table. `healthy` means Neon is fine, `monitor` means keep Neon but watch growth, and `recommend_bigquery` means connect or use BigQuery for high-volume or historical queries. A recommendation is based on 1M+ observed events, three or more slow queries in 24 hours, or any query timeout/30-second query. The result also includes BigQuery credential status and a safe setup link without revealing credential values.",
|
|
51
|
+
schema: z.object({}),
|
|
52
|
+
outputSchema: healthSchema,
|
|
53
|
+
http: { method: "GET" },
|
|
54
|
+
readOnly: true,
|
|
55
|
+
publicAgent: { expose: true, readOnly: true, requiresAuth: true },
|
|
56
|
+
run: async () => {
|
|
57
|
+
const scope = resolveScope();
|
|
58
|
+
try {
|
|
59
|
+
return await getFirstPartyAnalyticsHealth(scope);
|
|
60
|
+
} catch (error) {
|
|
61
|
+
console.warn("[first-party-analytics] Health check unavailable:", error);
|
|
62
|
+
return unavailableFirstPartyAnalyticsHealth();
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
});
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { createProviderApiCatalogAction } from "@agent-native/core/provider-api/actions/provider-api";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
ANALYTICS_PROVIDER_API_IDS,
|
|
6
|
-
getAnalyticsProviderApiRuntime,
|
|
7
|
-
} from "../server/lib/provider-api";
|
|
4
|
+
import { getAnalyticsProviderApiRuntime } from "../server/lib/provider-api";
|
|
8
5
|
|
|
9
|
-
const ProviderSchema = z.
|
|
6
|
+
const ProviderSchema = z.string().min(1);
|
|
10
7
|
|
|
11
8
|
export default createProviderApiCatalogAction(
|
|
12
9
|
getAnalyticsProviderApiRuntime(),
|
|
@@ -15,7 +12,7 @@ export default createProviderApiCatalogAction(
|
|
|
15
12
|
"List raw HTTP API capabilities for configured Analytics providers. Use before provider-api-request when canned actions are too narrow. Returns provider base URLs, auth style, credential key names, docs/spec URLs, placeholders, examples, and reusable corpus recipes; never returns secret values.",
|
|
16
13
|
schema: z.object({
|
|
17
14
|
provider: ProviderSchema.optional().describe(
|
|
18
|
-
"Optional provider id to inspect. Omit to list every provider API escape hatch.",
|
|
15
|
+
"Optional built-in or custom provider id to inspect. Omit to list every provider API escape hatch visible to this organization.",
|
|
19
16
|
),
|
|
20
17
|
}),
|
|
21
18
|
http: { method: "GET" },
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { createProviderApiDocsAction } from "@agent-native/core/provider-api/actions/provider-api";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
ANALYTICS_PROVIDER_API_IDS,
|
|
6
|
-
getAnalyticsProviderApiRuntime,
|
|
7
|
-
} from "../server/lib/provider-api";
|
|
4
|
+
import { getAnalyticsProviderApiRuntime } from "../server/lib/provider-api";
|
|
8
5
|
|
|
9
|
-
const ProviderSchema = z.
|
|
6
|
+
const ProviderSchema = z.string().min(1);
|
|
10
7
|
const BooleanFromQuerySchema = z.preprocess(
|
|
11
8
|
(value) => (typeof value === "string" ? value === "true" : value),
|
|
12
9
|
z.boolean(),
|
|
@@ -28,7 +25,7 @@ export default createProviderApiDocsAction(getAnalyticsProviderApiRuntime(), {
|
|
|
28
25
|
"Inspect provider API docs/spec metadata, or fetch a public provider docs/spec/changelog URL. Use this before arbitrary provider-api-request calls when the exact endpoint, filter operator, payload shape, pagination, or API version is uncertain.",
|
|
29
26
|
schema: z.object({
|
|
30
27
|
provider: ProviderSchema.describe(
|
|
31
|
-
"
|
|
28
|
+
"Built-in or custom provider whose API docs/spec to inspect.",
|
|
32
29
|
),
|
|
33
30
|
url: z
|
|
34
31
|
.string()
|
|
@@ -2,13 +2,10 @@ import { createProviderApiRequestAction } from "@agent-native/core/provider-api/
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
|
|
4
4
|
import { requireRequestCredentialContext } from "../server/lib/credentials-context";
|
|
5
|
-
import {
|
|
6
|
-
ANALYTICS_PROVIDER_API_IDS,
|
|
7
|
-
getAnalyticsProviderApiRuntime,
|
|
8
|
-
} from "../server/lib/provider-api";
|
|
5
|
+
import { getAnalyticsProviderApiRuntime } from "../server/lib/provider-api";
|
|
9
6
|
import { ANALYTICS_APP_ID } from "../server/lib/provider-credentials";
|
|
10
7
|
|
|
11
|
-
const ProviderSchema = z.
|
|
8
|
+
const ProviderSchema = z.string().min(1);
|
|
12
9
|
const MethodSchema = z.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]);
|
|
13
10
|
|
|
14
11
|
const PaginationSchema = z
|
|
@@ -83,7 +80,7 @@ export default createProviderApiRequestAction(
|
|
|
83
80
|
"For APIs that page through POST bodies, pass cursorBodyPath instead of cursorParam.",
|
|
84
81
|
schema: z.object({
|
|
85
82
|
provider: ProviderSchema.describe(
|
|
86
|
-
"Configured provider API to call, e.g. hubspot, gong, slack, stripe, jira, bigquery, ga4,
|
|
83
|
+
"Configured built-in or custom provider API to call, e.g. hubspot, gong, slack, stripe, jira, bigquery, ga4, fullstory, or a provider registered for this organization.",
|
|
87
84
|
),
|
|
88
85
|
method: MethodSchema.default("GET").describe("HTTP method to use."),
|
|
89
86
|
path: z
|
|
@@ -15,12 +15,12 @@ function resolveScope() {
|
|
|
15
15
|
|
|
16
16
|
export default defineAction({
|
|
17
17
|
description:
|
|
18
|
-
"Query the built-in first-party Analytics source: events recorded through this app's analytics collector endpoint (/track) and session replay summaries recorded through /api/analytics/replay. This source does not require an external provider connection. Use it for questions about app/site traffic, product events, template/app usage, conversions, session recordings, LLM/agent observability, model cost, token volume, latency, and other first-party data collected by this analytics app. Use source-specific actions such as BigQuery, GA4, Mixpanel, PostHog, or Amplitude when the user asks for those sources or the relevant data lives there. SQL may read analytics_events and session_recordings
|
|
18
|
+
"Query the built-in first-party Analytics source: events recorded through this app's analytics collector endpoint (/track), compact daily rollups, identifiable user-day rollups, and session replay summaries recorded through /api/analytics/replay. This source does not require an external provider connection. Use it for questions about app/site traffic, product events, template/app usage, conversions, session recordings, LLM/agent observability, model cost, token volume, latency, and other first-party data collected by this analytics app. Use source-specific actions such as BigQuery, GA4, Mixpanel, PostHog, or Amplitude when the user asks for those sources or the relevant data lives there. SQL may read analytics_events, analytics_event_daily_rollups, analytics_user_days, and session_recordings; session_replay_chunks is intentionally unavailable, and reads are automatically scoped to the current user/org. Prefer analytics_event_daily_rollups for event counts and analytics_user_days for active-user or retention questions. Use analytics_events only for bounded recent drill-downs with an explicit event_date or timestamp range. Aggregate, project only needed columns, and add a LIMIT for raw or high-cardinality reads; do not issue an unbounded raw-event scan or paginate a large cohort. An explicit all-time or lifetime request remains all-time, so do not invent a default lower time bound. Safe scoped results are cached for up to five minutes for this agent action. analytics_events columns include event_name, timestamp, event_date, user_id, anonymous_id, user_key, session_id, app, template, signed_in, url, path, hostname, referrer, properties, and context. analytics_event_daily_rollups columns include tenant_key, owner_email, org_id, event_date, event_name, app, template, and event_count. analytics_user_days columns include tenant_key, owner_email, org_id, event_date, and user_key. LLM observability events use event_name = '$ai_generation'; useful properties include $ai_trace_id/run_id, $ai_session_id/thread_id, $ai_model/model, $ai_provider/provider, $ai_input_tokens/input_tokens, $ai_output_tokens/output_tokens, cache_read_tokens, cache_write_tokens, cost_cents_x100, $ai_total_cost_usd/cost_usd, duration_ms/$ai_latency, status, tool_calls, successful_tools, failed_tools, tools, tools_truncated, delegated, delegation_protocol, caller_app, delegation_task_id, a2a_task_id, parent_run_id, parent_turn_id, and error_message/$ai_error. Agent Teams child runs use delegation_protocol = 'agent-team' and retain their own run_id while linking to the launching run through parent_run_id. The bounded tools array contains names, relative start times, durations, statuses, and coarse error classes only, never args or results; failed runs and interrupted tools remain queryable. session_recordings columns include id, session_id, user_id, anonymous_id, user_key, started_at, ended_at, duration_ms, chunk_count, event_count, page_count, error_count, rage_click_count, app, template, status, first_url, last_url, path, hostname, referrer, and metadata.",
|
|
19
19
|
schema: z.object({
|
|
20
20
|
sql: z
|
|
21
21
|
.string()
|
|
22
22
|
.describe(
|
|
23
|
-
"Read-only SQL over analytics_events and session_recordings. Use literal values, not bind placeholders. Example: SELECT event_name,
|
|
23
|
+
"Read-only SQL over analytics_events, analytics_event_daily_rollups, analytics_user_days, and session_recordings. Use literal values, not bind placeholders. Prefer the daily rollups for counts, active-user, and retention questions. For raw analytics_events reads, use an explicit event_date or timestamp range, aggregate or project only needed columns, and add a LIMIT; do not issue an unbounded raw-event scan or paginate a large cohort. An explicit all-time or lifetime request remains all-time, so do not invent a default lower time bound. Example: SELECT event_date, event_name, SUM(event_count) AS events FROM analytics_event_daily_rollups WHERE event_date >= '2026-05-01' AND event_date < '2026-06-01' GROUP BY event_date, event_name ORDER BY event_date, events DESC",
|
|
24
24
|
),
|
|
25
25
|
}),
|
|
26
26
|
outputSchema: z.object({
|
|
@@ -40,6 +40,6 @@ export default defineAction({
|
|
|
40
40
|
http: false,
|
|
41
41
|
publicAgent: { expose: true, readOnly: true, requiresAuth: true },
|
|
42
42
|
run: async (args) => {
|
|
43
|
-
return queryFirstPartyAnalytics(args.sql, resolveScope());
|
|
43
|
+
return queryFirstPartyAnalytics(args.sql, resolveScope(), { cache: true });
|
|
44
44
|
},
|
|
45
45
|
});
|