@agent-native/core 0.141.6 → 0.141.7
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/dashboard-management/SKILL.md +3 -14
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +11 -6
- package/corpus/templates/analytics/.agents/skills/prometheus/SKILL.md +5 -5
- package/corpus/templates/analytics/AGENTS.md +2 -2
- package/corpus/templates/analytics/actions/compose-dashboard.ts +1 -1
- package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +135 -0
- package/corpus/templates/analytics/actions/navigate.ts +1 -1
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +2 -2
- package/corpus/templates/analytics/actions/update-dashboard.ts +0 -1
- package/corpus/templates/analytics/actions/view-screen.ts +0 -20
- package/corpus/templates/analytics/app/components/layout/Header.tsx +0 -1
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +5 -5
- package/corpus/templates/analytics/app/i18n-data.ts +2 -90
- package/corpus/templates/analytics/app/pages/Agents.tsx +0 -3
- package/corpus/templates/analytics/app/pages/Settings.tsx +22 -43
- package/corpus/templates/analytics/app/pages/settings/settings-search.ts +23 -20
- package/corpus/templates/analytics/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/analytics/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/analytics/app/routes/team.tsx +1 -1
- package/corpus/templates/analytics/changelog/2026-08-05-settings-no-longer-includes-an-unnecessary-about-section.md +6 -0
- package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +1 -1
- package/corpus/templates/analytics/scripts/first-party-analytics-bigquery.sql +104 -0
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +0 -2
- package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +1058 -0
- package/corpus/templates/analytics/server/lib/first-party-analytics-health.ts +34 -15
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +57 -4
- package/corpus/templates/analytics/server/lib/real-data-actions.ts +1 -3
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +2 -4
- package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +8 -6
- package/corpus/templates/assets/.agents/skills/library-management/SKILL.md +16 -1
- package/corpus/templates/assets/AGENTS.md +1 -0
- package/corpus/templates/assets/actions/_helpers.ts +12 -0
- package/corpus/templates/assets/actions/generate-image.ts +9 -3
- package/corpus/templates/assets/actions/import-style-from-url.ts +115 -0
- package/corpus/templates/assets/app/hooks/use-navigation-state.ts +3 -1
- package/corpus/templates/assets/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/assets/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/assets/app/routes/settings.tsx +5 -0
- package/corpus/templates/assets/app/routes/team.tsx +1 -1
- package/corpus/templates/assets/changelog/2026-08-05-brand-kits-can-import-a-website-s-hydrated-visual-language-a.md +6 -0
- package/corpus/templates/assets/changelog/2026-08-05-generated-images-now-hand-off-embeddable-previews-to-other-w.md +6 -0
- package/corpus/templates/assets/server/lib/generation.ts +58 -0
- package/corpus/templates/assets/shared/api.ts +12 -0
- package/corpus/templates/brain/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/brain/app/routes/team.tsx +1 -1
- package/corpus/templates/brain/app/routes.ts +1 -1
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +3 -1
- package/corpus/templates/calendar/app/routes/_app.extensions._index.tsx +1 -1
- package/corpus/templates/calendar/app/routes/_app.settings.$.tsx +1 -0
- package/corpus/templates/calendar/app/routes/_app.team.tsx +1 -1
- package/corpus/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/chat/app/hooks/use-navigation-state.ts +1 -1
- package/corpus/templates/chat/app/root.tsx +1 -1
- package/corpus/templates/chat/app/routes/agent.tsx +7 -7
- package/corpus/templates/chat/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/chat/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/chat/app/routes/team.tsx +1 -1
- package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
- package/corpus/templates/clips/app/components/player/transcript-panel.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
- package/corpus/templates/clips/app/routes/_app.extensions._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/_app.settings.$.tsx +1 -0
- package/corpus/templates/content/app/routes/_app.extensions._index.tsx +1 -1
- package/corpus/templates/content/app/routes/_app.settings.$.tsx +1 -0
- package/corpus/templates/content/app/routes/_app.team.tsx +1 -1
- package/corpus/templates/content/e2e/global-setup.ts +1 -1
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +6 -1
- package/corpus/templates/design/actions/analyze-brand-assets.ts +7 -7
- package/corpus/templates/design/actions/import-from-url.ts +6 -5
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +2 -2
- package/corpus/templates/design/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/design/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/design/app/routes/team.tsx +1 -1
- package/corpus/templates/design/changelog/2026-08-05-website-url-imports-now-capture-hydrated-browser-computed-de.md +6 -0
- package/corpus/templates/design/e2e/global-setup.ts +1 -1
- package/corpus/templates/dispatch/app/hooks/use-navigation-state.ts +1 -1
- package/corpus/templates/dispatch/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/dispatch/app/routes/team.tsx +1 -1
- package/corpus/templates/factory/app/hooks/use-navigation-state.ts +1 -1
- package/corpus/templates/factory/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/factory/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/factory/app/routes/team.tsx +1 -1
- package/corpus/templates/forms/app/routes/_app.extensions._index.tsx +1 -1
- package/corpus/templates/forms/app/routes/_app.settings.$.tsx +1 -0
- package/corpus/templates/forms/app/routes/_app.team.tsx +1 -1
- package/corpus/templates/forms/shared/navigation.ts +1 -1
- package/corpus/templates/macros/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/macros/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/macros/app/routes/team.tsx +1 -1
- package/corpus/templates/mail/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/mail/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/plan/app/hooks/use-navigation-state.ts +1 -1
- package/corpus/templates/plan/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/plan/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/plan/app/routes/team.tsx +1 -1
- package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +3 -1
- package/corpus/templates/slides/actions/analyze-brand-assets.ts +7 -7
- package/corpus/templates/slides/actions/import-from-url.ts +6 -6
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +3 -0
- package/corpus/templates/slides/app/components/onboarding/FirstDeckOnboardingFlow.tsx +9 -3
- package/corpus/templates/slides/app/context/DeckContext.tsx +71 -20
- package/corpus/templates/slides/app/global.css +6 -0
- package/corpus/templates/slides/app/lib/create-deck-generation.ts +9 -5
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +17 -0
- package/corpus/templates/slides/app/pages/Index.tsx +16 -5
- package/corpus/templates/slides/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/slides/app/routes/settings.$.tsx +1 -0
- package/corpus/templates/slides/app/routes/team.tsx +1 -1
- package/corpus/templates/slides/changelog/2026-08-05-failed-deck-creation-and-reference-uploads-now-recover-clean.md +6 -0
- package/corpus/templates/slides/changelog/2026-08-05-slides-recover-completed-generation-results-after-a-sync-hic.md +6 -0
- package/corpus/templates/slides/changelog/2026-08-05-website-url-imports-now-capture-hydrated-browser-computed-st.md +6 -0
- package/corpus/templates/tasks/app/components/layout/Header.tsx +3 -1
- package/corpus/templates/tasks/app/routes/extensions._index.tsx +1 -1
- package/corpus/templates/tasks/app/routes/settings.$.tsx +1 -0
- package/dist/agent/engine/ai-sdk-engine.js +49 -3
- package/dist/agent/production-agent.d.ts +1 -0
- package/dist/agent/production-agent.js +8 -0
- package/dist/agent/types.d.ts +7 -0
- package/dist/client/agent-chat-adapter.d.ts +1 -1
- package/dist/client/agent-chat-adapter.js +30 -3
- package/dist/client/agent-page/AgentWorkspaceContent.d.ts +1 -1
- package/dist/client/agent-page/AgentWorkspaceContent.js +13 -13
- package/dist/client/chat/run-recovery.js +5 -1
- package/dist/client/embed-auth.js +6 -2
- package/dist/client/error-format.js +12 -0
- package/dist/client/integrations/IntegrationsPanel.js +40 -6
- package/dist/client/org/OrgSwitcher.js +2 -2
- package/dist/client/org/TeamPage.js +92 -72
- package/dist/client/require-session.d.ts +1 -1
- package/dist/client/require-session.js +3 -3
- package/dist/client/resources/use-mcp-servers.d.ts +5 -0
- package/dist/client/resources/use-mcp-servers.js +36 -0
- package/dist/client/settings/AccountSettingsCard.js +40 -35
- package/dist/client/settings/AutomationsSection.js +1 -1
- package/dist/client/settings/DemoModeSection.d.ts +3 -1
- package/dist/client/settings/DemoModeSection.js +4 -1
- package/dist/client/settings/ExtensionsSettingsContent.js +1 -1
- package/dist/client/settings/SchedulingTimezoneField.d.ts +3 -1
- package/dist/client/settings/SchedulingTimezoneField.js +9 -5
- package/dist/client/settings/SettingsPanel.d.ts +4 -1
- package/dist/client/settings/SettingsPanel.js +21 -21
- package/dist/client/settings/SettingsTabsPage.d.ts +2 -2
- package/dist/client/settings/SettingsTabsPage.js +98 -45
- package/dist/client/settings/VoiceTranscriptionSection.js +6 -1
- package/dist/client/settings/useSettingsPanelController.js +47 -8
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/ingestion/website.d.ts +30 -0
- package/dist/localization/default-messages.d.ts +5 -0
- package/dist/localization/default-messages.js +5 -0
- package/dist/mcp-client/oauth-routes.js +1 -1
- package/dist/mcp-client/routes.d.ts +1 -0
- package/dist/mcp-client/routes.js +49 -0
- package/dist/navigation/index.js +16 -5
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +13 -13
- package/dist/provider-api/actions/provider-api.d.ts +11 -11
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/scripts/call-agent.js +11 -0
- package/dist/secrets/routes.d.ts +3 -3
- package/dist/server/auth.js +9 -7
- package/dist/server/identity-sso.js +2 -1
- package/dist/server/onboarding-html.js +57 -34
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/workspace-provider-oauth.js +1 -1
- package/dist/setup-connections/onboarding.js +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/sign-in-journey.d.ts +5 -2
- package/dist/shared/sign-in-journey.js +10 -4
- package/dist/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/dist/templates/chat/app/hooks/use-navigation-state.ts +1 -1
- package/dist/templates/chat/app/root.tsx +1 -1
- package/dist/templates/chat/app/routes/agent.tsx +7 -7
- package/dist/templates/chat/app/routes/extensions._index.tsx +1 -1
- package/dist/templates/chat/app/routes/settings.$.tsx +1 -0
- package/dist/templates/chat/app/routes/team.tsx +1 -1
- package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +37 -6
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +4 -2
- package/docs/content/authentication.mdx +4 -5
- package/docs/content/template-analytics-developers.mdx +1 -1
- package/docs/content/template-calendar-developers.mdx +1 -1
- package/docs/content/template-chat-developers.mdx +2 -2
- package/docs/content/template-content-developers.mdx +1 -1
- package/docs/content/template-mail-developers.mdx +1 -1
- package/docs/content/template-plan-developers.mdx +1 -1
- package/docs/content/toolkit-command-navigation.mdx +6 -6
- package/docs/content/toolkit-org-team.mdx +1 -1
- package/docs/content/toolkit-settings.mdx +8 -8
- package/docs/content/toolkit-setup-connections.mdx +1 -1
- package/package.json +1 -1
- package/src/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/src/templates/chat/app/hooks/use-navigation-state.ts +1 -1
- package/src/templates/chat/app/root.tsx +1 -1
- package/src/templates/chat/app/routes/agent.tsx +7 -7
- package/src/templates/chat/app/routes/extensions._index.tsx +1 -1
- package/src/templates/chat/app/routes/settings.$.tsx +1 -0
- package/src/templates/chat/app/routes/team.tsx +1 -1
- package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +37 -6
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +4 -2
- package/corpus/templates/analytics/.agents/skills/dashboard-management/references/template-catalog-and-demo.md +0 -62
- package/corpus/templates/analytics/actions/install-dashboard-template.ts +0 -369
- package/corpus/templates/analytics/actions/list-dashboard-templates.ts +0 -47
- package/corpus/templates/analytics/actions/list-native-v2-dashboard-templates.ts +0 -34
- package/corpus/templates/analytics/app/routes/catalog.tsx +0 -240
- package/src/templates/default/actions/navigate.spec.ts +0 -53
|
@@ -19,7 +19,6 @@ const enUS = {
|
|
|
19
19
|
monitoringErrors: "Errors",
|
|
20
20
|
admin: "Admin",
|
|
21
21
|
agents: "Agents",
|
|
22
|
-
templateCatalog: "Catalog",
|
|
23
22
|
dashboards: "Dashboards",
|
|
24
23
|
analyses: "Analyses",
|
|
25
24
|
explorer: "Explorer",
|
|
@@ -28,6 +27,7 @@ const enUS = {
|
|
|
28
27
|
navigation: "Navigation",
|
|
29
28
|
openNavigation: "Open navigation",
|
|
30
29
|
loadingDashboardTitle: "Loading dashboard title",
|
|
30
|
+
templateCatalog: "Catalog",
|
|
31
31
|
},
|
|
32
32
|
dashboardHeader: {
|
|
33
33
|
updated: "Updated {{date}}",
|
|
@@ -188,10 +188,6 @@ const enUS = {
|
|
|
188
188
|
credentialsDescription:
|
|
189
189
|
"API keys and credentials are managed on the Data Sources page.",
|
|
190
190
|
manageDataSources: "Manage Data Sources",
|
|
191
|
-
dashboardTemplates: "Dashboard templates",
|
|
192
|
-
dashboardTemplatesDescription:
|
|
193
|
-
"Install a source-controlled dashboard when you need a starting point.",
|
|
194
|
-
openDashboardTemplates: "Open catalog",
|
|
195
191
|
languageTitle: "Language",
|
|
196
192
|
languageLabel: "Interface language",
|
|
197
193
|
errorEmailNotifications: "Email new error alerts",
|
|
@@ -202,11 +198,6 @@ const enUS = {
|
|
|
202
198
|
bellSoundDescription:
|
|
203
199
|
"Play a sound when the agent finishes a run. Off by default.",
|
|
204
200
|
bellSoundSaveFailed: "Couldn't save the sound preference.",
|
|
205
|
-
about: "About",
|
|
206
|
-
aboutDescription:
|
|
207
|
-
"Analytics is a tool for connecting data sources and building custom dashboards. Connect Google Analytics, BigQuery, Stripe, and more, then ask the agent to create dashboards.",
|
|
208
|
-
aboutUsage:
|
|
209
|
-
"Use the Data Sources page to manage connections. Use the Query Explorer for ad-hoc BigQuery SQL.",
|
|
210
201
|
replayStorage: "Session replay storage",
|
|
211
202
|
replayStorageDescription:
|
|
212
203
|
"Session replay recordings need a configured file-upload provider. Connect Builder.io for free-tier object storage, or use your own S3-compatible bucket.",
|
|
@@ -461,8 +452,8 @@ const enUS = {
|
|
|
461
452
|
visibilityorg: "Shared with org",
|
|
462
453
|
visibilitypublic: "Public",
|
|
463
454
|
advanced: "Advanced",
|
|
464
|
-
database: "App Databases",
|
|
465
455
|
openCatalog: "Open catalog",
|
|
456
|
+
database: "App Databases",
|
|
466
457
|
dbConnectionsTitle: "Connected app databases",
|
|
467
458
|
dbConnectionsDescription:
|
|
468
459
|
"Connect other agent-native app databases for admin-only inspection and repair. This does not expose Analytics data to every user.",
|
|
@@ -4439,9 +4430,6 @@ export const messagesByLocale = {
|
|
|
4439
4430
|
credentials: "数据源凭据",
|
|
4440
4431
|
credentialsDescription: "API 密钥和凭据在数据源页面管理。",
|
|
4441
4432
|
manageDataSources: "管理数据源",
|
|
4442
|
-
dashboardTemplates: "仪表板模板",
|
|
4443
|
-
dashboardTemplatesDescription: "需要起点时,安装受源码管理的仪表板。",
|
|
4444
|
-
openDashboardTemplates: "打开目录",
|
|
4445
4433
|
languageTitle: "语言",
|
|
4446
4434
|
languageLabel: "界面语言",
|
|
4447
4435
|
errorEmailNotifications: "通过电子邮件接收新的错误提醒",
|
|
@@ -4451,10 +4439,6 @@ export const messagesByLocale = {
|
|
|
4451
4439
|
bellSound: "提示音",
|
|
4452
4440
|
bellSoundDescription: "代理完成运行时播放提示音。默认关闭。",
|
|
4453
4441
|
bellSoundSaveFailed: "无法保存提示音偏好设置。",
|
|
4454
|
-
about: "关于",
|
|
4455
|
-
aboutDescription:
|
|
4456
|
-
"Analytics 用于连接数据源并构建自定义仪表板。连接 Google Analytics、BigQuery、Stripe 等,然后让代理创建仪表板。",
|
|
4457
|
-
aboutUsage: "在数据源页面管理连接。使用查询探索器运行临时 BigQuery SQL。",
|
|
4458
4442
|
},
|
|
4459
4443
|
chat: {
|
|
4460
4444
|
emptyState: "让我分析仪表板、比较趋势或深入查看数据...",
|
|
@@ -4663,10 +4647,6 @@ export const messagesByLocale = {
|
|
|
4663
4647
|
credentialsDescription:
|
|
4664
4648
|
"Las claves API y credenciales se gestionan en la página Fuentes de datos.",
|
|
4665
4649
|
manageDataSources: "Gestionar fuentes de datos",
|
|
4666
|
-
dashboardTemplates: "Plantillas de paneles",
|
|
4667
|
-
dashboardTemplatesDescription:
|
|
4668
|
-
"Instala un panel controlado por código fuente cuando necesites un punto de partida.",
|
|
4669
|
-
openDashboardTemplates: "Abrir catálogo",
|
|
4670
4650
|
languageTitle: "Idioma",
|
|
4671
4651
|
languageLabel: "Idioma de la interfaz",
|
|
4672
4652
|
errorEmailNotifications: "Recibir nuevas alertas de errores por email",
|
|
@@ -4678,11 +4658,6 @@ export const messagesByLocale = {
|
|
|
4678
4658
|
bellSoundDescription:
|
|
4679
4659
|
"Reproduce un sonido cuando el agente termina una ejecución. Desactivado de forma predeterminada.",
|
|
4680
4660
|
bellSoundSaveFailed: "No se pudo guardar la preferencia de sonido.",
|
|
4681
|
-
about: "Acerca de",
|
|
4682
|
-
aboutDescription:
|
|
4683
|
-
"Analytics conecta fuentes de datos y crea paneles personalizados. Conecta Google Analytics, BigQuery, Stripe y más, y pide al agente que cree paneles.",
|
|
4684
|
-
aboutUsage:
|
|
4685
|
-
"Usa Fuentes de datos para gestionar conexiones. Usa el Explorador de consultas para SQL ad hoc de BigQuery.",
|
|
4686
4661
|
},
|
|
4687
4662
|
chat: {
|
|
4688
4663
|
emptyState:
|
|
@@ -4894,10 +4869,6 @@ export const messagesByLocale = {
|
|
|
4894
4869
|
credentialsDescription:
|
|
4895
4870
|
"Les clés API et identifiants sont gérés sur la page Sources de données.",
|
|
4896
4871
|
manageDataSources: "Gérer les sources de données",
|
|
4897
|
-
dashboardTemplates: "Modèles de tableaux de bord",
|
|
4898
|
-
dashboardTemplatesDescription:
|
|
4899
|
-
"Installez un tableau de bord suivi dans le code source lorsque vous avez besoin d'un point de départ.",
|
|
4900
|
-
openDashboardTemplates: "Ouvrir le catalogue",
|
|
4901
4872
|
languageTitle: "Langue",
|
|
4902
4873
|
languageLabel: "Langue de l'interface",
|
|
4903
4874
|
errorEmailNotifications:
|
|
@@ -4910,11 +4881,6 @@ export const messagesByLocale = {
|
|
|
4910
4881
|
bellSoundDescription:
|
|
4911
4882
|
"Jouer un son lorsque l’agent termine une exécution. Désactivé par défaut.",
|
|
4912
4883
|
bellSoundSaveFailed: "Impossible d’enregistrer la préférence sonore.",
|
|
4913
|
-
about: "À propos",
|
|
4914
|
-
aboutDescription:
|
|
4915
|
-
"Analytics connecte des sources de données et crée des tableaux de bord personnalisés. Connectez Google Analytics, BigQuery, Stripe et plus encore, puis demandez à l'agent de créer des tableaux de bord.",
|
|
4916
|
-
aboutUsage:
|
|
4917
|
-
"Utilisez Sources de données pour gérer les connexions. Utilisez l'explorateur de requêtes pour le SQL BigQuery ad hoc.",
|
|
4918
4884
|
},
|
|
4919
4885
|
chat: {
|
|
4920
4886
|
emptyState:
|
|
@@ -5133,10 +5099,6 @@ export const messagesByLocale = {
|
|
|
5133
5099
|
credentialsDescription:
|
|
5134
5100
|
"API-Schlüssel und Anmeldedaten werden auf der Seite Datenquellen verwaltet.",
|
|
5135
5101
|
manageDataSources: "Datenquellen verwalten",
|
|
5136
|
-
dashboardTemplates: "Dashboard-Vorlagen",
|
|
5137
|
-
dashboardTemplatesDescription:
|
|
5138
|
-
"Installiere ein quellkontrolliertes Dashboard, wenn du einen Ausgangspunkt brauchst.",
|
|
5139
|
-
openDashboardTemplates: "Katalog öffnen",
|
|
5140
5102
|
languageTitle: "Sprache",
|
|
5141
5103
|
languageLabel: "Oberflächensprache",
|
|
5142
5104
|
errorEmailNotifications: "Neue Fehlerwarnungen per E-Mail erhalten",
|
|
@@ -5149,11 +5111,6 @@ export const messagesByLocale = {
|
|
|
5149
5111
|
"Einen Ton abspielen, wenn der Agent einen Lauf beendet. Standardmäßig deaktiviert.",
|
|
5150
5112
|
bellSoundSaveFailed:
|
|
5151
5113
|
"Die Toneinstellung konnte nicht gespeichert werden.",
|
|
5152
|
-
about: "Info",
|
|
5153
|
-
aboutDescription:
|
|
5154
|
-
"Analytics verbindet Datenquellen und erstellt benutzerdefinierte Dashboards. Verbinde Google Analytics, BigQuery, Stripe und mehr und bitte den Agenten, Dashboards zu erstellen.",
|
|
5155
|
-
aboutUsage:
|
|
5156
|
-
"Verwalte Verbindungen auf der Seite Datenquellen. Nutze den Query Explorer für Ad-hoc-BigQuery-SQL.",
|
|
5157
5114
|
},
|
|
5158
5115
|
chat: {
|
|
5159
5116
|
emptyState:
|
|
@@ -5363,10 +5320,6 @@ export const messagesByLocale = {
|
|
|
5363
5320
|
credentialsDescription:
|
|
5364
5321
|
"API キーと認証情報はデータソースページで管理します。",
|
|
5365
5322
|
manageDataSources: "データソースを管理",
|
|
5366
|
-
dashboardTemplates: "ダッシュボードテンプレート",
|
|
5367
|
-
dashboardTemplatesDescription:
|
|
5368
|
-
"出発点が必要なときは、ソース管理されたダッシュボードをインストールします。",
|
|
5369
|
-
openDashboardTemplates: "カタログを開く",
|
|
5370
5323
|
languageTitle: "言語",
|
|
5371
5324
|
languageLabel: "インターフェース言語",
|
|
5372
5325
|
errorEmailNotifications: "新しいエラーアラートをメールで受け取る",
|
|
@@ -5377,11 +5330,6 @@ export const messagesByLocale = {
|
|
|
5377
5330
|
bellSoundDescription:
|
|
5378
5331
|
"エージェントが実行を完了したときにサウンドを再生します。デフォルトでオフです。",
|
|
5379
5332
|
bellSoundSaveFailed: "サウンド設定を保存できませんでした。",
|
|
5380
|
-
about: "概要",
|
|
5381
|
-
aboutDescription:
|
|
5382
|
-
"Analytics はデータソースを接続し、カスタムダッシュボードを作成するツールです。Google Analytics、BigQuery、Stripe などを接続し、エージェントにダッシュボード作成を依頼できます。",
|
|
5383
|
-
aboutUsage:
|
|
5384
|
-
"接続はデータソースページで管理します。アドホックな BigQuery SQL にはクエリエクスプローラーを使います。",
|
|
5385
5333
|
},
|
|
5386
5334
|
chat: {
|
|
5387
5335
|
emptyState:
|
|
@@ -5590,10 +5538,6 @@ export const messagesByLocale = {
|
|
|
5590
5538
|
credentialsDescription:
|
|
5591
5539
|
"API 키와 자격 증명은 데이터 소스 페이지에서 관리합니다.",
|
|
5592
5540
|
manageDataSources: "데이터 소스 관리",
|
|
5593
|
-
dashboardTemplates: "대시보드 템플릿",
|
|
5594
|
-
dashboardTemplatesDescription:
|
|
5595
|
-
"시작점이 필요할 때 소스 제어된 대시보드를 설치하세요.",
|
|
5596
|
-
openDashboardTemplates: "카탈로그 열기",
|
|
5597
5541
|
languageTitle: "언어",
|
|
5598
5542
|
languageLabel: "인터페이스 언어",
|
|
5599
5543
|
errorEmailNotifications: "새 오류 알림을 이메일로 받기",
|
|
@@ -5604,11 +5548,6 @@ export const messagesByLocale = {
|
|
|
5604
5548
|
bellSoundDescription:
|
|
5605
5549
|
"에이전트가 실행을 완료하면 소리를 재생합니다. 기본값은 꺼짐입니다.",
|
|
5606
5550
|
bellSoundSaveFailed: "소리 설정을 저장하지 못했습니다.",
|
|
5607
|
-
about: "정보",
|
|
5608
|
-
aboutDescription:
|
|
5609
|
-
"Analytics는 데이터 소스를 연결하고 사용자 지정 대시보드를 만드는 도구입니다. Google Analytics, BigQuery, Stripe 등을 연결한 뒤 에이전트에게 대시보드를 만들게 하세요.",
|
|
5610
|
-
aboutUsage:
|
|
5611
|
-
"데이터 소스 페이지에서 연결을 관리합니다. 임시 BigQuery SQL은 쿼리 탐색기를 사용하세요.",
|
|
5612
5551
|
},
|
|
5613
5552
|
chat: {
|
|
5614
5553
|
emptyState:
|
|
@@ -5821,10 +5760,6 @@ export const messagesByLocale = {
|
|
|
5821
5760
|
credentialsDescription:
|
|
5822
5761
|
"Chaves de API e credenciais são gerenciadas na página Fontes de dados.",
|
|
5823
5762
|
manageDataSources: "Gerenciar fontes de dados",
|
|
5824
|
-
dashboardTemplates: "Modelos de dashboard",
|
|
5825
|
-
dashboardTemplatesDescription:
|
|
5826
|
-
"Instale um dashboard controlado por código-fonte quando precisar de um ponto de partida.",
|
|
5827
|
-
openDashboardTemplates: "Abrir catálogo",
|
|
5828
5763
|
languageTitle: "Idioma",
|
|
5829
5764
|
languageLabel: "Idioma da interface",
|
|
5830
5765
|
errorEmailNotifications: "Receber novos alertas de erro por e-mail",
|
|
@@ -5836,11 +5771,6 @@ export const messagesByLocale = {
|
|
|
5836
5771
|
bellSoundDescription:
|
|
5837
5772
|
"Reproduzir um som quando o agente concluir uma execução. Desativado por padrão.",
|
|
5838
5773
|
bellSoundSaveFailed: "Não foi possível salvar a preferência de som.",
|
|
5839
|
-
about: "Sobre",
|
|
5840
|
-
aboutDescription:
|
|
5841
|
-
"Analytics conecta fontes de dados e cria dashboards personalizados. Conecte Google Analytics, BigQuery, Stripe e outros, depois peça ao agente para criar dashboards.",
|
|
5842
|
-
aboutUsage:
|
|
5843
|
-
"Use Fontes de dados para gerenciar conexões. Use o Explorador de consultas para SQL ad hoc do BigQuery.",
|
|
5844
5774
|
},
|
|
5845
5775
|
chat: {
|
|
5846
5776
|
emptyState:
|
|
@@ -6048,10 +5978,6 @@ export const messagesByLocale = {
|
|
|
6048
5978
|
credentialsDescription:
|
|
6049
5979
|
"API कुंजियां और क्रेडेंशियल डेटा स्रोत पेज पर प्रबंधित होते हैं।",
|
|
6050
5980
|
manageDataSources: "डेटा स्रोत प्रबंधित करें",
|
|
6051
|
-
dashboardTemplates: "डैशबोर्ड टेम्पलेट",
|
|
6052
|
-
dashboardTemplatesDescription:
|
|
6053
|
-
"जब आपको शुरुआत का आधार चाहिए, तो स्रोत-नियंत्रित डैशबोर्ड इंस्टॉल करें।",
|
|
6054
|
-
openDashboardTemplates: "कैटलॉग खोलें",
|
|
6055
5981
|
languageTitle: "भाषा",
|
|
6056
5982
|
languageLabel: "इंटरफ़ेस भाषा",
|
|
6057
5983
|
errorEmailNotifications: "नए त्रुटि अलर्ट ईमेल से प्राप्त करें",
|
|
@@ -6061,11 +5987,6 @@ export const messagesByLocale = {
|
|
|
6061
5987
|
bellSound: "पूर्णता ध्वनि",
|
|
6062
5988
|
bellSoundDescription: "एजेंट के रन पूरा करने पर ध्वनि चलाएं। डिफ़ॉल्ट रूप से बंद।",
|
|
6063
5989
|
bellSoundSaveFailed: "ध्वनि प्राथमिकता सहेजी नहीं जा सकी।",
|
|
6064
|
-
about: "परिचय",
|
|
6065
|
-
aboutDescription:
|
|
6066
|
-
"Analytics डेटा स्रोतों को जोड़ने और कस्टम डैशबोर्ड बनाने का टूल है। Google Analytics, BigQuery, Stripe आदि जोड़ें, फिर एजेंट से डैशबोर्ड बनवाएं।",
|
|
6067
|
-
aboutUsage:
|
|
6068
|
-
"कनेक्शन प्रबंधित करने के लिए डेटा स्रोत पेज का उपयोग करें। ad-hoc BigQuery SQL के लिए Query Explorer उपयोग करें।",
|
|
6069
5990
|
},
|
|
6070
5991
|
chat: {
|
|
6071
5992
|
emptyState:
|
|
@@ -6272,10 +6193,6 @@ export const messagesByLocale = {
|
|
|
6272
6193
|
credentialsDescription:
|
|
6273
6194
|
"تتم إدارة مفاتيح API وبيانات الاعتماد من صفحة مصادر البيانات.",
|
|
6274
6195
|
manageDataSources: "إدارة مصادر البيانات",
|
|
6275
|
-
dashboardTemplates: "قوالب لوحات المعلومات",
|
|
6276
|
-
dashboardTemplatesDescription:
|
|
6277
|
-
"ثبّت لوحة معلومات مضبوطة في المصدر عندما تحتاج إلى نقطة بداية.",
|
|
6278
|
-
openDashboardTemplates: "افتح الكتالوج",
|
|
6279
6196
|
languageTitle: "اللغة",
|
|
6280
6197
|
languageLabel: "لغة الواجهة",
|
|
6281
6198
|
errorEmailNotifications:
|
|
@@ -6286,11 +6203,6 @@ export const messagesByLocale = {
|
|
|
6286
6203
|
bellSound: "صوت الجرس",
|
|
6287
6204
|
bellSoundDescription: "تشغيل صوت عند اكتمال تشغيل الوكيل. معطّل افتراضيًا.",
|
|
6288
6205
|
bellSoundSaveFailed: "تعذّر حفظ تفضيل الصوت.",
|
|
6289
|
-
about: "حول",
|
|
6290
|
-
aboutDescription:
|
|
6291
|
-
"Analytics أداة لربط مصادر البيانات وبناء لوحات معلومات مخصصة. اربط Google Analytics وBigQuery وStripe وغيرها، ثم اطلب من الوكيل إنشاء اللوحات.",
|
|
6292
|
-
aboutUsage:
|
|
6293
|
-
"استخدم صفحة مصادر البيانات لإدارة الاتصالات. استخدم مستكشف الاستعلامات لاستعلامات BigQuery SQL المخصصة.",
|
|
6294
6206
|
},
|
|
6295
6207
|
chat: {
|
|
6296
6208
|
emptyState:
|
|
@@ -489,9 +489,6 @@ export default function AgentsPage() {
|
|
|
489
489
|
</p>
|
|
490
490
|
</div>
|
|
491
491
|
<div className="flex shrink-0 items-center gap-2">
|
|
492
|
-
<Button variant="outline" size="sm" asChild>
|
|
493
|
-
<Link to="/catalog">{t("agents.openCatalog")}</Link>
|
|
494
|
-
</Button>
|
|
495
492
|
{canManageOrg ? (
|
|
496
493
|
<DropdownMenu>
|
|
497
494
|
<DropdownMenuTrigger asChild>
|
|
@@ -41,7 +41,6 @@ import { buildAnalyticsGeneralSettingsSearchEntries } from "./settings/settings-
|
|
|
41
41
|
|
|
42
42
|
export default function Settings() {
|
|
43
43
|
const t = useT();
|
|
44
|
-
const agentSettingsTabs = useAgentSettingsTabs();
|
|
45
44
|
const replayStorageStatus = useReplayStorageStatus();
|
|
46
45
|
const { data: analyticsPrefs, isLoading: analyticsPrefsLoading } =
|
|
47
46
|
useActionQuery<AnalyticsUserPrefs>("get-user-pref", {
|
|
@@ -122,6 +121,23 @@ export default function Settings() {
|
|
|
122
121
|
});
|
|
123
122
|
};
|
|
124
123
|
|
|
124
|
+
const agentAdditionalContent = (
|
|
125
|
+
<SettingsRow
|
|
126
|
+
id="bell-sound"
|
|
127
|
+
label={t("settings.bellSound")}
|
|
128
|
+
description={t("settings.bellSoundDescription")}
|
|
129
|
+
control={
|
|
130
|
+
<Switch
|
|
131
|
+
aria-label={t("settings.bellSound")}
|
|
132
|
+
checked={bellSoundEnabled}
|
|
133
|
+
disabled={analyticsPrefsLoading || saveAnalyticsPrefs.isPending}
|
|
134
|
+
onCheckedChange={saveBellSoundPreference}
|
|
135
|
+
/>
|
|
136
|
+
}
|
|
137
|
+
/>
|
|
138
|
+
);
|
|
139
|
+
const agentSettingsTabs = useAgentSettingsTabs({ agentAdditionalContent });
|
|
140
|
+
|
|
125
141
|
const extraTabs = useMemo<SettingsTabItem[]>(
|
|
126
142
|
() => [
|
|
127
143
|
{
|
|
@@ -130,7 +146,7 @@ export default function Settings() {
|
|
|
130
146
|
icon: IconBell,
|
|
131
147
|
keywords: "alerts rules notifications thresholds triggers monitoring",
|
|
132
148
|
content: (
|
|
133
|
-
<div className="
|
|
149
|
+
<div className="w-full">
|
|
134
150
|
<AlertRulesSettingsCard />
|
|
135
151
|
</div>
|
|
136
152
|
),
|
|
@@ -157,7 +173,7 @@ export default function Settings() {
|
|
|
157
173
|
extraTabs={extraTabs}
|
|
158
174
|
generalSearchEntries={generalSearchEntries}
|
|
159
175
|
general={
|
|
160
|
-
<div className="
|
|
176
|
+
<div className="w-full space-y-6">
|
|
161
177
|
<SettingsGroup className="bg-card border-border/50">
|
|
162
178
|
<SettingsRow
|
|
163
179
|
id="credentials"
|
|
@@ -171,18 +187,6 @@ export default function Settings() {
|
|
|
171
187
|
</Button>
|
|
172
188
|
}
|
|
173
189
|
/>
|
|
174
|
-
<SettingsRow
|
|
175
|
-
id="dashboard-templates"
|
|
176
|
-
label={t("settings.dashboardTemplates")}
|
|
177
|
-
description={t("settings.dashboardTemplatesDescription")}
|
|
178
|
-
control={
|
|
179
|
-
<Button variant="outline" size="sm" asChild>
|
|
180
|
-
<Link to="/catalog">
|
|
181
|
-
{t("settings.openDashboardTemplates")}
|
|
182
|
-
</Link>
|
|
183
|
-
</Button>
|
|
184
|
-
}
|
|
185
|
-
/>
|
|
186
190
|
<SettingsRow
|
|
187
191
|
id="language"
|
|
188
192
|
label={t("settings.languageTitle")}
|
|
@@ -207,21 +211,6 @@ export default function Settings() {
|
|
|
207
211
|
/>
|
|
208
212
|
}
|
|
209
213
|
/>
|
|
210
|
-
<SettingsRow
|
|
211
|
-
id="bell-sound"
|
|
212
|
-
label={t("settings.bellSound")}
|
|
213
|
-
description={t("settings.bellSoundDescription")}
|
|
214
|
-
control={
|
|
215
|
-
<Switch
|
|
216
|
-
aria-label={t("settings.bellSound")}
|
|
217
|
-
checked={bellSoundEnabled}
|
|
218
|
-
disabled={
|
|
219
|
-
analyticsPrefsLoading || saveAnalyticsPrefs.isPending
|
|
220
|
-
}
|
|
221
|
-
onCheckedChange={saveBellSoundPreference}
|
|
222
|
-
/>
|
|
223
|
-
}
|
|
224
|
-
/>
|
|
225
214
|
</SettingsGroup>
|
|
226
215
|
|
|
227
216
|
{replayStorageStatus.data?.configured ? (
|
|
@@ -242,29 +231,19 @@ export default function Settings() {
|
|
|
242
231
|
</CardContent>
|
|
243
232
|
</Card>
|
|
244
233
|
) : null}
|
|
245
|
-
|
|
246
|
-
<Card id="about" className="bg-card border-border/50 scroll-mt-16">
|
|
247
|
-
<CardHeader>
|
|
248
|
-
<CardTitle className="text-base">{t("settings.about")}</CardTitle>
|
|
249
|
-
</CardHeader>
|
|
250
|
-
<CardContent className="space-y-2 text-sm text-muted-foreground">
|
|
251
|
-
<p>{t("settings.aboutDescription")}</p>
|
|
252
|
-
<p>{t("settings.aboutUsage")}</p>
|
|
253
|
-
</CardContent>
|
|
254
|
-
</Card>
|
|
255
234
|
</div>
|
|
256
235
|
}
|
|
257
236
|
team={
|
|
258
|
-
<div className="
|
|
237
|
+
<div className="w-full">
|
|
259
238
|
<TeamPage
|
|
260
239
|
showTitle={false}
|
|
261
240
|
createOrgDescription="Set up a team to share dashboards and data sources with your colleagues."
|
|
262
|
-
className="
|
|
241
|
+
className="w-full"
|
|
263
242
|
/>
|
|
264
243
|
</div>
|
|
265
244
|
}
|
|
266
245
|
whatsNew={
|
|
267
|
-
<div className="
|
|
246
|
+
<div className="w-full">
|
|
268
247
|
<ChangelogSettingsCard markdown={changelog} />
|
|
269
248
|
</div>
|
|
270
249
|
}
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
getAgentSettingsSearchTabs,
|
|
3
3
|
type SettingsSearchEntry,
|
|
4
4
|
} from "@agent-native/core/client/settings";
|
|
5
|
+
import { buildSettingsRoute } from "@agent-native/core/navigation";
|
|
5
6
|
|
|
6
7
|
interface SettingsCommandItem {
|
|
7
8
|
id: string;
|
|
@@ -12,6 +13,20 @@ interface SettingsCommandItem {
|
|
|
12
13
|
|
|
13
14
|
type Translate = (key: string) => string;
|
|
14
15
|
|
|
16
|
+
function buildSettingsEntryRoute(tabId: string, section?: string): string {
|
|
17
|
+
const normalizedSection = section?.replace(/^#/, "").trim();
|
|
18
|
+
if (!normalizedSection || normalizedSection === tabId) {
|
|
19
|
+
return buildSettingsRoute(tabId);
|
|
20
|
+
}
|
|
21
|
+
if (normalizedSection.startsWith("agent:")) {
|
|
22
|
+
return buildSettingsRoute(normalizedSection);
|
|
23
|
+
}
|
|
24
|
+
if (normalizedSection.startsWith(`${tabId}:`)) {
|
|
25
|
+
return buildSettingsRoute(normalizedSection);
|
|
26
|
+
}
|
|
27
|
+
return buildSettingsRoute(`${tabId}:${normalizedSection}`);
|
|
28
|
+
}
|
|
29
|
+
|
|
15
30
|
export function buildAnalyticsGeneralSettingsSearchEntries(
|
|
16
31
|
t: Translate,
|
|
17
32
|
replayStorageConfigured: boolean,
|
|
@@ -21,6 +36,7 @@ export function buildAnalyticsGeneralSettingsSearchEntries(
|
|
|
21
36
|
id: "analytics-account",
|
|
22
37
|
label: t("settings.account"),
|
|
23
38
|
keywords: "profile photo avatar email signed in identity",
|
|
39
|
+
tabId: "account",
|
|
24
40
|
hash: "account",
|
|
25
41
|
},
|
|
26
42
|
{
|
|
@@ -29,12 +45,6 @@ export function buildAnalyticsGeneralSettingsSearchEntries(
|
|
|
29
45
|
keywords: "data sources api keys manage credentials",
|
|
30
46
|
hash: "credentials",
|
|
31
47
|
},
|
|
32
|
-
{
|
|
33
|
-
id: "analytics-dashboard-templates",
|
|
34
|
-
label: t("settings.dashboardTemplates"),
|
|
35
|
-
keywords: "templates catalog dashboards",
|
|
36
|
-
hash: "dashboard-templates",
|
|
37
|
-
},
|
|
38
48
|
...(replayStorageConfigured
|
|
39
49
|
? [
|
|
40
50
|
{
|
|
@@ -57,18 +67,6 @@ export function buildAnalyticsGeneralSettingsSearchEntries(
|
|
|
57
67
|
keywords: "email notifications errors alerts javascript monitoring",
|
|
58
68
|
hash: "error-email-notifications",
|
|
59
69
|
},
|
|
60
|
-
{
|
|
61
|
-
id: "analytics-bell-sound",
|
|
62
|
-
label: t("settings.bellSound"),
|
|
63
|
-
keywords: "sound audio ding agent completion notification",
|
|
64
|
-
hash: "bell-sound",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
id: "analytics-about",
|
|
68
|
-
label: t("settings.about"),
|
|
69
|
-
keywords: "about version info usage",
|
|
70
|
-
hash: "about",
|
|
71
|
-
},
|
|
72
70
|
];
|
|
73
71
|
}
|
|
74
72
|
|
|
@@ -118,18 +116,23 @@ export function buildAnalyticsSettingsCommandItems(
|
|
|
118
116
|
};
|
|
119
117
|
|
|
120
118
|
for (const tab of tabs) {
|
|
119
|
+
const entryHref = (entry: SettingsSearchEntry, tabId: string) => {
|
|
120
|
+
const hash = entry.hash?.replace(/^#/, "");
|
|
121
|
+
return buildSettingsEntryRoute(tabId, hash);
|
|
122
|
+
};
|
|
121
123
|
add({
|
|
122
124
|
id: `tab:${tab.id}`,
|
|
123
125
|
label: tab.label,
|
|
124
126
|
keywords: `${tab.keywords} settings`,
|
|
125
|
-
href:
|
|
127
|
+
href: buildSettingsRoute(tab.id),
|
|
126
128
|
});
|
|
127
129
|
for (const entry of tab.searchEntries ?? []) {
|
|
130
|
+
const tabId = entry.tabId ?? tab.id;
|
|
128
131
|
add({
|
|
129
132
|
id: entry.id,
|
|
130
133
|
label: entry.label,
|
|
131
134
|
keywords: `${entry.keywords ?? ""} ${entry.description ?? ""} ${tab.label} settings`,
|
|
132
|
-
href:
|
|
135
|
+
href: entryHref(entry, tabId),
|
|
133
136
|
});
|
|
134
137
|
}
|
|
135
138
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default, meta } from "./settings.js";
|
|
@@ -173,7 +173,7 @@ Agent Native observability panels belong in the canonical Agent Native dashboard
|
|
|
173
173
|
(`agent-native-templates-first-party`), including generation metrics, explicit
|
|
174
174
|
feedback sentiment, optional inferred message sentiment, and separate
|
|
175
175
|
by-main-model breakdowns. Do not publish or install a separate observability
|
|
176
|
-
dashboard
|
|
176
|
+
dashboard.
|
|
177
177
|
|
|
178
178
|
Example dashboard panel:
|
|
179
179
|
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
-- Builder.io production first-party Analytics warehouse.
|
|
2
|
+
-- Run this once with the authenticated Builder Google Cloud account:
|
|
3
|
+
-- bq query --use_legacy_sql=false < templates/analytics/scripts/first-party-analytics-bigquery.sql
|
|
4
|
+
--
|
|
5
|
+
-- The raw table is append-only. The query view removes retry duplicates by the
|
|
6
|
+
-- stable Postgres event id, and the two aggregate views preserve the existing
|
|
7
|
+
-- dashboard SQL names without writing rollups back to Neon.
|
|
8
|
+
|
|
9
|
+
CREATE SCHEMA IF NOT EXISTS `builder-3b0a2.analytics`
|
|
10
|
+
OPTIONS (location = "US");
|
|
11
|
+
|
|
12
|
+
CREATE TABLE IF NOT EXISTS `builder-3b0a2.analytics.first_party_analytics_events_raw` (
|
|
13
|
+
id STRING NOT NULL,
|
|
14
|
+
public_key_id STRING,
|
|
15
|
+
event_name STRING NOT NULL,
|
|
16
|
+
user_id STRING,
|
|
17
|
+
anonymous_id STRING,
|
|
18
|
+
user_key STRING,
|
|
19
|
+
session_id STRING,
|
|
20
|
+
timestamp TIMESTAMP NOT NULL,
|
|
21
|
+
event_date DATE,
|
|
22
|
+
received_at TIMESTAMP NOT NULL,
|
|
23
|
+
url STRING,
|
|
24
|
+
path STRING,
|
|
25
|
+
hostname STRING,
|
|
26
|
+
referrer STRING,
|
|
27
|
+
app STRING,
|
|
28
|
+
template STRING,
|
|
29
|
+
signed_in STRING,
|
|
30
|
+
properties STRING NOT NULL,
|
|
31
|
+
context STRING NOT NULL,
|
|
32
|
+
owner_email STRING NOT NULL,
|
|
33
|
+
org_id STRING
|
|
34
|
+
)
|
|
35
|
+
PARTITION BY event_date
|
|
36
|
+
CLUSTER BY owner_email, org_id, event_name, app;
|
|
37
|
+
|
|
38
|
+
CREATE OR REPLACE VIEW `builder-3b0a2.analytics.first_party_analytics_events_raw_query` AS
|
|
39
|
+
SELECT * EXCEPT (_row_number)
|
|
40
|
+
FROM (
|
|
41
|
+
SELECT
|
|
42
|
+
raw.*,
|
|
43
|
+
ROW_NUMBER() OVER (PARTITION BY id ORDER BY received_at DESC) AS _row_number
|
|
44
|
+
FROM `builder-3b0a2.analytics.first_party_analytics_events_raw` AS raw
|
|
45
|
+
)
|
|
46
|
+
WHERE _row_number = 1;
|
|
47
|
+
|
|
48
|
+
CREATE OR REPLACE VIEW `builder-3b0a2.analytics.first_party_analytics_events_raw_daily_rollups` AS
|
|
49
|
+
WITH tenant_events AS (
|
|
50
|
+
SELECT
|
|
51
|
+
CASE
|
|
52
|
+
WHEN org_id IS NOT NULL AND org_id <> '' THEN CONCAT('org:', org_id)
|
|
53
|
+
ELSE CONCAT('user:', owner_email)
|
|
54
|
+
END AS tenant_key,
|
|
55
|
+
owner_email,
|
|
56
|
+
org_id,
|
|
57
|
+
event_date,
|
|
58
|
+
event_name,
|
|
59
|
+
COALESCE(app, '') AS app,
|
|
60
|
+
COALESCE(template, '') AS template
|
|
61
|
+
FROM `builder-3b0a2.analytics.first_party_analytics_events_raw_query`
|
|
62
|
+
WHERE event_date IS NOT NULL
|
|
63
|
+
)
|
|
64
|
+
SELECT
|
|
65
|
+
TO_HEX(SHA256(CONCAT(
|
|
66
|
+
tenant_key, '|', CAST(event_date AS STRING), '|', event_name, '|', app,
|
|
67
|
+
'|', template
|
|
68
|
+
))) AS id,
|
|
69
|
+
tenant_key,
|
|
70
|
+
ANY_VALUE(owner_email) AS owner_email,
|
|
71
|
+
ANY_VALUE(org_id) AS org_id,
|
|
72
|
+
event_date,
|
|
73
|
+
event_name,
|
|
74
|
+
app,
|
|
75
|
+
template,
|
|
76
|
+
COUNT(*) AS event_count
|
|
77
|
+
FROM tenant_events
|
|
78
|
+
GROUP BY tenant_key, event_date, event_name, app, template;
|
|
79
|
+
|
|
80
|
+
CREATE OR REPLACE VIEW `builder-3b0a2.analytics.first_party_analytics_events_raw_user_days` AS
|
|
81
|
+
WITH tenant_user_days AS (
|
|
82
|
+
SELECT
|
|
83
|
+
CASE
|
|
84
|
+
WHEN org_id IS NOT NULL AND org_id <> '' THEN CONCAT('org:', org_id)
|
|
85
|
+
ELSE CONCAT('user:', owner_email)
|
|
86
|
+
END AS tenant_key,
|
|
87
|
+
owner_email,
|
|
88
|
+
org_id,
|
|
89
|
+
event_date,
|
|
90
|
+
user_key
|
|
91
|
+
FROM `builder-3b0a2.analytics.first_party_analytics_events_raw_query`
|
|
92
|
+
WHERE event_date IS NOT NULL AND user_key IS NOT NULL AND user_key <> ''
|
|
93
|
+
)
|
|
94
|
+
SELECT
|
|
95
|
+
TO_HEX(SHA256(CONCAT(
|
|
96
|
+
tenant_key, '|', CAST(event_date AS STRING), '|', user_key
|
|
97
|
+
))) AS id,
|
|
98
|
+
tenant_key,
|
|
99
|
+
ANY_VALUE(owner_email) AS owner_email,
|
|
100
|
+
ANY_VALUE(org_id) AS org_id,
|
|
101
|
+
event_date,
|
|
102
|
+
user_key
|
|
103
|
+
FROM tenant_user_days
|
|
104
|
+
GROUP BY tenant_key, event_date, user_key;
|
|
@@ -18,13 +18,11 @@ export const INITIAL_TOOL_NAMES = [
|
|
|
18
18
|
// while the agent lazily discovers the next mutating action.
|
|
19
19
|
"get-sql-dashboard",
|
|
20
20
|
"list-sql-dashboards",
|
|
21
|
-
"list-dashboard-templates",
|
|
22
21
|
"list-extensions",
|
|
23
22
|
"get-extension",
|
|
24
23
|
"update-dashboard",
|
|
25
24
|
"mutate-dashboard",
|
|
26
25
|
"compose-dashboard",
|
|
27
|
-
"install-dashboard-template",
|
|
28
26
|
"create-extension",
|
|
29
27
|
"update-extension",
|
|
30
28
|
"extension-data-set",
|