@agent-native/core 0.145.4 → 0.145.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +1 -1
- package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +17 -1
- package/corpus/templates/analytics/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +22 -3
- package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/analytics/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/analytics/AGENTS.md +2 -1
- package/corpus/templates/analytics/actions/account-deep-dive.ts +83 -47
- package/corpus/templates/analytics/actions/create-dashboard-folder.ts +27 -0
- package/corpus/templates/analytics/actions/gong-calls.ts +3 -3
- package/corpus/templates/analytics/actions/list-dashboard-folders.ts +26 -0
- package/corpus/templates/analytics/actions/list-sql-dashboards.ts +1 -0
- package/corpus/templates/analytics/actions/set-dashboard-folder.ts +26 -0
- package/corpus/templates/analytics/app/components/ProviderCorpusJobNotifier.tsx +18 -3
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +6 -4
- package/corpus/templates/analytics/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +12 -2
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +35 -20
- package/corpus/templates/analytics/app/global.css +17 -0
- package/corpus/templates/analytics/app/hooks/use-dashboard-revisions.ts +29 -15
- package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +15 -3
- package/corpus/templates/analytics/app/i18n-data.ts +296 -0
- package/corpus/templates/analytics/app/lib/prefetch-keys.ts +23 -2
- package/corpus/templates/analytics/app/pages/DashboardOverview.tsx +642 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +66 -31
- package/corpus/templates/analytics/app/root.tsx +4 -0
- package/corpus/templates/analytics/app/routes/dashboards._index.tsx +5 -1
- package/corpus/templates/analytics/changelog/2026-08-07-added-a-dashboards-overview-with-personal-and-shared-folders.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-07-analytics-tracking-and-chat-startup-no-longer-emit-avoidable.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-07-dashboard-panels-now-load-custom-api-data-programs-reliably.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-07-gong-searches-conserve-api-quota-and-report-incomplete-coverage.md +6 -0
- package/corpus/templates/analytics/changelog/2026-08-07-searchable-dashboards-make-personal-and-shared-folders-easie.md +6 -0
- package/corpus/templates/analytics/netlify.toml +3 -0
- package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +112 -0
- package/corpus/templates/analytics/server/db/index.ts +12 -0
- package/corpus/templates/analytics/server/db/schema.ts +14 -0
- package/corpus/templates/analytics/server/jobs/analytics-rollup-backfill.ts +4 -0
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +1 -0
- package/corpus/templates/analytics/server/lib/analytics-query-catalog.ts +85 -15
- package/corpus/templates/analytics/server/lib/dashboard-folders-store.ts +168 -0
- package/corpus/templates/analytics/server/lib/dashboard-panel-query.ts +9 -4
- package/corpus/templates/analytics/server/lib/dashboards-store.ts +116 -1
- package/corpus/templates/analytics/server/lib/first-party-analytics-rollups.ts +4 -8
- package/corpus/templates/analytics/server/lib/gong.ts +139 -78
- package/corpus/templates/analytics/server/plugins/db.ts +55 -15
- package/corpus/templates/analytics/server/plugins/session-replay-retention-jobs.ts +6 -2
- package/corpus/templates/analytics/server/routes/api/session-replay/retention.post.ts +65 -0
- package/corpus/templates/assets/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/assets/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/assets/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/brain/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/brain/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/brain/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/calendar/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/calendar/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/chat/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/chat/.env.example +3 -0
- package/corpus/templates/chat/AGENTS.md +4 -0
- package/corpus/templates/clips/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/clips/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/clips/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/clips/actions/lib/audio-only-transcription.ts +4 -0
- package/corpus/templates/clips/actions/request-transcript.ts +52 -3
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +8 -3
- package/corpus/templates/clips/app/components/editor/waveform.tsx +2 -1
- package/corpus/templates/clips/app/components/library/search-bar.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +3 -10
- package/corpus/templates/clips/app/global.css +9 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +1 -0
- package/corpus/templates/clips/changelog/2026-08-07-screen-recordings-now-capture-tab-and-system-audio-even-when.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-07-transcription-now-retries-transient-cloud-failures-automatic.md +6 -0
- package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +10 -11
- package/corpus/templates/clips/server/db/schema.ts +7 -0
- package/corpus/templates/clips/server/plugins/db.ts +8 -0
- package/corpus/templates/clips/shared/recording-capture.ts +38 -0
- package/corpus/templates/clips/shared/transcript-failure.ts +89 -0
- package/corpus/templates/content/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/content/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/content/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/content/.env.example +9 -3
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -0
- package/corpus/templates/content/changelog/2026-08-07-collapsed-sidebar-utility-buttons-stay-anchored-at-the-botto.md +6 -0
- package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/crm/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/design/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/design/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/design/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/design/actions/view-screen.ts +1 -0
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +14 -1
- package/corpus/templates/design/changelog/2026-08-07-cmd-c-now-copies-selected-text-in-the-agent-panel-instead-of.md +6 -0
- package/corpus/templates/design/changelog/2026-08-07-real-time-voice-can-now-read-the-current-selection-and-edit-.md +6 -0
- package/corpus/templates/design/server/lib/reprompt-action-guard.ts +7 -3
- package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/dispatch/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/factory/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/factory/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/factory/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/factory/actions/babysit-agent-native-pull-request.ts +279 -0
- package/corpus/templates/factory/actions/get-factory-automation-health.ts +23 -4
- package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +1 -1
- package/corpus/templates/factory/app/routes/factory.tsx +21 -3
- package/corpus/templates/factory/changelog/2026-08-07-factory-can-keep-builder-bot-pull-requests-moving-by-request.md +6 -0
- package/corpus/templates/factory/server/lib/require-factory-automation.ts +1 -0
- package/corpus/templates/factory/server/plugins/agent-chat.ts +4 -1
- package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +81 -12
- package/corpus/templates/factory/server/triage/github-client.ts +31 -0
- package/corpus/templates/factory/server/triage/pr-babysit.ts +75 -1
- package/corpus/templates/forms/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/forms/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/forms/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/macros/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/mail/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/mail/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/mail/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/plan/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/plan/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/plan/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -1
- package/corpus/templates/plan/changelog/2026-08-07-inline-help-icons-now-stay-visually-balanced-with-nearby-tex.md +6 -0
- package/corpus/templates/slides/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/slides/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/slides/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/slides/.env.example +5 -0
- package/corpus/templates/slides/changelog/2026-08-07-fixed-generated-slides-briefly-disappearing-while-they-are-b.md +6 -0
- package/corpus/templates/slides/server/plugins/collab.ts +20 -8
- package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +18 -0
- package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/tasks/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +1 -0
- package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/corpus/templates/tasks/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/corpus/templates/tasks/.env.example +3 -0
- package/dist/agent/production-agent.js +24 -3
- package/dist/client/AgentPanel.d.ts +6 -0
- package/dist/client/AgentPanel.js +176 -30
- package/dist/client/AssistantChat.d.ts +2 -0
- package/dist/client/AssistantChat.js +4 -1
- package/dist/client/ConnectBuilderCard.js +6 -11
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/RuntimeConfigNotice.d.ts +1 -0
- package/dist/client/RuntimeConfigNotice.js +94 -0
- package/dist/client/agent-chat/index.d.ts +1 -1
- package/dist/client/agent-chat/index.js +1 -1
- package/dist/client/agent-chat-adapter.js +85 -4
- package/dist/client/agent-page/AgentTabsPage.js +1 -1
- package/dist/client/agent-sidebar-state.d.ts +6 -0
- package/dist/client/agent-sidebar-state.js +25 -0
- package/dist/client/app-providers.js +2 -1
- package/dist/client/assistant-ui-recovery.js +1 -1
- package/dist/client/chat/index.d.ts +1 -1
- package/dist/client/chat/index.js +1 -1
- package/dist/client/chat/markdown-renderer.d.ts +2 -1
- package/dist/client/chat/markdown-renderer.js +48 -2
- package/dist/client/chat/message-components.d.ts +6 -0
- package/dist/client/chat/message-components.js +182 -53
- package/dist/client/chat/tool-call-display.d.ts +16 -4
- package/dist/client/chat/tool-call-display.js +225 -18
- package/dist/client/extensions/ExtensionsSidebarSection.js +1 -1
- package/dist/client/frame-protocol.d.ts +4 -0
- package/dist/client/i18n.js +9 -0
- package/dist/client/integrations/IntegrationsPanel.js +2 -5
- package/dist/client/onboarding/FirstRunOnboarding.js +2 -3
- package/dist/client/org/TeamPage.js +49 -6
- package/dist/client/org/hooks.d.ts +7 -2
- package/dist/client/org/hooks.js +11 -4
- package/dist/client/resources/McpConnectionSuggestion.js +2 -3
- package/dist/client/resources/McpIntegrationDialog.js +2 -16
- package/dist/client/resources/McpIntegrationLogo.d.ts +11 -0
- package/dist/client/resources/McpIntegrationLogo.js +14 -0
- package/dist/client/resources/ResourceTree.js +1 -1
- package/dist/client/resources/mcp-integration-logos.d.ts +1 -0
- package/dist/client/resources/mcp-integration-logos.js +47 -18
- package/dist/client/settings/useBuilderStatus.js +6 -0
- package/dist/client/ui/index.d.ts +1 -0
- package/dist/client/ui/index.js +1 -0
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/config.d.ts +26 -3
- package/dist/config.js +106 -14
- package/dist/db/ddl-guard.d.ts +15 -2
- package/dist/db/ddl-guard.js +53 -5
- package/dist/jobs/scheduler.js +7 -0
- package/dist/localization/default-messages.d.ts +17 -0
- package/dist/localization/default-messages.js +17 -0
- package/dist/mcp/oauth-client-metadata.js +5 -1
- package/dist/mcp/oauth-route.d.ts +5 -4
- package/dist/mcp/oauth-route.js +25 -9
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +9 -10
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/org/handlers.d.ts +1 -0
- package/dist/org/handlers.js +17 -2
- package/dist/provider-api/actions/custom-provider-registration.d.ts +9 -9
- package/dist/provider-api/actions/provider-api.d.ts +7 -7
- package/dist/provider-api/corpus-jobs.d.ts +12 -2
- package/dist/provider-api/corpus-jobs.js +31 -1
- package/dist/provider-api/index.d.ts +2 -0
- package/dist/provider-api/index.js +7 -1
- package/dist/secrets/routes.d.ts +6 -6
- package/dist/server/agent-chat/recurring-jobs-runtime.d.ts +1 -1
- package/dist/server/agent-chat/recurring-jobs-runtime.js +14 -2
- package/dist/server/agent-chat/script-entries.js +12 -1
- package/dist/server/agent-chat-plugin.js +2 -2
- package/dist/server/auth.d.ts +1 -0
- package/dist/server/auth.js +85 -1
- package/dist/server/better-auth-instance.d.ts +9 -0
- package/dist/server/better-auth-instance.js +25 -11
- package/dist/server/core-routes-plugin.d.ts +7 -0
- package/dist/server/core-routes-plugin.js +51 -5
- package/dist/server/create-server.js +23 -2
- package/dist/server/db-pressure.d.ts +38 -0
- package/dist/server/db-pressure.js +147 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +1 -0
- package/dist/server/legacy-auth-migration.d.ts +10 -0
- package/dist/server/legacy-auth-migration.js +37 -0
- package/dist/server/onboarding-html.js +206 -2
- package/dist/server/poll.d.ts +26 -0
- package/dist/server/poll.js +108 -13
- package/dist/server/realtime-voice.d.ts +2 -1
- package/dist/server/realtime-voice.js +38 -56
- package/dist/server/short-lived-token.d.ts +43 -0
- package/dist/server/short-lived-token.js +74 -0
- package/dist/server/ssr-handler.js +4 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/runtime-config.d.ts +44 -0
- package/dist/shared/runtime-config.js +284 -0
- package/dist/styles/agent-native.css +48 -1
- package/dist/templates/chat/.agents/skills/actions/SKILL.md +18 -0
- package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -0
- package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/dist/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/dist/templates/chat/.env.example +3 -0
- package/dist/templates/chat/AGENTS.md +4 -0
- package/dist/templates/default/.agents/skills/actions/SKILL.md +18 -0
- package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +1 -0
- package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/dist/templates/default/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/dist/templates/default/AGENTS.md +6 -1
- package/dist/templates/default/app/i18n/ar-SA.ts +6 -0
- package/dist/templates/default/app/i18n/de-DE.ts +6 -0
- package/dist/templates/default/app/i18n/en-US.ts +6 -0
- package/dist/templates/default/app/i18n/es-ES.ts +6 -0
- package/dist/templates/default/app/i18n/fr-FR.ts +6 -0
- package/dist/templates/default/app/i18n/hi-IN.ts +6 -0
- package/dist/templates/default/app/i18n/ja-JP.ts +6 -0
- package/dist/templates/default/app/i18n/ko-KR.ts +6 -0
- package/dist/templates/default/app/i18n/pt-BR.ts +6 -0
- package/dist/templates/default/app/i18n/zh-CN.ts +6 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +6 -0
- package/dist/templates/headless/.agents/skills/actions/SKILL.md +18 -0
- package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +18 -0
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -0
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +4 -0
- package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +8 -0
- package/dist/templates/workspace-core/AGENTS.md +7 -2
- package/dist/templates/workspace-root/AGENTS.md +5 -0
- package/dist/vite/client.d.ts +3 -3
- package/dist/vite/client.js +47 -1
- package/dist/vite/index.d.ts +1 -1
- package/docs/content/agent-native-config.mdx +240 -139
- package/docs/content/authentication.mdx +17 -0
- package/docs/content/deployment.mdx +19 -14
- package/docs/content/drop-in-agent.mdx +19 -2
- package/docs/content/environment-variables.mdx +63 -38
- package/docs/content/getting-started-actions.mdx +15 -6
- package/docs/content/getting-started-database.mdx +14 -10
- package/docs/content/getting-started-pages.mdx +32 -35
- package/docs/content/getting-started.mdx +7 -6
- package/package.json +2 -2
- package/src/templates/chat/.agents/skills/actions/SKILL.md +18 -0
- package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -0
- package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/src/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/src/templates/chat/.env.example +3 -0
- package/src/templates/chat/AGENTS.md +4 -0
- package/src/templates/default/.agents/skills/actions/SKILL.md +18 -0
- package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -0
- package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/src/templates/default/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/src/templates/default/AGENTS.md +6 -1
- package/src/templates/default/app/i18n/ar-SA.ts +6 -0
- package/src/templates/default/app/i18n/de-DE.ts +6 -0
- package/src/templates/default/app/i18n/en-US.ts +6 -0
- package/src/templates/default/app/i18n/es-ES.ts +6 -0
- package/src/templates/default/app/i18n/fr-FR.ts +6 -0
- package/src/templates/default/app/i18n/hi-IN.ts +6 -0
- package/src/templates/default/app/i18n/ja-JP.ts +6 -0
- package/src/templates/default/app/i18n/ko-KR.ts +6 -0
- package/src/templates/default/app/i18n/pt-BR.ts +6 -0
- package/src/templates/default/app/i18n/zh-CN.ts +6 -0
- package/src/templates/default/app/i18n/zh-TW.ts +6 -0
- package/src/templates/headless/.agents/skills/actions/SKILL.md +18 -0
- package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +18 -0
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +45 -47
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -0
- package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +76 -23
- package/src/templates/workspace-core/.agents/skills/turn-into-app/agents/openai.yaml +2 -2
- package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +64 -0
- package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +4 -0
- package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +8 -0
- package/src/templates/workspace-core/AGENTS.md +7 -2
- package/src/templates/workspace-root/AGENTS.md +5 -0
- package/corpus/templates/dispatch/app/routes/admin.apps.$appId.tsx +0 -1
- package/corpus/templates/dispatch/app/routes/admin.apps.tsx +0 -1
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
+
callAction,
|
|
3
|
+
useSession,
|
|
2
4
|
useActionMutation,
|
|
3
|
-
useActionQuery,
|
|
4
5
|
} from "@agent-native/core/client/hooks";
|
|
5
|
-
import { useQueryClient } from "@tanstack/react-query";
|
|
6
|
+
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
7
|
+
|
|
8
|
+
import { dashboardCacheScope } from "@/lib/prefetch-keys";
|
|
6
9
|
|
|
7
10
|
export interface DashboardRevision {
|
|
8
11
|
id: string;
|
|
@@ -14,18 +17,29 @@ export interface DashboardRevision {
|
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
export function useDashboardRevisions(dashboardId: string | null) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
const { session } = useSession();
|
|
21
|
+
const scope = dashboardCacheScope(session);
|
|
22
|
+
return useQuery({
|
|
23
|
+
queryKey: ["dashboard-revisions", dashboardId, scope],
|
|
24
|
+
enabled: !!dashboardId,
|
|
25
|
+
queryFn: async () => {
|
|
26
|
+
if (!dashboardId) return [];
|
|
27
|
+
const data = await callAction(
|
|
28
|
+
"list-dashboard-revisions",
|
|
29
|
+
{ dashboardId },
|
|
30
|
+
{ method: "GET" },
|
|
31
|
+
);
|
|
32
|
+
const revisions =
|
|
33
|
+
data &&
|
|
34
|
+
typeof data === "object" &&
|
|
35
|
+
!Array.isArray(data) &&
|
|
36
|
+
"revisions" in data
|
|
37
|
+
? (data as { revisions?: unknown }).revisions
|
|
38
|
+
: undefined;
|
|
39
|
+
const rows = revisions ?? data;
|
|
40
|
+
return (Array.isArray(rows) ? rows : []) as DashboardRevision[];
|
|
41
|
+
},
|
|
42
|
+
});
|
|
29
43
|
}
|
|
30
44
|
|
|
31
45
|
export function useRestoreDashboardRevision(dashboardId: string) {
|
|
@@ -45,7 +59,7 @@ export function useRestoreDashboardRevision(dashboardId: string) {
|
|
|
45
59
|
>("restore-dashboard-revision", {
|
|
46
60
|
onSuccess: () => {
|
|
47
61
|
queryClient.invalidateQueries({
|
|
48
|
-
queryKey: ["
|
|
62
|
+
queryKey: ["dashboard-revisions", dashboardId],
|
|
49
63
|
});
|
|
50
64
|
queryClient.invalidateQueries({
|
|
51
65
|
queryKey: ["dashboard", dashboardId],
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { callAction } from "@agent-native/core/client/hooks";
|
|
1
|
+
import { callAction, useSession } from "@agent-native/core/client/hooks";
|
|
2
2
|
import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
|
|
3
3
|
|
|
4
|
+
import { dashboardCacheScope } from "@/lib/prefetch-keys";
|
|
5
|
+
|
|
4
6
|
export interface DashboardView {
|
|
5
7
|
id: string;
|
|
6
8
|
name: string;
|
|
@@ -20,7 +22,12 @@ async function loadViews(dashboardId: string): Promise<DashboardView[]> {
|
|
|
20
22
|
|
|
21
23
|
export function useDashboardViews(dashboardId: string | undefined) {
|
|
22
24
|
const queryClient = useQueryClient();
|
|
23
|
-
const
|
|
25
|
+
const { session } = useSession();
|
|
26
|
+
const queryKey = [
|
|
27
|
+
"dashboard-views",
|
|
28
|
+
dashboardId,
|
|
29
|
+
dashboardCacheScope(session),
|
|
30
|
+
];
|
|
24
31
|
|
|
25
32
|
const viewsQuery = useQuery({
|
|
26
33
|
queryKey,
|
|
@@ -110,8 +117,13 @@ export function useDeleteDashboardView() {
|
|
|
110
117
|
* Returns a map of dashboardId -> DashboardView[].
|
|
111
118
|
*/
|
|
112
119
|
export function useAllDashboardViews(dashboardIds: string[]) {
|
|
120
|
+
const { session } = useSession();
|
|
113
121
|
return useQuery({
|
|
114
|
-
queryKey: [
|
|
122
|
+
queryKey: [
|
|
123
|
+
"all-dashboard-views",
|
|
124
|
+
dashboardIds.join(","),
|
|
125
|
+
dashboardCacheScope(session),
|
|
126
|
+
],
|
|
115
127
|
queryFn: async (): Promise<Record<string, DashboardView[]>> => {
|
|
116
128
|
const results: Record<string, DashboardView[]> = {};
|
|
117
129
|
await Promise.all(
|
|
@@ -59,6 +59,27 @@ const enUS = {
|
|
|
59
59
|
recentSales: "Recent Sales",
|
|
60
60
|
recentSalesDescription: "You made 265 sales this month.",
|
|
61
61
|
},
|
|
62
|
+
dashboardOverview: {
|
|
63
|
+
title: "Dashboards",
|
|
64
|
+
description: "All dashboards you can access, organized your way.",
|
|
65
|
+
searchPlaceholder: "Search dashboards...",
|
|
66
|
+
newFolder: "New folder",
|
|
67
|
+
folderName: "Folder name",
|
|
68
|
+
folderScope: "Folder type",
|
|
69
|
+
personal: "Personal",
|
|
70
|
+
shared: "Shared",
|
|
71
|
+
createFolder: "Create folder",
|
|
72
|
+
loading: "Loading dashboards...",
|
|
73
|
+
loadFailed: "Couldn't load dashboards",
|
|
74
|
+
loadFailedDescription: "Try again to refresh your dashboard overview.",
|
|
75
|
+
empty: "No dashboards yet",
|
|
76
|
+
emptyDescription: "Dashboards you create or can access will appear here.",
|
|
77
|
+
noDashboards: "No dashboards in this folder.",
|
|
78
|
+
unfiled: "Unfiled",
|
|
79
|
+
moveDashboard: "Move dashboard",
|
|
80
|
+
folderCreateFailed: "Couldn't create folder",
|
|
81
|
+
moveFailed: "Couldn't move dashboard",
|
|
82
|
+
},
|
|
62
83
|
sidebar: {
|
|
63
84
|
collapseSidebar: "Collapse sidebar",
|
|
64
85
|
expandSidebar: "Expand sidebar",
|
|
@@ -499,6 +520,7 @@ const enUS = {
|
|
|
499
520
|
},
|
|
500
521
|
providerCorpusNotifier: {
|
|
501
522
|
completed: "Provider corpus job completed",
|
|
523
|
+
incomplete: "Provider corpus job incomplete",
|
|
502
524
|
quotaWait: "Provider corpus job waiting for quota",
|
|
503
525
|
failed: "Provider corpus job failed",
|
|
504
526
|
resumeAfter: "Resume after {{date}}",
|
|
@@ -4914,6 +4936,10 @@ function mergeMessages(overrides: {
|
|
|
4914
4936
|
root: { ...enUS.root, ...overrides.root },
|
|
4915
4937
|
navigation: { ...enUS.navigation, ...overrides.navigation },
|
|
4916
4938
|
dashboardHeader: { ...enUS.dashboardHeader, ...overrides.dashboardHeader },
|
|
4939
|
+
dashboardOverview: {
|
|
4940
|
+
...enUS.dashboardOverview,
|
|
4941
|
+
...overrides.dashboardOverview,
|
|
4942
|
+
},
|
|
4917
4943
|
sidebar: { ...enUS.sidebar, ...overrides.sidebar },
|
|
4918
4944
|
settings: { ...enUS.settings, ...overrides.settings },
|
|
4919
4945
|
chat: { ...enUS.chat, ...overrides.chat },
|
|
@@ -7052,6 +7078,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
7052
7078
|
},
|
|
7053
7079
|
providerCorpusNotifier: {
|
|
7054
7080
|
completed: "提供者语料库作业已完成",
|
|
7081
|
+
incomplete: "提供者语料库作业未完成",
|
|
7055
7082
|
failed: "提供者语料库作业失败",
|
|
7056
7083
|
openAsk: "打开Ask",
|
|
7057
7084
|
quotaWait: "等待配额的提供者语料库作业",
|
|
@@ -7291,6 +7318,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
7291
7318
|
},
|
|
7292
7319
|
providerCorpusNotifier: {
|
|
7293
7320
|
completed: "Trabajo de corpus del proveedor completado",
|
|
7321
|
+
incomplete: "Trabajo de corpus del proveedor incompleto",
|
|
7294
7322
|
failed: "Error en el trabajo del corpus del proveedor",
|
|
7295
7323
|
openAsk: "Abrir Ask",
|
|
7296
7324
|
quotaWait: "Trabajo de corpus de proveedor en espera de cuota",
|
|
@@ -7536,6 +7564,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
7536
7564
|
},
|
|
7537
7565
|
providerCorpusNotifier: {
|
|
7538
7566
|
completed: "Travail du corpus de fournisseurs terminé",
|
|
7567
|
+
incomplete: "Travail du corpus de fournisseurs incomplet",
|
|
7539
7568
|
failed: "Échec de la tâche du corpus du fournisseur",
|
|
7540
7569
|
openAsk: "Ouvrir Ask",
|
|
7541
7570
|
quotaWait: "Travail de corpus de fournisseur en attente de quota",
|
|
@@ -7783,6 +7812,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
7783
7812
|
},
|
|
7784
7813
|
providerCorpusNotifier: {
|
|
7785
7814
|
completed: "Der Provider-Korpus-Job wurde abgeschlossen",
|
|
7815
|
+
incomplete: "Der Provider-Korpus-Job ist unvollständig",
|
|
7786
7816
|
failed: "Der Provider-Korpus-Job ist fehlgeschlagen",
|
|
7787
7817
|
openAsk: "Öffnen Sie Ask",
|
|
7788
7818
|
quotaWait: "Anbieter-Korpus-Job wartet auf Kontingent",
|
|
@@ -8023,6 +8053,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
8023
8053
|
},
|
|
8024
8054
|
providerCorpusNotifier: {
|
|
8025
8055
|
completed: "プロバイダー コーパス ジョブが完了しました",
|
|
8056
|
+
incomplete: "プロバイダー コーパス ジョブが未完了です",
|
|
8026
8057
|
failed: "プロバイダー コーパス ジョブが失敗しました",
|
|
8027
8058
|
openAsk: "Askを開く",
|
|
8028
8059
|
quotaWait: "クォータを待機しているプロバイダー コーパス ジョブ",
|
|
@@ -8262,6 +8293,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
8262
8293
|
},
|
|
8263
8294
|
providerCorpusNotifier: {
|
|
8264
8295
|
completed: "제공자 코퍼스 작업이 완료되었습니다.",
|
|
8296
|
+
incomplete: "제공자 코퍼스 작업이 완료되지 않았습니다.",
|
|
8265
8297
|
failed: "공급자 코퍼스 작업이 실패했습니다.",
|
|
8266
8298
|
openAsk: "Ask 열기",
|
|
8267
8299
|
quotaWait: "할당량을 기다리는 공급자 코퍼스 작업",
|
|
@@ -8505,6 +8537,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
8505
8537
|
},
|
|
8506
8538
|
providerCorpusNotifier: {
|
|
8507
8539
|
completed: "Tarefa de corpus do provedor concluída",
|
|
8540
|
+
incomplete: "O trabalho de corpus do provedor está incompleto",
|
|
8508
8541
|
failed: "Falha no job do corpus do provedor",
|
|
8509
8542
|
openAsk: "Abra Ask",
|
|
8510
8543
|
quotaWait: "Job do corpus do provedor aguardando cota",
|
|
@@ -8745,6 +8778,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
8745
8778
|
},
|
|
8746
8779
|
providerCorpusNotifier: {
|
|
8747
8780
|
completed: "प्रदाता कॉर्पस कार्य पूरा हो गया",
|
|
8781
|
+
incomplete: "प्रदाता कॉर्पस कार्य अधूरा है",
|
|
8748
8782
|
failed: "प्रदाता कॉर्पस कार्य विफल रहा",
|
|
8749
8783
|
openAsk: "Ask खोलें",
|
|
8750
8784
|
quotaWait: "प्रदाता कॉर्पस जॉब कोटा की प्रतीक्षा कर रहा है",
|
|
@@ -8983,6 +9017,7 @@ const translatedAnalyticsDebtTranslations = {
|
|
|
8983
9017
|
},
|
|
8984
9018
|
providerCorpusNotifier: {
|
|
8985
9019
|
completed: "اكتملت مهمة مجموعة الموفر",
|
|
9020
|
+
incomplete: "مهمة مجموعة الموفر غير مكتملة",
|
|
8986
9021
|
failed: "فشلت مهمة مجموعة الموفر",
|
|
8987
9022
|
openAsk: "Open Ask",
|
|
8988
9023
|
quotaWait: "وظيفة مجموعة الموفر في انتظار الحصة النسبية",
|
|
@@ -9570,6 +9605,267 @@ for (const [locale, overrides] of Object.entries(
|
|
|
9570
9605
|
}
|
|
9571
9606
|
}
|
|
9572
9607
|
|
|
9608
|
+
const translatedDashboardOverviewTranslations = {
|
|
9609
|
+
"ar-SA": {
|
|
9610
|
+
dashboardOverview: {
|
|
9611
|
+
title: "لوحات المعلومات",
|
|
9612
|
+
description:
|
|
9613
|
+
"كل لوحات المعلومات التي يمكنك الوصول إليها، منظمة بالطريقة التي تناسبك.",
|
|
9614
|
+
searchPlaceholder: "ابحث عن لوحات المعلومات...",
|
|
9615
|
+
newFolder: "مجلد جديد",
|
|
9616
|
+
folderName: "اسم المجلد",
|
|
9617
|
+
folderScope: "نوع المجلد",
|
|
9618
|
+
personal: "شخصي",
|
|
9619
|
+
shared: "مشترك",
|
|
9620
|
+
createFolder: "إنشاء مجلد",
|
|
9621
|
+
loading: "جارٍ تحميل لوحات المعلومات...",
|
|
9622
|
+
loadFailed: "تعذر تحميل لوحات المعلومات",
|
|
9623
|
+
loadFailedDescription:
|
|
9624
|
+
"حاول مرة أخرى لتحديث نظرة عامة على لوحات المعلومات.",
|
|
9625
|
+
empty: "لا توجد لوحات معلومات بعد",
|
|
9626
|
+
emptyDescription:
|
|
9627
|
+
"ستظهر هنا لوحات المعلومات التي تنشئها أو يمكنك الوصول إليها.",
|
|
9628
|
+
noDashboards: "لا توجد لوحات معلومات في هذا المجلد.",
|
|
9629
|
+
unfiled: "غير مصنف",
|
|
9630
|
+
moveDashboard: "نقل لوحة المعلومات",
|
|
9631
|
+
folderCreateFailed: "تعذر إنشاء المجلد",
|
|
9632
|
+
moveFailed: "تعذر نقل لوحة المعلومات",
|
|
9633
|
+
},
|
|
9634
|
+
},
|
|
9635
|
+
"de-DE": {
|
|
9636
|
+
dashboardOverview: {
|
|
9637
|
+
title: "Dashboards",
|
|
9638
|
+
description: "Alle Dashboards, auf die du zugreifen kannst, organisiert.",
|
|
9639
|
+
searchPlaceholder: "Dashboards durchsuchen...",
|
|
9640
|
+
newFolder: "Neuer Ordner",
|
|
9641
|
+
folderName: "Ordnername",
|
|
9642
|
+
folderScope: "Ordnertyp",
|
|
9643
|
+
personal: "Persönlich",
|
|
9644
|
+
shared: "Geteilt",
|
|
9645
|
+
createFolder: "Ordner erstellen",
|
|
9646
|
+
loading: "Dashboards werden geladen...",
|
|
9647
|
+
loadFailed: "Dashboards konnten nicht geladen werden",
|
|
9648
|
+
loadFailedDescription:
|
|
9649
|
+
"Versuche es erneut, um die Dashboard-Übersicht zu aktualisieren.",
|
|
9650
|
+
empty: "Noch keine Dashboards",
|
|
9651
|
+
emptyDescription:
|
|
9652
|
+
"Dashboards, die du erstellst oder auf die du zugreifen kannst, erscheinen hier.",
|
|
9653
|
+
noDashboards: "Keine Dashboards in diesem Ordner.",
|
|
9654
|
+
unfiled: "Nicht abgelegt",
|
|
9655
|
+
moveDashboard: "Dashboard verschieben",
|
|
9656
|
+
folderCreateFailed: "Ordner konnte nicht erstellt werden",
|
|
9657
|
+
moveFailed: "Dashboard konnte nicht verschoben werden",
|
|
9658
|
+
},
|
|
9659
|
+
},
|
|
9660
|
+
"es-ES": {
|
|
9661
|
+
dashboardOverview: {
|
|
9662
|
+
title: "Paneles",
|
|
9663
|
+
description: "Todos los paneles a los que puedes acceder, organizados.",
|
|
9664
|
+
searchPlaceholder: "Buscar paneles...",
|
|
9665
|
+
newFolder: "Nueva carpeta",
|
|
9666
|
+
folderName: "Nombre de la carpeta",
|
|
9667
|
+
folderScope: "Tipo de carpeta",
|
|
9668
|
+
personal: "Personal",
|
|
9669
|
+
shared: "Compartido",
|
|
9670
|
+
createFolder: "Crear carpeta",
|
|
9671
|
+
loading: "Cargando paneles...",
|
|
9672
|
+
loadFailed: "No se han podido cargar los paneles",
|
|
9673
|
+
loadFailedDescription:
|
|
9674
|
+
"Vuelve a intentarlo para actualizar la vista general de paneles.",
|
|
9675
|
+
empty: "Aún no hay paneles",
|
|
9676
|
+
emptyDescription:
|
|
9677
|
+
"Aquí aparecerán los paneles que crees o a los que tengas acceso.",
|
|
9678
|
+
noDashboards: "No hay paneles en esta carpeta.",
|
|
9679
|
+
unfiled: "Sin clasificar",
|
|
9680
|
+
moveDashboard: "Mover panel",
|
|
9681
|
+
folderCreateFailed: "No se ha podido crear la carpeta",
|
|
9682
|
+
moveFailed: "No se ha podido mover el panel",
|
|
9683
|
+
},
|
|
9684
|
+
},
|
|
9685
|
+
"fr-FR": {
|
|
9686
|
+
dashboardOverview: {
|
|
9687
|
+
title: "Tableaux de bord",
|
|
9688
|
+
description:
|
|
9689
|
+
"Tous les tableaux de bord auxquels vous pouvez accéder, organisés.",
|
|
9690
|
+
searchPlaceholder: "Rechercher des tableaux de bord...",
|
|
9691
|
+
newFolder: "Nouveau dossier",
|
|
9692
|
+
folderName: "Nom du dossier",
|
|
9693
|
+
folderScope: "Type de dossier",
|
|
9694
|
+
personal: "Personnel",
|
|
9695
|
+
shared: "Partagé",
|
|
9696
|
+
createFolder: "Créer un dossier",
|
|
9697
|
+
loading: "Chargement des tableaux de bord...",
|
|
9698
|
+
loadFailed: "Impossible de charger les tableaux de bord",
|
|
9699
|
+
loadFailedDescription:
|
|
9700
|
+
"Réessayez pour actualiser la vue d’ensemble des tableaux de bord.",
|
|
9701
|
+
empty: "Aucun tableau de bord pour le moment",
|
|
9702
|
+
emptyDescription:
|
|
9703
|
+
"Les tableaux de bord que vous créez ou auxquels vous pouvez accéder apparaîtront ici.",
|
|
9704
|
+
noDashboards: "Aucun tableau de bord dans ce dossier.",
|
|
9705
|
+
unfiled: "Non classé",
|
|
9706
|
+
moveDashboard: "Déplacer le tableau de bord",
|
|
9707
|
+
folderCreateFailed: "Impossible de créer le dossier",
|
|
9708
|
+
moveFailed: "Impossible de déplacer le tableau de bord",
|
|
9709
|
+
},
|
|
9710
|
+
},
|
|
9711
|
+
"hi-IN": {
|
|
9712
|
+
dashboardOverview: {
|
|
9713
|
+
title: "डैशबोर्ड",
|
|
9714
|
+
description: "सभी डैशबोर्ड जिनका आप उपयोग कर सकते हैं, व्यवस्थित रूप में।",
|
|
9715
|
+
searchPlaceholder: "डैशबोर्ड खोजें...",
|
|
9716
|
+
newFolder: "नया फ़ोल्डर",
|
|
9717
|
+
folderName: "फ़ोल्डर का नाम",
|
|
9718
|
+
folderScope: "फ़ोल्डर का प्रकार",
|
|
9719
|
+
personal: "व्यक्तिगत",
|
|
9720
|
+
shared: "साझा किया गया",
|
|
9721
|
+
createFolder: "फ़ोल्डर बनाएँ",
|
|
9722
|
+
loading: "डैशबोर्ड लोड हो रहे हैं...",
|
|
9723
|
+
loadFailed: "डैशबोर्ड लोड नहीं हो सके",
|
|
9724
|
+
loadFailedDescription: "डैशबोर्ड अवलोकन को रीफ़्रेश करने के लिए फिर कोशिश करें।",
|
|
9725
|
+
empty: "अभी कोई डैशबोर्ड नहीं",
|
|
9726
|
+
emptyDescription: "आपके बनाए या जिन तक आपकी पहुँच है, वे डैशबोर्ड यहाँ दिखेंगे।",
|
|
9727
|
+
noDashboards: "इस फ़ोल्डर में कोई डैशबोर्ड नहीं है।",
|
|
9728
|
+
unfiled: "वर्गीकृत नहीं",
|
|
9729
|
+
moveDashboard: "डैशबोर्ड को स्थानांतरित करें",
|
|
9730
|
+
folderCreateFailed: "फ़ोल्डर नहीं बनाया जा सका",
|
|
9731
|
+
moveFailed: "डैशबोर्ड स्थानांतरित नहीं किया जा सका",
|
|
9732
|
+
},
|
|
9733
|
+
},
|
|
9734
|
+
"ja-JP": {
|
|
9735
|
+
dashboardOverview: {
|
|
9736
|
+
title: "ダッシュボード",
|
|
9737
|
+
description: "アクセスできるすべてのダッシュボードを整理できます。",
|
|
9738
|
+
searchPlaceholder: "ダッシュボードを検索...",
|
|
9739
|
+
newFolder: "新しいフォルダー",
|
|
9740
|
+
folderName: "フォルダー名",
|
|
9741
|
+
folderScope: "フォルダーの種類",
|
|
9742
|
+
personal: "個人",
|
|
9743
|
+
shared: "共有",
|
|
9744
|
+
createFolder: "フォルダーを作成",
|
|
9745
|
+
loading: "ダッシュボードを読み込んでいます...",
|
|
9746
|
+
loadFailed: "ダッシュボードを読み込めませんでした",
|
|
9747
|
+
loadFailedDescription:
|
|
9748
|
+
"もう一度試してダッシュボードの概要を更新してください。",
|
|
9749
|
+
empty: "ダッシュボードはまだありません",
|
|
9750
|
+
emptyDescription:
|
|
9751
|
+
"作成したダッシュボードやアクセスできるダッシュボードがここに表示されます。",
|
|
9752
|
+
noDashboards: "このフォルダーにダッシュボードはありません。",
|
|
9753
|
+
unfiled: "未分類",
|
|
9754
|
+
moveDashboard: "ダッシュボードを移動",
|
|
9755
|
+
folderCreateFailed: "フォルダーを作成できませんでした",
|
|
9756
|
+
moveFailed: "ダッシュボードを移動できませんでした",
|
|
9757
|
+
},
|
|
9758
|
+
},
|
|
9759
|
+
"ko-KR": {
|
|
9760
|
+
dashboardOverview: {
|
|
9761
|
+
title: "대시보드",
|
|
9762
|
+
description:
|
|
9763
|
+
"액세스할 수 있는 모든 대시보드를 원하는 방식으로 정리합니다.",
|
|
9764
|
+
searchPlaceholder: "대시보드 검색...",
|
|
9765
|
+
newFolder: "새 폴더",
|
|
9766
|
+
folderName: "폴더 이름",
|
|
9767
|
+
folderScope: "폴더 유형",
|
|
9768
|
+
personal: "개인",
|
|
9769
|
+
shared: "공유됨",
|
|
9770
|
+
createFolder: "폴더 만들기",
|
|
9771
|
+
loading: "대시보드를 불러오는 중...",
|
|
9772
|
+
loadFailed: "대시보드를 불러오지 못했습니다",
|
|
9773
|
+
loadFailedDescription: "다시 시도하여 대시보드 개요를 새로 고치세요.",
|
|
9774
|
+
empty: "아직 대시보드가 없습니다",
|
|
9775
|
+
emptyDescription:
|
|
9776
|
+
"만들었거나 액세스할 수 있는 대시보드가 여기에 표시됩니다.",
|
|
9777
|
+
noDashboards: "이 폴더에 대시보드가 없습니다.",
|
|
9778
|
+
unfiled: "분류되지 않음",
|
|
9779
|
+
moveDashboard: "대시보드 이동",
|
|
9780
|
+
folderCreateFailed: "폴더를 만들지 못했습니다",
|
|
9781
|
+
moveFailed: "대시보드를 이동하지 못했습니다",
|
|
9782
|
+
},
|
|
9783
|
+
},
|
|
9784
|
+
"pt-BR": {
|
|
9785
|
+
dashboardOverview: {
|
|
9786
|
+
title: "Painéis",
|
|
9787
|
+
description: "Todos os painéis que você pode acessar, organizados.",
|
|
9788
|
+
searchPlaceholder: "Pesquisar painéis...",
|
|
9789
|
+
newFolder: "Nova pasta",
|
|
9790
|
+
folderName: "Nome da pasta",
|
|
9791
|
+
folderScope: "Tipo de pasta",
|
|
9792
|
+
personal: "Pessoal",
|
|
9793
|
+
shared: "Compartilhado",
|
|
9794
|
+
createFolder: "Criar pasta",
|
|
9795
|
+
loading: "Carregando painéis...",
|
|
9796
|
+
loadFailed: "Não foi possível carregar os painéis",
|
|
9797
|
+
loadFailedDescription:
|
|
9798
|
+
"Tente novamente para atualizar a visão geral dos painéis.",
|
|
9799
|
+
empty: "Ainda não há painéis",
|
|
9800
|
+
emptyDescription:
|
|
9801
|
+
"Os painéis que você criar ou puder acessar aparecerão aqui.",
|
|
9802
|
+
noDashboards: "Não há painéis nesta pasta.",
|
|
9803
|
+
unfiled: "Sem classificação",
|
|
9804
|
+
moveDashboard: "Mover painel",
|
|
9805
|
+
folderCreateFailed: "Não foi possível criar a pasta",
|
|
9806
|
+
moveFailed: "Não foi possível mover o painel",
|
|
9807
|
+
},
|
|
9808
|
+
},
|
|
9809
|
+
"zh-CN": {
|
|
9810
|
+
dashboardOverview: {
|
|
9811
|
+
title: "仪表板",
|
|
9812
|
+
description: "整理所有你可以访问的仪表板。",
|
|
9813
|
+
searchPlaceholder: "搜索仪表板...",
|
|
9814
|
+
newFolder: "新建文件夹",
|
|
9815
|
+
folderName: "文件夹名称",
|
|
9816
|
+
folderScope: "文件夹类型",
|
|
9817
|
+
personal: "个人",
|
|
9818
|
+
shared: "共享",
|
|
9819
|
+
createFolder: "创建文件夹",
|
|
9820
|
+
loading: "正在加载仪表板...",
|
|
9821
|
+
loadFailed: "无法加载仪表板",
|
|
9822
|
+
loadFailedDescription: "请重试以刷新仪表板概览。",
|
|
9823
|
+
empty: "还没有仪表板",
|
|
9824
|
+
emptyDescription: "你创建或可以访问的仪表板会显示在这里。",
|
|
9825
|
+
noDashboards: "此文件夹中没有仪表板。",
|
|
9826
|
+
unfiled: "未分类",
|
|
9827
|
+
moveDashboard: "移动仪表板",
|
|
9828
|
+
folderCreateFailed: "无法创建文件夹",
|
|
9829
|
+
moveFailed: "无法移动仪表板",
|
|
9830
|
+
},
|
|
9831
|
+
},
|
|
9832
|
+
"zh-TW": {
|
|
9833
|
+
dashboardOverview: {
|
|
9834
|
+
title: "儀表板",
|
|
9835
|
+
description: "整理所有你可以存取的儀表板。",
|
|
9836
|
+
searchPlaceholder: "搜尋儀表板...",
|
|
9837
|
+
newFolder: "新增資料夾",
|
|
9838
|
+
folderName: "資料夾名稱",
|
|
9839
|
+
folderScope: "資料夾類型",
|
|
9840
|
+
personal: "個人",
|
|
9841
|
+
shared: "共用",
|
|
9842
|
+
createFolder: "建立資料夾",
|
|
9843
|
+
loading: "正在載入儀表板...",
|
|
9844
|
+
loadFailed: "無法載入儀表板",
|
|
9845
|
+
loadFailedDescription: "請重試以重新整理儀表板概覽。",
|
|
9846
|
+
empty: "尚無儀表板",
|
|
9847
|
+
emptyDescription: "你建立或可以存取的儀表板會顯示在這裡。",
|
|
9848
|
+
noDashboards: "此資料夾中沒有儀表板。",
|
|
9849
|
+
unfiled: "未分類",
|
|
9850
|
+
moveDashboard: "移動儀表板",
|
|
9851
|
+
folderCreateFailed: "無法建立資料夾",
|
|
9852
|
+
moveFailed: "無法移動儀表板",
|
|
9853
|
+
},
|
|
9854
|
+
},
|
|
9855
|
+
} satisfies Partial<Record<LocaleCode, AnalyticsPartialMessages>>;
|
|
9856
|
+
|
|
9857
|
+
for (const [locale, overrides] of Object.entries(
|
|
9858
|
+
translatedDashboardOverviewTranslations,
|
|
9859
|
+
) as Array<[LocaleCode, AnalyticsPartialMessages]>) {
|
|
9860
|
+
const messages = messagesByLocale[locale];
|
|
9861
|
+
if (!messages) continue;
|
|
9862
|
+
for (const [section, sectionOverrides] of Object.entries(overrides) as Array<
|
|
9863
|
+
[Section, Partial<Messages[Section]>]
|
|
9864
|
+
>) {
|
|
9865
|
+
Object.assign(messages[section], sectionOverrides);
|
|
9866
|
+
}
|
|
9867
|
+
}
|
|
9868
|
+
|
|
9573
9869
|
const translatedAnalyticsRawTranslations = {
|
|
9574
9870
|
"zh-CN": {
|
|
9575
9871
|
sqlDashboard: {
|
|
@@ -3,8 +3,29 @@ export type PrefetchSnapshot<T> = {
|
|
|
3
3
|
syncVersion: number;
|
|
4
4
|
};
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
|
|
6
|
+
export type DashboardCacheSession = {
|
|
7
|
+
userId?: string | null;
|
|
8
|
+
email?: string | null;
|
|
9
|
+
orgId?: string | null;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Dashboard payloads are access-scoped. Keep the principal and active org in
|
|
14
|
+
* every client cache key so a session change cannot adopt another caller's
|
|
15
|
+
* private dashboard as placeholder or prefetch data.
|
|
16
|
+
*/
|
|
17
|
+
export function dashboardCacheScope(
|
|
18
|
+
session: DashboardCacheSession | null | undefined,
|
|
19
|
+
): string {
|
|
20
|
+
const principal = session?.userId ?? session?.email ?? "anonymous";
|
|
21
|
+
const org = session?.orgId ?? "personal";
|
|
22
|
+
return `${encodeURIComponent(principal)}:${encodeURIComponent(org)}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const sqlDashboardPrefetchKey = (
|
|
26
|
+
id: string,
|
|
27
|
+
scope = "anonymous:personal",
|
|
28
|
+
) => ["data", "sql-dashboard-prefetch", scope, id] as const;
|
|
8
29
|
|
|
9
30
|
export const analysisDetailPrefetchKey = (id: string) =>
|
|
10
31
|
["analysis-detail-prefetch", id] as const;
|