@agent-native/core 0.97.0 → 0.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +32 -0
- package/corpus/core/docs/content/authentication.mdx +3 -3
- package/corpus/core/docs/content/doctor.mdx +170 -0
- package/corpus/core/docs/content/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/security.mdx +2 -0
- package/corpus/core/docs/content/locales/de-DE/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/security.mdx +2 -0
- package/corpus/core/docs/content/locales/es-ES/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/security.mdx +2 -0
- package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/security.mdx +2 -0
- package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/security.mdx +2 -0
- package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/security.mdx +2 -0
- package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/security.mdx +2 -0
- package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/security.mdx +2 -0
- package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/security.mdx +2 -0
- package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +8 -7
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/security.mdx +2 -0
- package/corpus/core/docs/content/mcp-protocol.mdx +1 -1
- package/corpus/core/docs/content/security.mdx +2 -0
- package/corpus/core/package.json +5 -1
- package/corpus/core/scripts/finalize-build.mjs +63 -3
- package/corpus/core/scripts/materialize-source-corpus.mjs +101 -15
- package/corpus/core/src/action.ts +42 -0
- package/corpus/core/src/agent/engine/builder-engine.ts +3 -0
- package/corpus/core/src/agent/engine/context-directives-transform.ts +69 -0
- package/corpus/core/src/agent/engine/continuation-dispatch-retry.ts +168 -0
- package/corpus/core/src/agent/engine/tool-call-journal-seed.ts +85 -0
- package/corpus/core/src/agent/production-agent.ts +129 -244
- package/corpus/core/src/cli/doctor.ts +9 -3
- package/corpus/core/src/cli/plan-local.ts +10 -2
- package/corpus/core/src/cli/skills-content/assets-skill.ts +83 -0
- package/corpus/core/src/cli/skills-content/canvas.ts +153 -0
- package/corpus/core/src/cli/skills-content/connection.ts +52 -0
- package/corpus/core/src/cli/skills-content/content-skill.ts +109 -0
- package/corpus/core/src/cli/skills-content/design-exploration-skill.ts +118 -0
- package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +228 -0
- package/corpus/core/src/cli/skills-content/document-quality.ts +196 -0
- package/corpus/core/src/cli/skills-content/exemplar.ts +69 -0
- package/corpus/core/src/cli/skills-content/help.ts +77 -0
- package/corpus/core/src/cli/skills-content/index.ts +22 -0
- package/corpus/core/src/cli/skills-content/local-files.ts +95 -0
- package/corpus/core/src/cli/skills-content/plan-setup-auth.ts +80 -0
- package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +470 -0
- package/corpus/core/src/cli/skills-content/visual-recap-skill.ts +547 -0
- package/corpus/core/src/cli/skills-content/visualize-repo-skill.ts +93 -0
- package/corpus/core/src/cli/skills-content/wireframe.ts +349 -0
- package/corpus/core/src/cli/skills.ts +27 -2733
- package/corpus/core/src/client/AgentPanel.tsx +6 -5
- package/corpus/core/src/client/CommandMenu.tsx +16 -5
- package/corpus/core/src/client/FeedbackButton.tsx +2 -2
- package/corpus/core/src/client/app-providers.tsx +18 -5
- package/corpus/core/src/client/chat/tool-call-display.tsx +3 -3
- package/corpus/core/src/client/composer/PastedTextChip.tsx +1 -1
- package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +143 -45
- package/corpus/core/src/client/composer/TiptapComposer.tsx +1 -1
- package/corpus/core/src/client/composer/VoiceButton.tsx +21 -5
- package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +107 -10
- package/corpus/core/src/client/context-xray/ContextXRayPanel.tsx +5 -2
- package/corpus/core/src/client/extensions/ExtensionEditor.tsx +37 -4
- package/corpus/core/src/client/extensions/ExtensionQueryErrorState.tsx +47 -0
- package/corpus/core/src/client/extensions/ExtensionSlot.tsx +39 -10
- package/corpus/core/src/client/extensions/ExtensionViewer.tsx +44 -6
- package/corpus/core/src/client/extensions/ExtensionsListPage.tsx +12 -3
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +49 -11
- package/corpus/core/src/client/index.ts +0 -13
- package/corpus/core/src/client/progress/RunsTray.tsx +10 -3
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +7 -0
- package/corpus/core/src/client/settings/useBuilderStatus.ts +6 -0
- package/corpus/core/src/client/tool-cells/EditCell.tsx +19 -16
- package/corpus/core/src/client/tool-cells/FilesChangedSummary.tsx +26 -23
- package/corpus/core/src/client/tool-cells/WriteCell.tsx +19 -16
- package/corpus/core/src/client/visual-style-controls.tsx +1 -1
- package/corpus/core/src/deploy/build.ts +36 -14
- package/corpus/core/src/integrations/google-docs-poller.ts +23 -2
- package/corpus/core/src/integrations/plugin.ts +10 -0
- package/corpus/core/src/integrations/webhook-handler.ts +27 -2
- package/corpus/core/src/jobs/scheduler.ts +28 -2
- package/corpus/core/src/localization/default-messages.ts +8 -1
- package/corpus/core/src/mcp/oauth-token.ts +6 -1
- package/corpus/core/src/observability/routes.ts +36 -0
- package/corpus/core/src/observability/sentiment.ts +261 -0
- package/corpus/core/src/observability/store.ts +23 -0
- package/corpus/core/src/observability/traces.ts +49 -63
- package/corpus/core/src/observability/tracking-identity.ts +55 -0
- package/corpus/core/src/observability/types.ts +13 -0
- package/corpus/core/src/secrets/storage.ts +67 -3
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +199 -0
- package/corpus/core/src/server/agent-chat/browser-team-tools.ts +510 -0
- package/corpus/core/src/server/agent-chat/context-tools.ts +595 -0
- package/corpus/core/src/server/agent-chat/framework-prompts.ts +470 -0
- package/corpus/core/src/server/agent-chat/lazy-fs.ts +11 -0
- package/corpus/core/src/server/agent-chat/mcp-glue.ts +91 -0
- package/corpus/core/src/server/agent-chat/plugin-options.ts +350 -0
- package/corpus/core/src/server/agent-chat/process-run-failure.ts +62 -0
- package/corpus/core/src/server/agent-chat/prompt-resources.ts +688 -0
- package/corpus/core/src/server/agent-chat/recurring-jobs-runtime.ts +80 -0
- package/corpus/core/src/server/agent-chat/request-surface.ts +71 -0
- package/corpus/core/src/server/agent-chat/run-code-tools.ts +67 -0
- package/corpus/core/src/server/agent-chat/script-entries.ts +779 -0
- package/corpus/core/src/server/agent-chat/shared-thread.ts +301 -0
- package/corpus/core/src/server/agent-chat/skill-frontmatter.ts +41 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +364 -4182
- package/corpus/core/src/server/agent-teams.ts +26 -3
- package/corpus/core/src/server/auth.ts +55 -57
- package/corpus/core/src/server/credential-provider.ts +22 -25
- package/corpus/core/src/server/edge.ts +1 -0
- package/corpus/core/src/server/onboarding-html.ts +1 -16
- package/corpus/core/src/server/realtime-voice.ts +40 -5
- package/corpus/core/src/server/request-origin.ts +6 -2
- package/corpus/core/src/server/ssr-handler.ts +55 -2
- package/corpus/core/src/sharing/access.ts +155 -11
- package/corpus/core/src/sharing/registry.ts +7 -0
- package/corpus/core/src/styles/agent-native.css +15 -14
- package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/de-DE.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/es-ES.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +6 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +6 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
- package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
- package/corpus/core/src/templates/workspace-core/src/server/index.ts +4 -2
- package/corpus/core/src/testing.ts +26 -0
- package/corpus/core/src/triggers/dispatcher.ts +23 -2
- package/corpus/core/src/vite/client.ts +126 -2
- package/corpus/core/tsconfig.cli.json +1 -1
- package/corpus/core/tsconfig.json +5 -1
- package/corpus/templates/analytics/.agents/skills/bigquery/SKILL.md +2 -2
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/analytics/AGENTS.md +19 -6
- package/corpus/templates/analytics/actions/install-dashboard-template.ts +79 -43
- package/corpus/templates/analytics/actions/list-explorer-dashboards.ts +3 -3
- package/corpus/templates/analytics/actions/list-sql-dashboards.ts +8 -3
- package/corpus/templates/analytics/actions/rename-analysis.ts +8 -2
- package/corpus/templates/analytics/actions/rename-dashboard.ts +8 -7
- package/corpus/templates/analytics/actions/view-screen.ts +4 -23
- package/corpus/templates/analytics/app/components/ResourceLoadError.tsx +42 -0
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +85 -70
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +107 -89
- package/corpus/templates/analytics/app/components/layout/SidebarLoadError.tsx +24 -0
- package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +15 -5
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/analytics/app/i18n-data.ts +40 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +6 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +36 -20
- package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +34 -20
- package/corpus/templates/analytics/app/pages/adhoc/explorer/use-explorer-config.ts +42 -41
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +43 -36
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +11 -2
- package/corpus/templates/analytics/app/root.tsx +13 -1
- package/corpus/templates/analytics/app/routes/_index.tsx +14 -2
- package/corpus/templates/analytics/changelog/2026-07-03-agent-llm-observability-dashboard.md +1 -1
- package/corpus/templates/analytics/changelog/2026-07-11-agent-feedback-sentiment-dashboard.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-analytics-chats-now-start-faster-by-loading-metric-definitio.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-command-and-sql-previews-now-respond-without-lag.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-command-search-now-reports-loading-failures-and-lets-you-ret.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-dashboard-navigation-now-loads-faster-and-reports-request-fa.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-inferred-message-sentiment-dashboard.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-microphone-settings-from-realtime-voice-mode-now-open-the-vo.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-more-dashboard-edit-paths-are-now-safe-against-simultaneous-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-renaming-a-dashboard-is-now-safe-against-simultaneous-agent-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-renaming-an-analysis-is-now-safe-against-simultaneous-edits.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-11-workspace-mounted-analytics-now-opens-ask-reliably-and-route.md +6 -0
- package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +37 -3
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +339 -1
- package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +1 -24
- package/corpus/templates/analytics/server/lib/dashboard-seeds.ts +0 -5
- package/corpus/templates/analytics/server/lib/dashboards-store.ts +289 -20
- package/corpus/templates/analytics/server/lib/data-dictionary-context.ts +106 -34
- package/corpus/templates/analytics/server/lib/demo-dashboards.ts +4 -1
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -39
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +30 -4
- package/corpus/templates/assets/app/routes/library.tsx +49 -5
- package/corpus/templates/assets/changelog/2026-07-11-library-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/calendar/.env.example +5 -0
- package/corpus/templates/calendar/app/components/calendar/EventCard.tsx +2 -2
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/calendar/app/i18n-data.ts +20 -0
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +37 -1
- package/corpus/templates/calendar/app/pages/BookingsList.tsx +20 -3
- package/corpus/templates/calendar/changelog/2026-07-11-booking-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-11-event-cards-give-subtle-press-feedback-and-smoother-hover.md +6 -0
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/clips/actions/decline-invite.ts +8 -0
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +209 -187
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +2 -2
- package/corpus/templates/clips/app/components/player/reactions-tray.tsx +17 -5
- package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -3
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +2 -2
- package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +119 -95
- package/corpus/templates/clips/app/global.css +45 -0
- package/corpus/templates/clips/app/root.tsx +4 -0
- package/corpus/templates/clips/app/routes/_app.notifications.tsx +23 -2
- package/corpus/templates/clips/app/routes/_app.trash.tsx +24 -2
- package/corpus/templates/clips/changelog/2026-07-11-controls-and-folders-now-move-more-smoothly.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-11-declining-an-invitation-now-requires-being-its-recipient.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-11-recording-overlays-are-lighter-weight-and-no-longer-cause-pa.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-11-workspace-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/overlay.css +34 -5
- package/corpus/templates/clips/chrome-extension/src/styles.css +2 -2
- package/corpus/templates/clips/desktop/src/styles.css +71 -26
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/content/actions/move-document.ts +34 -18
- package/corpus/templates/content/app/components/QueryErrorState.tsx +39 -0
- package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +1 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +225 -1435
- package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +368 -0
- package/corpus/templates/content/app/components/editor/database/ListView.tsx +353 -0
- package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +580 -0
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +11 -2
- package/corpus/templates/content/app/global.css +19 -19
- package/corpus/templates/content/app/root.tsx +2 -2
- package/corpus/templates/content/app/routes/_app._index.tsx +11 -1
- package/corpus/templates/content/changelog/2026-07-11-document-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-editor-toggle-feedback-now-feels-more-responsive.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-moving-documents-at-the-same-time-no-longer-scrambles-their-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-public-document-chats-now-start-faster-while-keeping-full-do.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-reopening-a-comment-now-uses-consistent-permissions-everywhe.md +6 -0
- package/corpus/templates/content/changelog/2026-07-11-sidebar-resizing-now-tracks-your-cursor-instantly-instead-of.md +6 -0
- package/corpus/templates/content/server/lib/public-documents.ts +47 -10
- package/corpus/templates/content/server/routes/api/comments/[id].patch.ts +24 -24
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/design/app/components/QueryErrorState.tsx +24 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +5 -2
- package/corpus/templates/design/app/components/design/EditPanel.tsx +326 -319
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +198 -193
- package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +11 -4
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +1 -1
- package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -1
- package/corpus/templates/design/app/pages/Index.tsx +14 -2
- package/corpus/templates/design/app/pages/Present.tsx +16 -3
- package/corpus/templates/design/app/pages/Templates.tsx +10 -4
- package/corpus/templates/design/app/pages/design-editor/canvas-primitive-insert.ts +484 -0
- package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +378 -0
- package/corpus/templates/design/app/pages/design-editor/design-data-geometry-utils.ts +138 -0
- package/corpus/templates/design/app/pages/design-editor/dom-utils.ts +15 -0
- package/corpus/templates/design/app/pages/design-editor/generation-prompt-directives.ts +180 -0
- package/corpus/templates/design/app/pages/design-editor/html-layer-positioning.ts +226 -0
- package/corpus/templates/design/app/pages/design-editor/png-export-render.ts +348 -0
- package/corpus/templates/design/app/pages/design-editor/screen-command-utils.ts +160 -0
- package/corpus/templates/design/app/pages/design-editor/text-edit-utils.ts +238 -0
- package/corpus/templates/design/app/pages/design-editor/tool-state.ts +23 -1
- package/corpus/templates/design/app/pages/design-editor/types.ts +25 -0
- package/corpus/templates/design/app/root.tsx +10 -1
- package/corpus/templates/design/changelog/2026-07-11-canvas-context-menus-now-open-without-motion-jitter.md +6 -0
- package/corpus/templates/design/changelog/2026-07-11-design-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/design/changelog/2026-07-11-inspector-tooltips-appear-instantly-as-you-sweep-across-icon.md +6 -0
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +10 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +123 -0
- package/corpus/templates/dispatch/app/routes/integrations.tsx +163 -144
- package/corpus/templates/dispatch/changelog/2026-07-11-dispatch-mcp-connections-now-start-with-safer-app-access-and.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-11-overview-and-chat-now-share-a-cleaner-more-stable-flow.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-11-query-errors-now-show-a-retry-option.md +6 -0
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/forms/app/root.tsx +34 -8
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/macros/app/components/DailyProgress.tsx +25 -5
- package/corpus/templates/macros/app/components/QueryErrorState.tsx +31 -0
- package/corpus/templates/macros/app/components/WeightTracker.tsx +5 -1
- package/corpus/templates/macros/app/components/ui/button.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/progress.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/tabs.tsx +1 -1
- package/corpus/templates/macros/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/macros/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/macros/app/i18n/en-US.ts +2 -0
- package/corpus/templates/macros/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/macros/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/macros/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/macros/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/macros/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/macros/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/macros/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/macros/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/macros/app/routes/_index.tsx +22 -12
- package/corpus/templates/macros/app/routes/analytics.tsx +31 -10
- package/corpus/templates/macros/changelog/2026-07-11-daily-tracking-now-loads-and-updates-more-quickly.md +6 -0
- package/corpus/templates/macros/changelog/2026-07-11-data-load-failures-now-show-a-clear-error-with-a-retry-actio.md +6 -0
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/mail/.env.example +16 -11
- package/corpus/templates/mail/actions/list-emails.ts +39 -35
- package/corpus/templates/mail/app/components/email/ComposeModal.tsx +58 -6
- package/corpus/templates/mail/app/components/email/EmailListItem.tsx +35 -2
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +113 -104
- package/corpus/templates/mail/app/root.tsx +8 -10
- package/corpus/templates/mail/changelog/2026-07-11-compose-and-navigation-motion-now-feel-faster-and-smoother.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-11-swipe-to-archive-or-snooze-now-responds-to-quick-flicks-not-.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-11-the-assistant-now-sees-the-same-inbox-you-do-snoozed-mail-st.md +6 -0
- package/corpus/templates/mail/server/handlers/emails.ts +25 -69
- package/corpus/templates/mail/server/lib/list-inbox-emails.ts +169 -0
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/plan/.env.example +4 -0
- package/corpus/templates/plan/actions/create-plan-design.ts +89 -81
- package/corpus/templates/plan/actions/create-prototype-plan.ts +72 -59
- package/corpus/templates/plan/actions/create-ui-plan.ts +70 -55
- package/corpus/templates/plan/actions/create-visual-plan.ts +65 -51
- package/corpus/templates/plan/actions/update-local-plan-folder.ts +43 -30
- package/corpus/templates/plan/actions/update-visual-plan.ts +81 -64
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +17 -0
- package/corpus/templates/plan/app/components/ui/tabs.tsx +1 -1
- package/corpus/templates/plan/app/i18n/ar-SA.ts +10 -0
- package/corpus/templates/plan/app/i18n/de-DE.ts +10 -0
- package/corpus/templates/plan/app/i18n/en-US.ts +10 -0
- package/corpus/templates/plan/app/i18n/es-ES.ts +10 -0
- package/corpus/templates/plan/app/i18n/fr-FR.ts +10 -0
- package/corpus/templates/plan/app/i18n/hi-IN.ts +10 -0
- package/corpus/templates/plan/app/i18n/ja-JP.ts +10 -0
- package/corpus/templates/plan/app/i18n/ko-KR.ts +10 -0
- package/corpus/templates/plan/app/i18n/pt-BR.ts +10 -0
- package/corpus/templates/plan/app/i18n/zh-CN.ts +10 -0
- package/corpus/templates/plan/app/i18n/zh-TW.ts +10 -0
- package/corpus/templates/plan/app/lib/plan-local-bridge.ts +80 -1
- package/corpus/templates/plan/app/pages/PlansPage.tsx +152 -4
- package/corpus/templates/plan/app/root.tsx +11 -0
- package/corpus/templates/plan/changelog/2026-07-11-local-plans-now-explain-and-recover-from-browser-permission-.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-11-plan-edits-now-save-atomically-and-can-no-longer-partially-a.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-11-plan-lists-now-show-a-clear-error-with-a-retry-action-when-t.md +6 -0
- package/corpus/templates/plan/shared/plan-content.ts +546 -260
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +1 -1
- package/corpus/templates/slides/actions/delete-slide-comment.ts +49 -0
- package/corpus/templates/slides/actions/update-slide-comment.ts +93 -0
- package/corpus/templates/slides/actions/view-screen.ts +14 -6
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +33 -10
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +2 -2
- package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +4 -2
- package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +4 -3
- package/corpus/templates/slides/app/context/DeckContext.tsx +9 -0
- package/corpus/templates/slides/app/i18n/ar-SA.ts +6 -0
- package/corpus/templates/slides/app/i18n/de-DE.ts +6 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +6 -0
- package/corpus/templates/slides/app/i18n/es-ES.ts +6 -0
- package/corpus/templates/slides/app/i18n/fr-FR.ts +6 -0
- package/corpus/templates/slides/app/i18n/hi-IN.ts +6 -0
- package/corpus/templates/slides/app/i18n/ja-JP.ts +6 -0
- package/corpus/templates/slides/app/i18n/ko-KR.ts +6 -0
- package/corpus/templates/slides/app/i18n/pt-BR.ts +6 -0
- package/corpus/templates/slides/app/i18n/zh-CN.ts +5 -0
- package/corpus/templates/slides/app/i18n/zh-TW.ts +5 -0
- package/corpus/templates/slides/app/pages/DesignSystems.tsx +23 -2
- package/corpus/templates/slides/app/pages/Index.tsx +29 -1
- package/corpus/templates/slides/changelog/2026-07-11-comment-load-failures-now-show-a-retry-action-instead-of-say.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-comment-pins-now-clear-with-a-faster-smoother-confirmation.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-deck-and-design-system-load-failures-now-show-a-retry-action.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-editor-toggles-and-toolbar-menus-now-animate-smoothly.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-the-assistant-can-now-resolve-reopen-and-delete-slide-commen.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-11-viewing-slides-no-longer-loads-every-deck-s-full-contents-in.md +6 -0
- package/corpus/templates/slides/server/routes/api/comments/[id].delete.ts +29 -48
- package/corpus/templates/slides/server/routes/api/comments/[id].patch.ts +29 -65
- package/dist/action.d.ts +23 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +13 -0
- package/dist/action.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +3 -0
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/context-directives-transform.d.ts +25 -0
- package/dist/agent/engine/context-directives-transform.d.ts.map +1 -0
- package/dist/agent/engine/context-directives-transform.js +53 -0
- package/dist/agent/engine/context-directives-transform.js.map +1 -0
- package/dist/agent/engine/continuation-dispatch-retry.d.ts +40 -0
- package/dist/agent/engine/continuation-dispatch-retry.d.ts.map +1 -0
- package/dist/agent/engine/continuation-dispatch-retry.js +109 -0
- package/dist/agent/engine/continuation-dispatch-retry.js.map +1 -0
- package/dist/agent/engine/tool-call-journal-seed.d.ts +46 -0
- package/dist/agent/engine/tool-call-journal-seed.d.ts.map +1 -0
- package/dist/agent/engine/tool-call-journal-seed.js +60 -0
- package/dist/agent/engine/tool-call-journal-seed.js.map +1 -0
- package/dist/agent/production-agent.d.ts +7 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +102 -222
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +7 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/plan-local.d.ts.map +1 -1
- package/dist/cli/plan-local.js +8 -2
- package/dist/cli/plan-local.js.map +1 -1
- package/dist/cli/skills-content/assets-skill.d.ts +2 -0
- package/dist/cli/skills-content/assets-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/assets-skill.js +84 -0
- package/dist/cli/skills-content/assets-skill.js.map +1 -0
- package/dist/cli/skills-content/canvas.d.ts +4 -0
- package/dist/cli/skills-content/canvas.d.ts.map +1 -0
- package/dist/cli/skills-content/canvas.js +152 -0
- package/dist/cli/skills-content/canvas.js.map +1 -0
- package/dist/cli/skills-content/connection.d.ts +2 -0
- package/dist/cli/skills-content/connection.d.ts.map +1 -0
- package/dist/cli/skills-content/connection.js +53 -0
- package/dist/cli/skills-content/connection.js.map +1 -0
- package/dist/cli/skills-content/content-skill.d.ts +2 -0
- package/dist/cli/skills-content/content-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/content-skill.js +110 -0
- package/dist/cli/skills-content/content-skill.js.map +1 -0
- package/dist/cli/skills-content/design-exploration-skill.d.ts +2 -0
- package/dist/cli/skills-content/design-exploration-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/design-exploration-skill.js +119 -0
- package/dist/cli/skills-content/design-exploration-skill.js.map +1 -0
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts +2 -0
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/design-visual-edit-skill.js +229 -0
- package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -0
- package/dist/cli/skills-content/document-quality.d.ts +4 -0
- package/dist/cli/skills-content/document-quality.d.ts.map +1 -0
- package/dist/cli/skills-content/document-quality.js +195 -0
- package/dist/cli/skills-content/document-quality.js.map +1 -0
- package/dist/cli/skills-content/exemplar.d.ts +4 -0
- package/dist/cli/skills-content/exemplar.d.ts.map +1 -0
- package/dist/cli/skills-content/exemplar.js +68 -0
- package/dist/cli/skills-content/exemplar.js.map +1 -0
- package/dist/cli/skills-content/help.d.ts +2 -0
- package/dist/cli/skills-content/help.d.ts.map +1 -0
- package/dist/cli/skills-content/help.js +78 -0
- package/dist/cli/skills-content/help.js.map +1 -0
- package/dist/cli/skills-content/index.d.ts +23 -0
- package/dist/cli/skills-content/index.d.ts.map +1 -0
- package/dist/cli/skills-content/index.js +23 -0
- package/dist/cli/skills-content/index.js.map +1 -0
- package/dist/cli/skills-content/local-files.d.ts +2 -0
- package/dist/cli/skills-content/local-files.d.ts.map +1 -0
- package/dist/cli/skills-content/local-files.js +96 -0
- package/dist/cli/skills-content/local-files.js.map +1 -0
- package/dist/cli/skills-content/plan-setup-auth.d.ts +9 -0
- package/dist/cli/skills-content/plan-setup-auth.d.ts.map +1 -0
- package/dist/cli/skills-content/plan-setup-auth.js +81 -0
- package/dist/cli/skills-content/plan-setup-auth.js.map +1 -0
- package/dist/cli/skills-content/visual-plan-skill.d.ts +2 -0
- package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/visual-plan-skill.js +471 -0
- package/dist/cli/skills-content/visual-plan-skill.js.map +1 -0
- package/dist/cli/skills-content/visual-recap-skill.d.ts +2 -0
- package/dist/cli/skills-content/visual-recap-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/visual-recap-skill.js +548 -0
- package/dist/cli/skills-content/visual-recap-skill.js.map +1 -0
- package/dist/cli/skills-content/visualize-repo-skill.d.ts +2 -0
- package/dist/cli/skills-content/visualize-repo-skill.d.ts.map +1 -0
- package/dist/cli/skills-content/visualize-repo-skill.js +94 -0
- package/dist/cli/skills-content/visualize-repo-skill.js.map +1 -0
- package/dist/cli/skills-content/wireframe.d.ts +4 -0
- package/dist/cli/skills-content/wireframe.d.ts.map +1 -0
- package/dist/cli/skills-content/wireframe.js +347 -0
- package/dist/cli/skills-content/wireframe.js.map +1 -0
- package/dist/cli/skills.d.ts +2 -10
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +2 -2710
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +4 -2
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +15 -3
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/FeedbackButton.js +2 -2
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/app-providers.d.ts +13 -5
- package/dist/client/app-providers.d.ts.map +1 -1
- package/dist/client/app-providers.js +9 -6
- package/dist/client/app-providers.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +4 -0
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +3 -3
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/composer/PastedTextChip.js +1 -1
- package/dist/client/composer/PastedTextChip.js.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts +3 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.js +35 -14
- package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/client/composer/TiptapComposer.js +1 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts +2 -0
- package/dist/client/composer/VoiceButton.d.ts.map +1 -1
- package/dist/client/composer/VoiceButton.js +9 -3
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.d.ts +5 -0
- package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.js +91 -12
- package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.js +4 -1
- package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
- package/dist/client/extensions/ExtensionEditor.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionEditor.js +15 -5
- package/dist/client/extensions/ExtensionEditor.js.map +1 -1
- package/dist/client/extensions/ExtensionQueryErrorState.d.ts +8 -0
- package/dist/client/extensions/ExtensionQueryErrorState.d.ts.map +1 -0
- package/dist/client/extensions/ExtensionQueryErrorState.js +11 -0
- package/dist/client/extensions/ExtensionQueryErrorState.js.map +1 -0
- package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionSlot.js +17 -7
- package/dist/client/extensions/ExtensionSlot.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +17 -7
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.js +5 -3
- package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +21 -8
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/index.d.ts +0 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -5
- package/dist/client/index.js.map +1 -1
- package/dist/client/progress/RunsTray.d.ts.map +1 -1
- package/dist/client/progress/RunsTray.js +7 -3
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js +4 -0
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts +2 -0
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +4 -0
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/tool-cells/EditCell.d.ts.map +1 -1
- package/dist/client/tool-cells/EditCell.js +2 -1
- package/dist/client/tool-cells/EditCell.js.map +1 -1
- package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -1
- package/dist/client/tool-cells/FilesChangedSummary.js +2 -1
- package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -1
- package/dist/client/tool-cells/WriteCell.d.ts.map +1 -1
- package/dist/client/tool-cells/WriteCell.js +2 -1
- package/dist/client/tool-cells/WriteCell.js.map +1 -1
- package/dist/client/visual-style-controls.js +1 -1
- package/dist/client/visual-style-controls.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +36 -14
- package/dist/deploy/build.js.map +1 -1
- package/dist/integrations/google-docs-poller.d.ts +7 -0
- package/dist/integrations/google-docs-poller.d.ts.map +1 -1
- package/dist/integrations/google-docs-poller.js +13 -3
- package/dist/integrations/google-docs-poller.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +10 -0
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts +11 -0
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +16 -4
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/scheduler.d.ts +12 -0
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +13 -3
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/localization/default-messages.d.ts +7 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +8 -1
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/oauth-token.d.ts +1 -1
- package/dist/mcp/oauth-token.d.ts.map +1 -1
- package/dist/mcp/oauth-token.js +6 -1
- package/dist/mcp/oauth-token.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts.map +1 -1
- package/dist/observability/routes.js +32 -0
- package/dist/observability/routes.js.map +1 -1
- package/dist/observability/sentiment.d.ts +42 -0
- package/dist/observability/sentiment.d.ts.map +1 -0
- package/dist/observability/sentiment.js +196 -0
- package/dist/observability/sentiment.js.map +1 -0
- package/dist/observability/store.d.ts +5 -0
- package/dist/observability/store.d.ts.map +1 -1
- package/dist/observability/store.js +17 -0
- package/dist/observability/store.js.map +1 -1
- package/dist/observability/traces.d.ts +2 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +42 -57
- package/dist/observability/traces.js.map +1 -1
- package/dist/observability/tracking-identity.d.ts +3 -0
- package/dist/observability/tracking-identity.d.ts.map +1 -0
- package/dist/observability/tracking-identity.js +51 -0
- package/dist/observability/tracking-identity.js.map +1 -0
- package/dist/observability/types.d.ts +10 -0
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/observability/types.js +3 -0
- package/dist/observability/types.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/storage.d.ts +6 -0
- package/dist/secrets/storage.d.ts.map +1 -1
- package/dist/secrets/storage.js +61 -3
- package/dist/secrets/storage.js.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.d.ts +50 -0
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -0
- package/dist/server/agent-chat/action-filters-a2a.js +127 -0
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -0
- package/dist/server/agent-chat/browser-team-tools.d.ts +21 -0
- package/dist/server/agent-chat/browser-team-tools.d.ts.map +1 -0
- package/dist/server/agent-chat/browser-team-tools.js +417 -0
- package/dist/server/agent-chat/browser-team-tools.js.map +1 -0
- package/dist/server/agent-chat/context-tools.d.ts +33 -0
- package/dist/server/agent-chat/context-tools.d.ts.map +1 -0
- package/dist/server/agent-chat/context-tools.js +520 -0
- package/dist/server/agent-chat/context-tools.js.map +1 -0
- package/dist/server/agent-chat/framework-prompts.d.ts +65 -0
- package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -0
- package/dist/server/agent-chat/framework-prompts.js +403 -0
- package/dist/server/agent-chat/framework-prompts.js.map +1 -0
- package/dist/server/agent-chat/lazy-fs.d.ts +2 -0
- package/dist/server/agent-chat/lazy-fs.d.ts.map +1 -0
- package/dist/server/agent-chat/lazy-fs.js +11 -0
- package/dist/server/agent-chat/lazy-fs.js.map +1 -0
- package/dist/server/agent-chat/mcp-glue.d.ts +9 -0
- package/dist/server/agent-chat/mcp-glue.d.ts.map +1 -0
- package/dist/server/agent-chat/mcp-glue.js +63 -0
- package/dist/server/agent-chat/mcp-glue.js.map +1 -0
- package/dist/server/agent-chat/plugin-options.d.ts +322 -0
- package/dist/server/agent-chat/plugin-options.d.ts.map +1 -0
- package/dist/server/agent-chat/plugin-options.js +2 -0
- package/dist/server/agent-chat/plugin-options.js.map +1 -0
- package/dist/server/agent-chat/process-run-failure.d.ts +12 -0
- package/dist/server/agent-chat/process-run-failure.d.ts.map +1 -0
- package/dist/server/agent-chat/process-run-failure.js +24 -0
- package/dist/server/agent-chat/process-run-failure.js.map +1 -0
- package/dist/server/agent-chat/prompt-resources.d.ts +28 -0
- package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -0
- package/dist/server/agent-chat/prompt-resources.js +514 -0
- package/dist/server/agent-chat/prompt-resources.js.map +1 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.d.ts +5 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.d.ts.map +1 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.js +53 -0
- package/dist/server/agent-chat/recurring-jobs-runtime.js.map +1 -0
- package/dist/server/agent-chat/request-surface.d.ts +8 -0
- package/dist/server/agent-chat/request-surface.d.ts.map +1 -0
- package/dist/server/agent-chat/request-surface.js +56 -0
- package/dist/server/agent-chat/request-surface.js.map +1 -0
- package/dist/server/agent-chat/run-code-tools.d.ts +17 -0
- package/dist/server/agent-chat/run-code-tools.d.ts.map +1 -0
- package/dist/server/agent-chat/run-code-tools.js +55 -0
- package/dist/server/agent-chat/run-code-tools.js.map +1 -0
- package/dist/server/agent-chat/script-entries.d.ts +47 -0
- package/dist/server/agent-chat/script-entries.d.ts.map +1 -0
- package/dist/server/agent-chat/script-entries.js +633 -0
- package/dist/server/agent-chat/script-entries.js.map +1 -0
- package/dist/server/agent-chat/shared-thread.d.ts +33 -0
- package/dist/server/agent-chat/shared-thread.d.ts.map +1 -0
- package/dist/server/agent-chat/shared-thread.js +242 -0
- package/dist/server/agent-chat/shared-thread.js.map +1 -0
- package/dist/server/agent-chat/skill-frontmatter.d.ts +7 -0
- package/dist/server/agent-chat/skill-frontmatter.d.ts.map +1 -0
- package/dist/server/agent-chat/skill-frontmatter.js +26 -0
- package/dist/server/agent-chat/skill-frontmatter.js.map +1 -0
- package/dist/server/agent-chat-plugin.d.ts +45 -486
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +173 -3005
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-teams.d.ts +10 -0
- package/dist/server/agent-teams.d.ts.map +1 -1
- package/dist/server/agent-teams.js +13 -3
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +50 -52
- package/dist/server/auth.js.map +1 -1
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +22 -21
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/edge.d.ts +1 -0
- package/dist/server/edge.d.ts.map +1 -1
- package/dist/server/edge.js +1 -0
- package/dist/server/edge.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +1 -16
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/realtime-voice.d.ts +3 -0
- package/dist/server/realtime-voice.d.ts.map +1 -1
- package/dist/server/realtime-voice.js +29 -5
- package/dist/server/realtime-voice.js.map +1 -1
- package/dist/server/request-origin.d.ts.map +1 -1
- package/dist/server/request-origin.js +6 -3
- package/dist/server/request-origin.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +47 -2
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/sharing/access.d.ts +63 -3
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +53 -15
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/registry.d.ts +7 -0
- package/dist/sharing/registry.d.ts.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/styles/agent-native.css +15 -14
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +1 -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/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
- package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
- package/dist/templates/workspace-core/src/server/index.ts +4 -2
- package/dist/testing.d.ts +16 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +16 -0
- package/dist/testing.js.map +1 -0
- package/dist/triggers/dispatcher.d.ts +7 -0
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js +13 -3
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/vite/client.d.ts +16 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +105 -2
- package/dist/vite/client.js.map +1 -1
- package/docs/content/authentication.mdx +3 -3
- package/docs/content/doctor.mdx +170 -0
- package/docs/content/external-agents.mdx +8 -7
- package/docs/content/locales/ar-SA/authentication.mdx +2 -2
- package/docs/content/locales/ar-SA/external-agents.mdx +8 -7
- package/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
- package/docs/content/locales/ar-SA/security.mdx +2 -0
- package/docs/content/locales/de-DE/authentication.mdx +1 -1
- package/docs/content/locales/de-DE/external-agents.mdx +8 -7
- package/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
- package/docs/content/locales/de-DE/security.mdx +2 -0
- package/docs/content/locales/es-ES/authentication.mdx +2 -2
- package/docs/content/locales/es-ES/external-agents.mdx +8 -7
- package/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
- package/docs/content/locales/es-ES/security.mdx +2 -0
- package/docs/content/locales/fr-FR/authentication.mdx +1 -1
- package/docs/content/locales/fr-FR/external-agents.mdx +8 -7
- package/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
- package/docs/content/locales/fr-FR/security.mdx +2 -0
- package/docs/content/locales/hi-IN/authentication.mdx +2 -2
- package/docs/content/locales/hi-IN/external-agents.mdx +8 -7
- package/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
- package/docs/content/locales/hi-IN/security.mdx +2 -0
- package/docs/content/locales/ja-JP/authentication.mdx +2 -2
- package/docs/content/locales/ja-JP/external-agents.mdx +8 -7
- package/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
- package/docs/content/locales/ja-JP/security.mdx +2 -0
- package/docs/content/locales/ko-KR/authentication.mdx +2 -2
- package/docs/content/locales/ko-KR/external-agents.mdx +8 -7
- package/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
- package/docs/content/locales/ko-KR/security.mdx +2 -0
- package/docs/content/locales/pt-BR/authentication.mdx +2 -2
- package/docs/content/locales/pt-BR/external-agents.mdx +8 -7
- package/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
- package/docs/content/locales/pt-BR/security.mdx +2 -0
- package/docs/content/locales/zh-CN/authentication.mdx +2 -2
- package/docs/content/locales/zh-CN/external-agents.mdx +8 -7
- package/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
- package/docs/content/locales/zh-CN/security.mdx +2 -0
- package/docs/content/locales/zh-TW/authentication.mdx +2 -2
- package/docs/content/locales/zh-TW/external-agents.mdx +8 -7
- package/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
- package/docs/content/locales/zh-TW/security.mdx +2 -0
- package/docs/content/mcp-protocol.mdx +1 -1
- package/docs/content/security.mdx +2 -0
- package/package.json +6 -2
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -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/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
- package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
- package/src/templates/workspace-core/src/server/index.ts +4 -2
- package/corpus/core/src/client/ProductionAgentPanel.tsx +0 -9
- package/corpus/core/src/client/auth-redirect-url.ts +0 -23
- package/corpus/core/src/client/useProductionAgent.ts +0 -253
- package/corpus/core/src/shared/auth-redirect-url.ts +0 -1
- package/corpus/templates/analytics/app/pages/Index.tsx +0 -16
- package/corpus/templates/analytics/seeds/dashboards/agent-observability-llm.json +0 -173
- package/dist/client/ProductionAgentPanel.d.ts +0 -6
- package/dist/client/ProductionAgentPanel.d.ts.map +0 -1
- package/dist/client/ProductionAgentPanel.js +0 -6
- package/dist/client/ProductionAgentPanel.js.map +0 -1
- package/dist/client/auth-redirect-url.d.ts +0 -2
- package/dist/client/auth-redirect-url.d.ts.map +0 -1
- package/dist/client/auth-redirect-url.js +0 -19
- package/dist/client/auth-redirect-url.js.map +0 -1
- package/dist/client/useProductionAgent.d.ts +0 -24
- package/dist/client/useProductionAgent.d.ts.map +0 -1
- package/dist/client/useProductionAgent.js +0 -179
- package/dist/client/useProductionAgent.js.map +0 -1
- package/dist/shared/auth-redirect-url.d.ts +0 -2
- package/dist/shared/auth-redirect-url.d.ts.map +0 -1
- package/dist/shared/auth-redirect-url.js +0 -2
- package/dist/shared/auth-redirect-url.js.map +0 -1
|
@@ -133,6 +133,7 @@ import type { ResourceAccess } from "@/lib/resource-access";
|
|
|
133
133
|
|
|
134
134
|
import { NewAnalysisDialog } from "./NewAnalysisDialog";
|
|
135
135
|
import { NewDashboardDialog } from "./NewDashboardDialog";
|
|
136
|
+
import { SidebarLoadError } from "./SidebarLoadError";
|
|
136
137
|
|
|
137
138
|
type AnalysisHiddenFilter = "visible" | "hidden";
|
|
138
139
|
|
|
@@ -277,7 +278,7 @@ function SidebarSectionSettingsPopover({
|
|
|
277
278
|
<PopoverTrigger asChild>
|
|
278
279
|
<button
|
|
279
280
|
type="button"
|
|
280
|
-
className="flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground/65 opacity-0 transition-
|
|
281
|
+
className="flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground/65 opacity-0 transition-[opacity,color,background-color] hover:bg-sidebar-accent hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring group-hover/section:opacity-100 data-[state=open]:opacity-100"
|
|
281
282
|
aria-label={settingsLabel}
|
|
282
283
|
>
|
|
283
284
|
<IconFilter className="h-3.5 w-3.5" />
|
|
@@ -600,7 +601,7 @@ function SortableRow({
|
|
|
600
601
|
<div ref={setNodeRef} style={style} className="group/item relative min-w-0">
|
|
601
602
|
<button
|
|
602
603
|
type="button"
|
|
603
|
-
className="absolute -start-4 top-1/2 z-10 -translate-y-1/2 cursor-grab rounded p-1 text-muted-foreground/30 opacity-0 transition-
|
|
604
|
+
className="absolute -start-4 top-1/2 z-10 -translate-y-1/2 cursor-grab rounded p-1 text-muted-foreground/30 opacity-0 transition-[opacity,color] hover:text-muted-foreground/60 group-hover/item:opacity-100 active:cursor-grabbing"
|
|
604
605
|
aria-label={t("sidebar.dragItemPersonal", { name })}
|
|
605
606
|
{...attributes}
|
|
606
607
|
{...listeners}
|
|
@@ -916,7 +917,7 @@ function SortableDashboardItem({
|
|
|
916
917
|
<div
|
|
917
918
|
key={sv.id}
|
|
918
919
|
className={cn(
|
|
919
|
-
"group/sv flex items-center gap-1 rounded-md pe-1 transition-
|
|
920
|
+
"group/sv flex items-center gap-1 rounded-md pe-1 transition-[opacity,color,background-color]",
|
|
920
921
|
isSubviewActive
|
|
921
922
|
? "bg-primary/10 text-primary"
|
|
922
923
|
: "text-muted-foreground/70 hover:bg-sidebar-accent/50 hover:text-primary",
|
|
@@ -975,7 +976,7 @@ function SortableDashboardItem({
|
|
|
975
976
|
<Tooltip>
|
|
976
977
|
<TooltipTrigger asChild>
|
|
977
978
|
<PopoverTrigger asChild>
|
|
978
|
-
<button className="opacity-0 group-hover/sv:opacity-100 p-0.5 rounded text-muted-foreground/50 hover:text-foreground transition-
|
|
979
|
+
<button className="opacity-0 group-hover/sv:opacity-100 p-0.5 rounded text-muted-foreground/50 hover:text-foreground transition-[opacity,color,background-color] shrink-0">
|
|
979
980
|
<IconTrash className="h-2.5 w-2.5" />
|
|
980
981
|
</button>
|
|
981
982
|
</PopoverTrigger>
|
|
@@ -1117,28 +1118,24 @@ type SqlDashboardListItem = {
|
|
|
1117
1118
|
async function fetchSqlDashboards(
|
|
1118
1119
|
t: (key: string) => string,
|
|
1119
1120
|
): Promise<SqlDashboardListItem[]> {
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
name
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
visibility
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
parentId
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
}));
|
|
1139
|
-
} catch {
|
|
1140
|
-
return [];
|
|
1141
|
-
}
|
|
1121
|
+
const rows = await callAction("list-sql-dashboards", {}, { method: "GET" });
|
|
1122
|
+
return (Array.isArray(rows) ? rows : [])
|
|
1123
|
+
.filter((d: any) => d && typeof d.id === "string" && d.id.length > 0)
|
|
1124
|
+
.map((d: any) => ({
|
|
1125
|
+
id: d.id,
|
|
1126
|
+
name:
|
|
1127
|
+
typeof d.name === "string" && d.name.trim().length > 0
|
|
1128
|
+
? d.name
|
|
1129
|
+
: t("sidebar.untitledDashboard"),
|
|
1130
|
+
visibility:
|
|
1131
|
+
d.visibility === "org" || d.visibility === "public"
|
|
1132
|
+
? (d.visibility as Visibility)
|
|
1133
|
+
: ("private" as Visibility),
|
|
1134
|
+
parentId:
|
|
1135
|
+
typeof d.parentId === "string" && d.parentId.trim().length > 0
|
|
1136
|
+
? d.parentId
|
|
1137
|
+
: undefined,
|
|
1138
|
+
}));
|
|
1142
1139
|
}
|
|
1143
1140
|
|
|
1144
1141
|
async function fetchSidebarAnalyses(
|
|
@@ -1152,31 +1149,27 @@ async function fetchSidebarAnalyses(
|
|
|
1152
1149
|
hiddenAt: string | null;
|
|
1153
1150
|
}[]
|
|
1154
1151
|
> {
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
{
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
name
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
visibility
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
}));
|
|
1177
|
-
} catch {
|
|
1178
|
-
return [];
|
|
1179
|
-
}
|
|
1152
|
+
const rows = await callAction(
|
|
1153
|
+
"list-analyses",
|
|
1154
|
+
{
|
|
1155
|
+
...(hidden === "hidden" ? { hidden: "hidden" } : {}),
|
|
1156
|
+
} as Record<string, unknown>,
|
|
1157
|
+
{ method: "GET" },
|
|
1158
|
+
);
|
|
1159
|
+
return (Array.isArray(rows) ? rows : [])
|
|
1160
|
+
.filter((a: any) => a && typeof a.id === "string" && a.id.length > 0)
|
|
1161
|
+
.map((a: any) => ({
|
|
1162
|
+
id: a.id,
|
|
1163
|
+
name:
|
|
1164
|
+
typeof a.name === "string" && a.name.trim().length > 0
|
|
1165
|
+
? a.name
|
|
1166
|
+
: t("sidebar.untitledAnalysis"),
|
|
1167
|
+
visibility:
|
|
1168
|
+
a.visibility === "org" || a.visibility === "public"
|
|
1169
|
+
? a.visibility
|
|
1170
|
+
: ("private" as Visibility),
|
|
1171
|
+
hiddenAt: typeof a.hiddenAt === "string" ? a.hiddenAt : null,
|
|
1172
|
+
}));
|
|
1180
1173
|
}
|
|
1181
1174
|
|
|
1182
1175
|
type PrefetchedSqlDashboard = {
|
|
@@ -1507,7 +1500,7 @@ function AnalyticsChatsSection({ isAskRoute }: { isAskRoute: boolean }) {
|
|
|
1507
1500
|
<button
|
|
1508
1501
|
type="button"
|
|
1509
1502
|
aria-label={t("chat.optionsFor", { title })}
|
|
1510
|
-
className="pointer-events-auto rounded p-0.5 text-muted-foreground/50 opacity-0 transition-
|
|
1503
|
+
className="pointer-events-auto rounded p-0.5 text-muted-foreground/50 opacity-0 transition-[opacity,color,background-color] hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover/item:opacity-100 group-focus-within/item:opacity-100 data-[state=open]:opacity-100 data-[state=open]:text-foreground"
|
|
1511
1504
|
>
|
|
1512
1505
|
<IconDots className="h-3 w-3" />
|
|
1513
1506
|
</button>
|
|
@@ -1769,15 +1762,24 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
1769
1762
|
dashboardsSyncRef.current = dashboardsSync;
|
|
1770
1763
|
analysesSyncRef.current = analysesSync;
|
|
1771
1764
|
|
|
1772
|
-
const {
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1765
|
+
const {
|
|
1766
|
+
data: sqlDashboards = [],
|
|
1767
|
+
isLoading: sqlDashboardsLoading,
|
|
1768
|
+
isError: sqlDashboardsError,
|
|
1769
|
+
refetch: refetchSqlDashboards,
|
|
1770
|
+
} = useQuery({
|
|
1771
|
+
queryKey: ["sql-dashboards-sidebar", dashboardsSync],
|
|
1772
|
+
queryFn: () => fetchSqlDashboards(t),
|
|
1773
|
+
staleTime: 30_000,
|
|
1774
|
+
placeholderData: (prev) => prev,
|
|
1775
|
+
});
|
|
1779
1776
|
|
|
1780
|
-
const {
|
|
1777
|
+
const {
|
|
1778
|
+
data: analysesList = [],
|
|
1779
|
+
isLoading: analysesLoading,
|
|
1780
|
+
isError: analysesError,
|
|
1781
|
+
refetch: refetchAnalyses,
|
|
1782
|
+
} = useQuery({
|
|
1781
1783
|
queryKey: ["analyses-sidebar", analysesSync, analysisHiddenFilter],
|
|
1782
1784
|
queryFn: () => fetchSidebarAnalyses(t, analysisHiddenFilter),
|
|
1783
1785
|
staleTime: 30_000,
|
|
@@ -2387,6 +2389,18 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2387
2389
|
}
|
|
2388
2390
|
},
|
|
2389
2391
|
},
|
|
2392
|
+
{
|
|
2393
|
+
icon: IconChartBar,
|
|
2394
|
+
label: t("navigation.dashboards"),
|
|
2395
|
+
href: "/dashboards",
|
|
2396
|
+
active: isAdhocActive,
|
|
2397
|
+
},
|
|
2398
|
+
{
|
|
2399
|
+
icon: IconReportAnalytics,
|
|
2400
|
+
label: t("navigation.analyses"),
|
|
2401
|
+
href: "/analyses",
|
|
2402
|
+
active: location.pathname.startsWith("/analyses"),
|
|
2403
|
+
},
|
|
2390
2404
|
{
|
|
2391
2405
|
icon: IconPlayerPlay,
|
|
2392
2406
|
label: t("navigation.sessions"),
|
|
@@ -2421,18 +2435,6 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2421
2435
|
href: "/data-dictionary",
|
|
2422
2436
|
active: location.pathname.startsWith("/data-dictionary"),
|
|
2423
2437
|
},
|
|
2424
|
-
{
|
|
2425
|
-
icon: IconChartBar,
|
|
2426
|
-
label: t("navigation.dashboards"),
|
|
2427
|
-
href: "/dashboards",
|
|
2428
|
-
active: isAdhocActive,
|
|
2429
|
-
},
|
|
2430
|
-
{
|
|
2431
|
-
icon: IconReportAnalytics,
|
|
2432
|
-
label: t("navigation.analyses"),
|
|
2433
|
-
href: "/analyses",
|
|
2434
|
-
active: location.pathname.startsWith("/analyses"),
|
|
2435
|
-
},
|
|
2436
2438
|
{
|
|
2437
2439
|
icon: IconSettings,
|
|
2438
2440
|
label: t("navigation.settings"),
|
|
@@ -2544,10 +2546,10 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2544
2546
|
<div className="flex min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden py-2">
|
|
2545
2547
|
<nav className="grid min-w-0 items-start px-2 text-sm font-medium lg:px-4 space-y-1">
|
|
2546
2548
|
{/* Ask section */}
|
|
2547
|
-
<div className="group/section min-w-0 space-y-1">
|
|
2549
|
+
<div className="order-1 group/section min-w-0 space-y-1">
|
|
2548
2550
|
<div
|
|
2549
2551
|
className={cn(
|
|
2550
|
-
"flex w-full min-w-0 items-center rounded-lg transition-
|
|
2552
|
+
"flex w-full min-w-0 items-center rounded-lg transition-colors hover:text-primary",
|
|
2551
2553
|
isAskRoute
|
|
2552
2554
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2553
2555
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2600,7 +2602,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2600
2602
|
<Link
|
|
2601
2603
|
to="/sessions"
|
|
2602
2604
|
className={cn(
|
|
2603
|
-
"flex items-center gap-3 rounded-lg px-3 py-2 transition-
|
|
2605
|
+
"order-4 flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:text-primary",
|
|
2604
2606
|
location.pathname.startsWith("/sessions")
|
|
2605
2607
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2606
2608
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2614,7 +2616,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2614
2616
|
<Link
|
|
2615
2617
|
to="/monitoring"
|
|
2616
2618
|
className={cn(
|
|
2617
|
-
"flex items-center gap-3 rounded-lg px-3 py-2 transition-
|
|
2619
|
+
"order-5 flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:text-primary",
|
|
2618
2620
|
location.pathname.startsWith("/monitoring")
|
|
2619
2621
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2620
2622
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2628,7 +2630,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2628
2630
|
<Link
|
|
2629
2631
|
to="/agents?view=dashboards"
|
|
2630
2632
|
className={cn(
|
|
2631
|
-
"flex items-center gap-3 rounded-lg px-3 py-2 transition-
|
|
2633
|
+
"order-6 flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:text-primary",
|
|
2632
2634
|
location.pathname.startsWith("/agents")
|
|
2633
2635
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2634
2636
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2643,7 +2645,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2643
2645
|
<Link
|
|
2644
2646
|
to="/data-sources"
|
|
2645
2647
|
className={cn(
|
|
2646
|
-
"flex items-center gap-3 rounded-lg px-3 py-2 transition-
|
|
2648
|
+
"order-7 flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:text-primary",
|
|
2647
2649
|
location.pathname === "/data-sources"
|
|
2648
2650
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2649
2651
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2657,7 +2659,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2657
2659
|
<Link
|
|
2658
2660
|
to="/data-dictionary"
|
|
2659
2661
|
className={cn(
|
|
2660
|
-
"flex items-center gap-3 rounded-lg px-3 py-2 transition-
|
|
2662
|
+
"order-8 flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:text-primary",
|
|
2661
2663
|
location.pathname.startsWith("/data-dictionary")
|
|
2662
2664
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2663
2665
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2668,10 +2670,10 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2668
2670
|
</Link>
|
|
2669
2671
|
|
|
2670
2672
|
{/* Dashboards section */}
|
|
2671
|
-
<div className="group/section min-w-0 space-y-1">
|
|
2673
|
+
<div className="order-2 group/section min-w-0 space-y-1">
|
|
2672
2674
|
<div
|
|
2673
2675
|
className={cn(
|
|
2674
|
-
"flex w-full min-w-0 items-center rounded-lg transition-
|
|
2676
|
+
"flex w-full min-w-0 items-center rounded-lg transition-colors hover:text-primary",
|
|
2675
2677
|
isAdhocActive
|
|
2676
2678
|
? "text-sidebar-accent-foreground"
|
|
2677
2679
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2806,6 +2808,13 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2806
2808
|
/>
|
|
2807
2809
|
</div>
|
|
2808
2810
|
))}
|
|
2811
|
+
{sqlDashboardsError && sqlDashboards.length === 0 && (
|
|
2812
|
+
<SidebarLoadError
|
|
2813
|
+
message={t("sidebar.dashboardsLoadFailed")}
|
|
2814
|
+
retryLabel={t("sidebar.retry")}
|
|
2815
|
+
onRetry={() => void refetchSqlDashboards()}
|
|
2816
|
+
/>
|
|
2817
|
+
)}
|
|
2809
2818
|
<NewDashboardDialog />
|
|
2810
2819
|
</div>
|
|
2811
2820
|
</SortableContext>
|
|
@@ -2814,10 +2823,10 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2814
2823
|
</div>
|
|
2815
2824
|
|
|
2816
2825
|
{/* Analyses section */}
|
|
2817
|
-
<div className="group/section min-w-0 space-y-1">
|
|
2826
|
+
<div className="order-3 group/section min-w-0 space-y-1">
|
|
2818
2827
|
<div
|
|
2819
2828
|
className={cn(
|
|
2820
|
-
"flex w-full min-w-0 items-center rounded-lg transition-
|
|
2829
|
+
"flex w-full min-w-0 items-center rounded-lg transition-colors hover:text-primary",
|
|
2821
2830
|
location.pathname.startsWith("/analyses")
|
|
2822
2831
|
? "text-sidebar-accent-foreground"
|
|
2823
2832
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2941,11 +2950,20 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2941
2950
|
/>
|
|
2942
2951
|
</div>
|
|
2943
2952
|
))}
|
|
2944
|
-
{
|
|
2945
|
-
<
|
|
2946
|
-
{t("sidebar.
|
|
2947
|
-
|
|
2953
|
+
{analysesError && sortedAnalyses.length === 0 && (
|
|
2954
|
+
<SidebarLoadError
|
|
2955
|
+
message={t("sidebar.analysesLoadFailed")}
|
|
2956
|
+
retryLabel={t("sidebar.retry")}
|
|
2957
|
+
onRetry={() => void refetchAnalyses()}
|
|
2958
|
+
/>
|
|
2948
2959
|
)}
|
|
2960
|
+
{!analysesLoading &&
|
|
2961
|
+
!analysesError &&
|
|
2962
|
+
sortedAnalyses.length === 0 && (
|
|
2963
|
+
<p className="px-3 py-1 text-[11px] text-muted-foreground/60">
|
|
2964
|
+
{t("sidebar.noAnalysesYet")}
|
|
2965
|
+
</p>
|
|
2966
|
+
)}
|
|
2949
2967
|
<NewAnalysisDialog />
|
|
2950
2968
|
</div>
|
|
2951
2969
|
</SortableContext>
|
|
@@ -2964,7 +2982,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2964
2982
|
key={item.href}
|
|
2965
2983
|
to={item.href}
|
|
2966
2984
|
className={cn(
|
|
2967
|
-
"flex items-center gap-3 rounded-lg px-3 py-2 transition-
|
|
2985
|
+
"flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:text-primary",
|
|
2968
2986
|
isActive
|
|
2969
2987
|
? "bg-sidebar-accent text-sidebar-accent-foreground"
|
|
2970
2988
|
: "text-muted-foreground hover:bg-sidebar-accent/50",
|
|
@@ -2999,7 +3017,7 @@ export function Sidebar({ mobile }: { mobile?: boolean } = {}) {
|
|
|
2999
3017
|
)
|
|
3000
3018
|
}
|
|
3001
3019
|
aria-label={t("sidebar.search")}
|
|
3002
|
-
className="flex items-center justify-center rounded-lg p-2 text-muted-foreground transition-
|
|
3020
|
+
className="flex items-center justify-center rounded-lg p-2 text-muted-foreground transition-colors hover:text-primary cursor-pointer hover:bg-sidebar-accent/50"
|
|
3003
3021
|
>
|
|
3004
3022
|
<IconSearch className="h-4 w-4" />
|
|
3005
3023
|
</button>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type SidebarLoadErrorProps = {
|
|
2
|
+
message: string;
|
|
3
|
+
retryLabel: string;
|
|
4
|
+
onRetry: () => void;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export function SidebarLoadError({
|
|
8
|
+
message,
|
|
9
|
+
retryLabel,
|
|
10
|
+
onRetry,
|
|
11
|
+
}: SidebarLoadErrorProps) {
|
|
12
|
+
return (
|
|
13
|
+
<div className="px-3 py-1 text-[11px] text-destructive" role="status">
|
|
14
|
+
<span>{message}</span>{" "}
|
|
15
|
+
<button
|
|
16
|
+
type="button"
|
|
17
|
+
className="font-medium underline underline-offset-2 hover:text-destructive/80"
|
|
18
|
+
onClick={onRetry}
|
|
19
|
+
>
|
|
20
|
+
{retryLabel}
|
|
21
|
+
</button>
|
|
22
|
+
</div>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -27,31 +27,33 @@ export function useDashboardViews(dashboardId: string | undefined) {
|
|
|
27
27
|
const queryClient = useQueryClient();
|
|
28
28
|
const queryKey = ["dashboard-views", dashboardId];
|
|
29
29
|
|
|
30
|
-
const
|
|
30
|
+
const viewsQuery = useQuery({
|
|
31
31
|
queryKey,
|
|
32
32
|
queryFn: async (): Promise<DashboardView[]> => {
|
|
33
33
|
if (!dashboardId) return [];
|
|
34
34
|
const res = await fetchWithAuth(
|
|
35
35
|
`/api/dashboard-views/${encodeURIComponent(dashboardId)}`,
|
|
36
36
|
);
|
|
37
|
-
if (!res.ok)
|
|
37
|
+
if (!res.ok) throw new Error(`Load failed: ${res.status}`);
|
|
38
38
|
const data = await res.json();
|
|
39
39
|
return data.views ?? [];
|
|
40
40
|
},
|
|
41
41
|
enabled: !!dashboardId,
|
|
42
42
|
staleTime: 30_000,
|
|
43
43
|
});
|
|
44
|
+
const views = viewsQuery.data ?? [];
|
|
44
45
|
|
|
45
46
|
const { mutateAsync: saveView } = useMutation({
|
|
46
47
|
mutationFn: async (view: DashboardView) => {
|
|
47
48
|
if (!dashboardId) return;
|
|
48
|
-
await fetchWithAuth(
|
|
49
|
+
const res = await fetchWithAuth(
|
|
49
50
|
`/api/dashboard-views/${encodeURIComponent(dashboardId)}`,
|
|
50
51
|
{
|
|
51
52
|
method: "POST",
|
|
52
53
|
body: JSON.stringify(view),
|
|
53
54
|
},
|
|
54
55
|
);
|
|
56
|
+
if (!res.ok) throw new Error(`Save failed: ${res.status}`);
|
|
55
57
|
},
|
|
56
58
|
onSettled: () => {
|
|
57
59
|
queryClient.invalidateQueries({ queryKey });
|
|
@@ -63,10 +65,11 @@ export function useDashboardViews(dashboardId: string | undefined) {
|
|
|
63
65
|
const { mutateAsync: deleteView } = useMutation({
|
|
64
66
|
mutationFn: async (viewId: string) => {
|
|
65
67
|
if (!dashboardId) return;
|
|
66
|
-
await fetchWithAuth(
|
|
68
|
+
const res = await fetchWithAuth(
|
|
67
69
|
`/api/dashboard-views/${encodeURIComponent(dashboardId)}/${encodeURIComponent(viewId)}`,
|
|
68
70
|
{ method: "DELETE" },
|
|
69
71
|
);
|
|
72
|
+
if (!res.ok) throw new Error(`Delete failed: ${res.status}`);
|
|
70
73
|
},
|
|
71
74
|
onSettled: () => {
|
|
72
75
|
queryClient.invalidateQueries({ queryKey });
|
|
@@ -74,7 +77,14 @@ export function useDashboardViews(dashboardId: string | undefined) {
|
|
|
74
77
|
},
|
|
75
78
|
});
|
|
76
79
|
|
|
77
|
-
return {
|
|
80
|
+
return {
|
|
81
|
+
views,
|
|
82
|
+
isLoading: viewsQuery.isLoading,
|
|
83
|
+
error: viewsQuery.error,
|
|
84
|
+
refetch: viewsQuery.refetch,
|
|
85
|
+
saveView,
|
|
86
|
+
deleteView,
|
|
87
|
+
};
|
|
78
88
|
}
|
|
79
89
|
|
|
80
90
|
/**
|
|
@@ -41,6 +41,9 @@ const messages = {
|
|
|
41
41
|
showLess: "顯示更少",
|
|
42
42
|
showMore: "再顯示 {{count}} 個",
|
|
43
43
|
noAnalysesYet: "還沒有分析",
|
|
44
|
+
dashboardsLoadFailed: "無法載入儀表板。",
|
|
45
|
+
analysesLoadFailed: "無法載入分析。",
|
|
46
|
+
retry: "重試",
|
|
44
47
|
search: "搜尋",
|
|
45
48
|
searchShortcut: "搜尋({{shortcut}})",
|
|
46
49
|
sectionSettings: "{{label}} 設定",
|
|
@@ -301,6 +304,7 @@ const messages = {
|
|
|
301
304
|
groupAppearance: "外觀",
|
|
302
305
|
groupHelp: "幫助",
|
|
303
306
|
groupSavedCharts: "已儲存圖表",
|
|
307
|
+
loadFailed: "部分結果無法載入。",
|
|
304
308
|
hidden: "已隱藏",
|
|
305
309
|
toggleLightMode: "切換到淺色模式",
|
|
306
310
|
toggleDarkMode: "切換到深色模式",
|
|
@@ -62,6 +62,9 @@ const enUS = {
|
|
|
62
62
|
showLess: "Show less",
|
|
63
63
|
showMore: "Show {{count}} more",
|
|
64
64
|
noAnalysesYet: "No analyses yet",
|
|
65
|
+
dashboardsLoadFailed: "Couldn't load dashboards.",
|
|
66
|
+
analysesLoadFailed: "Couldn't load analyses.",
|
|
67
|
+
retry: "Retry",
|
|
65
68
|
search: "Search",
|
|
66
69
|
searchShortcut: "Search ({{shortcut}})",
|
|
67
70
|
sectionSettings: "{{label}} settings",
|
|
@@ -156,6 +159,7 @@ const enUS = {
|
|
|
156
159
|
groupAppearance: "Appearance",
|
|
157
160
|
groupHelp: "Help",
|
|
158
161
|
groupSavedCharts: "Saved Charts",
|
|
162
|
+
loadFailed: "Some results couldn't be loaded.",
|
|
159
163
|
hidden: "Hidden",
|
|
160
164
|
toggleLightMode: "Toggle light mode",
|
|
161
165
|
toggleDarkMode: "Toggle dark mode",
|
|
@@ -3792,6 +3796,9 @@ export const messagesByLocale = {
|
|
|
3792
3796
|
showLess: "显示更少",
|
|
3793
3797
|
showMore: "再显示 {{count}} 个",
|
|
3794
3798
|
noAnalysesYet: "还没有分析",
|
|
3799
|
+
dashboardsLoadFailed: "无法加载仪表板。",
|
|
3800
|
+
analysesLoadFailed: "无法加载分析。",
|
|
3801
|
+
retry: "重试",
|
|
3795
3802
|
search: "搜索",
|
|
3796
3803
|
searchShortcut: "搜索({{shortcut}})",
|
|
3797
3804
|
sectionSettings: "{{label}} 设置",
|
|
@@ -3881,6 +3888,7 @@ export const messagesByLocale = {
|
|
|
3881
3888
|
groupAppearance: "外观",
|
|
3882
3889
|
groupHelp: "帮助",
|
|
3883
3890
|
groupSavedCharts: "已保存图表",
|
|
3891
|
+
loadFailed: "部分结果无法加载。",
|
|
3884
3892
|
hidden: "已隐藏",
|
|
3885
3893
|
toggleLightMode: "切换到浅色模式",
|
|
3886
3894
|
toggleDarkMode: "切换到深色模式",
|
|
@@ -3996,6 +4004,9 @@ export const messagesByLocale = {
|
|
|
3996
4004
|
showLess: "Mostrar menos",
|
|
3997
4005
|
showMore: "Mostrar {{count}} más",
|
|
3998
4006
|
noAnalysesYet: "Aún no hay análisis",
|
|
4007
|
+
dashboardsLoadFailed: "No se pudieron cargar los paneles.",
|
|
4008
|
+
analysesLoadFailed: "No se pudieron cargar los análisis.",
|
|
4009
|
+
retry: "Reintentar",
|
|
3999
4010
|
search: "Buscar",
|
|
4000
4011
|
searchShortcut: "Buscar ({{shortcut}})",
|
|
4001
4012
|
sectionSettings: "Ajustes de {{label}}",
|
|
@@ -4092,6 +4103,7 @@ export const messagesByLocale = {
|
|
|
4092
4103
|
groupAppearance: "Apariencia",
|
|
4093
4104
|
groupHelp: "Ayuda",
|
|
4094
4105
|
groupSavedCharts: "Gráficos guardados",
|
|
4106
|
+
loadFailed: "No se pudieron cargar algunos resultados.",
|
|
4095
4107
|
hidden: "Oculto",
|
|
4096
4108
|
toggleLightMode: "Cambiar a modo claro",
|
|
4097
4109
|
toggleDarkMode: "Cambiar a modo oscuro",
|
|
@@ -4211,6 +4223,9 @@ export const messagesByLocale = {
|
|
|
4211
4223
|
showLess: "Afficher moins",
|
|
4212
4224
|
showMore: "Afficher {{count}} de plus",
|
|
4213
4225
|
noAnalysesYet: "Aucune analyse pour le moment",
|
|
4226
|
+
dashboardsLoadFailed: "Impossible de charger les tableaux de bord.",
|
|
4227
|
+
analysesLoadFailed: "Impossible de charger les analyses.",
|
|
4228
|
+
retry: "Réessayer",
|
|
4214
4229
|
search: "Rechercher",
|
|
4215
4230
|
searchShortcut: "Rechercher ({{shortcut}})",
|
|
4216
4231
|
sectionSettings: "Paramètres de {{label}}",
|
|
@@ -4309,6 +4324,7 @@ export const messagesByLocale = {
|
|
|
4309
4324
|
groupAppearance: "Apparence",
|
|
4310
4325
|
groupHelp: "Aide",
|
|
4311
4326
|
groupSavedCharts: "Graphiques enregistrés",
|
|
4327
|
+
loadFailed: "Certains résultats n'ont pas pu être chargés.",
|
|
4312
4328
|
hidden: "Masqué",
|
|
4313
4329
|
toggleLightMode: "Passer en mode clair",
|
|
4314
4330
|
toggleDarkMode: "Passer en mode sombre",
|
|
@@ -4432,6 +4448,9 @@ export const messagesByLocale = {
|
|
|
4432
4448
|
showLess: "Weniger anzeigen",
|
|
4433
4449
|
showMore: "{{count}} weitere anzeigen",
|
|
4434
4450
|
noAnalysesYet: "Noch keine Analysen",
|
|
4451
|
+
dashboardsLoadFailed: "Dashboards konnten nicht geladen werden.",
|
|
4452
|
+
analysesLoadFailed: "Analysen konnten nicht geladen werden.",
|
|
4453
|
+
retry: "Erneut versuchen",
|
|
4435
4454
|
search: "Suchen",
|
|
4436
4455
|
searchShortcut: "Suchen ({{shortcut}})",
|
|
4437
4456
|
sectionSettings: "{{label}}-Einstellungen",
|
|
@@ -4533,6 +4552,7 @@ export const messagesByLocale = {
|
|
|
4533
4552
|
groupAppearance: "Darstellung",
|
|
4534
4553
|
groupHelp: "Hilfe",
|
|
4535
4554
|
groupSavedCharts: "Gespeicherte Diagramme",
|
|
4555
|
+
loadFailed: "Einige Ergebnisse konnten nicht geladen werden.",
|
|
4536
4556
|
hidden: "Ausgeblendet",
|
|
4537
4557
|
toggleLightMode: "Hellen Modus einschalten",
|
|
4538
4558
|
toggleDarkMode: "Dunklen Modus einschalten",
|
|
@@ -4653,6 +4673,9 @@ export const messagesByLocale = {
|
|
|
4653
4673
|
showLess: "少なく表示",
|
|
4654
4674
|
showMore: "さらに {{count}} 件表示",
|
|
4655
4675
|
noAnalysesYet: "分析はまだありません",
|
|
4676
|
+
dashboardsLoadFailed: "ダッシュボードを読み込めませんでした。",
|
|
4677
|
+
analysesLoadFailed: "分析を読み込めませんでした。",
|
|
4678
|
+
retry: "再試行",
|
|
4656
4679
|
search: "検索",
|
|
4657
4680
|
searchShortcut: "検索({{shortcut}})",
|
|
4658
4681
|
sectionSettings: "{{label}} の設定",
|
|
@@ -4748,6 +4771,7 @@ export const messagesByLocale = {
|
|
|
4748
4771
|
groupAppearance: "表示",
|
|
4749
4772
|
groupHelp: "ヘルプ",
|
|
4750
4773
|
groupSavedCharts: "保存済みグラフ",
|
|
4774
|
+
loadFailed: "一部の結果を読み込めませんでした。",
|
|
4751
4775
|
hidden: "非表示",
|
|
4752
4776
|
toggleLightMode: "ライトモードに切り替え",
|
|
4753
4777
|
toggleDarkMode: "ダークモードに切り替え",
|
|
@@ -4867,6 +4891,9 @@ export const messagesByLocale = {
|
|
|
4867
4891
|
showLess: "간단히 보기",
|
|
4868
4892
|
showMore: "{{count}}개 더 보기",
|
|
4869
4893
|
noAnalysesYet: "아직 분석이 없습니다",
|
|
4894
|
+
dashboardsLoadFailed: "대시보드를 불러오지 못했습니다.",
|
|
4895
|
+
analysesLoadFailed: "분석을 불러오지 못했습니다.",
|
|
4896
|
+
retry: "다시 시도",
|
|
4870
4897
|
search: "검색",
|
|
4871
4898
|
searchShortcut: "검색({{shortcut}})",
|
|
4872
4899
|
sectionSettings: "{{label}} 설정",
|
|
@@ -4962,6 +4989,7 @@ export const messagesByLocale = {
|
|
|
4962
4989
|
groupAppearance: "모양",
|
|
4963
4990
|
groupHelp: "도움말",
|
|
4964
4991
|
groupSavedCharts: "저장된 차트",
|
|
4992
|
+
loadFailed: "일부 결과를 불러오지 못했습니다.",
|
|
4965
4993
|
hidden: "숨김",
|
|
4966
4994
|
toggleLightMode: "라이트 모드로 전환",
|
|
4967
4995
|
toggleDarkMode: "다크 모드로 전환",
|
|
@@ -5081,6 +5109,9 @@ export const messagesByLocale = {
|
|
|
5081
5109
|
showLess: "Mostrar menos",
|
|
5082
5110
|
showMore: "Mostrar mais {{count}}",
|
|
5083
5111
|
noAnalysesYet: "Ainda não há análises",
|
|
5112
|
+
dashboardsLoadFailed: "Não foi possível carregar os painéis.",
|
|
5113
|
+
analysesLoadFailed: "Não foi possível carregar as análises.",
|
|
5114
|
+
retry: "Tentar novamente",
|
|
5084
5115
|
search: "Pesquisar",
|
|
5085
5116
|
searchShortcut: "Pesquisar ({{shortcut}})",
|
|
5086
5117
|
sectionSettings: "Configurações de {{label}}",
|
|
@@ -5180,6 +5211,7 @@ export const messagesByLocale = {
|
|
|
5180
5211
|
groupAppearance: "Aparência",
|
|
5181
5212
|
groupHelp: "Ajuda",
|
|
5182
5213
|
groupSavedCharts: "Gráficos salvos",
|
|
5214
|
+
loadFailed: "Não foi possível carregar alguns resultados.",
|
|
5183
5215
|
hidden: "Oculto",
|
|
5184
5216
|
toggleLightMode: "Alternar para modo claro",
|
|
5185
5217
|
toggleDarkMode: "Alternar para modo escuro",
|
|
@@ -5302,6 +5334,9 @@ export const messagesByLocale = {
|
|
|
5302
5334
|
showLess: "कम दिखाएं",
|
|
5303
5335
|
showMore: "{{count}} और दिखाएं",
|
|
5304
5336
|
noAnalysesYet: "अभी कोई विश्लेषण नहीं",
|
|
5337
|
+
dashboardsLoadFailed: "डैशबोर्ड लोड नहीं हो सके।",
|
|
5338
|
+
analysesLoadFailed: "विश्लेषण लोड नहीं हो सके।",
|
|
5339
|
+
retry: "फिर से कोशिश करें",
|
|
5305
5340
|
search: "खोजें",
|
|
5306
5341
|
searchShortcut: "खोजें ({{shortcut}})",
|
|
5307
5342
|
sectionSettings: "{{label}} सेटिंग्स",
|
|
@@ -5393,6 +5428,7 @@ export const messagesByLocale = {
|
|
|
5393
5428
|
groupAppearance: "दिखावट",
|
|
5394
5429
|
groupHelp: "सहायता",
|
|
5395
5430
|
groupSavedCharts: "सहेजे गए चार्ट",
|
|
5431
|
+
loadFailed: "कुछ परिणाम लोड नहीं किए जा सके।",
|
|
5396
5432
|
hidden: "छिपा हुआ",
|
|
5397
5433
|
toggleLightMode: "लाइट मोड पर जाएं",
|
|
5398
5434
|
toggleDarkMode: "डार्क मोड पर जाएं",
|
|
@@ -5513,6 +5549,9 @@ export const messagesByLocale = {
|
|
|
5513
5549
|
showLess: "عرض أقل",
|
|
5514
5550
|
showMore: "عرض {{count}} إضافية",
|
|
5515
5551
|
noAnalysesYet: "لا توجد تحليلات بعد",
|
|
5552
|
+
dashboardsLoadFailed: "تعذر تحميل لوحات المعلومات.",
|
|
5553
|
+
analysesLoadFailed: "تعذر تحميل التحليلات.",
|
|
5554
|
+
retry: "إعادة المحاولة",
|
|
5516
5555
|
search: "بحث",
|
|
5517
5556
|
searchShortcut: "بحث ({{shortcut}})",
|
|
5518
5557
|
sectionSettings: "إعدادات {{label}}",
|
|
@@ -5605,6 +5644,7 @@ export const messagesByLocale = {
|
|
|
5605
5644
|
groupAppearance: "المظهر",
|
|
5606
5645
|
groupHelp: "المساعدة",
|
|
5607
5646
|
groupSavedCharts: "المخططات المحفوظة",
|
|
5647
|
+
loadFailed: "تعذر تحميل بعض النتائج.",
|
|
5608
5648
|
hidden: "مخفي",
|
|
5609
5649
|
toggleLightMode: "التبديل إلى الوضع الفاتح",
|
|
5610
5650
|
toggleDarkMode: "التبديل إلى الوضع الداكن",
|