@agent-native/core 0.79.17 → 0.79.19

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 (355) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +14 -0
  3. package/corpus/core/docs/content/file-uploads.md +11 -4
  4. package/corpus/core/docs/content/locales/ar-SA/multi-app-workspace.md +3 -3
  5. package/corpus/core/docs/content/locales/de-DE/multi-app-workspace.md +3 -3
  6. package/corpus/core/docs/content/locales/es-ES/multi-app-workspace.md +3 -3
  7. package/corpus/core/docs/content/locales/fr-FR/multi-app-workspace.md +3 -3
  8. package/corpus/core/docs/content/locales/hi-IN/multi-app-workspace.md +3 -3
  9. package/corpus/core/docs/content/locales/ja-JP/multi-app-workspace.md +3 -3
  10. package/corpus/core/docs/content/locales/ko-KR/multi-app-workspace.md +3 -3
  11. package/corpus/core/docs/content/locales/pt-BR/multi-app-workspace.md +3 -3
  12. package/corpus/core/docs/content/locales/zh-CN/multi-app-workspace.md +3 -3
  13. package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +3 -3
  14. package/corpus/core/docs/content/multi-app-workspace.md +3 -3
  15. package/corpus/core/docs/content/template-clips.md +14 -5
  16. package/corpus/core/package.json +1 -1
  17. package/corpus/core/src/agent/engine/builder-engine.ts +8 -3
  18. package/corpus/core/src/cli/mcp.ts +11 -6
  19. package/corpus/core/src/client/AssistantChat.tsx +6 -2
  20. package/corpus/core/src/client/chat/markdown-renderer.tsx +1 -0
  21. package/corpus/core/src/client/i18n.tsx +77 -65
  22. package/corpus/core/src/client/index.ts +7 -1
  23. package/corpus/core/src/client/org/OrgSwitcher.tsx +5 -5
  24. package/corpus/core/src/client/org/TeamPage.tsx +11 -3
  25. package/corpus/core/src/client/settings/SettingsTabsPage.tsx +216 -0
  26. package/corpus/core/src/client/settings/index.ts +5 -0
  27. package/corpus/core/src/file-upload/index.ts +1 -0
  28. package/corpus/core/src/file-upload/registry.ts +22 -6
  29. package/corpus/core/src/file-upload/types.ts +6 -1
  30. package/corpus/core/src/integrations/adapters/email.ts +26 -18
  31. package/corpus/core/src/integrations/adapters/slack.ts +8 -7
  32. package/corpus/core/src/integrations/adapters/telegram.ts +9 -11
  33. package/corpus/core/src/integrations/adapters/whatsapp.ts +12 -9
  34. package/corpus/core/src/integrations/plugin.ts +79 -13
  35. package/corpus/core/src/onboarding/default-steps.ts +6 -3
  36. package/corpus/core/src/onboarding/types.ts +1 -1
  37. package/corpus/core/src/org/handlers.ts +1 -1
  38. package/corpus/core/src/server/agent-chat-plugin.ts +4 -7
  39. package/corpus/core/src/server/better-auth-instance.ts +19 -62
  40. package/corpus/core/src/server/core-routes-plugin.ts +93 -180
  41. package/corpus/core/src/server/create-server.ts +55 -116
  42. package/corpus/core/src/server/email-actions.ts +3 -6
  43. package/corpus/core/src/server/email.ts +52 -17
  44. package/corpus/core/src/server/index.ts +2 -1
  45. package/corpus/core/src/server/scoped-key-storage.ts +223 -0
  46. package/corpus/core/src/shared/agent-env.ts +3 -3
  47. package/corpus/core/src/sharing/actions/share-resource.ts +1 -1
  48. package/corpus/core/src/styles/agent-native.css +47 -3
  49. package/corpus/core/src/templates/workspace-root/AGENTS.md +3 -2
  50. package/corpus/core/src/templates/workspace-root/README.md +1 -1
  51. package/corpus/core/src/templates/workspace-root/scripts/repair-workspace-org.ts +29 -90
  52. package/corpus/core/src/terminal/pty-server.ts +3 -38
  53. package/corpus/core/src/triggers/dispatcher.ts +1 -2
  54. package/corpus/templates/.retired/issues/package.json +7 -0
  55. package/corpus/templates/.retired/meeting-notes/package.json +7 -0
  56. package/corpus/templates/.retired/recruiting/package.json +7 -0
  57. package/corpus/templates/.retired/scheduling/package.json +7 -0
  58. package/corpus/templates/.retired/voice/package.json +7 -0
  59. package/corpus/templates/analytics/app/components/layout/Header.tsx +0 -1
  60. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -18
  61. package/corpus/templates/analytics/app/global.css +15 -0
  62. package/corpus/templates/analytics/app/i18n/zh-TW.ts +7 -1
  63. package/corpus/templates/analytics/app/i18n-data.ts +71 -2
  64. package/corpus/templates/analytics/app/pages/Ask.tsx +1 -1
  65. package/corpus/templates/analytics/app/pages/Settings.tsx +120 -73
  66. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +0 -11
  67. package/corpus/templates/analytics/app/routes/catalog.tsx +33 -176
  68. package/corpus/templates/analytics/app/routes/team.tsx +3 -2
  69. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-templates-are-tucked-into-settings-and-show-simple.md +6 -0
  70. package/corpus/templates/analytics/changelog/2026-06-26-the-ask-tab-uses-a-softer-dark-gray-canvas-while-sidebar-cha.md +6 -0
  71. package/corpus/templates/analytics/changelog/2026-06-26-the-sessions-page-shows-a-single-page-title-instead-of-repea.md +6 -0
  72. package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +37 -28
  73. package/corpus/templates/assets/app/routes/settings.tsx +65 -43
  74. package/corpus/templates/assets/app/routes/team.tsx +2 -10
  75. package/corpus/templates/brain/app/routes/settings.tsx +390 -358
  76. package/corpus/templates/brain/app/routes/team.tsx +2 -8
  77. package/corpus/templates/calendar/actions/db-connect.ts +5 -29
  78. package/corpus/templates/calendar/app/components/CloudUpgrade.tsx +8 -51
  79. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +2 -1
  80. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +4 -2
  81. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +0 -2
  82. package/corpus/templates/calendar/app/pages/Settings.tsx +304 -271
  83. package/corpus/templates/calendar/app/routes/_app.team.tsx +2 -17
  84. package/corpus/templates/calendar/server/handlers/google-auth.ts +22 -9
  85. package/corpus/templates/calendar/server/lib/booking-emails.ts +1 -1
  86. package/corpus/templates/calendar/server/lib/event-guest-notifications.ts +1 -1
  87. package/corpus/templates/calendar/server/lib/google-calendar.ts +48 -28
  88. package/corpus/templates/chat/app/components/layout/Header.tsx +0 -1
  89. package/corpus/templates/chat/app/hooks/use-navigation-state.ts +4 -2
  90. package/corpus/templates/chat/app/routes/settings.tsx +54 -54
  91. package/corpus/templates/chat/app/routes/team.tsx +2 -10
  92. package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +7 -2
  93. package/corpus/templates/clips/.agents/skills/recording/SKILL.md +1 -1
  94. package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +7 -0
  95. package/corpus/templates/clips/AGENTS.md +8 -0
  96. package/corpus/templates/clips/actions/invite-member.ts +1 -1
  97. package/corpus/templates/clips/actions/request-transcript.ts +1 -1
  98. package/corpus/templates/clips/app/components/library/library-layout.tsx +325 -333
  99. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +80 -40
  100. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +2 -0
  101. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +629 -643
  102. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +263 -158
  103. package/corpus/templates/clips/app/routes/share.$shareId.tsx +10 -2
  104. package/corpus/templates/clips/changelog/2026-06-26-long-desktop-recordings-are-checkpointed-so-macos-finalizati.md +6 -0
  105. package/corpus/templates/clips/changelog/2026-06-26-non-mac-desktop-recordings-wait-for-upload-transcription.md +6 -0
  106. package/corpus/templates/clips/changelog/2026-06-26-recording-details-button-stays-at-the-far-right-on-small-screen.md +6 -0
  107. package/corpus/templates/clips/changelog/2026-06-26-s3-compatible-storage-keys-now-save-securely-from-clips-sett.md +6 -0
  108. package/corpus/templates/clips/changelog/2026-06-26-shared-clip-links-guide-agents-through-processing-transcripts.md +6 -0
  109. package/corpus/templates/clips/changelog/2026-06-26-the-agent-sidebar-now-slides-in-smoothly-without-duplicate-e.md +6 -0
  110. package/corpus/templates/clips/changelog/2026-06-26-the-clip-details-sidebar-now-collapses-into-a-slide-out-pane.md +6 -0
  111. package/corpus/templates/clips/desktop/src/lib/recorder.ts +55 -3
  112. package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +217 -5
  113. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
  114. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +176 -5
  115. package/corpus/templates/clips/server/lib/public-agent-context.ts +31 -0
  116. package/corpus/templates/clips/server/lib/s3-upload-provider.ts +60 -14
  117. package/corpus/templates/clips/server/lib/video-storage.ts +37 -9
  118. package/corpus/templates/clips/server/routes/api/agent-transcript.json.get.ts +5 -0
  119. package/corpus/templates/content/app/components/layout/Header.tsx +0 -1
  120. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +1 -0
  121. package/corpus/templates/content/app/routes/_app.settings.tsx +54 -55
  122. package/corpus/templates/content/app/routes/_app.team.tsx +2 -28
  123. package/corpus/templates/content/server/lib/notion.ts +43 -11
  124. package/corpus/templates/content/server/routes/api/notion/auth-url.get.ts +2 -2
  125. package/corpus/templates/content/server/routes/api/notion/status.get.ts +3 -3
  126. package/corpus/templates/design/app/routes/settings.tsx +60 -38
  127. package/corpus/templates/design/app/routes/team.tsx +2 -10
  128. package/corpus/templates/dispatch/app/hooks/use-navigation-state.ts +2 -2
  129. package/corpus/templates/dispatch/app/routes/settings.tsx +70 -55
  130. package/corpus/templates/dispatch/app/routes/team.tsx +5 -1
  131. package/corpus/templates/forms/actions/db-connect.ts +7 -36
  132. package/corpus/templates/forms/actions/navigate.ts +2 -2
  133. package/corpus/templates/forms/app/components/CloudUpgrade.tsx +8 -47
  134. package/corpus/templates/forms/app/components/layout/Header.tsx +0 -1
  135. package/corpus/templates/forms/app/components/layout/Layout.tsx +42 -25
  136. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +35 -76
  137. package/corpus/templates/forms/app/global.css +9 -25
  138. package/corpus/templates/forms/app/hooks/use-navigation-state.ts +4 -4
  139. package/corpus/templates/forms/app/i18n/ar-SA.ts +1 -0
  140. package/corpus/templates/forms/app/i18n/de-DE.ts +1 -0
  141. package/corpus/templates/forms/app/i18n/en-US.ts +1 -0
  142. package/corpus/templates/forms/app/i18n/es-ES.ts +1 -0
  143. package/corpus/templates/forms/app/i18n/fr-FR.ts +1 -0
  144. package/corpus/templates/forms/app/i18n/hi-IN.ts +1 -0
  145. package/corpus/templates/forms/app/i18n/ja-JP.ts +1 -0
  146. package/corpus/templates/forms/app/i18n/ko-KR.ts +1 -0
  147. package/corpus/templates/forms/app/i18n/pt-BR.ts +1 -0
  148. package/corpus/templates/forms/app/i18n/zh-CN.ts +1 -0
  149. package/corpus/templates/forms/app/i18n/zh-TW.ts +1 -0
  150. package/corpus/templates/forms/app/lib/route-prewarm.ts +9 -8
  151. package/corpus/templates/forms/app/pages/AskPage.tsx +70 -0
  152. package/corpus/templates/forms/app/pages/FormsListPage.tsx +74 -81
  153. package/corpus/templates/forms/app/root.tsx +1 -1
  154. package/corpus/templates/forms/app/routes/_app.ask.tsx +14 -0
  155. package/corpus/templates/forms/app/routes/_app.settings.tsx +54 -54
  156. package/corpus/templates/forms/app/routes/_app.team.tsx +2 -9
  157. package/corpus/templates/forms/app/routes/_index.tsx +21 -130
  158. package/corpus/templates/forms/changelog/2026-06-26-ask-forms-opens-as-a-standard-app-tab-with-a-simpler-sidebar.md +6 -0
  159. package/corpus/templates/forms/changelog/2026-06-26-forms-are-shown-in-a-tighter-row-list-with-a-denser-sidebar.md +6 -0
  160. package/corpus/templates/forms/shared/navigation.ts +4 -2
  161. package/corpus/templates/macros/app/routes/settings.tsx +54 -54
  162. package/corpus/templates/macros/app/routes/team.tsx +2 -10
  163. package/corpus/templates/mail/actions/helpers.ts +2 -2
  164. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +2 -1
  165. package/corpus/templates/mail/app/pages/SettingsPage.tsx +5 -5
  166. package/corpus/templates/mail/app/routes/team.tsx +3 -2
  167. package/corpus/templates/mail/server/handlers/emails.ts +3 -2
  168. package/corpus/templates/mail/server/handlers/google-auth.ts +19 -12
  169. package/corpus/templates/mail/server/lib/automation-engine.ts +3 -2
  170. package/corpus/templates/mail/server/lib/email-state.ts +2 -3
  171. package/corpus/templates/mail/server/lib/google-auth.ts +28 -11
  172. package/corpus/templates/mail/server/lib/jobs.ts +3 -2
  173. package/corpus/templates/mail/server/onboarding.ts +9 -6
  174. package/corpus/templates/mail/server/routes/api/attachments.get.ts +3 -3
  175. package/corpus/templates/plan/actions/request-plan-access.ts +1 -1
  176. package/corpus/templates/plan/app/components/layout/Header.tsx +0 -1
  177. package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +56 -4
  178. package/corpus/templates/plan/app/global.css +8 -3
  179. package/corpus/templates/plan/app/hooks/use-navigation-state.ts +4 -2
  180. package/corpus/templates/plan/app/lib/route-prewarm.ts +0 -4
  181. package/corpus/templates/plan/app/pages/PlansPage.tsx +1 -1
  182. package/corpus/templates/plan/app/routes/settings.tsx +75 -73
  183. package/corpus/templates/plan/app/routes/team.tsx +2 -8
  184. package/corpus/templates/plan/changelog/2026-06-26-canvas-grid-panning-now-stays-smooth-and-fills-the-workspace.md +6 -0
  185. package/corpus/templates/plan/server/lib/comment-notifications.ts +1 -1
  186. package/corpus/templates/slides/actions/check-image-gen.ts +2 -1
  187. package/corpus/templates/slides/actions/db-connect.ts +7 -45
  188. package/corpus/templates/slides/actions/edit-image.ts +6 -3
  189. package/corpus/templates/slides/actions/generate-image-api.ts +1 -1
  190. package/corpus/templates/slides/actions/generate-image.ts +2 -2
  191. package/corpus/templates/slides/actions/generate-slides-ai.ts +5 -3
  192. package/corpus/templates/slides/actions/image-gen-status.ts +4 -3
  193. package/corpus/templates/slides/actions/image-search.ts +6 -3
  194. package/corpus/templates/slides/actions/search-images.ts +6 -3
  195. package/corpus/templates/slides/app/components/CloudUpgrade.tsx +8 -51
  196. package/corpus/templates/slides/app/components/layout/Header.tsx +0 -1
  197. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +0 -2
  198. package/corpus/templates/slides/app/routes/settings.tsx +54 -54
  199. package/corpus/templates/slides/app/routes/team.tsx +2 -12
  200. package/corpus/templates/slides/server/handlers/google-docs-auth.ts +9 -9
  201. package/corpus/templates/slides/server/handlers/image-gen.ts +5 -1
  202. package/corpus/templates/slides/server/handlers/image-providers/gemini.ts +9 -1
  203. package/corpus/templates/slides/server/handlers/image-providers/index.ts +18 -8
  204. package/corpus/templates/slides/server/handlers/image-providers/openai.ts +10 -4
  205. package/corpus/templates/slides/server/handlers/image-providers/types.ts +1 -0
  206. package/corpus/templates/slides/server/lib/google-docs-oauth.ts +59 -34
  207. package/corpus/templates/slides/server/register-secrets.ts +60 -0
  208. package/corpus/templates/videos/actions/db-connect.ts +7 -45
  209. package/corpus/templates/videos/app/components/CloudUpgrade.tsx +8 -51
  210. package/corpus/templates/videos/app/components/Sidebar.tsx +1 -9
  211. package/corpus/templates/videos/app/components/layout/Header.tsx +0 -1
  212. package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +0 -3
  213. package/corpus/templates/videos/app/routes/settings.tsx +54 -54
  214. package/corpus/templates/videos/app/routes/team.tsx +2 -8
  215. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  216. package/dist/agent/engine/builder-engine.js +8 -3
  217. package/dist/agent/engine/builder-engine.js.map +1 -1
  218. package/dist/cli/mcp.d.ts.map +1 -1
  219. package/dist/cli/mcp.js +3 -4
  220. package/dist/cli/mcp.js.map +1 -1
  221. package/dist/client/AssistantChat.d.ts.map +1 -1
  222. package/dist/client/AssistantChat.js +6 -2
  223. package/dist/client/AssistantChat.js.map +1 -1
  224. package/dist/client/chat/markdown-renderer.d.ts.map +1 -1
  225. package/dist/client/chat/markdown-renderer.js +1 -0
  226. package/dist/client/chat/markdown-renderer.js.map +1 -1
  227. package/dist/client/i18n.d.ts.map +1 -1
  228. package/dist/client/i18n.js +20 -9
  229. package/dist/client/i18n.js.map +1 -1
  230. package/dist/client/index.d.ts +1 -1
  231. package/dist/client/index.d.ts.map +1 -1
  232. package/dist/client/index.js +1 -1
  233. package/dist/client/index.js.map +1 -1
  234. package/dist/client/org/OrgSwitcher.d.ts +3 -3
  235. package/dist/client/org/OrgSwitcher.js +2 -2
  236. package/dist/client/org/OrgSwitcher.js.map +1 -1
  237. package/dist/client/org/TeamPage.d.ts +6 -1
  238. package/dist/client/org/TeamPage.d.ts.map +1 -1
  239. package/dist/client/org/TeamPage.js +2 -2
  240. package/dist/client/org/TeamPage.js.map +1 -1
  241. package/dist/client/settings/SettingsTabsPage.d.ts +27 -0
  242. package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -0
  243. package/dist/client/settings/SettingsTabsPage.js +108 -0
  244. package/dist/client/settings/SettingsTabsPage.js.map +1 -0
  245. package/dist/client/settings/index.d.ts +1 -0
  246. package/dist/client/settings/index.d.ts.map +1 -1
  247. package/dist/client/settings/index.js +1 -0
  248. package/dist/client/settings/index.js.map +1 -1
  249. package/dist/file-upload/index.d.ts +1 -1
  250. package/dist/file-upload/index.d.ts.map +1 -1
  251. package/dist/file-upload/index.js +1 -1
  252. package/dist/file-upload/index.js.map +1 -1
  253. package/dist/file-upload/registry.d.ts +1 -0
  254. package/dist/file-upload/registry.d.ts.map +1 -1
  255. package/dist/file-upload/registry.js +24 -6
  256. package/dist/file-upload/registry.js.map +1 -1
  257. package/dist/file-upload/types.d.ts +6 -1
  258. package/dist/file-upload/types.d.ts.map +1 -1
  259. package/dist/file-upload/types.js.map +1 -1
  260. package/dist/integrations/adapters/email.d.ts.map +1 -1
  261. package/dist/integrations/adapters/email.js +18 -18
  262. package/dist/integrations/adapters/email.js.map +1 -1
  263. package/dist/integrations/adapters/slack.d.ts.map +1 -1
  264. package/dist/integrations/adapters/slack.js +8 -7
  265. package/dist/integrations/adapters/slack.js.map +1 -1
  266. package/dist/integrations/adapters/telegram.d.ts.map +1 -1
  267. package/dist/integrations/adapters/telegram.js +9 -9
  268. package/dist/integrations/adapters/telegram.js.map +1 -1
  269. package/dist/integrations/adapters/whatsapp.d.ts.map +1 -1
  270. package/dist/integrations/adapters/whatsapp.js +10 -9
  271. package/dist/integrations/adapters/whatsapp.js.map +1 -1
  272. package/dist/integrations/plugin.d.ts.map +1 -1
  273. package/dist/integrations/plugin.js +47 -13
  274. package/dist/integrations/plugin.js.map +1 -1
  275. package/dist/notifications/routes.d.ts +3 -3
  276. package/dist/observability/routes.d.ts +6 -6
  277. package/dist/onboarding/default-steps.d.ts.map +1 -1
  278. package/dist/onboarding/default-steps.js +6 -5
  279. package/dist/onboarding/default-steps.js.map +1 -1
  280. package/dist/onboarding/types.d.ts +1 -1
  281. package/dist/onboarding/types.d.ts.map +1 -1
  282. package/dist/onboarding/types.js.map +1 -1
  283. package/dist/org/handlers.js +1 -1
  284. package/dist/org/handlers.js.map +1 -1
  285. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  286. package/dist/server/agent-chat-plugin.js +4 -6
  287. package/dist/server/agent-chat-plugin.js.map +1 -1
  288. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  289. package/dist/server/better-auth-instance.d.ts.map +1 -1
  290. package/dist/server/better-auth-instance.js +17 -56
  291. package/dist/server/better-auth-instance.js.map +1 -1
  292. package/dist/server/core-routes-plugin.d.ts +1 -1
  293. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  294. package/dist/server/core-routes-plugin.js +67 -153
  295. package/dist/server/core-routes-plugin.js.map +1 -1
  296. package/dist/server/create-server.d.ts +3 -9
  297. package/dist/server/create-server.d.ts.map +1 -1
  298. package/dist/server/create-server.js +37 -91
  299. package/dist/server/create-server.js.map +1 -1
  300. package/dist/server/email-actions.d.ts +2 -3
  301. package/dist/server/email-actions.d.ts.map +1 -1
  302. package/dist/server/email-actions.js +3 -6
  303. package/dist/server/email-actions.js.map +1 -1
  304. package/dist/server/email.d.ts +3 -3
  305. package/dist/server/email.d.ts.map +1 -1
  306. package/dist/server/email.js +40 -19
  307. package/dist/server/email.js.map +1 -1
  308. package/dist/server/index.d.ts +3 -3
  309. package/dist/server/index.d.ts.map +1 -1
  310. package/dist/server/index.js +3 -3
  311. package/dist/server/index.js.map +1 -1
  312. package/dist/server/scoped-key-storage.d.ts +22 -0
  313. package/dist/server/scoped-key-storage.d.ts.map +1 -0
  314. package/dist/server/scoped-key-storage.js +152 -0
  315. package/dist/server/scoped-key-storage.js.map +1 -0
  316. package/dist/shared/agent-env.d.ts +3 -3
  317. package/dist/shared/agent-env.d.ts.map +1 -1
  318. package/dist/shared/agent-env.js +3 -3
  319. package/dist/shared/agent-env.js.map +1 -1
  320. package/dist/sharing/actions/share-resource.js +1 -1
  321. package/dist/sharing/actions/share-resource.js.map +1 -1
  322. package/dist/styles/agent-native.css +47 -3
  323. package/dist/templates/workspace-root/AGENTS.md +3 -2
  324. package/dist/templates/workspace-root/README.md +1 -1
  325. package/dist/templates/workspace-root/scripts/repair-workspace-org.ts +29 -90
  326. package/dist/terminal/pty-server.d.ts.map +1 -1
  327. package/dist/terminal/pty-server.js +3 -36
  328. package/dist/terminal/pty-server.js.map +1 -1
  329. package/dist/triggers/dispatcher.js +1 -1
  330. package/dist/triggers/dispatcher.js.map +1 -1
  331. package/docs/content/file-uploads.md +11 -4
  332. package/docs/content/locales/ar-SA/multi-app-workspace.md +3 -3
  333. package/docs/content/locales/de-DE/multi-app-workspace.md +3 -3
  334. package/docs/content/locales/es-ES/multi-app-workspace.md +3 -3
  335. package/docs/content/locales/fr-FR/multi-app-workspace.md +3 -3
  336. package/docs/content/locales/hi-IN/multi-app-workspace.md +3 -3
  337. package/docs/content/locales/ja-JP/multi-app-workspace.md +3 -3
  338. package/docs/content/locales/ko-KR/multi-app-workspace.md +3 -3
  339. package/docs/content/locales/pt-BR/multi-app-workspace.md +3 -3
  340. package/docs/content/locales/zh-CN/multi-app-workspace.md +3 -3
  341. package/docs/content/locales/zh-TW/multi-app-workspace.md +3 -3
  342. package/docs/content/multi-app-workspace.md +3 -3
  343. package/docs/content/template-clips.md +14 -5
  344. package/package.json +1 -1
  345. package/src/templates/workspace-root/AGENTS.md +3 -2
  346. package/src/templates/workspace-root/README.md +1 -1
  347. package/src/templates/workspace-root/scripts/repair-workspace-org.ts +29 -90
  348. package/corpus/core/src/server/env-var-writes.ts +0 -16
  349. package/corpus/templates/analytics/app/pages/Team.tsx +0 -9
  350. package/corpus/templates/calendar/app/pages/Team.tsx +0 -12
  351. package/corpus/templates/mail/app/pages/Team.tsx +0 -17
  352. package/dist/server/env-var-writes.d.ts +0 -10
  353. package/dist/server/env-var-writes.d.ts.map +0 -1
  354. package/dist/server/env-var-writes.js +0 -18
  355. package/dist/server/env-var-writes.js.map +0 -1
@@ -3,6 +3,9 @@ import type { LocaleCode } from "@agent-native/core/client";
3
3
  import zhTW from "./i18n/zh-TW";
4
4
 
5
5
  const enUS = {
6
+ root: {
7
+ whatsNew: "What's new",
8
+ },
6
9
  navigation: {
7
10
  brand: "Analytics",
8
11
  ask: "Ask",
@@ -135,6 +138,10 @@ const enUS = {
135
138
  credentialsDescription:
136
139
  "API keys and credentials are managed on the Data Sources page.",
137
140
  manageDataSources: "Manage Data Sources",
141
+ dashboardTemplates: "Dashboard templates",
142
+ dashboardTemplatesDescription:
143
+ "Install a source-controlled dashboard when you need a starting point.",
144
+ openDashboardTemplates: "Open catalog",
138
145
  languageTitle: "Language",
139
146
  languageLabel: "Interface language",
140
147
  about: "About",
@@ -832,8 +839,7 @@ const enUS = {
832
839
  time: "Time",
833
840
  },
834
841
  catalog: {
835
- description:
836
- "Source-controlled dashboards ready to install into your workspace.",
842
+ description: "Install a dashboard template when you need a starting point.",
837
843
  noTemplatesFound: "No templates found",
838
844
  tryDifferentCategory: "Try a different catalog category.",
839
845
  templatesCount: "{{count}} templates",
@@ -3327,6 +3333,7 @@ function mergeMessages(overrides: {
3327
3333
  [K in Section]?: Partial<Messages[K]>;
3328
3334
  }): Messages {
3329
3335
  return {
3336
+ root: { ...enUS.root, ...overrides.root },
3330
3337
  navigation: { ...enUS.navigation, ...overrides.navigation },
3331
3338
  dashboardHeader: { ...enUS.dashboardHeader, ...overrides.dashboardHeader },
3332
3339
  sidebar: { ...enUS.sidebar, ...overrides.sidebar },
@@ -3368,6 +3375,9 @@ export const messagesByLocale = {
3368
3375
  "zh-TW": mergeMessages(zhTW),
3369
3376
  "zh-CN": mergeMessages({
3370
3377
  ...analyticsSliceTranslations["zh-CN"],
3378
+ root: {
3379
+ whatsNew: "新增内容",
3380
+ },
3371
3381
  navigation: {
3372
3382
  brand: "Analytics",
3373
3383
  ask: "提问",
@@ -3494,6 +3504,9 @@ export const messagesByLocale = {
3494
3504
  credentials: "数据源凭据",
3495
3505
  credentialsDescription: "API 密钥和凭据在数据源页面管理。",
3496
3506
  manageDataSources: "管理数据源",
3507
+ dashboardTemplates: "仪表板模板",
3508
+ dashboardTemplatesDescription: "需要起点时,安装受源码管理的仪表板。",
3509
+ openDashboardTemplates: "打开目录",
3497
3510
  languageTitle: "语言",
3498
3511
  languageLabel: "界面语言",
3499
3512
  about: "关于",
@@ -3537,6 +3550,9 @@ export const messagesByLocale = {
3537
3550
  }),
3538
3551
  "es-ES": mergeMessages({
3539
3552
  ...analyticsSliceTranslations["es-ES"],
3553
+ root: {
3554
+ whatsNew: "Novedades",
3555
+ },
3540
3556
  navigation: {
3541
3557
  ask: "Preguntar",
3542
3558
  overview: "Resumen",
@@ -3667,6 +3683,10 @@ export const messagesByLocale = {
3667
3683
  credentialsDescription:
3668
3684
  "Las claves API y credenciales se gestionan en la página Fuentes de datos.",
3669
3685
  manageDataSources: "Gestionar fuentes de datos",
3686
+ dashboardTemplates: "Plantillas de paneles",
3687
+ dashboardTemplatesDescription:
3688
+ "Instala un panel controlado por código fuente cuando necesites un punto de partida.",
3689
+ openDashboardTemplates: "Abrir catálogo",
3670
3690
  languageTitle: "Idioma",
3671
3691
  languageLabel: "Idioma de la interfaz",
3672
3692
  about: "Acerca de",
@@ -3712,6 +3732,9 @@ export const messagesByLocale = {
3712
3732
  }),
3713
3733
  "fr-FR": mergeMessages({
3714
3734
  ...analyticsSliceTranslations["fr-FR"],
3735
+ root: {
3736
+ whatsNew: "Nouveautés",
3737
+ },
3715
3738
  navigation: {
3716
3739
  ask: "Demander",
3717
3740
  overview: "Vue d'ensemble",
@@ -3843,6 +3866,10 @@ export const messagesByLocale = {
3843
3866
  credentialsDescription:
3844
3867
  "Les clés API et identifiants sont gérés sur la page Sources de données.",
3845
3868
  manageDataSources: "Gérer les sources de données",
3869
+ dashboardTemplates: "Modèles de tableaux de bord",
3870
+ dashboardTemplatesDescription:
3871
+ "Installez un tableau de bord suivi dans le code source lorsque vous avez besoin d'un point de départ.",
3872
+ openDashboardTemplates: "Ouvrir le catalogue",
3846
3873
  languageTitle: "Langue",
3847
3874
  languageLabel: "Langue de l'interface",
3848
3875
  about: "À propos",
@@ -3893,6 +3920,9 @@ export const messagesByLocale = {
3893
3920
  }),
3894
3921
  "de-DE": mergeMessages({
3895
3922
  ...analyticsSliceTranslations["de-DE"],
3923
+ root: {
3924
+ whatsNew: "Neuigkeiten",
3925
+ },
3896
3926
  navigation: {
3897
3927
  ask: "Fragen",
3898
3928
  overview: "Übersicht",
@@ -4028,6 +4058,10 @@ export const messagesByLocale = {
4028
4058
  credentialsDescription:
4029
4059
  "API-Schlüssel und Anmeldedaten werden auf der Seite Datenquellen verwaltet.",
4030
4060
  manageDataSources: "Datenquellen verwalten",
4061
+ dashboardTemplates: "Dashboard-Vorlagen",
4062
+ dashboardTemplatesDescription:
4063
+ "Installiere ein quellkontrolliertes Dashboard, wenn du einen Ausgangspunkt brauchst.",
4064
+ openDashboardTemplates: "Katalog öffnen",
4031
4065
  languageTitle: "Sprache",
4032
4066
  languageLabel: "Oberflächensprache",
4033
4067
  about: "Info",
@@ -4074,6 +4108,9 @@ export const messagesByLocale = {
4074
4108
  }),
4075
4109
  "ja-JP": mergeMessages({
4076
4110
  ...analyticsSliceTranslations["ja-JP"],
4111
+ root: {
4112
+ whatsNew: "新着情報",
4113
+ },
4077
4114
  navigation: {
4078
4115
  ask: "質問",
4079
4116
  overview: "概要",
@@ -4205,6 +4242,10 @@ export const messagesByLocale = {
4205
4242
  credentialsDescription:
4206
4243
  "API キーと認証情報はデータソースページで管理します。",
4207
4244
  manageDataSources: "データソースを管理",
4245
+ dashboardTemplates: "ダッシュボードテンプレート",
4246
+ dashboardTemplatesDescription:
4247
+ "出発点が必要なときは、ソース管理されたダッシュボードをインストールします。",
4248
+ openDashboardTemplates: "カタログを開く",
4208
4249
  languageTitle: "言語",
4209
4250
  languageLabel: "インターフェース言語",
4210
4251
  about: "概要",
@@ -4251,6 +4292,9 @@ export const messagesByLocale = {
4251
4292
  }),
4252
4293
  "ko-KR": mergeMessages({
4253
4294
  ...analyticsSliceTranslations["ko-KR"],
4295
+ root: {
4296
+ whatsNew: "새로운 기능",
4297
+ },
4254
4298
  navigation: {
4255
4299
  ask: "질문",
4256
4300
  overview: "개요",
@@ -4382,6 +4426,10 @@ export const messagesByLocale = {
4382
4426
  credentialsDescription:
4383
4427
  "API 키와 자격 증명은 데이터 소스 페이지에서 관리합니다.",
4384
4428
  manageDataSources: "데이터 소스 관리",
4429
+ dashboardTemplates: "대시보드 템플릿",
4430
+ dashboardTemplatesDescription:
4431
+ "시작점이 필요할 때 소스 제어된 대시보드를 설치하세요.",
4432
+ openDashboardTemplates: "카탈로그 열기",
4385
4433
  languageTitle: "언어",
4386
4434
  languageLabel: "인터페이스 언어",
4387
4435
  about: "정보",
@@ -4427,6 +4475,9 @@ export const messagesByLocale = {
4427
4475
  }),
4428
4476
  "pt-BR": mergeMessages({
4429
4477
  ...analyticsSliceTranslations["pt-BR"],
4478
+ root: {
4479
+ whatsNew: "Novidades",
4480
+ },
4430
4481
  navigation: {
4431
4482
  ask: "Perguntar",
4432
4483
  overview: "Visão geral",
@@ -4560,6 +4611,10 @@ export const messagesByLocale = {
4560
4611
  credentialsDescription:
4561
4612
  "Chaves de API e credenciais são gerenciadas na página Fontes de dados.",
4562
4613
  manageDataSources: "Gerenciar fontes de dados",
4614
+ dashboardTemplates: "Modelos de dashboard",
4615
+ dashboardTemplatesDescription:
4616
+ "Instale um dashboard controlado por código-fonte quando precisar de um ponto de partida.",
4617
+ openDashboardTemplates: "Abrir catálogo",
4563
4618
  languageTitle: "Idioma",
4564
4619
  languageLabel: "Idioma da interface",
4565
4620
  about: "Sobre",
@@ -4608,6 +4663,9 @@ export const messagesByLocale = {
4608
4663
  }),
4609
4664
  "hi-IN": mergeMessages({
4610
4665
  ...analyticsSliceTranslations["hi-IN"],
4666
+ root: {
4667
+ whatsNew: "नया क्या है",
4668
+ },
4611
4669
  navigation: {
4612
4670
  ask: "पूछें",
4613
4671
  overview: "अवलोकन",
@@ -4736,6 +4794,10 @@ export const messagesByLocale = {
4736
4794
  credentialsDescription:
4737
4795
  "API कुंजियां और क्रेडेंशियल डेटा स्रोत पेज पर प्रबंधित होते हैं।",
4738
4796
  manageDataSources: "डेटा स्रोत प्रबंधित करें",
4797
+ dashboardTemplates: "डैशबोर्ड टेम्पलेट",
4798
+ dashboardTemplatesDescription:
4799
+ "जब आपको शुरुआत का आधार चाहिए, तो स्रोत-नियंत्रित डैशबोर्ड इंस्टॉल करें।",
4800
+ openDashboardTemplates: "कैटलॉग खोलें",
4739
4801
  languageTitle: "भाषा",
4740
4802
  languageLabel: "इंटरफ़ेस भाषा",
4741
4803
  about: "परिचय",
@@ -4782,6 +4844,9 @@ export const messagesByLocale = {
4782
4844
  }),
4783
4845
  "ar-SA": mergeMessages({
4784
4846
  ...analyticsSliceTranslations["ar-SA"],
4847
+ root: {
4848
+ whatsNew: "ما الجديد",
4849
+ },
4785
4850
  navigation: {
4786
4851
  ask: "اسأل",
4787
4852
  overview: "نظرة عامة",
@@ -4910,6 +4975,10 @@ export const messagesByLocale = {
4910
4975
  credentialsDescription:
4911
4976
  "تتم إدارة مفاتيح API وبيانات الاعتماد من صفحة مصادر البيانات.",
4912
4977
  manageDataSources: "إدارة مصادر البيانات",
4978
+ dashboardTemplates: "قوالب لوحات المعلومات",
4979
+ dashboardTemplatesDescription:
4980
+ "ثبّت لوحة معلومات مضبوطة في المصدر عندما تحتاج إلى نقطة بداية.",
4981
+ openDashboardTemplates: "افتح الكتالوج",
4913
4982
  languageTitle: "اللغة",
4914
4983
  languageLabel: "لغة الواجهة",
4915
4984
  about: "حول",
@@ -22,7 +22,7 @@ export default function AskPage() {
22
22
  }, []);
23
23
 
24
24
  return (
25
- <div className="flex h-full min-h-0 flex-col bg-background">
25
+ <div className="analytics-ask-page flex h-full min-h-0 flex-col bg-background">
26
26
  <AgentChatSurface
27
27
  mode="page"
28
28
  chatViewTransition
@@ -1,14 +1,22 @@
1
1
  import {
2
2
  ChangelogSettingsCard,
3
3
  LanguagePicker,
4
+ SettingsTabsPage,
4
5
  openAgentSettings,
5
6
  useT,
6
7
  } from "@agent-native/core/client";
8
+ import { TeamPage } from "@agent-native/core/client/org";
7
9
  import { Link } from "react-router";
8
10
 
9
11
  import { useAuth } from "@/components/auth/AuthProvider";
10
12
  import { Button } from "@/components/ui/button";
11
- import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
13
+ import {
14
+ Card,
15
+ CardContent,
16
+ CardDescription,
17
+ CardHeader,
18
+ CardTitle,
19
+ } from "@/components/ui/card";
12
20
  import { Label } from "@/components/ui/label";
13
21
 
14
22
  import changelog from "../../CHANGELOG.md?raw";
@@ -18,82 +26,121 @@ export default function Settings() {
18
26
  const t = useT();
19
27
 
20
28
  return (
21
- <div className="space-y-6 max-w-2xl">
22
- <Card className="bg-card border-border/50">
23
- <CardHeader>
24
- <CardTitle className="text-base">{t("settings.account")}</CardTitle>
25
- </CardHeader>
26
- <CardContent className="space-y-4">
27
- {auth && (
28
- <div className="flex items-center justify-between">
29
- <span className="text-sm text-muted-foreground">
30
- {t("settings.signedInAs")}
31
- </span>
32
- <span className="text-sm font-medium">{auth.email}</span>
33
- </div>
34
- )}
35
- </CardContent>
36
- </Card>
29
+ <SettingsTabsPage
30
+ teamLabel={t("navigation.team")}
31
+ whatsNewLabel={t("root.whatsNew")}
32
+ general={
33
+ <div className="mx-auto w-full max-w-2xl space-y-6">
34
+ <Card className="bg-card border-border/50">
35
+ <CardHeader>
36
+ <CardTitle className="text-base">
37
+ {t("settings.account")}
38
+ </CardTitle>
39
+ </CardHeader>
40
+ <CardContent className="space-y-4">
41
+ {auth && (
42
+ <div className="flex items-center justify-between">
43
+ <span className="text-sm text-muted-foreground">
44
+ {t("settings.signedInAs")}
45
+ </span>
46
+ <span className="text-sm font-medium">{auth.email}</span>
47
+ </div>
48
+ )}
49
+ </CardContent>
50
+ </Card>
37
51
 
38
- <Card className="bg-card border-border/50">
39
- <CardHeader>
40
- <CardTitle className="text-base">
41
- {t("settings.credentials")}
42
- </CardTitle>
43
- </CardHeader>
44
- <CardContent>
45
- <p className="text-sm text-muted-foreground mb-3">
46
- {t("settings.credentialsDescription")}
47
- </p>
48
- <Button variant="outline" size="sm" asChild>
49
- <Link to="/data-sources">{t("settings.manageDataSources")}</Link>
50
- </Button>
51
- </CardContent>
52
- </Card>
52
+ <Card className="bg-card border-border/50">
53
+ <CardHeader>
54
+ <CardTitle className="text-base">
55
+ {t("settings.credentials")}
56
+ </CardTitle>
57
+ </CardHeader>
58
+ <CardContent>
59
+ <p className="text-sm text-muted-foreground mb-3">
60
+ {t("settings.credentialsDescription")}
61
+ </p>
62
+ <Button variant="outline" size="sm" asChild>
63
+ <Link to="/data-sources">
64
+ {t("settings.manageDataSources")}
65
+ </Link>
66
+ </Button>
67
+ </CardContent>
68
+ </Card>
53
69
 
54
- <Card className="bg-card border-border/50">
55
- <CardHeader>
56
- <CardTitle className="text-base">
57
- {t("settings.languageTitle")}
58
- </CardTitle>
59
- </CardHeader>
60
- <CardContent className="max-w-xs space-y-1.5">
61
- <Label>{t("settings.languageLabel")}</Label>
62
- <LanguagePicker label={t("settings.languageLabel")} />
63
- </CardContent>
64
- </Card>
70
+ <Card className="bg-card border-border/50">
71
+ <CardHeader>
72
+ <CardTitle className="text-base">
73
+ {t("settings.dashboardTemplates")}
74
+ </CardTitle>
75
+ <CardDescription>
76
+ {t("settings.dashboardTemplatesDescription")}
77
+ </CardDescription>
78
+ </CardHeader>
79
+ <CardContent>
80
+ <Button variant="outline" size="sm" asChild>
81
+ <Link to="/catalog">
82
+ {t("settings.openDashboardTemplates")}
83
+ </Link>
84
+ </Button>
85
+ </CardContent>
86
+ </Card>
65
87
 
66
- <Card className="bg-card border-border/50">
67
- <CardHeader>
68
- <CardTitle className="text-base">
69
- {t("settings.agentTitle")}
70
- </CardTitle>
71
- </CardHeader>
72
- <CardContent>
73
- <p className="text-sm text-muted-foreground mb-3">
74
- {t("settings.agentDescription")}
75
- </p>
76
- <Button
77
- variant="outline"
78
- size="sm"
79
- onClick={() => openAgentSettings()}
80
- >
81
- {t("settings.openAgentSettings")}
82
- </Button>
83
- </CardContent>
84
- </Card>
88
+ <Card className="bg-card border-border/50">
89
+ <CardHeader>
90
+ <CardTitle className="text-base">
91
+ {t("settings.languageTitle")}
92
+ </CardTitle>
93
+ </CardHeader>
94
+ <CardContent className="max-w-xs space-y-1.5">
95
+ <Label>{t("settings.languageLabel")}</Label>
96
+ <LanguagePicker label={t("settings.languageLabel")} />
97
+ </CardContent>
98
+ </Card>
85
99
 
86
- <Card className="bg-card border-border/50">
87
- <CardHeader>
88
- <CardTitle className="text-base">{t("settings.about")}</CardTitle>
89
- </CardHeader>
90
- <CardContent className="space-y-2 text-sm text-muted-foreground">
91
- <p>{t("settings.aboutDescription")}</p>
92
- <p>{t("settings.aboutUsage")}</p>
93
- </CardContent>
94
- </Card>
100
+ <Card className="bg-card border-border/50">
101
+ <CardHeader>
102
+ <CardTitle className="text-base">
103
+ {t("settings.agentTitle")}
104
+ </CardTitle>
105
+ </CardHeader>
106
+ <CardContent>
107
+ <p className="text-sm text-muted-foreground mb-3">
108
+ {t("settings.agentDescription")}
109
+ </p>
110
+ <Button
111
+ variant="outline"
112
+ size="sm"
113
+ onClick={() => openAgentSettings()}
114
+ >
115
+ {t("settings.openAgentSettings")}
116
+ </Button>
117
+ </CardContent>
118
+ </Card>
95
119
 
96
- <ChangelogSettingsCard markdown={changelog} />
97
- </div>
120
+ <Card className="bg-card border-border/50">
121
+ <CardHeader>
122
+ <CardTitle className="text-base">{t("settings.about")}</CardTitle>
123
+ </CardHeader>
124
+ <CardContent className="space-y-2 text-sm text-muted-foreground">
125
+ <p>{t("settings.aboutDescription")}</p>
126
+ <p>{t("settings.aboutUsage")}</p>
127
+ </CardContent>
128
+ </Card>
129
+ </div>
130
+ }
131
+ team={
132
+ <div className="mx-auto w-full max-w-2xl">
133
+ <TeamPage
134
+ showTitle={false}
135
+ createOrgDescription="Set up a team to share dashboards and data sources with your colleagues."
136
+ />
137
+ </div>
138
+ }
139
+ whatsNew={
140
+ <div className="mx-auto w-full max-w-2xl">
141
+ <ChangelogSettingsCard markdown={changelog} />
142
+ </div>
143
+ }
144
+ />
98
145
  );
99
146
  }
@@ -95,17 +95,6 @@ export default function SessionsPage() {
95
95
 
96
96
  return (
97
97
  <div className="mx-auto flex w-full max-w-7xl flex-col gap-4 px-4 py-5 md:px-6">
98
- <div className="flex items-center">
99
- <div className="min-w-0">
100
- <div className="flex items-center gap-2">
101
- <IconPlayerPlay className="h-5 w-5 text-primary" />
102
- <h1 className="text-xl font-semibold tracking-normal">
103
- {t("sessions.title")}
104
- </h1>
105
- </div>
106
- </div>
107
- </div>
108
-
109
98
  <Card>
110
99
  <CardContent className="p-3">
111
100
  <div className="grid gap-2 lg:grid-cols-[150px_minmax(260px,1fr)_160px_auto_auto] lg:items-center">