@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.
Files changed (844) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +32 -0
  3. package/corpus/core/docs/content/authentication.mdx +3 -3
  4. package/corpus/core/docs/content/doctor.mdx +170 -0
  5. package/corpus/core/docs/content/external-agents.mdx +8 -7
  6. package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +2 -2
  7. package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +8 -7
  8. package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
  9. package/corpus/core/docs/content/locales/ar-SA/security.mdx +2 -0
  10. package/corpus/core/docs/content/locales/de-DE/authentication.mdx +1 -1
  11. package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +8 -7
  12. package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
  13. package/corpus/core/docs/content/locales/de-DE/security.mdx +2 -0
  14. package/corpus/core/docs/content/locales/es-ES/authentication.mdx +2 -2
  15. package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +8 -7
  16. package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
  17. package/corpus/core/docs/content/locales/es-ES/security.mdx +2 -0
  18. package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +1 -1
  19. package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +8 -7
  20. package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
  21. package/corpus/core/docs/content/locales/fr-FR/security.mdx +2 -0
  22. package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +2 -2
  23. package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +8 -7
  24. package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
  25. package/corpus/core/docs/content/locales/hi-IN/security.mdx +2 -0
  26. package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +2 -2
  27. package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +8 -7
  28. package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
  29. package/corpus/core/docs/content/locales/ja-JP/security.mdx +2 -0
  30. package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +2 -2
  31. package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +8 -7
  32. package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
  33. package/corpus/core/docs/content/locales/ko-KR/security.mdx +2 -0
  34. package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +2 -2
  35. package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +8 -7
  36. package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
  37. package/corpus/core/docs/content/locales/pt-BR/security.mdx +2 -0
  38. package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +2 -2
  39. package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +8 -7
  40. package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
  41. package/corpus/core/docs/content/locales/zh-CN/security.mdx +2 -0
  42. package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +2 -2
  43. package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +8 -7
  44. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
  45. package/corpus/core/docs/content/locales/zh-TW/security.mdx +2 -0
  46. package/corpus/core/docs/content/mcp-protocol.mdx +1 -1
  47. package/corpus/core/docs/content/security.mdx +2 -0
  48. package/corpus/core/package.json +5 -1
  49. package/corpus/core/scripts/finalize-build.mjs +63 -3
  50. package/corpus/core/scripts/materialize-source-corpus.mjs +101 -15
  51. package/corpus/core/src/action.ts +42 -0
  52. package/corpus/core/src/agent/engine/builder-engine.ts +3 -0
  53. package/corpus/core/src/agent/engine/context-directives-transform.ts +69 -0
  54. package/corpus/core/src/agent/engine/continuation-dispatch-retry.ts +168 -0
  55. package/corpus/core/src/agent/engine/tool-call-journal-seed.ts +85 -0
  56. package/corpus/core/src/agent/production-agent.ts +129 -244
  57. package/corpus/core/src/cli/doctor.ts +9 -3
  58. package/corpus/core/src/cli/plan-local.ts +10 -2
  59. package/corpus/core/src/cli/skills-content/assets-skill.ts +83 -0
  60. package/corpus/core/src/cli/skills-content/canvas.ts +153 -0
  61. package/corpus/core/src/cli/skills-content/connection.ts +52 -0
  62. package/corpus/core/src/cli/skills-content/content-skill.ts +109 -0
  63. package/corpus/core/src/cli/skills-content/design-exploration-skill.ts +118 -0
  64. package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +228 -0
  65. package/corpus/core/src/cli/skills-content/document-quality.ts +196 -0
  66. package/corpus/core/src/cli/skills-content/exemplar.ts +69 -0
  67. package/corpus/core/src/cli/skills-content/help.ts +77 -0
  68. package/corpus/core/src/cli/skills-content/index.ts +22 -0
  69. package/corpus/core/src/cli/skills-content/local-files.ts +95 -0
  70. package/corpus/core/src/cli/skills-content/plan-setup-auth.ts +80 -0
  71. package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +470 -0
  72. package/corpus/core/src/cli/skills-content/visual-recap-skill.ts +547 -0
  73. package/corpus/core/src/cli/skills-content/visualize-repo-skill.ts +93 -0
  74. package/corpus/core/src/cli/skills-content/wireframe.ts +349 -0
  75. package/corpus/core/src/cli/skills.ts +27 -2733
  76. package/corpus/core/src/client/AgentPanel.tsx +6 -5
  77. package/corpus/core/src/client/CommandMenu.tsx +16 -5
  78. package/corpus/core/src/client/FeedbackButton.tsx +2 -2
  79. package/corpus/core/src/client/app-providers.tsx +18 -5
  80. package/corpus/core/src/client/chat/tool-call-display.tsx +3 -3
  81. package/corpus/core/src/client/composer/PastedTextChip.tsx +1 -1
  82. package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +143 -45
  83. package/corpus/core/src/client/composer/TiptapComposer.tsx +1 -1
  84. package/corpus/core/src/client/composer/VoiceButton.tsx +21 -5
  85. package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +107 -10
  86. package/corpus/core/src/client/context-xray/ContextXRayPanel.tsx +5 -2
  87. package/corpus/core/src/client/extensions/ExtensionEditor.tsx +37 -4
  88. package/corpus/core/src/client/extensions/ExtensionQueryErrorState.tsx +47 -0
  89. package/corpus/core/src/client/extensions/ExtensionSlot.tsx +39 -10
  90. package/corpus/core/src/client/extensions/ExtensionViewer.tsx +44 -6
  91. package/corpus/core/src/client/extensions/ExtensionsListPage.tsx +12 -3
  92. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +49 -11
  93. package/corpus/core/src/client/index.ts +0 -13
  94. package/corpus/core/src/client/progress/RunsTray.tsx +10 -3
  95. package/corpus/core/src/client/settings/SettingsTabsPage.tsx +7 -0
  96. package/corpus/core/src/client/settings/useBuilderStatus.ts +6 -0
  97. package/corpus/core/src/client/tool-cells/EditCell.tsx +19 -16
  98. package/corpus/core/src/client/tool-cells/FilesChangedSummary.tsx +26 -23
  99. package/corpus/core/src/client/tool-cells/WriteCell.tsx +19 -16
  100. package/corpus/core/src/client/visual-style-controls.tsx +1 -1
  101. package/corpus/core/src/deploy/build.ts +36 -14
  102. package/corpus/core/src/integrations/google-docs-poller.ts +23 -2
  103. package/corpus/core/src/integrations/plugin.ts +10 -0
  104. package/corpus/core/src/integrations/webhook-handler.ts +27 -2
  105. package/corpus/core/src/jobs/scheduler.ts +28 -2
  106. package/corpus/core/src/localization/default-messages.ts +8 -1
  107. package/corpus/core/src/mcp/oauth-token.ts +6 -1
  108. package/corpus/core/src/observability/routes.ts +36 -0
  109. package/corpus/core/src/observability/sentiment.ts +261 -0
  110. package/corpus/core/src/observability/store.ts +23 -0
  111. package/corpus/core/src/observability/traces.ts +49 -63
  112. package/corpus/core/src/observability/tracking-identity.ts +55 -0
  113. package/corpus/core/src/observability/types.ts +13 -0
  114. package/corpus/core/src/secrets/storage.ts +67 -3
  115. package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +199 -0
  116. package/corpus/core/src/server/agent-chat/browser-team-tools.ts +510 -0
  117. package/corpus/core/src/server/agent-chat/context-tools.ts +595 -0
  118. package/corpus/core/src/server/agent-chat/framework-prompts.ts +470 -0
  119. package/corpus/core/src/server/agent-chat/lazy-fs.ts +11 -0
  120. package/corpus/core/src/server/agent-chat/mcp-glue.ts +91 -0
  121. package/corpus/core/src/server/agent-chat/plugin-options.ts +350 -0
  122. package/corpus/core/src/server/agent-chat/process-run-failure.ts +62 -0
  123. package/corpus/core/src/server/agent-chat/prompt-resources.ts +688 -0
  124. package/corpus/core/src/server/agent-chat/recurring-jobs-runtime.ts +80 -0
  125. package/corpus/core/src/server/agent-chat/request-surface.ts +71 -0
  126. package/corpus/core/src/server/agent-chat/run-code-tools.ts +67 -0
  127. package/corpus/core/src/server/agent-chat/script-entries.ts +779 -0
  128. package/corpus/core/src/server/agent-chat/shared-thread.ts +301 -0
  129. package/corpus/core/src/server/agent-chat/skill-frontmatter.ts +41 -0
  130. package/corpus/core/src/server/agent-chat-plugin.ts +364 -4182
  131. package/corpus/core/src/server/agent-teams.ts +26 -3
  132. package/corpus/core/src/server/auth.ts +55 -57
  133. package/corpus/core/src/server/credential-provider.ts +22 -25
  134. package/corpus/core/src/server/edge.ts +1 -0
  135. package/corpus/core/src/server/onboarding-html.ts +1 -16
  136. package/corpus/core/src/server/realtime-voice.ts +40 -5
  137. package/corpus/core/src/server/request-origin.ts +6 -2
  138. package/corpus/core/src/server/ssr-handler.ts +55 -2
  139. package/corpus/core/src/sharing/access.ts +155 -11
  140. package/corpus/core/src/sharing/registry.ts +7 -0
  141. package/corpus/core/src/styles/agent-native.css +15 -14
  142. package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  143. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +6 -0
  144. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +6 -0
  145. package/corpus/core/src/templates/default/app/i18n/en-US.ts +6 -0
  146. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +6 -0
  147. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +6 -0
  148. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +6 -0
  149. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +6 -0
  150. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +6 -0
  151. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +6 -0
  152. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +6 -0
  153. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +6 -0
  154. package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
  155. package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
  156. package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  157. package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
  158. package/corpus/core/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
  159. package/corpus/core/src/templates/workspace-core/src/server/index.ts +4 -2
  160. package/corpus/core/src/testing.ts +26 -0
  161. package/corpus/core/src/triggers/dispatcher.ts +23 -2
  162. package/corpus/core/src/vite/client.ts +126 -2
  163. package/corpus/core/tsconfig.cli.json +1 -1
  164. package/corpus/core/tsconfig.json +5 -1
  165. package/corpus/templates/analytics/.agents/skills/bigquery/SKILL.md +2 -2
  166. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +1 -1
  167. package/corpus/templates/analytics/AGENTS.md +19 -6
  168. package/corpus/templates/analytics/actions/install-dashboard-template.ts +79 -43
  169. package/corpus/templates/analytics/actions/list-explorer-dashboards.ts +3 -3
  170. package/corpus/templates/analytics/actions/list-sql-dashboards.ts +8 -3
  171. package/corpus/templates/analytics/actions/rename-analysis.ts +8 -2
  172. package/corpus/templates/analytics/actions/rename-dashboard.ts +8 -7
  173. package/corpus/templates/analytics/actions/view-screen.ts +4 -23
  174. package/corpus/templates/analytics/app/components/ResourceLoadError.tsx +42 -0
  175. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +85 -70
  176. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +107 -89
  177. package/corpus/templates/analytics/app/components/layout/SidebarLoadError.tsx +24 -0
  178. package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +15 -5
  179. package/corpus/templates/analytics/app/i18n/zh-TW.ts +4 -0
  180. package/corpus/templates/analytics/app/i18n-data.ts +40 -0
  181. package/corpus/templates/analytics/app/pages/Settings.tsx +6 -2
  182. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +36 -20
  183. package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +34 -20
  184. package/corpus/templates/analytics/app/pages/adhoc/explorer/use-explorer-config.ts +42 -41
  185. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +43 -36
  186. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +11 -2
  187. package/corpus/templates/analytics/app/root.tsx +13 -1
  188. package/corpus/templates/analytics/app/routes/_index.tsx +14 -2
  189. package/corpus/templates/analytics/changelog/2026-07-03-agent-llm-observability-dashboard.md +1 -1
  190. package/corpus/templates/analytics/changelog/2026-07-11-agent-feedback-sentiment-dashboard.md +6 -0
  191. package/corpus/templates/analytics/changelog/2026-07-11-analytics-chats-now-start-faster-by-loading-metric-definitio.md +6 -0
  192. package/corpus/templates/analytics/changelog/2026-07-11-command-and-sql-previews-now-respond-without-lag.md +6 -0
  193. package/corpus/templates/analytics/changelog/2026-07-11-command-search-now-reports-loading-failures-and-lets-you-ret.md +6 -0
  194. package/corpus/templates/analytics/changelog/2026-07-11-dashboard-navigation-now-loads-faster-and-reports-request-fa.md +6 -0
  195. package/corpus/templates/analytics/changelog/2026-07-11-inferred-message-sentiment-dashboard.md +6 -0
  196. package/corpus/templates/analytics/changelog/2026-07-11-microphone-settings-from-realtime-voice-mode-now-open-the-vo.md +6 -0
  197. package/corpus/templates/analytics/changelog/2026-07-11-more-dashboard-edit-paths-are-now-safe-against-simultaneous-.md +6 -0
  198. package/corpus/templates/analytics/changelog/2026-07-11-renaming-a-dashboard-is-now-safe-against-simultaneous-agent-.md +6 -0
  199. package/corpus/templates/analytics/changelog/2026-07-11-renaming-an-analysis-is-now-safe-against-simultaneous-edits.md +6 -0
  200. package/corpus/templates/analytics/changelog/2026-07-11-workspace-mounted-analytics-now-opens-ask-reliably-and-route.md +6 -0
  201. package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +37 -3
  202. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +339 -1
  203. package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +1 -24
  204. package/corpus/templates/analytics/server/lib/dashboard-seeds.ts +0 -5
  205. package/corpus/templates/analytics/server/lib/dashboards-store.ts +289 -20
  206. package/corpus/templates/analytics/server/lib/data-dictionary-context.ts +106 -34
  207. package/corpus/templates/analytics/server/lib/demo-dashboards.ts +4 -1
  208. package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -39
  209. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +1 -1
  210. package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +30 -4
  211. package/corpus/templates/assets/app/routes/library.tsx +49 -5
  212. package/corpus/templates/assets/changelog/2026-07-11-library-load-failures-now-show-a-retry-action.md +6 -0
  213. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +1 -1
  214. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +1 -1
  215. package/corpus/templates/calendar/.env.example +5 -0
  216. package/corpus/templates/calendar/app/components/calendar/EventCard.tsx +2 -2
  217. package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
  218. package/corpus/templates/calendar/app/i18n-data.ts +20 -0
  219. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +37 -1
  220. package/corpus/templates/calendar/app/pages/BookingsList.tsx +20 -3
  221. package/corpus/templates/calendar/changelog/2026-07-11-booking-load-failures-now-show-a-retry-action.md +6 -0
  222. package/corpus/templates/calendar/changelog/2026-07-11-event-cards-give-subtle-press-feedback-and-smoother-hover.md +6 -0
  223. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
  224. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +1 -1
  225. package/corpus/templates/clips/actions/decline-invite.ts +8 -0
  226. package/corpus/templates/clips/app/components/library/folder-tree.tsx +209 -187
  227. package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +2 -2
  228. package/corpus/templates/clips/app/components/player/reactions-tray.tsx +17 -5
  229. package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -3
  230. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +2 -2
  231. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +119 -95
  232. package/corpus/templates/clips/app/global.css +45 -0
  233. package/corpus/templates/clips/app/root.tsx +4 -0
  234. package/corpus/templates/clips/app/routes/_app.notifications.tsx +23 -2
  235. package/corpus/templates/clips/app/routes/_app.trash.tsx +24 -2
  236. package/corpus/templates/clips/changelog/2026-07-11-controls-and-folders-now-move-more-smoothly.md +6 -0
  237. package/corpus/templates/clips/changelog/2026-07-11-declining-an-invitation-now-requires-being-its-recipient.md +6 -0
  238. package/corpus/templates/clips/changelog/2026-07-11-recording-overlays-are-lighter-weight-and-no-longer-cause-pa.md +6 -0
  239. package/corpus/templates/clips/changelog/2026-07-11-workspace-load-failures-now-show-a-retry-action.md +6 -0
  240. package/corpus/templates/clips/chrome-extension/src/overlay.css +34 -5
  241. package/corpus/templates/clips/chrome-extension/src/styles.css +2 -2
  242. package/corpus/templates/clips/desktop/src/styles.css +71 -26
  243. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +1 -1
  244. package/corpus/templates/content/actions/move-document.ts +34 -18
  245. package/corpus/templates/content/app/components/QueryErrorState.tsx +39 -0
  246. package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +1 -1
  247. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +225 -1435
  248. package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +368 -0
  249. package/corpus/templates/content/app/components/editor/database/ListView.tsx +353 -0
  250. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +580 -0
  251. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +11 -2
  252. package/corpus/templates/content/app/global.css +19 -19
  253. package/corpus/templates/content/app/root.tsx +2 -2
  254. package/corpus/templates/content/app/routes/_app._index.tsx +11 -1
  255. package/corpus/templates/content/changelog/2026-07-11-document-load-failures-now-show-a-retry-action.md +6 -0
  256. package/corpus/templates/content/changelog/2026-07-11-editor-toggle-feedback-now-feels-more-responsive.md +6 -0
  257. package/corpus/templates/content/changelog/2026-07-11-moving-documents-at-the-same-time-no-longer-scrambles-their-.md +6 -0
  258. package/corpus/templates/content/changelog/2026-07-11-public-document-chats-now-start-faster-while-keeping-full-do.md +6 -0
  259. package/corpus/templates/content/changelog/2026-07-11-reopening-a-comment-now-uses-consistent-permissions-everywhe.md +6 -0
  260. package/corpus/templates/content/changelog/2026-07-11-sidebar-resizing-now-tracks-your-cursor-instantly-instead-of.md +6 -0
  261. package/corpus/templates/content/server/lib/public-documents.ts +47 -10
  262. package/corpus/templates/content/server/routes/api/comments/[id].patch.ts +24 -24
  263. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +1 -1
  264. package/corpus/templates/design/app/components/QueryErrorState.tsx +24 -0
  265. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
  266. package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +5 -2
  267. package/corpus/templates/design/app/components/design/EditPanel.tsx +326 -319
  268. package/corpus/templates/design/app/components/design/LayersPanel.tsx +198 -193
  269. package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +11 -4
  270. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +1 -1
  271. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
  272. package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -1
  273. package/corpus/templates/design/app/pages/Index.tsx +14 -2
  274. package/corpus/templates/design/app/pages/Present.tsx +16 -3
  275. package/corpus/templates/design/app/pages/Templates.tsx +10 -4
  276. package/corpus/templates/design/app/pages/design-editor/canvas-primitive-insert.ts +484 -0
  277. package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +378 -0
  278. package/corpus/templates/design/app/pages/design-editor/design-data-geometry-utils.ts +138 -0
  279. package/corpus/templates/design/app/pages/design-editor/dom-utils.ts +15 -0
  280. package/corpus/templates/design/app/pages/design-editor/generation-prompt-directives.ts +180 -0
  281. package/corpus/templates/design/app/pages/design-editor/html-layer-positioning.ts +226 -0
  282. package/corpus/templates/design/app/pages/design-editor/png-export-render.ts +348 -0
  283. package/corpus/templates/design/app/pages/design-editor/screen-command-utils.ts +160 -0
  284. package/corpus/templates/design/app/pages/design-editor/text-edit-utils.ts +238 -0
  285. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +23 -1
  286. package/corpus/templates/design/app/pages/design-editor/types.ts +25 -0
  287. package/corpus/templates/design/app/root.tsx +10 -1
  288. package/corpus/templates/design/changelog/2026-07-11-canvas-context-menus-now-open-without-motion-jitter.md +6 -0
  289. package/corpus/templates/design/changelog/2026-07-11-design-load-failures-now-show-a-retry-action.md +6 -0
  290. package/corpus/templates/design/changelog/2026-07-11-inspector-tooltips-appear-instantly-as-you-sweep-across-icon.md +6 -0
  291. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +1 -1
  292. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +10 -0
  293. package/corpus/templates/dispatch/app/i18n-data.ts +123 -0
  294. package/corpus/templates/dispatch/app/routes/integrations.tsx +163 -144
  295. package/corpus/templates/dispatch/changelog/2026-07-11-dispatch-mcp-connections-now-start-with-safer-app-access-and.md +6 -0
  296. package/corpus/templates/dispatch/changelog/2026-07-11-overview-and-chat-now-share-a-cleaner-more-stable-flow.md +6 -0
  297. package/corpus/templates/dispatch/changelog/2026-07-11-query-errors-now-show-a-retry-option.md +6 -0
  298. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +1 -1
  299. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
  300. package/corpus/templates/forms/app/root.tsx +34 -8
  301. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +1 -1
  302. package/corpus/templates/macros/app/components/DailyProgress.tsx +25 -5
  303. package/corpus/templates/macros/app/components/QueryErrorState.tsx +31 -0
  304. package/corpus/templates/macros/app/components/WeightTracker.tsx +5 -1
  305. package/corpus/templates/macros/app/components/ui/button.tsx +1 -1
  306. package/corpus/templates/macros/app/components/ui/progress.tsx +1 -1
  307. package/corpus/templates/macros/app/components/ui/tabs.tsx +1 -1
  308. package/corpus/templates/macros/app/i18n/ar-SA.ts +2 -0
  309. package/corpus/templates/macros/app/i18n/de-DE.ts +2 -0
  310. package/corpus/templates/macros/app/i18n/en-US.ts +2 -0
  311. package/corpus/templates/macros/app/i18n/es-ES.ts +2 -0
  312. package/corpus/templates/macros/app/i18n/fr-FR.ts +2 -0
  313. package/corpus/templates/macros/app/i18n/hi-IN.ts +2 -0
  314. package/corpus/templates/macros/app/i18n/ja-JP.ts +2 -0
  315. package/corpus/templates/macros/app/i18n/ko-KR.ts +2 -0
  316. package/corpus/templates/macros/app/i18n/pt-BR.ts +2 -0
  317. package/corpus/templates/macros/app/i18n/zh-CN.ts +2 -0
  318. package/corpus/templates/macros/app/i18n/zh-TW.ts +2 -0
  319. package/corpus/templates/macros/app/routes/_index.tsx +22 -12
  320. package/corpus/templates/macros/app/routes/analytics.tsx +31 -10
  321. package/corpus/templates/macros/changelog/2026-07-11-daily-tracking-now-loads-and-updates-more-quickly.md +6 -0
  322. package/corpus/templates/macros/changelog/2026-07-11-data-load-failures-now-show-a-clear-error-with-a-retry-actio.md +6 -0
  323. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +1 -1
  324. package/corpus/templates/mail/.env.example +16 -11
  325. package/corpus/templates/mail/actions/list-emails.ts +39 -35
  326. package/corpus/templates/mail/app/components/email/ComposeModal.tsx +58 -6
  327. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +35 -2
  328. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +113 -104
  329. package/corpus/templates/mail/app/root.tsx +8 -10
  330. package/corpus/templates/mail/changelog/2026-07-11-compose-and-navigation-motion-now-feel-faster-and-smoother.md +6 -0
  331. package/corpus/templates/mail/changelog/2026-07-11-swipe-to-archive-or-snooze-now-responds-to-quick-flicks-not-.md +6 -0
  332. package/corpus/templates/mail/changelog/2026-07-11-the-assistant-now-sees-the-same-inbox-you-do-snoozed-mail-st.md +6 -0
  333. package/corpus/templates/mail/server/handlers/emails.ts +25 -69
  334. package/corpus/templates/mail/server/lib/list-inbox-emails.ts +169 -0
  335. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +1 -1
  336. package/corpus/templates/plan/.env.example +4 -0
  337. package/corpus/templates/plan/actions/create-plan-design.ts +89 -81
  338. package/corpus/templates/plan/actions/create-prototype-plan.ts +72 -59
  339. package/corpus/templates/plan/actions/create-ui-plan.ts +70 -55
  340. package/corpus/templates/plan/actions/create-visual-plan.ts +65 -51
  341. package/corpus/templates/plan/actions/update-local-plan-folder.ts +43 -30
  342. package/corpus/templates/plan/actions/update-visual-plan.ts +81 -64
  343. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +17 -0
  344. package/corpus/templates/plan/app/components/ui/tabs.tsx +1 -1
  345. package/corpus/templates/plan/app/i18n/ar-SA.ts +10 -0
  346. package/corpus/templates/plan/app/i18n/de-DE.ts +10 -0
  347. package/corpus/templates/plan/app/i18n/en-US.ts +10 -0
  348. package/corpus/templates/plan/app/i18n/es-ES.ts +10 -0
  349. package/corpus/templates/plan/app/i18n/fr-FR.ts +10 -0
  350. package/corpus/templates/plan/app/i18n/hi-IN.ts +10 -0
  351. package/corpus/templates/plan/app/i18n/ja-JP.ts +10 -0
  352. package/corpus/templates/plan/app/i18n/ko-KR.ts +10 -0
  353. package/corpus/templates/plan/app/i18n/pt-BR.ts +10 -0
  354. package/corpus/templates/plan/app/i18n/zh-CN.ts +10 -0
  355. package/corpus/templates/plan/app/i18n/zh-TW.ts +10 -0
  356. package/corpus/templates/plan/app/lib/plan-local-bridge.ts +80 -1
  357. package/corpus/templates/plan/app/pages/PlansPage.tsx +152 -4
  358. package/corpus/templates/plan/app/root.tsx +11 -0
  359. package/corpus/templates/plan/changelog/2026-07-11-local-plans-now-explain-and-recover-from-browser-permission-.md +6 -0
  360. package/corpus/templates/plan/changelog/2026-07-11-plan-edits-now-save-atomically-and-can-no-longer-partially-a.md +6 -0
  361. package/corpus/templates/plan/changelog/2026-07-11-plan-lists-now-show-a-clear-error-with-a-retry-action-when-t.md +6 -0
  362. package/corpus/templates/plan/shared/plan-content.ts +546 -260
  363. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +1 -1
  364. package/corpus/templates/slides/actions/delete-slide-comment.ts +49 -0
  365. package/corpus/templates/slides/actions/update-slide-comment.ts +93 -0
  366. package/corpus/templates/slides/actions/view-screen.ts +14 -6
  367. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +33 -10
  368. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +1 -1
  369. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +1 -1
  370. package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +2 -2
  371. package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +4 -2
  372. package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +4 -3
  373. package/corpus/templates/slides/app/context/DeckContext.tsx +9 -0
  374. package/corpus/templates/slides/app/i18n/ar-SA.ts +6 -0
  375. package/corpus/templates/slides/app/i18n/de-DE.ts +6 -0
  376. package/corpus/templates/slides/app/i18n/en-US.ts +6 -0
  377. package/corpus/templates/slides/app/i18n/es-ES.ts +6 -0
  378. package/corpus/templates/slides/app/i18n/fr-FR.ts +6 -0
  379. package/corpus/templates/slides/app/i18n/hi-IN.ts +6 -0
  380. package/corpus/templates/slides/app/i18n/ja-JP.ts +6 -0
  381. package/corpus/templates/slides/app/i18n/ko-KR.ts +6 -0
  382. package/corpus/templates/slides/app/i18n/pt-BR.ts +6 -0
  383. package/corpus/templates/slides/app/i18n/zh-CN.ts +5 -0
  384. package/corpus/templates/slides/app/i18n/zh-TW.ts +5 -0
  385. package/corpus/templates/slides/app/pages/DesignSystems.tsx +23 -2
  386. package/corpus/templates/slides/app/pages/Index.tsx +29 -1
  387. package/corpus/templates/slides/changelog/2026-07-11-comment-load-failures-now-show-a-retry-action-instead-of-say.md +6 -0
  388. package/corpus/templates/slides/changelog/2026-07-11-comment-pins-now-clear-with-a-faster-smoother-confirmation.md +6 -0
  389. package/corpus/templates/slides/changelog/2026-07-11-deck-and-design-system-load-failures-now-show-a-retry-action.md +6 -0
  390. package/corpus/templates/slides/changelog/2026-07-11-editor-toggles-and-toolbar-menus-now-animate-smoothly.md +6 -0
  391. package/corpus/templates/slides/changelog/2026-07-11-the-assistant-can-now-resolve-reopen-and-delete-slide-commen.md +6 -0
  392. package/corpus/templates/slides/changelog/2026-07-11-viewing-slides-no-longer-loads-every-deck-s-full-contents-in.md +6 -0
  393. package/corpus/templates/slides/server/routes/api/comments/[id].delete.ts +29 -48
  394. package/corpus/templates/slides/server/routes/api/comments/[id].patch.ts +29 -65
  395. package/dist/action.d.ts +23 -0
  396. package/dist/action.d.ts.map +1 -1
  397. package/dist/action.js +13 -0
  398. package/dist/action.js.map +1 -1
  399. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  400. package/dist/agent/engine/builder-engine.js +3 -0
  401. package/dist/agent/engine/builder-engine.js.map +1 -1
  402. package/dist/agent/engine/context-directives-transform.d.ts +25 -0
  403. package/dist/agent/engine/context-directives-transform.d.ts.map +1 -0
  404. package/dist/agent/engine/context-directives-transform.js +53 -0
  405. package/dist/agent/engine/context-directives-transform.js.map +1 -0
  406. package/dist/agent/engine/continuation-dispatch-retry.d.ts +40 -0
  407. package/dist/agent/engine/continuation-dispatch-retry.d.ts.map +1 -0
  408. package/dist/agent/engine/continuation-dispatch-retry.js +109 -0
  409. package/dist/agent/engine/continuation-dispatch-retry.js.map +1 -0
  410. package/dist/agent/engine/tool-call-journal-seed.d.ts +46 -0
  411. package/dist/agent/engine/tool-call-journal-seed.d.ts.map +1 -0
  412. package/dist/agent/engine/tool-call-journal-seed.js +60 -0
  413. package/dist/agent/engine/tool-call-journal-seed.js.map +1 -0
  414. package/dist/agent/production-agent.d.ts +7 -0
  415. package/dist/agent/production-agent.d.ts.map +1 -1
  416. package/dist/agent/production-agent.js +102 -222
  417. package/dist/agent/production-agent.js.map +1 -1
  418. package/dist/cli/doctor.d.ts.map +1 -1
  419. package/dist/cli/doctor.js +7 -3
  420. package/dist/cli/doctor.js.map +1 -1
  421. package/dist/cli/plan-local.d.ts.map +1 -1
  422. package/dist/cli/plan-local.js +8 -2
  423. package/dist/cli/plan-local.js.map +1 -1
  424. package/dist/cli/skills-content/assets-skill.d.ts +2 -0
  425. package/dist/cli/skills-content/assets-skill.d.ts.map +1 -0
  426. package/dist/cli/skills-content/assets-skill.js +84 -0
  427. package/dist/cli/skills-content/assets-skill.js.map +1 -0
  428. package/dist/cli/skills-content/canvas.d.ts +4 -0
  429. package/dist/cli/skills-content/canvas.d.ts.map +1 -0
  430. package/dist/cli/skills-content/canvas.js +152 -0
  431. package/dist/cli/skills-content/canvas.js.map +1 -0
  432. package/dist/cli/skills-content/connection.d.ts +2 -0
  433. package/dist/cli/skills-content/connection.d.ts.map +1 -0
  434. package/dist/cli/skills-content/connection.js +53 -0
  435. package/dist/cli/skills-content/connection.js.map +1 -0
  436. package/dist/cli/skills-content/content-skill.d.ts +2 -0
  437. package/dist/cli/skills-content/content-skill.d.ts.map +1 -0
  438. package/dist/cli/skills-content/content-skill.js +110 -0
  439. package/dist/cli/skills-content/content-skill.js.map +1 -0
  440. package/dist/cli/skills-content/design-exploration-skill.d.ts +2 -0
  441. package/dist/cli/skills-content/design-exploration-skill.d.ts.map +1 -0
  442. package/dist/cli/skills-content/design-exploration-skill.js +119 -0
  443. package/dist/cli/skills-content/design-exploration-skill.js.map +1 -0
  444. package/dist/cli/skills-content/design-visual-edit-skill.d.ts +2 -0
  445. package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -0
  446. package/dist/cli/skills-content/design-visual-edit-skill.js +229 -0
  447. package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -0
  448. package/dist/cli/skills-content/document-quality.d.ts +4 -0
  449. package/dist/cli/skills-content/document-quality.d.ts.map +1 -0
  450. package/dist/cli/skills-content/document-quality.js +195 -0
  451. package/dist/cli/skills-content/document-quality.js.map +1 -0
  452. package/dist/cli/skills-content/exemplar.d.ts +4 -0
  453. package/dist/cli/skills-content/exemplar.d.ts.map +1 -0
  454. package/dist/cli/skills-content/exemplar.js +68 -0
  455. package/dist/cli/skills-content/exemplar.js.map +1 -0
  456. package/dist/cli/skills-content/help.d.ts +2 -0
  457. package/dist/cli/skills-content/help.d.ts.map +1 -0
  458. package/dist/cli/skills-content/help.js +78 -0
  459. package/dist/cli/skills-content/help.js.map +1 -0
  460. package/dist/cli/skills-content/index.d.ts +23 -0
  461. package/dist/cli/skills-content/index.d.ts.map +1 -0
  462. package/dist/cli/skills-content/index.js +23 -0
  463. package/dist/cli/skills-content/index.js.map +1 -0
  464. package/dist/cli/skills-content/local-files.d.ts +2 -0
  465. package/dist/cli/skills-content/local-files.d.ts.map +1 -0
  466. package/dist/cli/skills-content/local-files.js +96 -0
  467. package/dist/cli/skills-content/local-files.js.map +1 -0
  468. package/dist/cli/skills-content/plan-setup-auth.d.ts +9 -0
  469. package/dist/cli/skills-content/plan-setup-auth.d.ts.map +1 -0
  470. package/dist/cli/skills-content/plan-setup-auth.js +81 -0
  471. package/dist/cli/skills-content/plan-setup-auth.js.map +1 -0
  472. package/dist/cli/skills-content/visual-plan-skill.d.ts +2 -0
  473. package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -0
  474. package/dist/cli/skills-content/visual-plan-skill.js +471 -0
  475. package/dist/cli/skills-content/visual-plan-skill.js.map +1 -0
  476. package/dist/cli/skills-content/visual-recap-skill.d.ts +2 -0
  477. package/dist/cli/skills-content/visual-recap-skill.d.ts.map +1 -0
  478. package/dist/cli/skills-content/visual-recap-skill.js +548 -0
  479. package/dist/cli/skills-content/visual-recap-skill.js.map +1 -0
  480. package/dist/cli/skills-content/visualize-repo-skill.d.ts +2 -0
  481. package/dist/cli/skills-content/visualize-repo-skill.d.ts.map +1 -0
  482. package/dist/cli/skills-content/visualize-repo-skill.js +94 -0
  483. package/dist/cli/skills-content/visualize-repo-skill.js.map +1 -0
  484. package/dist/cli/skills-content/wireframe.d.ts +4 -0
  485. package/dist/cli/skills-content/wireframe.d.ts.map +1 -0
  486. package/dist/cli/skills-content/wireframe.js +347 -0
  487. package/dist/cli/skills-content/wireframe.js.map +1 -0
  488. package/dist/cli/skills.d.ts +2 -10
  489. package/dist/cli/skills.d.ts.map +1 -1
  490. package/dist/cli/skills.js +2 -2710
  491. package/dist/cli/skills.js.map +1 -1
  492. package/dist/client/AgentPanel.d.ts.map +1 -1
  493. package/dist/client/AgentPanel.js +4 -2
  494. package/dist/client/AgentPanel.js.map +1 -1
  495. package/dist/client/CommandMenu.d.ts.map +1 -1
  496. package/dist/client/CommandMenu.js +15 -3
  497. package/dist/client/CommandMenu.js.map +1 -1
  498. package/dist/client/FeedbackButton.js +2 -2
  499. package/dist/client/FeedbackButton.js.map +1 -1
  500. package/dist/client/app-providers.d.ts +13 -5
  501. package/dist/client/app-providers.d.ts.map +1 -1
  502. package/dist/client/app-providers.js +9 -6
  503. package/dist/client/app-providers.js.map +1 -1
  504. package/dist/client/chat/tool-call-display.d.ts +4 -0
  505. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  506. package/dist/client/chat/tool-call-display.js +3 -3
  507. package/dist/client/chat/tool-call-display.js.map +1 -1
  508. package/dist/client/composer/PastedTextChip.js +1 -1
  509. package/dist/client/composer/PastedTextChip.js.map +1 -1
  510. package/dist/client/composer/RealtimeVoiceMode.d.ts +3 -1
  511. package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
  512. package/dist/client/composer/RealtimeVoiceMode.js +35 -14
  513. package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
  514. package/dist/client/composer/TiptapComposer.js +1 -1
  515. package/dist/client/composer/TiptapComposer.js.map +1 -1
  516. package/dist/client/composer/VoiceButton.d.ts +2 -0
  517. package/dist/client/composer/VoiceButton.d.ts.map +1 -1
  518. package/dist/client/composer/VoiceButton.js +9 -3
  519. package/dist/client/composer/VoiceButton.js.map +1 -1
  520. package/dist/client/composer/useRealtimeVoiceMode.d.ts +5 -0
  521. package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
  522. package/dist/client/composer/useRealtimeVoiceMode.js +91 -12
  523. package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
  524. package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
  525. package/dist/client/context-xray/ContextXRayPanel.js +4 -1
  526. package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
  527. package/dist/client/extensions/ExtensionEditor.d.ts.map +1 -1
  528. package/dist/client/extensions/ExtensionEditor.js +15 -5
  529. package/dist/client/extensions/ExtensionEditor.js.map +1 -1
  530. package/dist/client/extensions/ExtensionQueryErrorState.d.ts +8 -0
  531. package/dist/client/extensions/ExtensionQueryErrorState.d.ts.map +1 -0
  532. package/dist/client/extensions/ExtensionQueryErrorState.js +11 -0
  533. package/dist/client/extensions/ExtensionQueryErrorState.js.map +1 -0
  534. package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
  535. package/dist/client/extensions/ExtensionSlot.js +17 -7
  536. package/dist/client/extensions/ExtensionSlot.js.map +1 -1
  537. package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
  538. package/dist/client/extensions/ExtensionViewer.js +17 -7
  539. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  540. package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
  541. package/dist/client/extensions/ExtensionsListPage.js +5 -3
  542. package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
  543. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  544. package/dist/client/extensions/ExtensionsSidebarSection.js +21 -8
  545. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  546. package/dist/client/index.d.ts +0 -2
  547. package/dist/client/index.d.ts.map +1 -1
  548. package/dist/client/index.js +0 -5
  549. package/dist/client/index.js.map +1 -1
  550. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  551. package/dist/client/progress/RunsTray.js +7 -3
  552. package/dist/client/progress/RunsTray.js.map +1 -1
  553. package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
  554. package/dist/client/settings/SettingsTabsPage.js +4 -0
  555. package/dist/client/settings/SettingsTabsPage.js.map +1 -1
  556. package/dist/client/settings/useBuilderStatus.d.ts +2 -0
  557. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  558. package/dist/client/settings/useBuilderStatus.js +4 -0
  559. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  560. package/dist/client/tool-cells/EditCell.d.ts.map +1 -1
  561. package/dist/client/tool-cells/EditCell.js +2 -1
  562. package/dist/client/tool-cells/EditCell.js.map +1 -1
  563. package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -1
  564. package/dist/client/tool-cells/FilesChangedSummary.js +2 -1
  565. package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -1
  566. package/dist/client/tool-cells/WriteCell.d.ts.map +1 -1
  567. package/dist/client/tool-cells/WriteCell.js +2 -1
  568. package/dist/client/tool-cells/WriteCell.js.map +1 -1
  569. package/dist/client/visual-style-controls.js +1 -1
  570. package/dist/client/visual-style-controls.js.map +1 -1
  571. package/dist/collab/routes.d.ts +1 -1
  572. package/dist/deploy/build.d.ts.map +1 -1
  573. package/dist/deploy/build.js +36 -14
  574. package/dist/deploy/build.js.map +1 -1
  575. package/dist/integrations/google-docs-poller.d.ts +7 -0
  576. package/dist/integrations/google-docs-poller.d.ts.map +1 -1
  577. package/dist/integrations/google-docs-poller.js +13 -3
  578. package/dist/integrations/google-docs-poller.js.map +1 -1
  579. package/dist/integrations/plugin.d.ts.map +1 -1
  580. package/dist/integrations/plugin.js +10 -0
  581. package/dist/integrations/plugin.js.map +1 -1
  582. package/dist/integrations/webhook-handler.d.ts +11 -0
  583. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  584. package/dist/integrations/webhook-handler.js +16 -4
  585. package/dist/integrations/webhook-handler.js.map +1 -1
  586. package/dist/jobs/scheduler.d.ts +12 -0
  587. package/dist/jobs/scheduler.d.ts.map +1 -1
  588. package/dist/jobs/scheduler.js +13 -3
  589. package/dist/jobs/scheduler.js.map +1 -1
  590. package/dist/localization/default-messages.d.ts +7 -0
  591. package/dist/localization/default-messages.d.ts.map +1 -1
  592. package/dist/localization/default-messages.js +8 -1
  593. package/dist/localization/default-messages.js.map +1 -1
  594. package/dist/mcp/oauth-token.d.ts +1 -1
  595. package/dist/mcp/oauth-token.d.ts.map +1 -1
  596. package/dist/mcp/oauth-token.js +6 -1
  597. package/dist/mcp/oauth-token.js.map +1 -1
  598. package/dist/notifications/routes.d.ts +2 -2
  599. package/dist/observability/routes.d.ts.map +1 -1
  600. package/dist/observability/routes.js +32 -0
  601. package/dist/observability/routes.js.map +1 -1
  602. package/dist/observability/sentiment.d.ts +42 -0
  603. package/dist/observability/sentiment.d.ts.map +1 -0
  604. package/dist/observability/sentiment.js +196 -0
  605. package/dist/observability/sentiment.js.map +1 -0
  606. package/dist/observability/store.d.ts +5 -0
  607. package/dist/observability/store.d.ts.map +1 -1
  608. package/dist/observability/store.js +17 -0
  609. package/dist/observability/store.js.map +1 -1
  610. package/dist/observability/traces.d.ts +2 -0
  611. package/dist/observability/traces.d.ts.map +1 -1
  612. package/dist/observability/traces.js +42 -57
  613. package/dist/observability/traces.js.map +1 -1
  614. package/dist/observability/tracking-identity.d.ts +3 -0
  615. package/dist/observability/tracking-identity.d.ts.map +1 -0
  616. package/dist/observability/tracking-identity.js +51 -0
  617. package/dist/observability/tracking-identity.js.map +1 -0
  618. package/dist/observability/types.d.ts +10 -0
  619. package/dist/observability/types.d.ts.map +1 -1
  620. package/dist/observability/types.js +3 -0
  621. package/dist/observability/types.js.map +1 -1
  622. package/dist/progress/routes.d.ts +1 -1
  623. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  624. package/dist/resources/handlers.d.ts +1 -1
  625. package/dist/secrets/storage.d.ts +6 -0
  626. package/dist/secrets/storage.d.ts.map +1 -1
  627. package/dist/secrets/storage.js +61 -3
  628. package/dist/secrets/storage.js.map +1 -1
  629. package/dist/server/agent-chat/action-filters-a2a.d.ts +50 -0
  630. package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -0
  631. package/dist/server/agent-chat/action-filters-a2a.js +127 -0
  632. package/dist/server/agent-chat/action-filters-a2a.js.map +1 -0
  633. package/dist/server/agent-chat/browser-team-tools.d.ts +21 -0
  634. package/dist/server/agent-chat/browser-team-tools.d.ts.map +1 -0
  635. package/dist/server/agent-chat/browser-team-tools.js +417 -0
  636. package/dist/server/agent-chat/browser-team-tools.js.map +1 -0
  637. package/dist/server/agent-chat/context-tools.d.ts +33 -0
  638. package/dist/server/agent-chat/context-tools.d.ts.map +1 -0
  639. package/dist/server/agent-chat/context-tools.js +520 -0
  640. package/dist/server/agent-chat/context-tools.js.map +1 -0
  641. package/dist/server/agent-chat/framework-prompts.d.ts +65 -0
  642. package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -0
  643. package/dist/server/agent-chat/framework-prompts.js +403 -0
  644. package/dist/server/agent-chat/framework-prompts.js.map +1 -0
  645. package/dist/server/agent-chat/lazy-fs.d.ts +2 -0
  646. package/dist/server/agent-chat/lazy-fs.d.ts.map +1 -0
  647. package/dist/server/agent-chat/lazy-fs.js +11 -0
  648. package/dist/server/agent-chat/lazy-fs.js.map +1 -0
  649. package/dist/server/agent-chat/mcp-glue.d.ts +9 -0
  650. package/dist/server/agent-chat/mcp-glue.d.ts.map +1 -0
  651. package/dist/server/agent-chat/mcp-glue.js +63 -0
  652. package/dist/server/agent-chat/mcp-glue.js.map +1 -0
  653. package/dist/server/agent-chat/plugin-options.d.ts +322 -0
  654. package/dist/server/agent-chat/plugin-options.d.ts.map +1 -0
  655. package/dist/server/agent-chat/plugin-options.js +2 -0
  656. package/dist/server/agent-chat/plugin-options.js.map +1 -0
  657. package/dist/server/agent-chat/process-run-failure.d.ts +12 -0
  658. package/dist/server/agent-chat/process-run-failure.d.ts.map +1 -0
  659. package/dist/server/agent-chat/process-run-failure.js +24 -0
  660. package/dist/server/agent-chat/process-run-failure.js.map +1 -0
  661. package/dist/server/agent-chat/prompt-resources.d.ts +28 -0
  662. package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -0
  663. package/dist/server/agent-chat/prompt-resources.js +514 -0
  664. package/dist/server/agent-chat/prompt-resources.js.map +1 -0
  665. package/dist/server/agent-chat/recurring-jobs-runtime.d.ts +5 -0
  666. package/dist/server/agent-chat/recurring-jobs-runtime.d.ts.map +1 -0
  667. package/dist/server/agent-chat/recurring-jobs-runtime.js +53 -0
  668. package/dist/server/agent-chat/recurring-jobs-runtime.js.map +1 -0
  669. package/dist/server/agent-chat/request-surface.d.ts +8 -0
  670. package/dist/server/agent-chat/request-surface.d.ts.map +1 -0
  671. package/dist/server/agent-chat/request-surface.js +56 -0
  672. package/dist/server/agent-chat/request-surface.js.map +1 -0
  673. package/dist/server/agent-chat/run-code-tools.d.ts +17 -0
  674. package/dist/server/agent-chat/run-code-tools.d.ts.map +1 -0
  675. package/dist/server/agent-chat/run-code-tools.js +55 -0
  676. package/dist/server/agent-chat/run-code-tools.js.map +1 -0
  677. package/dist/server/agent-chat/script-entries.d.ts +47 -0
  678. package/dist/server/agent-chat/script-entries.d.ts.map +1 -0
  679. package/dist/server/agent-chat/script-entries.js +633 -0
  680. package/dist/server/agent-chat/script-entries.js.map +1 -0
  681. package/dist/server/agent-chat/shared-thread.d.ts +33 -0
  682. package/dist/server/agent-chat/shared-thread.d.ts.map +1 -0
  683. package/dist/server/agent-chat/shared-thread.js +242 -0
  684. package/dist/server/agent-chat/shared-thread.js.map +1 -0
  685. package/dist/server/agent-chat/skill-frontmatter.d.ts +7 -0
  686. package/dist/server/agent-chat/skill-frontmatter.d.ts.map +1 -0
  687. package/dist/server/agent-chat/skill-frontmatter.js +26 -0
  688. package/dist/server/agent-chat/skill-frontmatter.js.map +1 -0
  689. package/dist/server/agent-chat-plugin.d.ts +45 -486
  690. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  691. package/dist/server/agent-chat-plugin.js +173 -3005
  692. package/dist/server/agent-chat-plugin.js.map +1 -1
  693. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  694. package/dist/server/agent-teams.d.ts +10 -0
  695. package/dist/server/agent-teams.d.ts.map +1 -1
  696. package/dist/server/agent-teams.js +13 -3
  697. package/dist/server/agent-teams.js.map +1 -1
  698. package/dist/server/auth.d.ts.map +1 -1
  699. package/dist/server/auth.js +50 -52
  700. package/dist/server/auth.js.map +1 -1
  701. package/dist/server/credential-provider.d.ts.map +1 -1
  702. package/dist/server/credential-provider.js +22 -21
  703. package/dist/server/credential-provider.js.map +1 -1
  704. package/dist/server/edge.d.ts +1 -0
  705. package/dist/server/edge.d.ts.map +1 -1
  706. package/dist/server/edge.js +1 -0
  707. package/dist/server/edge.js.map +1 -1
  708. package/dist/server/onboarding-html.d.ts.map +1 -1
  709. package/dist/server/onboarding-html.js +1 -16
  710. package/dist/server/onboarding-html.js.map +1 -1
  711. package/dist/server/realtime-voice.d.ts +3 -0
  712. package/dist/server/realtime-voice.d.ts.map +1 -1
  713. package/dist/server/realtime-voice.js +29 -5
  714. package/dist/server/realtime-voice.js.map +1 -1
  715. package/dist/server/request-origin.d.ts.map +1 -1
  716. package/dist/server/request-origin.js +6 -3
  717. package/dist/server/request-origin.js.map +1 -1
  718. package/dist/server/ssr-handler.d.ts.map +1 -1
  719. package/dist/server/ssr-handler.js +47 -2
  720. package/dist/server/ssr-handler.js.map +1 -1
  721. package/dist/sharing/access.d.ts +63 -3
  722. package/dist/sharing/access.d.ts.map +1 -1
  723. package/dist/sharing/access.js +53 -15
  724. package/dist/sharing/access.js.map +1 -1
  725. package/dist/sharing/registry.d.ts +7 -0
  726. package/dist/sharing/registry.d.ts.map +1 -1
  727. package/dist/sharing/registry.js.map +1 -1
  728. package/dist/styles/agent-native.css +15 -14
  729. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  730. package/dist/templates/default/app/i18n/ar-SA.ts +6 -0
  731. package/dist/templates/default/app/i18n/de-DE.ts +6 -0
  732. package/dist/templates/default/app/i18n/en-US.ts +6 -0
  733. package/dist/templates/default/app/i18n/es-ES.ts +6 -0
  734. package/dist/templates/default/app/i18n/fr-FR.ts +6 -0
  735. package/dist/templates/default/app/i18n/hi-IN.ts +6 -0
  736. package/dist/templates/default/app/i18n/ja-JP.ts +6 -0
  737. package/dist/templates/default/app/i18n/ko-KR.ts +6 -0
  738. package/dist/templates/default/app/i18n/pt-BR.ts +6 -0
  739. package/dist/templates/default/app/i18n/zh-CN.ts +6 -0
  740. package/dist/templates/default/app/i18n/zh-TW.ts +6 -0
  741. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
  742. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
  743. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  744. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
  745. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
  746. package/dist/templates/workspace-core/src/server/index.ts +4 -2
  747. package/dist/testing.d.ts +16 -0
  748. package/dist/testing.d.ts.map +1 -0
  749. package/dist/testing.js +16 -0
  750. package/dist/testing.js.map +1 -0
  751. package/dist/triggers/dispatcher.d.ts +7 -0
  752. package/dist/triggers/dispatcher.d.ts.map +1 -1
  753. package/dist/triggers/dispatcher.js +13 -3
  754. package/dist/triggers/dispatcher.js.map +1 -1
  755. package/dist/vite/client.d.ts +16 -1
  756. package/dist/vite/client.d.ts.map +1 -1
  757. package/dist/vite/client.js +105 -2
  758. package/dist/vite/client.js.map +1 -1
  759. package/docs/content/authentication.mdx +3 -3
  760. package/docs/content/doctor.mdx +170 -0
  761. package/docs/content/external-agents.mdx +8 -7
  762. package/docs/content/locales/ar-SA/authentication.mdx +2 -2
  763. package/docs/content/locales/ar-SA/external-agents.mdx +8 -7
  764. package/docs/content/locales/ar-SA/mcp-protocol.mdx +1 -1
  765. package/docs/content/locales/ar-SA/security.mdx +2 -0
  766. package/docs/content/locales/de-DE/authentication.mdx +1 -1
  767. package/docs/content/locales/de-DE/external-agents.mdx +8 -7
  768. package/docs/content/locales/de-DE/mcp-protocol.mdx +1 -1
  769. package/docs/content/locales/de-DE/security.mdx +2 -0
  770. package/docs/content/locales/es-ES/authentication.mdx +2 -2
  771. package/docs/content/locales/es-ES/external-agents.mdx +8 -7
  772. package/docs/content/locales/es-ES/mcp-protocol.mdx +1 -1
  773. package/docs/content/locales/es-ES/security.mdx +2 -0
  774. package/docs/content/locales/fr-FR/authentication.mdx +1 -1
  775. package/docs/content/locales/fr-FR/external-agents.mdx +8 -7
  776. package/docs/content/locales/fr-FR/mcp-protocol.mdx +1 -1
  777. package/docs/content/locales/fr-FR/security.mdx +2 -0
  778. package/docs/content/locales/hi-IN/authentication.mdx +2 -2
  779. package/docs/content/locales/hi-IN/external-agents.mdx +8 -7
  780. package/docs/content/locales/hi-IN/mcp-protocol.mdx +1 -1
  781. package/docs/content/locales/hi-IN/security.mdx +2 -0
  782. package/docs/content/locales/ja-JP/authentication.mdx +2 -2
  783. package/docs/content/locales/ja-JP/external-agents.mdx +8 -7
  784. package/docs/content/locales/ja-JP/mcp-protocol.mdx +1 -1
  785. package/docs/content/locales/ja-JP/security.mdx +2 -0
  786. package/docs/content/locales/ko-KR/authentication.mdx +2 -2
  787. package/docs/content/locales/ko-KR/external-agents.mdx +8 -7
  788. package/docs/content/locales/ko-KR/mcp-protocol.mdx +1 -1
  789. package/docs/content/locales/ko-KR/security.mdx +2 -0
  790. package/docs/content/locales/pt-BR/authentication.mdx +2 -2
  791. package/docs/content/locales/pt-BR/external-agents.mdx +8 -7
  792. package/docs/content/locales/pt-BR/mcp-protocol.mdx +1 -1
  793. package/docs/content/locales/pt-BR/security.mdx +2 -0
  794. package/docs/content/locales/zh-CN/authentication.mdx +2 -2
  795. package/docs/content/locales/zh-CN/external-agents.mdx +8 -7
  796. package/docs/content/locales/zh-CN/mcp-protocol.mdx +1 -1
  797. package/docs/content/locales/zh-CN/security.mdx +2 -0
  798. package/docs/content/locales/zh-TW/authentication.mdx +2 -2
  799. package/docs/content/locales/zh-TW/external-agents.mdx +8 -7
  800. package/docs/content/locales/zh-TW/mcp-protocol.mdx +1 -1
  801. package/docs/content/locales/zh-TW/security.mdx +2 -0
  802. package/docs/content/mcp-protocol.mdx +1 -1
  803. package/docs/content/security.mdx +2 -0
  804. package/package.json +6 -2
  805. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  806. package/src/templates/default/app/i18n/ar-SA.ts +6 -0
  807. package/src/templates/default/app/i18n/de-DE.ts +6 -0
  808. package/src/templates/default/app/i18n/en-US.ts +6 -0
  809. package/src/templates/default/app/i18n/es-ES.ts +6 -0
  810. package/src/templates/default/app/i18n/fr-FR.ts +6 -0
  811. package/src/templates/default/app/i18n/hi-IN.ts +6 -0
  812. package/src/templates/default/app/i18n/ja-JP.ts +6 -0
  813. package/src/templates/default/app/i18n/ko-KR.ts +6 -0
  814. package/src/templates/default/app/i18n/pt-BR.ts +6 -0
  815. package/src/templates/default/app/i18n/zh-CN.ts +6 -0
  816. package/src/templates/default/app/i18n/zh-TW.ts +6 -0
  817. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +27 -29
  818. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +2 -1
  819. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  820. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +32 -0
  821. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +25 -0
  822. package/src/templates/workspace-core/src/server/index.ts +4 -2
  823. package/corpus/core/src/client/ProductionAgentPanel.tsx +0 -9
  824. package/corpus/core/src/client/auth-redirect-url.ts +0 -23
  825. package/corpus/core/src/client/useProductionAgent.ts +0 -253
  826. package/corpus/core/src/shared/auth-redirect-url.ts +0 -1
  827. package/corpus/templates/analytics/app/pages/Index.tsx +0 -16
  828. package/corpus/templates/analytics/seeds/dashboards/agent-observability-llm.json +0 -173
  829. package/dist/client/ProductionAgentPanel.d.ts +0 -6
  830. package/dist/client/ProductionAgentPanel.d.ts.map +0 -1
  831. package/dist/client/ProductionAgentPanel.js +0 -6
  832. package/dist/client/ProductionAgentPanel.js.map +0 -1
  833. package/dist/client/auth-redirect-url.d.ts +0 -2
  834. package/dist/client/auth-redirect-url.d.ts.map +0 -1
  835. package/dist/client/auth-redirect-url.js +0 -19
  836. package/dist/client/auth-redirect-url.js.map +0 -1
  837. package/dist/client/useProductionAgent.d.ts +0 -24
  838. package/dist/client/useProductionAgent.d.ts.map +0 -1
  839. package/dist/client/useProductionAgent.js +0 -179
  840. package/dist/client/useProductionAgent.js.map +0 -1
  841. package/dist/shared/auth-redirect-url.d.ts +0 -2
  842. package/dist/shared/auth-redirect-url.d.ts.map +0 -1
  843. package/dist/shared/auth-redirect-url.js +0 -2
  844. 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-all 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
+ 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-colors hover:text-muted-foreground/60 group-hover/item:opacity-100 active:cursor-grabbing"
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-all",
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-all shrink-0">
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
- try {
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
- }));
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
- try {
1156
- const rows = await callAction(
1157
- "list-analyses",
1158
- {
1159
- ...(hidden === "hidden" ? { hidden: "hidden" } : {}),
1160
- } as Record<string, unknown>,
1161
- { method: "GET" },
1162
- );
1163
- return (Array.isArray(rows) ? rows : [])
1164
- .filter((a: any) => a && typeof a.id === "string" && a.id.length > 0)
1165
- .map((a: any) => ({
1166
- id: a.id,
1167
- name:
1168
- typeof a.name === "string" && a.name.trim().length > 0
1169
- ? a.name
1170
- : t("sidebar.untitledAnalysis"),
1171
- visibility:
1172
- a.visibility === "org" || a.visibility === "public"
1173
- ? a.visibility
1174
- : ("private" as Visibility),
1175
- hiddenAt: typeof a.hiddenAt === "string" ? a.hiddenAt : null,
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-all 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"
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 { data: sqlDashboards = [], isLoading: sqlDashboardsLoading } =
1773
- useQuery({
1774
- queryKey: ["sql-dashboards-sidebar", dashboardsSync],
1775
- queryFn: () => fetchSqlDashboards(t),
1776
- staleTime: 30_000,
1777
- placeholderData: (prev) => prev,
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 { data: analysesList = [], isLoading: analysesLoading } = useQuery({
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-all hover:text-primary",
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-all hover:text-primary",
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-all hover:text-primary",
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-all hover:text-primary",
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-all hover:text-primary",
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-all hover:text-primary",
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-all hover:text-primary",
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-all hover:text-primary",
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
- {!analysesLoading && sortedAnalyses.length === 0 && (
2945
- <p className="px-3 py-1 text-[11px] text-muted-foreground/60">
2946
- {t("sidebar.noAnalysesYet")}
2947
- </p>
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-all hover:text-primary",
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-all hover:text-primary cursor-pointer hover:bg-sidebar-accent/50"
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 { data: views = [], isLoading } = useQuery({
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) return [];
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 { views, isLoading, saveView, deleteView };
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: "التبديل إلى الوضع الداكن",