@agent-native/core 0.77.2 → 0.77.4

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 (2004) hide show
  1. package/corpus/core/CHANGELOG.md +23 -0
  2. package/corpus/core/docs/content/locales/ar-SA/a2a-protocol.md +2 -2
  3. package/corpus/core/docs/content/locales/ar-SA/actions.md +6 -6
  4. package/corpus/core/docs/content/locales/ar-SA/agent-surfaces.md +5 -5
  5. package/corpus/core/docs/content/locales/ar-SA/agent-teams.md +4 -4
  6. package/corpus/core/docs/content/locales/ar-SA/agent-web-surfaces.md +2 -2
  7. package/corpus/core/docs/content/locales/ar-SA/authentication.md +4 -4
  8. package/corpus/core/docs/content/locales/ar-SA/automations.md +3 -3
  9. package/corpus/core/docs/content/locales/ar-SA/blueprint-installer.md +2 -2
  10. package/corpus/core/docs/content/locales/ar-SA/cli-adapters.md +1 -1
  11. package/corpus/core/docs/content/locales/ar-SA/code-agents-ui.md +2 -2
  12. package/corpus/core/docs/content/locales/ar-SA/components.md +14 -14
  13. package/corpus/core/docs/content/locales/ar-SA/context-awareness.md +3 -3
  14. package/corpus/core/docs/content/locales/ar-SA/creating-templates.md +12 -12
  15. package/corpus/core/docs/content/locales/ar-SA/cross-app-sso.md +3 -3
  16. package/corpus/core/docs/content/locales/ar-SA/database.md +7 -7
  17. package/corpus/core/docs/content/locales/ar-SA/deployment.md +4 -4
  18. package/corpus/core/docs/content/locales/ar-SA/dispatch.md +3 -3
  19. package/corpus/core/docs/content/locales/ar-SA/drop-in-agent.md +8 -8
  20. package/corpus/core/docs/content/locales/ar-SA/durable-resume.md +1 -1
  21. package/corpus/core/docs/content/locales/ar-SA/embedding-sdk.md +2 -2
  22. package/corpus/core/docs/content/locales/ar-SA/evals.md +3 -3
  23. package/corpus/core/docs/content/locales/ar-SA/extensions.md +2 -2
  24. package/corpus/core/docs/content/locales/ar-SA/external-agents.md +8 -8
  25. package/corpus/core/docs/content/locales/ar-SA/faq.md +3 -3
  26. package/corpus/core/docs/content/locales/ar-SA/file-uploads.md +4 -4
  27. package/corpus/core/docs/content/locales/ar-SA/frames.md +1 -1
  28. package/corpus/core/docs/content/locales/ar-SA/getting-started.md +13 -13
  29. package/corpus/core/docs/content/locales/ar-SA/harness-agents.md +3 -3
  30. package/corpus/core/docs/content/locales/ar-SA/human-approval.md +3 -3
  31. package/corpus/core/docs/content/locales/ar-SA/key-concepts.md +14 -14
  32. package/corpus/core/docs/content/locales/ar-SA/local-file-mode.md +5 -5
  33. package/corpus/core/docs/content/locales/ar-SA/mcp-apps.md +9 -9
  34. package/corpus/core/docs/content/locales/ar-SA/mcp-clients.md +9 -9
  35. package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.md +5 -5
  36. package/corpus/core/docs/content/locales/ar-SA/messaging.md +5 -5
  37. package/corpus/core/docs/content/locales/ar-SA/migration-workbench.md +1 -1
  38. package/corpus/core/docs/content/locales/ar-SA/multi-app-workspace.md +1 -1
  39. package/corpus/core/docs/content/locales/ar-SA/multi-tenancy.md +2 -2
  40. package/corpus/core/docs/content/locales/ar-SA/native-chat-ui.md +4 -4
  41. package/corpus/core/docs/content/locales/ar-SA/notifications.md +5 -5
  42. package/corpus/core/docs/content/locales/ar-SA/observability.md +1 -1
  43. package/corpus/core/docs/content/locales/ar-SA/observational-memory.md +2 -2
  44. package/corpus/core/docs/content/locales/ar-SA/onboarding.md +8 -8
  45. package/corpus/core/docs/content/locales/ar-SA/plan-plugin.md +3 -3
  46. package/corpus/core/docs/content/locales/ar-SA/pr-visual-recap.md +11 -11
  47. package/corpus/core/docs/content/locales/ar-SA/processors.md +2 -2
  48. package/corpus/core/docs/content/locales/ar-SA/progress.md +3 -3
  49. package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.md +1 -1
  50. package/corpus/core/docs/content/locales/ar-SA/real-time-collaboration.md +6 -6
  51. package/corpus/core/docs/content/locales/ar-SA/recurring-jobs.md +5 -5
  52. package/corpus/core/docs/content/locales/ar-SA/routing.md +1 -1
  53. package/corpus/core/docs/content/locales/ar-SA/sandbox-adapters.md +3 -3
  54. package/corpus/core/docs/content/locales/ar-SA/security.md +10 -10
  55. package/corpus/core/docs/content/locales/ar-SA/server.md +9 -9
  56. package/corpus/core/docs/content/locales/ar-SA/sharing.md +7 -7
  57. package/corpus/core/docs/content/locales/ar-SA/skills-guide.md +16 -16
  58. package/corpus/core/docs/content/locales/ar-SA/template-analytics.md +10 -10
  59. package/corpus/core/docs/content/locales/ar-SA/template-assets.md +19 -19
  60. package/corpus/core/docs/content/locales/ar-SA/template-brain.md +11 -11
  61. package/corpus/core/docs/content/locales/ar-SA/template-calendar.md +9 -9
  62. package/corpus/core/docs/content/locales/ar-SA/template-chat.md +3 -3
  63. package/corpus/core/docs/content/locales/ar-SA/template-clips.md +13 -13
  64. package/corpus/core/docs/content/locales/ar-SA/template-content.md +15 -15
  65. package/corpus/core/docs/content/locales/ar-SA/template-design.md +7 -7
  66. package/corpus/core/docs/content/locales/ar-SA/template-dispatch.md +8 -8
  67. package/corpus/core/docs/content/locales/ar-SA/template-forms.md +9 -9
  68. package/corpus/core/docs/content/locales/ar-SA/template-mail.md +7 -7
  69. package/corpus/core/docs/content/locales/ar-SA/template-plan.md +3 -3
  70. package/corpus/core/docs/content/locales/ar-SA/template-slides.md +8 -8
  71. package/corpus/core/docs/content/locales/ar-SA/template-videos.md +5 -5
  72. package/corpus/core/docs/content/locales/ar-SA/tracking.md +6 -6
  73. package/corpus/core/docs/content/locales/ar-SA/using-your-agent.md +4 -4
  74. package/corpus/core/docs/content/locales/ar-SA/voice-input.md +4 -4
  75. package/corpus/core/docs/content/locales/ar-SA/what-is-agent-native.md +4 -4
  76. package/corpus/core/docs/content/locales/ar-SA/workspace-connections.md +8 -8
  77. package/corpus/core/docs/content/locales/ar-SA/workspace-management.md +4 -4
  78. package/corpus/core/docs/content/locales/ar-SA/workspace.md +24 -24
  79. package/corpus/core/docs/content/locales/ar-SA/writing-agent-instructions.md +18 -18
  80. package/corpus/core/docs/content/locales/de-DE/a2a-protocol.md +7 -7
  81. package/corpus/core/docs/content/locales/de-DE/actions.md +5 -5
  82. package/corpus/core/docs/content/locales/de-DE/agent-mentions.md +4 -4
  83. package/corpus/core/docs/content/locales/de-DE/agent-surfaces.md +22 -22
  84. package/corpus/core/docs/content/locales/de-DE/agent-teams.md +4 -4
  85. package/corpus/core/docs/content/locales/de-DE/agent-web-surfaces.md +4 -4
  86. package/corpus/core/docs/content/locales/de-DE/authentication.md +6 -6
  87. package/corpus/core/docs/content/locales/de-DE/automations.md +8 -8
  88. package/corpus/core/docs/content/locales/de-DE/blueprint-installer.md +2 -2
  89. package/corpus/core/docs/content/locales/de-DE/client.md +6 -6
  90. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.md +2 -2
  91. package/corpus/core/docs/content/locales/de-DE/code-agents-ui.md +9 -9
  92. package/corpus/core/docs/content/locales/de-DE/components.md +15 -15
  93. package/corpus/core/docs/content/locales/de-DE/context-awareness.md +8 -8
  94. package/corpus/core/docs/content/locales/de-DE/creating-templates.md +13 -13
  95. package/corpus/core/docs/content/locales/de-DE/cross-app-sso.md +3 -3
  96. package/corpus/core/docs/content/locales/de-DE/database.md +5 -5
  97. package/corpus/core/docs/content/locales/de-DE/deployment.md +6 -6
  98. package/corpus/core/docs/content/locales/de-DE/dispatch.md +3 -3
  99. package/corpus/core/docs/content/locales/de-DE/drop-in-agent.md +14 -14
  100. package/corpus/core/docs/content/locales/de-DE/durable-resume.md +1 -1
  101. package/corpus/core/docs/content/locales/de-DE/embedding-sdk.md +2 -2
  102. package/corpus/core/docs/content/locales/de-DE/evals.md +2 -2
  103. package/corpus/core/docs/content/locales/de-DE/extensions.md +2 -2
  104. package/corpus/core/docs/content/locales/de-DE/external-agents.md +6 -6
  105. package/corpus/core/docs/content/locales/de-DE/faq.md +5 -5
  106. package/corpus/core/docs/content/locales/de-DE/file-uploads.md +4 -4
  107. package/corpus/core/docs/content/locales/de-DE/frames.md +2 -2
  108. package/corpus/core/docs/content/locales/de-DE/getting-started.md +16 -16
  109. package/corpus/core/docs/content/locales/de-DE/harness-agents.md +3 -3
  110. package/corpus/core/docs/content/locales/de-DE/human-approval.md +4 -4
  111. package/corpus/core/docs/content/locales/de-DE/key-concepts.md +14 -14
  112. package/corpus/core/docs/content/locales/de-DE/local-file-mode.md +8 -8
  113. package/corpus/core/docs/content/locales/de-DE/mcp-apps.md +4 -4
  114. package/corpus/core/docs/content/locales/de-DE/mcp-clients.md +7 -7
  115. package/corpus/core/docs/content/locales/de-DE/mcp-protocol.md +3 -3
  116. package/corpus/core/docs/content/locales/de-DE/messaging.md +5 -5
  117. package/corpus/core/docs/content/locales/de-DE/migration-workbench.md +1 -1
  118. package/corpus/core/docs/content/locales/de-DE/multi-app-workspace.md +2 -2
  119. package/corpus/core/docs/content/locales/de-DE/multi-tenancy.md +1 -1
  120. package/corpus/core/docs/content/locales/de-DE/native-chat-ui.md +8 -8
  121. package/corpus/core/docs/content/locales/de-DE/notifications.md +3 -3
  122. package/corpus/core/docs/content/locales/de-DE/observability.md +2 -2
  123. package/corpus/core/docs/content/locales/de-DE/observational-memory.md +2 -2
  124. package/corpus/core/docs/content/locales/de-DE/onboarding.md +8 -8
  125. package/corpus/core/docs/content/locales/de-DE/plan-plugin.md +3 -3
  126. package/corpus/core/docs/content/locales/de-DE/pr-visual-recap.md +11 -11
  127. package/corpus/core/docs/content/locales/de-DE/processors.md +1 -1
  128. package/corpus/core/docs/content/locales/de-DE/progress.md +2 -2
  129. package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.md +1 -1
  130. package/corpus/core/docs/content/locales/de-DE/real-time-collaboration.md +8 -8
  131. package/corpus/core/docs/content/locales/de-DE/recurring-jobs.md +5 -5
  132. package/corpus/core/docs/content/locales/de-DE/routing.md +1 -1
  133. package/corpus/core/docs/content/locales/de-DE/sandbox-adapters.md +2 -2
  134. package/corpus/core/docs/content/locales/de-DE/security.md +10 -10
  135. package/corpus/core/docs/content/locales/de-DE/server.md +10 -10
  136. package/corpus/core/docs/content/locales/de-DE/sharing.md +6 -6
  137. package/corpus/core/docs/content/locales/de-DE/skills-guide.md +17 -17
  138. package/corpus/core/docs/content/locales/de-DE/template-analytics.md +10 -10
  139. package/corpus/core/docs/content/locales/de-DE/template-assets.md +21 -21
  140. package/corpus/core/docs/content/locales/de-DE/template-brain.md +11 -11
  141. package/corpus/core/docs/content/locales/de-DE/template-calendar.md +10 -10
  142. package/corpus/core/docs/content/locales/de-DE/template-chat.md +5 -5
  143. package/corpus/core/docs/content/locales/de-DE/template-clips.md +14 -14
  144. package/corpus/core/docs/content/locales/de-DE/template-content.md +14 -14
  145. package/corpus/core/docs/content/locales/de-DE/template-design.md +7 -7
  146. package/corpus/core/docs/content/locales/de-DE/template-dispatch.md +12 -12
  147. package/corpus/core/docs/content/locales/de-DE/template-forms.md +9 -9
  148. package/corpus/core/docs/content/locales/de-DE/template-mail.md +6 -6
  149. package/corpus/core/docs/content/locales/de-DE/template-plan.md +3 -3
  150. package/corpus/core/docs/content/locales/de-DE/template-slides.md +8 -8
  151. package/corpus/core/docs/content/locales/de-DE/template-videos.md +6 -6
  152. package/corpus/core/docs/content/locales/de-DE/tracking.md +3 -3
  153. package/corpus/core/docs/content/locales/de-DE/using-your-agent.md +6 -6
  154. package/corpus/core/docs/content/locales/de-DE/voice-input.md +9 -9
  155. package/corpus/core/docs/content/locales/de-DE/what-is-agent-native.md +6 -6
  156. package/corpus/core/docs/content/locales/de-DE/workspace-connections.md +9 -9
  157. package/corpus/core/docs/content/locales/de-DE/workspace-management.md +5 -5
  158. package/corpus/core/docs/content/locales/de-DE/workspace.md +23 -23
  159. package/corpus/core/docs/content/locales/de-DE/writing-agent-instructions.md +30 -30
  160. package/corpus/core/docs/content/locales/es-ES/a2a-protocol.md +7 -7
  161. package/corpus/core/docs/content/locales/es-ES/actions.md +2 -2
  162. package/corpus/core/docs/content/locales/es-ES/agent-mentions.md +3 -3
  163. package/corpus/core/docs/content/locales/es-ES/agent-surfaces.md +7 -7
  164. package/corpus/core/docs/content/locales/es-ES/agent-teams.md +3 -3
  165. package/corpus/core/docs/content/locales/es-ES/agent-web-surfaces.md +5 -5
  166. package/corpus/core/docs/content/locales/es-ES/authentication.md +6 -6
  167. package/corpus/core/docs/content/locales/es-ES/automations.md +8 -8
  168. package/corpus/core/docs/content/locales/es-ES/blueprint-installer.md +2 -2
  169. package/corpus/core/docs/content/locales/es-ES/client.md +1 -1
  170. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.md +2 -2
  171. package/corpus/core/docs/content/locales/es-ES/code-agents-ui.md +4 -4
  172. package/corpus/core/docs/content/locales/es-ES/components.md +5 -5
  173. package/corpus/core/docs/content/locales/es-ES/context-awareness.md +8 -8
  174. package/corpus/core/docs/content/locales/es-ES/creating-templates.md +12 -12
  175. package/corpus/core/docs/content/locales/es-ES/cross-app-sso.md +3 -3
  176. package/corpus/core/docs/content/locales/es-ES/database.md +5 -5
  177. package/corpus/core/docs/content/locales/es-ES/deployment.md +4 -4
  178. package/corpus/core/docs/content/locales/es-ES/dispatch.md +3 -3
  179. package/corpus/core/docs/content/locales/es-ES/drop-in-agent.md +8 -8
  180. package/corpus/core/docs/content/locales/es-ES/durable-resume.md +1 -1
  181. package/corpus/core/docs/content/locales/es-ES/embedding-sdk.md +2 -2
  182. package/corpus/core/docs/content/locales/es-ES/evals.md +2 -2
  183. package/corpus/core/docs/content/locales/es-ES/extensions.md +2 -2
  184. package/corpus/core/docs/content/locales/es-ES/external-agents.md +5 -5
  185. package/corpus/core/docs/content/locales/es-ES/faq.md +3 -3
  186. package/corpus/core/docs/content/locales/es-ES/file-uploads.md +4 -4
  187. package/corpus/core/docs/content/locales/es-ES/frames.md +1 -1
  188. package/corpus/core/docs/content/locales/es-ES/getting-started.md +13 -13
  189. package/corpus/core/docs/content/locales/es-ES/harness-agents.md +3 -3
  190. package/corpus/core/docs/content/locales/es-ES/human-approval.md +3 -3
  191. package/corpus/core/docs/content/locales/es-ES/key-concepts.md +14 -14
  192. package/corpus/core/docs/content/locales/es-ES/local-file-mode.md +6 -6
  193. package/corpus/core/docs/content/locales/es-ES/mcp-apps.md +4 -4
  194. package/corpus/core/docs/content/locales/es-ES/mcp-clients.md +8 -8
  195. package/corpus/core/docs/content/locales/es-ES/mcp-protocol.md +3 -3
  196. package/corpus/core/docs/content/locales/es-ES/messaging.md +4 -4
  197. package/corpus/core/docs/content/locales/es-ES/migration-workbench.md +1 -1
  198. package/corpus/core/docs/content/locales/es-ES/multi-app-workspace.md +1 -1
  199. package/corpus/core/docs/content/locales/es-ES/multi-tenancy.md +1 -1
  200. package/corpus/core/docs/content/locales/es-ES/native-chat-ui.md +3 -3
  201. package/corpus/core/docs/content/locales/es-ES/notifications.md +3 -3
  202. package/corpus/core/docs/content/locales/es-ES/observability.md +2 -2
  203. package/corpus/core/docs/content/locales/es-ES/observational-memory.md +2 -2
  204. package/corpus/core/docs/content/locales/es-ES/onboarding.md +8 -8
  205. package/corpus/core/docs/content/locales/es-ES/plan-plugin.md +3 -3
  206. package/corpus/core/docs/content/locales/es-ES/pr-visual-recap.md +11 -11
  207. package/corpus/core/docs/content/locales/es-ES/processors.md +1 -1
  208. package/corpus/core/docs/content/locales/es-ES/progress.md +2 -2
  209. package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.md +1 -1
  210. package/corpus/core/docs/content/locales/es-ES/real-time-collaboration.md +6 -6
  211. package/corpus/core/docs/content/locales/es-ES/recurring-jobs.md +5 -5
  212. package/corpus/core/docs/content/locales/es-ES/routing.md +1 -1
  213. package/corpus/core/docs/content/locales/es-ES/sandbox-adapters.md +2 -2
  214. package/corpus/core/docs/content/locales/es-ES/security.md +8 -8
  215. package/corpus/core/docs/content/locales/es-ES/server.md +11 -11
  216. package/corpus/core/docs/content/locales/es-ES/sharing.md +6 -6
  217. package/corpus/core/docs/content/locales/es-ES/skills-guide.md +16 -16
  218. package/corpus/core/docs/content/locales/es-ES/template-analytics.md +10 -10
  219. package/corpus/core/docs/content/locales/es-ES/template-assets.md +19 -19
  220. package/corpus/core/docs/content/locales/es-ES/template-brain.md +11 -11
  221. package/corpus/core/docs/content/locales/es-ES/template-calendar.md +9 -9
  222. package/corpus/core/docs/content/locales/es-ES/template-chat.md +3 -3
  223. package/corpus/core/docs/content/locales/es-ES/template-clips.md +14 -14
  224. package/corpus/core/docs/content/locales/es-ES/template-content.md +13 -13
  225. package/corpus/core/docs/content/locales/es-ES/template-design.md +7 -7
  226. package/corpus/core/docs/content/locales/es-ES/template-dispatch.md +8 -8
  227. package/corpus/core/docs/content/locales/es-ES/template-forms.md +9 -9
  228. package/corpus/core/docs/content/locales/es-ES/template-mail.md +6 -6
  229. package/corpus/core/docs/content/locales/es-ES/template-plan.md +3 -3
  230. package/corpus/core/docs/content/locales/es-ES/template-slides.md +8 -8
  231. package/corpus/core/docs/content/locales/es-ES/template-videos.md +5 -5
  232. package/corpus/core/docs/content/locales/es-ES/tracking.md +3 -3
  233. package/corpus/core/docs/content/locales/es-ES/using-your-agent.md +5 -5
  234. package/corpus/core/docs/content/locales/es-ES/voice-input.md +4 -4
  235. package/corpus/core/docs/content/locales/es-ES/what-is-agent-native.md +6 -6
  236. package/corpus/core/docs/content/locales/es-ES/workspace-connections.md +8 -8
  237. package/corpus/core/docs/content/locales/es-ES/workspace-management.md +4 -4
  238. package/corpus/core/docs/content/locales/es-ES/workspace.md +23 -23
  239. package/corpus/core/docs/content/locales/es-ES/writing-agent-instructions.md +18 -18
  240. package/corpus/core/docs/content/locales/fr-FR/a2a-protocol.md +7 -7
  241. package/corpus/core/docs/content/locales/fr-FR/actions.md +2 -2
  242. package/corpus/core/docs/content/locales/fr-FR/agent-mentions.md +3 -3
  243. package/corpus/core/docs/content/locales/fr-FR/agent-surfaces.md +7 -7
  244. package/corpus/core/docs/content/locales/fr-FR/agent-teams.md +3 -3
  245. package/corpus/core/docs/content/locales/fr-FR/agent-web-surfaces.md +5 -5
  246. package/corpus/core/docs/content/locales/fr-FR/authentication.md +6 -6
  247. package/corpus/core/docs/content/locales/fr-FR/automations.md +8 -8
  248. package/corpus/core/docs/content/locales/fr-FR/blueprint-installer.md +2 -2
  249. package/corpus/core/docs/content/locales/fr-FR/client.md +1 -1
  250. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.md +2 -2
  251. package/corpus/core/docs/content/locales/fr-FR/code-agents-ui.md +4 -4
  252. package/corpus/core/docs/content/locales/fr-FR/components.md +5 -5
  253. package/corpus/core/docs/content/locales/fr-FR/context-awareness.md +8 -8
  254. package/corpus/core/docs/content/locales/fr-FR/creating-templates.md +12 -12
  255. package/corpus/core/docs/content/locales/fr-FR/cross-app-sso.md +4 -4
  256. package/corpus/core/docs/content/locales/fr-FR/database.md +5 -5
  257. package/corpus/core/docs/content/locales/fr-FR/deployment.md +5 -5
  258. package/corpus/core/docs/content/locales/fr-FR/dispatch.md +3 -3
  259. package/corpus/core/docs/content/locales/fr-FR/drop-in-agent.md +9 -9
  260. package/corpus/core/docs/content/locales/fr-FR/durable-resume.md +1 -1
  261. package/corpus/core/docs/content/locales/fr-FR/embedding-sdk.md +7 -7
  262. package/corpus/core/docs/content/locales/fr-FR/evals.md +2 -2
  263. package/corpus/core/docs/content/locales/fr-FR/extensions.md +2 -2
  264. package/corpus/core/docs/content/locales/fr-FR/external-agents.md +5 -5
  265. package/corpus/core/docs/content/locales/fr-FR/faq.md +3 -3
  266. package/corpus/core/docs/content/locales/fr-FR/file-uploads.md +5 -5
  267. package/corpus/core/docs/content/locales/fr-FR/frames.md +1 -1
  268. package/corpus/core/docs/content/locales/fr-FR/getting-started.md +13 -13
  269. package/corpus/core/docs/content/locales/fr-FR/harness-agents.md +3 -3
  270. package/corpus/core/docs/content/locales/fr-FR/human-approval.md +3 -3
  271. package/corpus/core/docs/content/locales/fr-FR/key-concepts.md +15 -15
  272. package/corpus/core/docs/content/locales/fr-FR/local-file-mode.md +5 -5
  273. package/corpus/core/docs/content/locales/fr-FR/mcp-apps.md +4 -4
  274. package/corpus/core/docs/content/locales/fr-FR/mcp-clients.md +8 -8
  275. package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.md +3 -3
  276. package/corpus/core/docs/content/locales/fr-FR/messaging.md +4 -4
  277. package/corpus/core/docs/content/locales/fr-FR/migration-workbench.md +1 -1
  278. package/corpus/core/docs/content/locales/fr-FR/multi-app-workspace.md +1 -1
  279. package/corpus/core/docs/content/locales/fr-FR/multi-tenancy.md +1 -1
  280. package/corpus/core/docs/content/locales/fr-FR/native-chat-ui.md +3 -3
  281. package/corpus/core/docs/content/locales/fr-FR/notifications.md +3 -3
  282. package/corpus/core/docs/content/locales/fr-FR/observability.md +2 -2
  283. package/corpus/core/docs/content/locales/fr-FR/observational-memory.md +2 -2
  284. package/corpus/core/docs/content/locales/fr-FR/onboarding.md +8 -8
  285. package/corpus/core/docs/content/locales/fr-FR/plan-plugin.md +3 -3
  286. package/corpus/core/docs/content/locales/fr-FR/pr-visual-recap.md +11 -11
  287. package/corpus/core/docs/content/locales/fr-FR/processors.md +1 -1
  288. package/corpus/core/docs/content/locales/fr-FR/progress.md +2 -2
  289. package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.md +1 -1
  290. package/corpus/core/docs/content/locales/fr-FR/real-time-collaboration.md +8 -8
  291. package/corpus/core/docs/content/locales/fr-FR/recurring-jobs.md +5 -5
  292. package/corpus/core/docs/content/locales/fr-FR/routing.md +1 -1
  293. package/corpus/core/docs/content/locales/fr-FR/sandbox-adapters.md +2 -2
  294. package/corpus/core/docs/content/locales/fr-FR/security.md +8 -8
  295. package/corpus/core/docs/content/locales/fr-FR/server.md +10 -10
  296. package/corpus/core/docs/content/locales/fr-FR/sharing.md +6 -6
  297. package/corpus/core/docs/content/locales/fr-FR/skills-guide.md +16 -16
  298. package/corpus/core/docs/content/locales/fr-FR/template-analytics.md +10 -10
  299. package/corpus/core/docs/content/locales/fr-FR/template-assets.md +20 -20
  300. package/corpus/core/docs/content/locales/fr-FR/template-brain.md +11 -11
  301. package/corpus/core/docs/content/locales/fr-FR/template-calendar.md +9 -9
  302. package/corpus/core/docs/content/locales/fr-FR/template-chat.md +3 -3
  303. package/corpus/core/docs/content/locales/fr-FR/template-clips.md +15 -15
  304. package/corpus/core/docs/content/locales/fr-FR/template-content.md +13 -13
  305. package/corpus/core/docs/content/locales/fr-FR/template-design.md +8 -8
  306. package/corpus/core/docs/content/locales/fr-FR/template-dispatch.md +8 -8
  307. package/corpus/core/docs/content/locales/fr-FR/template-forms.md +10 -10
  308. package/corpus/core/docs/content/locales/fr-FR/template-mail.md +6 -6
  309. package/corpus/core/docs/content/locales/fr-FR/template-plan.md +3 -3
  310. package/corpus/core/docs/content/locales/fr-FR/template-slides.md +9 -9
  311. package/corpus/core/docs/content/locales/fr-FR/template-videos.md +5 -5
  312. package/corpus/core/docs/content/locales/fr-FR/tracking.md +3 -3
  313. package/corpus/core/docs/content/locales/fr-FR/using-your-agent.md +5 -5
  314. package/corpus/core/docs/content/locales/fr-FR/voice-input.md +4 -4
  315. package/corpus/core/docs/content/locales/fr-FR/what-is-agent-native.md +6 -6
  316. package/corpus/core/docs/content/locales/fr-FR/workspace-connections.md +8 -8
  317. package/corpus/core/docs/content/locales/fr-FR/workspace-management.md +5 -5
  318. package/corpus/core/docs/content/locales/fr-FR/workspace.md +23 -23
  319. package/corpus/core/docs/content/locales/fr-FR/writing-agent-instructions.md +18 -18
  320. package/corpus/core/docs/content/locales/hi-IN/a2a-protocol.md +7 -7
  321. package/corpus/core/docs/content/locales/hi-IN/actions.md +3 -3
  322. package/corpus/core/docs/content/locales/hi-IN/agent-mentions.md +3 -3
  323. package/corpus/core/docs/content/locales/hi-IN/agent-surfaces.md +7 -7
  324. package/corpus/core/docs/content/locales/hi-IN/agent-teams.md +3 -3
  325. package/corpus/core/docs/content/locales/hi-IN/agent-web-surfaces.md +5 -5
  326. package/corpus/core/docs/content/locales/hi-IN/authentication.md +6 -6
  327. package/corpus/core/docs/content/locales/hi-IN/automations.md +8 -8
  328. package/corpus/core/docs/content/locales/hi-IN/blueprint-installer.md +2 -2
  329. package/corpus/core/docs/content/locales/hi-IN/client.md +1 -1
  330. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.md +2 -2
  331. package/corpus/core/docs/content/locales/hi-IN/code-agents-ui.md +4 -4
  332. package/corpus/core/docs/content/locales/hi-IN/components.md +5 -5
  333. package/corpus/core/docs/content/locales/hi-IN/context-awareness.md +8 -8
  334. package/corpus/core/docs/content/locales/hi-IN/creating-templates.md +14 -14
  335. package/corpus/core/docs/content/locales/hi-IN/cross-app-sso.md +3 -3
  336. package/corpus/core/docs/content/locales/hi-IN/database.md +5 -5
  337. package/corpus/core/docs/content/locales/hi-IN/deployment.md +5 -5
  338. package/corpus/core/docs/content/locales/hi-IN/dispatch.md +4 -4
  339. package/corpus/core/docs/content/locales/hi-IN/drop-in-agent.md +8 -8
  340. package/corpus/core/docs/content/locales/hi-IN/durable-resume.md +1 -1
  341. package/corpus/core/docs/content/locales/hi-IN/embedding-sdk.md +2 -2
  342. package/corpus/core/docs/content/locales/hi-IN/evals.md +2 -2
  343. package/corpus/core/docs/content/locales/hi-IN/extensions.md +2 -2
  344. package/corpus/core/docs/content/locales/hi-IN/external-agents.md +5 -5
  345. package/corpus/core/docs/content/locales/hi-IN/faq.md +3 -3
  346. package/corpus/core/docs/content/locales/hi-IN/file-uploads.md +4 -4
  347. package/corpus/core/docs/content/locales/hi-IN/frames.md +1 -1
  348. package/corpus/core/docs/content/locales/hi-IN/getting-started.md +14 -14
  349. package/corpus/core/docs/content/locales/hi-IN/harness-agents.md +3 -3
  350. package/corpus/core/docs/content/locales/hi-IN/human-approval.md +3 -3
  351. package/corpus/core/docs/content/locales/hi-IN/key-concepts.md +14 -14
  352. package/corpus/core/docs/content/locales/hi-IN/local-file-mode.md +5 -5
  353. package/corpus/core/docs/content/locales/hi-IN/mcp-apps.md +4 -4
  354. package/corpus/core/docs/content/locales/hi-IN/mcp-clients.md +7 -7
  355. package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.md +3 -3
  356. package/corpus/core/docs/content/locales/hi-IN/messaging.md +6 -6
  357. package/corpus/core/docs/content/locales/hi-IN/migration-workbench.md +1 -1
  358. package/corpus/core/docs/content/locales/hi-IN/multi-app-workspace.md +1 -1
  359. package/corpus/core/docs/content/locales/hi-IN/multi-tenancy.md +1 -1
  360. package/corpus/core/docs/content/locales/hi-IN/native-chat-ui.md +3 -3
  361. package/corpus/core/docs/content/locales/hi-IN/notifications.md +3 -3
  362. package/corpus/core/docs/content/locales/hi-IN/observability.md +2 -2
  363. package/corpus/core/docs/content/locales/hi-IN/observational-memory.md +2 -2
  364. package/corpus/core/docs/content/locales/hi-IN/onboarding.md +8 -8
  365. package/corpus/core/docs/content/locales/hi-IN/plan-plugin.md +3 -3
  366. package/corpus/core/docs/content/locales/hi-IN/pr-visual-recap.md +11 -11
  367. package/corpus/core/docs/content/locales/hi-IN/processors.md +1 -1
  368. package/corpus/core/docs/content/locales/hi-IN/progress.md +2 -2
  369. package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.md +1 -1
  370. package/corpus/core/docs/content/locales/hi-IN/real-time-collaboration.md +6 -6
  371. package/corpus/core/docs/content/locales/hi-IN/recurring-jobs.md +5 -5
  372. package/corpus/core/docs/content/locales/hi-IN/routing.md +1 -1
  373. package/corpus/core/docs/content/locales/hi-IN/sandbox-adapters.md +2 -2
  374. package/corpus/core/docs/content/locales/hi-IN/security.md +8 -8
  375. package/corpus/core/docs/content/locales/hi-IN/server.md +10 -10
  376. package/corpus/core/docs/content/locales/hi-IN/sharing.md +6 -6
  377. package/corpus/core/docs/content/locales/hi-IN/skills-guide.md +16 -16
  378. package/corpus/core/docs/content/locales/hi-IN/template-analytics.md +10 -10
  379. package/corpus/core/docs/content/locales/hi-IN/template-assets.md +19 -19
  380. package/corpus/core/docs/content/locales/hi-IN/template-brain.md +11 -11
  381. package/corpus/core/docs/content/locales/hi-IN/template-calendar.md +9 -9
  382. package/corpus/core/docs/content/locales/hi-IN/template-chat.md +3 -3
  383. package/corpus/core/docs/content/locales/hi-IN/template-clips.md +14 -14
  384. package/corpus/core/docs/content/locales/hi-IN/template-content.md +13 -13
  385. package/corpus/core/docs/content/locales/hi-IN/template-design.md +7 -7
  386. package/corpus/core/docs/content/locales/hi-IN/template-dispatch.md +9 -9
  387. package/corpus/core/docs/content/locales/hi-IN/template-forms.md +9 -9
  388. package/corpus/core/docs/content/locales/hi-IN/template-mail.md +6 -6
  389. package/corpus/core/docs/content/locales/hi-IN/template-plan.md +3 -3
  390. package/corpus/core/docs/content/locales/hi-IN/template-slides.md +8 -8
  391. package/corpus/core/docs/content/locales/hi-IN/template-videos.md +5 -5
  392. package/corpus/core/docs/content/locales/hi-IN/tracking.md +3 -3
  393. package/corpus/core/docs/content/locales/hi-IN/using-your-agent.md +1 -1
  394. package/corpus/core/docs/content/locales/hi-IN/voice-input.md +4 -4
  395. package/corpus/core/docs/content/locales/hi-IN/what-is-agent-native.md +4 -4
  396. package/corpus/core/docs/content/locales/hi-IN/workspace-connections.md +8 -8
  397. package/corpus/core/docs/content/locales/hi-IN/workspace-management.md +4 -4
  398. package/corpus/core/docs/content/locales/hi-IN/workspace.md +23 -23
  399. package/corpus/core/docs/content/locales/hi-IN/writing-agent-instructions.md +18 -18
  400. package/corpus/core/docs/content/locales/ja-JP/a2a-protocol.md +7 -7
  401. package/corpus/core/docs/content/locales/ja-JP/actions.md +3 -3
  402. package/corpus/core/docs/content/locales/ja-JP/agent-mentions.md +3 -3
  403. package/corpus/core/docs/content/locales/ja-JP/agent-surfaces.md +7 -7
  404. package/corpus/core/docs/content/locales/ja-JP/agent-teams.md +3 -3
  405. package/corpus/core/docs/content/locales/ja-JP/agent-web-surfaces.md +5 -5
  406. package/corpus/core/docs/content/locales/ja-JP/authentication.md +6 -6
  407. package/corpus/core/docs/content/locales/ja-JP/automations.md +8 -8
  408. package/corpus/core/docs/content/locales/ja-JP/blueprint-installer.md +2 -2
  409. package/corpus/core/docs/content/locales/ja-JP/client.md +1 -1
  410. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.md +2 -2
  411. package/corpus/core/docs/content/locales/ja-JP/code-agents-ui.md +4 -4
  412. package/corpus/core/docs/content/locales/ja-JP/components.md +5 -5
  413. package/corpus/core/docs/content/locales/ja-JP/context-awareness.md +8 -8
  414. package/corpus/core/docs/content/locales/ja-JP/creating-templates.md +12 -12
  415. package/corpus/core/docs/content/locales/ja-JP/cross-app-sso.md +3 -3
  416. package/corpus/core/docs/content/locales/ja-JP/database.md +7 -7
  417. package/corpus/core/docs/content/locales/ja-JP/deployment.md +4 -4
  418. package/corpus/core/docs/content/locales/ja-JP/dispatch.md +4 -4
  419. package/corpus/core/docs/content/locales/ja-JP/drop-in-agent.md +8 -8
  420. package/corpus/core/docs/content/locales/ja-JP/durable-resume.md +1 -1
  421. package/corpus/core/docs/content/locales/ja-JP/embedding-sdk.md +2 -2
  422. package/corpus/core/docs/content/locales/ja-JP/evals.md +2 -2
  423. package/corpus/core/docs/content/locales/ja-JP/extensions.md +2 -2
  424. package/corpus/core/docs/content/locales/ja-JP/external-agents.md +5 -5
  425. package/corpus/core/docs/content/locales/ja-JP/faq.md +3 -3
  426. package/corpus/core/docs/content/locales/ja-JP/file-uploads.md +4 -4
  427. package/corpus/core/docs/content/locales/ja-JP/frames.md +1 -1
  428. package/corpus/core/docs/content/locales/ja-JP/getting-started.md +13 -13
  429. package/corpus/core/docs/content/locales/ja-JP/harness-agents.md +3 -3
  430. package/corpus/core/docs/content/locales/ja-JP/human-approval.md +3 -3
  431. package/corpus/core/docs/content/locales/ja-JP/key-concepts.md +14 -14
  432. package/corpus/core/docs/content/locales/ja-JP/local-file-mode.md +5 -5
  433. package/corpus/core/docs/content/locales/ja-JP/mcp-apps.md +4 -4
  434. package/corpus/core/docs/content/locales/ja-JP/mcp-clients.md +8 -8
  435. package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.md +3 -3
  436. package/corpus/core/docs/content/locales/ja-JP/messaging.md +6 -6
  437. package/corpus/core/docs/content/locales/ja-JP/migration-workbench.md +1 -1
  438. package/corpus/core/docs/content/locales/ja-JP/multi-app-workspace.md +1 -1
  439. package/corpus/core/docs/content/locales/ja-JP/multi-tenancy.md +1 -1
  440. package/corpus/core/docs/content/locales/ja-JP/native-chat-ui.md +3 -3
  441. package/corpus/core/docs/content/locales/ja-JP/notifications.md +3 -3
  442. package/corpus/core/docs/content/locales/ja-JP/observability.md +2 -2
  443. package/corpus/core/docs/content/locales/ja-JP/observational-memory.md +2 -2
  444. package/corpus/core/docs/content/locales/ja-JP/onboarding.md +8 -8
  445. package/corpus/core/docs/content/locales/ja-JP/plan-plugin.md +3 -3
  446. package/corpus/core/docs/content/locales/ja-JP/pr-visual-recap.md +11 -11
  447. package/corpus/core/docs/content/locales/ja-JP/processors.md +1 -1
  448. package/corpus/core/docs/content/locales/ja-JP/progress.md +2 -2
  449. package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.md +1 -1
  450. package/corpus/core/docs/content/locales/ja-JP/real-time-collaboration.md +6 -6
  451. package/corpus/core/docs/content/locales/ja-JP/recurring-jobs.md +5 -5
  452. package/corpus/core/docs/content/locales/ja-JP/routing.md +1 -1
  453. package/corpus/core/docs/content/locales/ja-JP/sandbox-adapters.md +2 -2
  454. package/corpus/core/docs/content/locales/ja-JP/security.md +8 -8
  455. package/corpus/core/docs/content/locales/ja-JP/server.md +10 -10
  456. package/corpus/core/docs/content/locales/ja-JP/sharing.md +6 -6
  457. package/corpus/core/docs/content/locales/ja-JP/skills-guide.md +16 -16
  458. package/corpus/core/docs/content/locales/ja-JP/template-analytics.md +10 -10
  459. package/corpus/core/docs/content/locales/ja-JP/template-assets.md +19 -19
  460. package/corpus/core/docs/content/locales/ja-JP/template-brain.md +11 -11
  461. package/corpus/core/docs/content/locales/ja-JP/template-calendar.md +9 -9
  462. package/corpus/core/docs/content/locales/ja-JP/template-chat.md +3 -3
  463. package/corpus/core/docs/content/locales/ja-JP/template-clips.md +14 -14
  464. package/corpus/core/docs/content/locales/ja-JP/template-content.md +13 -13
  465. package/corpus/core/docs/content/locales/ja-JP/template-design.md +7 -7
  466. package/corpus/core/docs/content/locales/ja-JP/template-dispatch.md +12 -12
  467. package/corpus/core/docs/content/locales/ja-JP/template-forms.md +9 -9
  468. package/corpus/core/docs/content/locales/ja-JP/template-mail.md +6 -6
  469. package/corpus/core/docs/content/locales/ja-JP/template-plan.md +3 -3
  470. package/corpus/core/docs/content/locales/ja-JP/template-slides.md +8 -8
  471. package/corpus/core/docs/content/locales/ja-JP/template-videos.md +5 -5
  472. package/corpus/core/docs/content/locales/ja-JP/tracking.md +3 -3
  473. package/corpus/core/docs/content/locales/ja-JP/using-your-agent.md +4 -4
  474. package/corpus/core/docs/content/locales/ja-JP/voice-input.md +4 -4
  475. package/corpus/core/docs/content/locales/ja-JP/what-is-agent-native.md +4 -4
  476. package/corpus/core/docs/content/locales/ja-JP/workspace-connections.md +8 -8
  477. package/corpus/core/docs/content/locales/ja-JP/workspace-management.md +5 -5
  478. package/corpus/core/docs/content/locales/ja-JP/workspace.md +23 -23
  479. package/corpus/core/docs/content/locales/ja-JP/writing-agent-instructions.md +18 -18
  480. package/corpus/core/docs/content/locales/ko-KR/a2a-protocol.md +7 -7
  481. package/corpus/core/docs/content/locales/ko-KR/actions.md +3 -3
  482. package/corpus/core/docs/content/locales/ko-KR/agent-mentions.md +3 -3
  483. package/corpus/core/docs/content/locales/ko-KR/agent-surfaces.md +15 -15
  484. package/corpus/core/docs/content/locales/ko-KR/agent-teams.md +3 -3
  485. package/corpus/core/docs/content/locales/ko-KR/agent-web-surfaces.md +5 -5
  486. package/corpus/core/docs/content/locales/ko-KR/authentication.md +13 -13
  487. package/corpus/core/docs/content/locales/ko-KR/automations.md +8 -8
  488. package/corpus/core/docs/content/locales/ko-KR/blueprint-installer.md +2 -2
  489. package/corpus/core/docs/content/locales/ko-KR/client.md +1 -1
  490. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.md +2 -2
  491. package/corpus/core/docs/content/locales/ko-KR/code-agents-ui.md +4 -4
  492. package/corpus/core/docs/content/locales/ko-KR/components.md +5 -5
  493. package/corpus/core/docs/content/locales/ko-KR/context-awareness.md +8 -8
  494. package/corpus/core/docs/content/locales/ko-KR/creating-templates.md +12 -12
  495. package/corpus/core/docs/content/locales/ko-KR/cross-app-sso.md +3 -3
  496. package/corpus/core/docs/content/locales/ko-KR/database.md +7 -7
  497. package/corpus/core/docs/content/locales/ko-KR/deployment.md +4 -4
  498. package/corpus/core/docs/content/locales/ko-KR/dispatch.md +4 -4
  499. package/corpus/core/docs/content/locales/ko-KR/drop-in-agent.md +8 -8
  500. package/corpus/core/docs/content/locales/ko-KR/durable-resume.md +1 -1
  501. package/corpus/core/docs/content/locales/ko-KR/embedding-sdk.md +2 -2
  502. package/corpus/core/docs/content/locales/ko-KR/evals.md +2 -2
  503. package/corpus/core/docs/content/locales/ko-KR/extensions.md +2 -2
  504. package/corpus/core/docs/content/locales/ko-KR/external-agents.md +5 -5
  505. package/corpus/core/docs/content/locales/ko-KR/faq.md +3 -3
  506. package/corpus/core/docs/content/locales/ko-KR/file-uploads.md +4 -4
  507. package/corpus/core/docs/content/locales/ko-KR/frames.md +1 -1
  508. package/corpus/core/docs/content/locales/ko-KR/getting-started.md +13 -13
  509. package/corpus/core/docs/content/locales/ko-KR/harness-agents.md +3 -3
  510. package/corpus/core/docs/content/locales/ko-KR/human-approval.md +3 -3
  511. package/corpus/core/docs/content/locales/ko-KR/key-concepts.md +14 -14
  512. package/corpus/core/docs/content/locales/ko-KR/local-file-mode.md +5 -5
  513. package/corpus/core/docs/content/locales/ko-KR/mcp-apps.md +4 -4
  514. package/corpus/core/docs/content/locales/ko-KR/mcp-clients.md +8 -8
  515. package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.md +3 -3
  516. package/corpus/core/docs/content/locales/ko-KR/messaging.md +6 -6
  517. package/corpus/core/docs/content/locales/ko-KR/migration-workbench.md +1 -1
  518. package/corpus/core/docs/content/locales/ko-KR/multi-app-workspace.md +1 -1
  519. package/corpus/core/docs/content/locales/ko-KR/multi-tenancy.md +1 -1
  520. package/corpus/core/docs/content/locales/ko-KR/native-chat-ui.md +3 -3
  521. package/corpus/core/docs/content/locales/ko-KR/notifications.md +3 -3
  522. package/corpus/core/docs/content/locales/ko-KR/observability.md +2 -2
  523. package/corpus/core/docs/content/locales/ko-KR/observational-memory.md +2 -2
  524. package/corpus/core/docs/content/locales/ko-KR/onboarding.md +8 -8
  525. package/corpus/core/docs/content/locales/ko-KR/plan-plugin.md +3 -3
  526. package/corpus/core/docs/content/locales/ko-KR/pr-visual-recap.md +11 -11
  527. package/corpus/core/docs/content/locales/ko-KR/processors.md +1 -1
  528. package/corpus/core/docs/content/locales/ko-KR/progress.md +2 -2
  529. package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.md +1 -1
  530. package/corpus/core/docs/content/locales/ko-KR/real-time-collaboration.md +6 -6
  531. package/corpus/core/docs/content/locales/ko-KR/recurring-jobs.md +5 -5
  532. package/corpus/core/docs/content/locales/ko-KR/routing.md +1 -1
  533. package/corpus/core/docs/content/locales/ko-KR/sandbox-adapters.md +2 -2
  534. package/corpus/core/docs/content/locales/ko-KR/security.md +8 -8
  535. package/corpus/core/docs/content/locales/ko-KR/server.md +10 -10
  536. package/corpus/core/docs/content/locales/ko-KR/sharing.md +6 -6
  537. package/corpus/core/docs/content/locales/ko-KR/skills-guide.md +16 -16
  538. package/corpus/core/docs/content/locales/ko-KR/template-analytics.md +10 -10
  539. package/corpus/core/docs/content/locales/ko-KR/template-assets.md +19 -19
  540. package/corpus/core/docs/content/locales/ko-KR/template-brain.md +11 -11
  541. package/corpus/core/docs/content/locales/ko-KR/template-calendar.md +9 -9
  542. package/corpus/core/docs/content/locales/ko-KR/template-chat.md +3 -3
  543. package/corpus/core/docs/content/locales/ko-KR/template-clips.md +14 -14
  544. package/corpus/core/docs/content/locales/ko-KR/template-content.md +13 -13
  545. package/corpus/core/docs/content/locales/ko-KR/template-design.md +7 -7
  546. package/corpus/core/docs/content/locales/ko-KR/template-dispatch.md +11 -11
  547. package/corpus/core/docs/content/locales/ko-KR/template-forms.md +9 -9
  548. package/corpus/core/docs/content/locales/ko-KR/template-mail.md +6 -6
  549. package/corpus/core/docs/content/locales/ko-KR/template-plan.md +3 -3
  550. package/corpus/core/docs/content/locales/ko-KR/template-slides.md +8 -8
  551. package/corpus/core/docs/content/locales/ko-KR/template-videos.md +5 -5
  552. package/corpus/core/docs/content/locales/ko-KR/tracking.md +3 -3
  553. package/corpus/core/docs/content/locales/ko-KR/using-your-agent.md +5 -5
  554. package/corpus/core/docs/content/locales/ko-KR/voice-input.md +4 -4
  555. package/corpus/core/docs/content/locales/ko-KR/what-is-agent-native.md +6 -6
  556. package/corpus/core/docs/content/locales/ko-KR/workspace-connections.md +8 -8
  557. package/corpus/core/docs/content/locales/ko-KR/workspace-management.md +4 -4
  558. package/corpus/core/docs/content/locales/ko-KR/workspace.md +23 -23
  559. package/corpus/core/docs/content/locales/ko-KR/writing-agent-instructions.md +18 -18
  560. package/corpus/core/docs/content/locales/pt-BR/a2a-protocol.md +7 -7
  561. package/corpus/core/docs/content/locales/pt-BR/actions.md +2 -2
  562. package/corpus/core/docs/content/locales/pt-BR/agent-mentions.md +3 -3
  563. package/corpus/core/docs/content/locales/pt-BR/agent-surfaces.md +7 -7
  564. package/corpus/core/docs/content/locales/pt-BR/agent-teams.md +3 -3
  565. package/corpus/core/docs/content/locales/pt-BR/agent-web-surfaces.md +5 -5
  566. package/corpus/core/docs/content/locales/pt-BR/authentication.md +6 -6
  567. package/corpus/core/docs/content/locales/pt-BR/automations.md +8 -8
  568. package/corpus/core/docs/content/locales/pt-BR/blueprint-installer.md +2 -2
  569. package/corpus/core/docs/content/locales/pt-BR/client.md +2 -2
  570. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.md +2 -2
  571. package/corpus/core/docs/content/locales/pt-BR/code-agents-ui.md +4 -4
  572. package/corpus/core/docs/content/locales/pt-BR/components.md +5 -5
  573. package/corpus/core/docs/content/locales/pt-BR/context-awareness.md +8 -8
  574. package/corpus/core/docs/content/locales/pt-BR/creating-templates.md +12 -12
  575. package/corpus/core/docs/content/locales/pt-BR/cross-app-sso.md +3 -3
  576. package/corpus/core/docs/content/locales/pt-BR/database.md +5 -5
  577. package/corpus/core/docs/content/locales/pt-BR/deployment.md +5 -5
  578. package/corpus/core/docs/content/locales/pt-BR/dispatch.md +3 -3
  579. package/corpus/core/docs/content/locales/pt-BR/drop-in-agent.md +9 -9
  580. package/corpus/core/docs/content/locales/pt-BR/durable-resume.md +1 -1
  581. package/corpus/core/docs/content/locales/pt-BR/embedding-sdk.md +2 -2
  582. package/corpus/core/docs/content/locales/pt-BR/evals.md +2 -2
  583. package/corpus/core/docs/content/locales/pt-BR/extensions.md +2 -2
  584. package/corpus/core/docs/content/locales/pt-BR/external-agents.md +5 -5
  585. package/corpus/core/docs/content/locales/pt-BR/faq.md +3 -3
  586. package/corpus/core/docs/content/locales/pt-BR/file-uploads.md +4 -4
  587. package/corpus/core/docs/content/locales/pt-BR/frames.md +2 -2
  588. package/corpus/core/docs/content/locales/pt-BR/getting-started.md +13 -13
  589. package/corpus/core/docs/content/locales/pt-BR/harness-agents.md +3 -3
  590. package/corpus/core/docs/content/locales/pt-BR/human-approval.md +3 -3
  591. package/corpus/core/docs/content/locales/pt-BR/key-concepts.md +15 -15
  592. package/corpus/core/docs/content/locales/pt-BR/local-file-mode.md +5 -5
  593. package/corpus/core/docs/content/locales/pt-BR/mcp-apps.md +4 -4
  594. package/corpus/core/docs/content/locales/pt-BR/mcp-clients.md +8 -8
  595. package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.md +3 -3
  596. package/corpus/core/docs/content/locales/pt-BR/messaging.md +4 -4
  597. package/corpus/core/docs/content/locales/pt-BR/migration-workbench.md +1 -1
  598. package/corpus/core/docs/content/locales/pt-BR/multi-app-workspace.md +1 -1
  599. package/corpus/core/docs/content/locales/pt-BR/multi-tenancy.md +1 -1
  600. package/corpus/core/docs/content/locales/pt-BR/native-chat-ui.md +3 -3
  601. package/corpus/core/docs/content/locales/pt-BR/notifications.md +3 -3
  602. package/corpus/core/docs/content/locales/pt-BR/observability.md +2 -2
  603. package/corpus/core/docs/content/locales/pt-BR/observational-memory.md +2 -2
  604. package/corpus/core/docs/content/locales/pt-BR/onboarding.md +8 -8
  605. package/corpus/core/docs/content/locales/pt-BR/plan-plugin.md +3 -3
  606. package/corpus/core/docs/content/locales/pt-BR/pr-visual-recap.md +11 -11
  607. package/corpus/core/docs/content/locales/pt-BR/processors.md +1 -1
  608. package/corpus/core/docs/content/locales/pt-BR/progress.md +2 -2
  609. package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.md +1 -1
  610. package/corpus/core/docs/content/locales/pt-BR/real-time-collaboration.md +6 -6
  611. package/corpus/core/docs/content/locales/pt-BR/recurring-jobs.md +5 -5
  612. package/corpus/core/docs/content/locales/pt-BR/routing.md +1 -1
  613. package/corpus/core/docs/content/locales/pt-BR/sandbox-adapters.md +2 -2
  614. package/corpus/core/docs/content/locales/pt-BR/security.md +9 -9
  615. package/corpus/core/docs/content/locales/pt-BR/server.md +10 -10
  616. package/corpus/core/docs/content/locales/pt-BR/sharing.md +6 -6
  617. package/corpus/core/docs/content/locales/pt-BR/skills-guide.md +16 -16
  618. package/corpus/core/docs/content/locales/pt-BR/template-analytics.md +10 -10
  619. package/corpus/core/docs/content/locales/pt-BR/template-assets.md +20 -20
  620. package/corpus/core/docs/content/locales/pt-BR/template-brain.md +11 -11
  621. package/corpus/core/docs/content/locales/pt-BR/template-calendar.md +9 -9
  622. package/corpus/core/docs/content/locales/pt-BR/template-chat.md +3 -3
  623. package/corpus/core/docs/content/locales/pt-BR/template-clips.md +15 -15
  624. package/corpus/core/docs/content/locales/pt-BR/template-content.md +13 -13
  625. package/corpus/core/docs/content/locales/pt-BR/template-design.md +8 -8
  626. package/corpus/core/docs/content/locales/pt-BR/template-dispatch.md +8 -8
  627. package/corpus/core/docs/content/locales/pt-BR/template-forms.md +10 -10
  628. package/corpus/core/docs/content/locales/pt-BR/template-mail.md +6 -6
  629. package/corpus/core/docs/content/locales/pt-BR/template-plan.md +3 -3
  630. package/corpus/core/docs/content/locales/pt-BR/template-slides.md +9 -9
  631. package/corpus/core/docs/content/locales/pt-BR/template-videos.md +5 -5
  632. package/corpus/core/docs/content/locales/pt-BR/tracking.md +3 -3
  633. package/corpus/core/docs/content/locales/pt-BR/using-your-agent.md +5 -5
  634. package/corpus/core/docs/content/locales/pt-BR/voice-input.md +4 -4
  635. package/corpus/core/docs/content/locales/pt-BR/what-is-agent-native.md +5 -5
  636. package/corpus/core/docs/content/locales/pt-BR/workspace-connections.md +8 -8
  637. package/corpus/core/docs/content/locales/pt-BR/workspace-management.md +4 -4
  638. package/corpus/core/docs/content/locales/pt-BR/workspace.md +23 -23
  639. package/corpus/core/docs/content/locales/pt-BR/writing-agent-instructions.md +18 -18
  640. package/corpus/core/docs/content/locales/zh-CN/a2a-protocol.md +7 -7
  641. package/corpus/core/docs/content/locales/zh-CN/actions.md +3 -3
  642. package/corpus/core/docs/content/locales/zh-CN/agent-mentions.md +3 -3
  643. package/corpus/core/docs/content/locales/zh-CN/agent-surfaces.md +7 -7
  644. package/corpus/core/docs/content/locales/zh-CN/agent-teams.md +3 -3
  645. package/corpus/core/docs/content/locales/zh-CN/agent-web-surfaces.md +5 -5
  646. package/corpus/core/docs/content/locales/zh-CN/authentication.md +13 -13
  647. package/corpus/core/docs/content/locales/zh-CN/automations.md +8 -8
  648. package/corpus/core/docs/content/locales/zh-CN/blueprint-installer.md +2 -2
  649. package/corpus/core/docs/content/locales/zh-CN/client.md +1 -1
  650. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.md +2 -2
  651. package/corpus/core/docs/content/locales/zh-CN/code-agents-ui.md +4 -4
  652. package/corpus/core/docs/content/locales/zh-CN/components.md +7 -7
  653. package/corpus/core/docs/content/locales/zh-CN/context-awareness.md +8 -8
  654. package/corpus/core/docs/content/locales/zh-CN/creating-templates.md +12 -12
  655. package/corpus/core/docs/content/locales/zh-CN/cross-app-sso.md +3 -3
  656. package/corpus/core/docs/content/locales/zh-CN/database.md +7 -7
  657. package/corpus/core/docs/content/locales/zh-CN/deployment.md +4 -4
  658. package/corpus/core/docs/content/locales/zh-CN/dispatch.md +4 -4
  659. package/corpus/core/docs/content/locales/zh-CN/drop-in-agent.md +8 -8
  660. package/corpus/core/docs/content/locales/zh-CN/durable-resume.md +1 -1
  661. package/corpus/core/docs/content/locales/zh-CN/embedding-sdk.md +2 -2
  662. package/corpus/core/docs/content/locales/zh-CN/evals.md +2 -2
  663. package/corpus/core/docs/content/locales/zh-CN/extensions.md +2 -2
  664. package/corpus/core/docs/content/locales/zh-CN/external-agents.md +5 -5
  665. package/corpus/core/docs/content/locales/zh-CN/faq.md +3 -3
  666. package/corpus/core/docs/content/locales/zh-CN/file-uploads.md +4 -4
  667. package/corpus/core/docs/content/locales/zh-CN/frames.md +2 -2
  668. package/corpus/core/docs/content/locales/zh-CN/getting-started.md +13 -13
  669. package/corpus/core/docs/content/locales/zh-CN/harness-agents.md +3 -3
  670. package/corpus/core/docs/content/locales/zh-CN/human-approval.md +3 -3
  671. package/corpus/core/docs/content/locales/zh-CN/key-concepts.md +14 -14
  672. package/corpus/core/docs/content/locales/zh-CN/local-file-mode.md +5 -5
  673. package/corpus/core/docs/content/locales/zh-CN/mcp-apps.md +4 -4
  674. package/corpus/core/docs/content/locales/zh-CN/mcp-clients.md +7 -7
  675. package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.md +3 -3
  676. package/corpus/core/docs/content/locales/zh-CN/messaging.md +6 -6
  677. package/corpus/core/docs/content/locales/zh-CN/migration-workbench.md +1 -1
  678. package/corpus/core/docs/content/locales/zh-CN/multi-app-workspace.md +1 -1
  679. package/corpus/core/docs/content/locales/zh-CN/multi-tenancy.md +1 -1
  680. package/corpus/core/docs/content/locales/zh-CN/native-chat-ui.md +3 -3
  681. package/corpus/core/docs/content/locales/zh-CN/notifications.md +3 -3
  682. package/corpus/core/docs/content/locales/zh-CN/observability.md +2 -2
  683. package/corpus/core/docs/content/locales/zh-CN/observational-memory.md +2 -2
  684. package/corpus/core/docs/content/locales/zh-CN/onboarding.md +8 -8
  685. package/corpus/core/docs/content/locales/zh-CN/plan-plugin.md +3 -3
  686. package/corpus/core/docs/content/locales/zh-CN/pr-visual-recap.md +11 -11
  687. package/corpus/core/docs/content/locales/zh-CN/processors.md +1 -1
  688. package/corpus/core/docs/content/locales/zh-CN/progress.md +2 -2
  689. package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.md +1 -1
  690. package/corpus/core/docs/content/locales/zh-CN/real-time-collaboration.md +6 -6
  691. package/corpus/core/docs/content/locales/zh-CN/recurring-jobs.md +5 -5
  692. package/corpus/core/docs/content/locales/zh-CN/routing.md +1 -1
  693. package/corpus/core/docs/content/locales/zh-CN/sandbox-adapters.md +2 -2
  694. package/corpus/core/docs/content/locales/zh-CN/security.md +8 -8
  695. package/corpus/core/docs/content/locales/zh-CN/server.md +10 -10
  696. package/corpus/core/docs/content/locales/zh-CN/sharing.md +6 -6
  697. package/corpus/core/docs/content/locales/zh-CN/skills-guide.md +16 -16
  698. package/corpus/core/docs/content/locales/zh-CN/template-analytics.md +10 -10
  699. package/corpus/core/docs/content/locales/zh-CN/template-assets.md +20 -20
  700. package/corpus/core/docs/content/locales/zh-CN/template-brain.md +11 -11
  701. package/corpus/core/docs/content/locales/zh-CN/template-calendar.md +9 -9
  702. package/corpus/core/docs/content/locales/zh-CN/template-chat.md +3 -3
  703. package/corpus/core/docs/content/locales/zh-CN/template-clips.md +14 -14
  704. package/corpus/core/docs/content/locales/zh-CN/template-content.md +13 -13
  705. package/corpus/core/docs/content/locales/zh-CN/template-design.md +7 -7
  706. package/corpus/core/docs/content/locales/zh-CN/template-dispatch.md +11 -11
  707. package/corpus/core/docs/content/locales/zh-CN/template-forms.md +9 -9
  708. package/corpus/core/docs/content/locales/zh-CN/template-mail.md +6 -6
  709. package/corpus/core/docs/content/locales/zh-CN/template-plan.md +3 -3
  710. package/corpus/core/docs/content/locales/zh-CN/template-slides.md +8 -8
  711. package/corpus/core/docs/content/locales/zh-CN/template-videos.md +5 -5
  712. package/corpus/core/docs/content/locales/zh-CN/tracking.md +3 -3
  713. package/corpus/core/docs/content/locales/zh-CN/using-your-agent.md +5 -5
  714. package/corpus/core/docs/content/locales/zh-CN/voice-input.md +4 -4
  715. package/corpus/core/docs/content/locales/zh-CN/what-is-agent-native.md +5 -5
  716. package/corpus/core/docs/content/locales/zh-CN/workspace-connections.md +8 -8
  717. package/corpus/core/docs/content/locales/zh-CN/workspace-management.md +5 -5
  718. package/corpus/core/docs/content/locales/zh-CN/workspace.md +23 -23
  719. package/corpus/core/docs/content/locales/zh-CN/writing-agent-instructions.md +18 -18
  720. package/corpus/core/package.json +1 -1
  721. package/corpus/core/src/agent/production-agent.ts +47 -4
  722. package/corpus/core/src/agent/run-store.ts +2 -0
  723. package/corpus/core/src/client/i18n.tsx +13 -1
  724. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +275 -274
  725. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +270 -260
  726. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +282 -270
  727. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +275 -266
  728. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +274 -276
  729. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +280 -273
  730. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +274 -274
  731. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +273 -266
  732. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +273 -285
  733. package/corpus/templates/analytics/app/components/Markdown.tsx +36 -10
  734. package/corpus/templates/analytics/app/components/ProviderCorpusJobNotifier.tsx +41 -17
  735. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +3 -1
  736. package/corpus/templates/analytics/app/components/dashboard/DataTable.tsx +4 -2
  737. package/corpus/templates/analytics/app/components/dashboard/RecentActivity.tsx +13 -7
  738. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +4 -1
  739. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +3 -1
  740. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +13 -50
  741. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +3 -1
  742. package/corpus/templates/analytics/app/i18n-data.ts +5172 -1
  743. package/corpus/templates/analytics/app/pages/Ask.tsx +7 -4
  744. package/corpus/templates/analytics/app/pages/DataDictionary.tsx +66 -59
  745. package/corpus/templates/analytics/app/pages/DataSources.tsx +131 -96
  746. package/corpus/templates/analytics/app/pages/NotFound.tsx +8 -3
  747. package/corpus/templates/analytics/app/pages/Placeholder.tsx +4 -3
  748. package/corpus/templates/analytics/app/pages/adhoc/BlankDashboard.tsx +8 -5
  749. package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +4 -2
  750. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventCombobox.tsx +16 -6
  751. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventPanel.tsx +6 -2
  752. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ExplorerChart.tsx +14 -5
  753. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/FilterBuilder.tsx +6 -3
  754. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/GroupByPicker.tsx +7 -3
  755. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyCombobox.tsx +12 -6
  756. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyValueCombobox.tsx +9 -5
  757. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +3 -1
  758. package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +25 -15
  759. package/corpus/templates/analytics/app/pages/adhoc/explorer/types.ts +32 -30
  760. package/corpus/templates/analytics/app/pages/adhoc/explorer/use-explorer-config.ts +10 -6
  761. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +20 -10
  762. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +50 -33
  763. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +23 -14
  764. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +61 -55
  765. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +88 -106
  766. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewSqlPopover.tsx +37 -49
  767. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +23 -16
  768. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +46 -40
  769. package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +11 -8
  770. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +25 -21
  771. package/corpus/templates/analytics/app/pages/analyses/LegacyFusionAnalysis.tsx +175 -99
  772. package/corpus/templates/analytics/app/pages/overview/OverviewPage.tsx +30 -12
  773. package/corpus/templates/analytics/app/routes/$.tsx +2 -1
  774. package/corpus/templates/analytics/app/routes/analyses.$id.tsx +2 -1
  775. package/corpus/templates/analytics/app/routes/analyses._index.tsx +2 -1
  776. package/corpus/templates/analytics/app/routes/ask.tsx +2 -1
  777. package/corpus/templates/analytics/app/routes/catalog.tsx +38 -16
  778. package/corpus/templates/analytics/app/routes/chart.tsx +12 -3
  779. package/corpus/templates/analytics/app/routes/dashboards.$id.tsx +2 -1
  780. package/corpus/templates/analytics/app/routes/data-dictionary.tsx +2 -1
  781. package/corpus/templates/analytics/app/routes/data-sources.tsx +2 -1
  782. package/corpus/templates/analytics/app/routes/extensions.$id.tsx +3 -1
  783. package/corpus/templates/analytics/app/routes/extensions._index.tsx +3 -1
  784. package/corpus/templates/analytics/app/routes/overview.tsx +2 -1
  785. package/corpus/templates/analytics/app/routes/settings.tsx +2 -1
  786. package/corpus/templates/analytics/app/routes/team.tsx +2 -1
  787. package/corpus/templates/assets/app/components/library/CreateLibraryDialog.tsx +25 -15
  788. package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +17 -10
  789. package/corpus/templates/assets/app/components/library/LibraryCard.tsx +20 -8
  790. package/corpus/templates/assets/app/i18n-data.ts +4065 -1
  791. package/corpus/templates/assets/app/routes/_index.tsx +15 -4
  792. package/corpus/templates/assets/app/routes/audit.tsx +79 -56
  793. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +565 -330
  794. package/corpus/templates/assets/app/routes/brand-kits.tsx +3 -1
  795. package/corpus/templates/assets/app/routes/extensions.$id.tsx +3 -1
  796. package/corpus/templates/assets/app/routes/extensions._index.tsx +3 -1
  797. package/corpus/templates/assets/app/routes/extensions.tsx +3 -1
  798. package/corpus/templates/assets/app/routes/library.tsx +107 -74
  799. package/corpus/templates/assets/app/routes/team.tsx +6 -3
  800. package/corpus/templates/brain/app/components/brain/CanonicalPreviewSheet.tsx +14 -10
  801. package/corpus/templates/brain/app/i18n-data.ts +5609 -1
  802. package/corpus/templates/brain/app/routes/extensions.$id.tsx +3 -1
  803. package/corpus/templates/brain/app/routes/extensions._index.tsx +3 -1
  804. package/corpus/templates/brain/app/routes/extensions.tsx +3 -1
  805. package/corpus/templates/brain/app/routes/knowledge.tsx +51 -38
  806. package/corpus/templates/brain/app/routes/review.tsx +259 -154
  807. package/corpus/templates/brain/app/routes/settings.tsx +114 -116
  808. package/corpus/templates/brain/app/routes/sources.tsx +421 -352
  809. package/corpus/templates/brain/app/routes/team.tsx +6 -2
  810. package/corpus/templates/calendar/app/components/CloudUpgrade.tsx +33 -51
  811. package/corpus/templates/calendar/app/components/ThemeToggle.tsx +3 -1
  812. package/corpus/templates/calendar/app/components/TimezoneCombobox.tsx +5 -3
  813. package/corpus/templates/calendar/app/components/booking/BookingConfirmation.tsx +27 -13
  814. package/corpus/templates/calendar/app/components/booking/BookingForm.tsx +25 -13
  815. package/corpus/templates/calendar/app/components/booking/TimeSlotPicker.tsx +4 -1
  816. package/corpus/templates/calendar/app/components/calendar/AddCalendarDialog.tsx +22 -16
  817. package/corpus/templates/calendar/app/components/calendar/ApolloPanel.tsx +14 -13
  818. package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +22 -11
  819. package/corpus/templates/calendar/app/components/calendar/CommandPalette.tsx +19 -16
  820. package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +112 -72
  821. package/corpus/templates/calendar/app/components/calendar/DayView.tsx +3 -1
  822. package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +62 -24
  823. package/corpus/templates/calendar/app/components/calendar/EventDescription.tsx +4 -2
  824. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +17 -11
  825. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +167 -97
  826. package/corpus/templates/calendar/app/components/calendar/EventOptionControls.tsx +39 -25
  827. package/corpus/templates/calendar/app/components/calendar/FindTimePanel.tsx +28 -16
  828. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +90 -74
  829. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +42 -34
  830. package/corpus/templates/calendar/app/components/calendar/GoogleSyncButton.tsx +6 -6
  831. package/corpus/templates/calendar/app/components/calendar/GuestNotificationDialog.tsx +44 -37
  832. package/corpus/templates/calendar/app/components/calendar/IntegrationsSidebar.tsx +46 -52
  833. package/corpus/templates/calendar/app/components/calendar/KeyboardShortcutsHelp.tsx +31 -19
  834. package/corpus/templates/calendar/app/components/calendar/PeopleSearchDialog.tsx +13 -9
  835. package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +6 -4
  836. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +13 -7
  837. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +19 -18
  838. package/corpus/templates/calendar/app/i18n/ar-SA.ts +2 -56
  839. package/corpus/templates/calendar/app/i18n/de-DE.ts +2 -57
  840. package/corpus/templates/calendar/app/i18n/en-US.ts +2 -56
  841. package/corpus/templates/calendar/app/i18n/es-ES.ts +2 -57
  842. package/corpus/templates/calendar/app/i18n/fr-FR.ts +2 -57
  843. package/corpus/templates/calendar/app/i18n/hi-IN.ts +2 -56
  844. package/corpus/templates/calendar/app/i18n/ja-JP.ts +2 -57
  845. package/corpus/templates/calendar/app/i18n/ko-KR.ts +2 -56
  846. package/corpus/templates/calendar/app/i18n/pt-BR.ts +2 -56
  847. package/corpus/templates/calendar/app/i18n/zh-CN.ts +2 -56
  848. package/corpus/templates/calendar/app/i18n-data.ts +8680 -7
  849. package/corpus/templates/calendar/app/pages/AvailabilitySettings.tsx +66 -34
  850. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +286 -186
  851. package/corpus/templates/calendar/app/pages/BookingPage.tsx +37 -21
  852. package/corpus/templates/calendar/app/pages/BookingsList.tsx +36 -25
  853. package/corpus/templates/calendar/app/pages/CalendarView.tsx +66 -49
  854. package/corpus/templates/calendar/app/pages/ManageBookingPage.tsx +41 -29
  855. package/corpus/templates/calendar/app/pages/NotFound.tsx +4 -2
  856. package/corpus/templates/calendar/app/routes/_app.$.tsx +2 -1
  857. package/corpus/templates/calendar/app/routes/_app.booking-links.tsx +3 -1
  858. package/corpus/templates/calendar/app/routes/_app.settings.tsx +6 -3
  859. package/corpus/templates/calendar/app/routes/_app.team.tsx +8 -3
  860. package/corpus/templates/calendar/app/routes/booking-og-meta.ts +7 -4
  861. package/corpus/templates/calendar/app/routes/booking.manage.$token.tsx +2 -1
  862. package/corpus/templates/calendar/app/routes/event.tsx +14 -8
  863. package/corpus/templates/chat/app/i18n/ar-SA.ts +29 -23
  864. package/corpus/templates/chat/app/i18n/de-DE.ts +30 -22
  865. package/corpus/templates/chat/app/i18n/en-US.ts +7 -0
  866. package/corpus/templates/chat/app/i18n/es-ES.ts +30 -22
  867. package/corpus/templates/chat/app/i18n/fr-FR.ts +33 -25
  868. package/corpus/templates/chat/app/i18n/hi-IN.ts +30 -23
  869. package/corpus/templates/chat/app/i18n/ja-JP.ts +30 -23
  870. package/corpus/templates/chat/app/i18n/ko-KR.ts +30 -23
  871. package/corpus/templates/chat/app/i18n/pt-BR.ts +30 -22
  872. package/corpus/templates/chat/app/i18n/zh-CN.ts +29 -23
  873. package/corpus/templates/chat/app/routes/observability.tsx +2 -1
  874. package/corpus/templates/clips/app/components/capture-install-options.tsx +16 -11
  875. package/corpus/templates/clips/app/components/editable-recording-title.tsx +8 -7
  876. package/corpus/templates/clips/app/components/editor/chapters-editor.tsx +12 -9
  877. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +15 -9
  878. package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +71 -57
  879. package/corpus/templates/clips/app/components/editor/split-button.tsx +6 -5
  880. package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +21 -19
  881. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +39 -26
  882. package/corpus/templates/clips/app/components/editor/transcript-editor.tsx +10 -6
  883. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +11 -7
  884. package/corpus/templates/clips/app/components/library/create-space-dialog.tsx +13 -9
  885. package/corpus/templates/clips/app/components/library/folder-tree.tsx +26 -24
  886. package/corpus/templates/clips/app/components/library/library-grid.tsx +118 -14
  887. package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -1
  888. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +24 -13
  889. package/corpus/templates/clips/app/components/library/recording-card.tsx +51 -34
  890. package/corpus/templates/clips/app/components/library/search-bar.tsx +14 -11
  891. package/corpus/templates/clips/app/components/meetings/auto-record-prompt.tsx +10 -6
  892. package/corpus/templates/clips/app/components/meetings/canvas-editor.tsx +8 -4
  893. package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +32 -16
  894. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +23 -23
  895. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +11 -7
  896. package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +8 -4
  897. package/corpus/templates/clips/app/components/player/access-password-prompt.tsx +6 -4
  898. package/corpus/templates/clips/app/components/player/comments-panel.tsx +22 -13
  899. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +24 -79
  900. package/corpus/templates/clips/app/components/player/insights-panel.tsx +29 -15
  901. package/corpus/templates/clips/app/components/player/player-controls.tsx +3 -1
  902. package/corpus/templates/clips/app/components/player/settings-panel.tsx +44 -27
  903. package/corpus/templates/clips/app/components/player/share-dialog.tsx +38 -32
  904. package/corpus/templates/clips/app/components/player/sign-in-prompt-dialog.tsx +7 -5
  905. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +46 -35
  906. package/corpus/templates/clips/app/components/player/video-player.tsx +11 -5
  907. package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +20 -6
  908. package/corpus/templates/clips/app/components/recorder/countdown-overlay.tsx +6 -4
  909. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +3 -1
  910. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +120 -156
  911. package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +16 -8
  912. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +8 -8
  913. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +33 -31
  914. package/corpus/templates/clips/app/components/sharing/slack-share-hint.tsx +15 -8
  915. package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +35 -20
  916. package/corpus/templates/clips/app/components/workspace/engagement-chart.tsx +6 -4
  917. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +35 -22
  918. package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +27 -17
  919. package/corpus/templates/clips/app/components/workspace/members-list.tsx +30 -19
  920. package/corpus/templates/clips/app/components/workspace/notifications-list.tsx +37 -25
  921. package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +14 -5
  922. package/corpus/templates/clips/app/i18n/ar-SA.ts +1103 -1
  923. package/corpus/templates/clips/app/i18n/de-DE.ts +1133 -1
  924. package/corpus/templates/clips/app/i18n/en-US.ts +1096 -0
  925. package/corpus/templates/clips/app/i18n/es-ES.ts +1125 -0
  926. package/corpus/templates/clips/app/i18n/fr-FR.ts +1131 -5
  927. package/corpus/templates/clips/app/i18n/hi-IN.ts +1099 -1
  928. package/corpus/templates/clips/app/i18n/ja-JP.ts +1124 -2
  929. package/corpus/templates/clips/app/i18n/ko-KR.ts +1110 -1
  930. package/corpus/templates/clips/app/i18n/pt-BR.ts +1123 -1
  931. package/corpus/templates/clips/app/i18n/zh-CN.ts +1080 -2
  932. package/corpus/templates/clips/app/routes/_app.archive.tsx +12 -2
  933. package/corpus/templates/clips/app/routes/_app.dictate.tsx +71 -49
  934. package/corpus/templates/clips/app/routes/_app.insights._index.tsx +2 -1
  935. package/corpus/templates/clips/app/routes/_app.library.folder.$folderId.tsx +5 -2
  936. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +54 -38
  937. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +41 -30
  938. package/corpus/templates/clips/app/routes/_app.notifications.tsx +34 -19
  939. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +16 -12
  940. package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +25 -18
  941. package/corpus/templates/clips/app/routes/_app.spaces.$spaceId.folder.$folderId.tsx +5 -2
  942. package/corpus/templates/clips/app/routes/_app.spaces.$spaceId.tsx +8 -5
  943. package/corpus/templates/clips/app/routes/_app.spaces._index.tsx +8 -3
  944. package/corpus/templates/clips/app/routes/_app.trash.tsx +2 -1
  945. package/corpus/templates/clips/app/routes/download.tsx +39 -30
  946. package/corpus/templates/clips/app/routes/embed.$shareId.tsx +4 -3
  947. package/corpus/templates/clips/app/routes/invite.$token.tsx +41 -32
  948. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +111 -106
  949. package/corpus/templates/clips/app/routes/record.tsx +101 -87
  950. package/corpus/templates/clips/app/routes/share.$shareId.tsx +78 -62
  951. package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +15 -12
  952. package/corpus/templates/content/app/components/ThemeToggle.tsx +3 -3
  953. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +14 -12
  954. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +19 -14
  955. package/corpus/templates/content/app/components/editor/DocumentBlockFields.tsx +16 -4
  956. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +13670 -10
  957. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +15 -12
  958. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +219 -135
  959. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +114 -81
  960. package/corpus/templates/content/app/components/editor/EmojiPicker.tsx +27 -9
  961. package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +7 -5
  962. package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +12 -6
  963. package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +54 -34
  964. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +111 -122
  965. package/corpus/templates/content/app/components/editor/TableHoverControls.tsx +27 -22
  966. package/corpus/templates/content/app/components/editor/VersionHistoryPanel.tsx +23 -19
  967. package/corpus/templates/content/app/components/editor/VisualEditor.tsx +6 -2
  968. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +245 -238
  969. package/corpus/templates/content/app/components/editor/database/calculations.ts +1 -0
  970. package/corpus/templates/content/app/components/editor/database/filter-sort.ts +1 -0
  971. package/corpus/templates/content/app/components/editor/database/grouping.ts +1 -0
  972. package/corpus/templates/content/app/components/editor/database/navigation-state.ts +1 -0
  973. package/corpus/templates/content/app/components/editor/database/shared.tsx +1 -0
  974. package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +92 -53
  975. package/corpus/templates/content/app/components/editor/extensions/AudioBlock.tsx +86 -49
  976. package/corpus/templates/content/app/components/editor/extensions/CodeBlockNode.tsx +22 -12
  977. package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +138 -74
  978. package/corpus/templates/content/app/components/editor/extensions/LocalMdxComponentNode.tsx +16 -7
  979. package/corpus/templates/content/app/components/editor/extensions/VideoBlock.tsx +86 -49
  980. package/corpus/templates/content/app/components/editor/image-upload.ts +3 -3
  981. package/corpus/templates/content/app/components/editor/localComponentSlashItems.ts +2 -1
  982. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +205 -484
  983. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +34 -110
  984. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +56 -43
  985. package/corpus/templates/content/app/i18n-data.ts +6977 -10
  986. package/corpus/templates/content/app/routes/_app.local-files.tsx +111 -85
  987. package/corpus/templates/content/app/routes/_app.page.$id.tsx +7 -7
  988. package/corpus/templates/content/app/routes/_app.settings.tsx +2 -1
  989. package/corpus/templates/content/app/routes/_app.team.tsx +2 -1
  990. package/corpus/templates/content/app/routes/_app.tsx +4 -6
  991. package/corpus/templates/content/app/routes/p.$id.tsx +9 -6
  992. package/corpus/templates/design/app/components/ThemeToggle.tsx +3 -1
  993. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +6 -4
  994. package/corpus/templates/design/app/components/design/DesignToolbar.tsx +27 -22
  995. package/corpus/templates/design/app/components/design/DrawOverlay.tsx +4 -2
  996. package/corpus/templates/design/app/components/design/EditPanel.tsx +130 -100
  997. package/corpus/templates/design/app/components/design/PresentMode.tsx +3 -1
  998. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +8 -6
  999. package/corpus/templates/design/app/components/design/VariantGrid.tsx +6 -4
  1000. package/corpus/templates/design/app/components/design/VariantHandoffCard.tsx +8 -4
  1001. package/corpus/templates/design/app/components/design/ViewportTabs.tsx +5 -3
  1002. package/corpus/templates/design/app/components/design/ZoomControls.tsx +3 -1
  1003. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +31 -18
  1004. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +12 -8
  1005. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +14 -10
  1006. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +4 -2
  1007. package/corpus/templates/design/app/i18n-data.ts +6107 -332
  1008. package/corpus/templates/design/app/pages/DesignEditor.tsx +106 -81
  1009. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +110 -115
  1010. package/corpus/templates/design/app/pages/DesignSystems.tsx +154 -83
  1011. package/corpus/templates/design/app/pages/Index.tsx +69 -57
  1012. package/corpus/templates/design/app/pages/NotFound.tsx +4 -2
  1013. package/corpus/templates/design/app/pages/Present.tsx +1 -1
  1014. package/corpus/templates/design/app/pages/Templates.tsx +18 -12
  1015. package/corpus/templates/design/app/routes/$.tsx +2 -1
  1016. package/corpus/templates/design/app/routes/design-systems.tsx +2 -1
  1017. package/corpus/templates/design/app/routes/design-systems_.setup.tsx +2 -1
  1018. package/corpus/templates/design/app/routes/design.$id.tsx +2 -1
  1019. package/corpus/templates/design/app/routes/examples.tsx +3 -1
  1020. package/corpus/templates/design/app/routes/extensions.$id.tsx +3 -1
  1021. package/corpus/templates/design/app/routes/extensions._index.tsx +3 -1
  1022. package/corpus/templates/design/app/routes/extensions.tsx +3 -1
  1023. package/corpus/templates/design/app/routes/observability.tsx +3 -1
  1024. package/corpus/templates/design/app/routes/present.$id.tsx +2 -1
  1025. package/corpus/templates/design/app/routes/settings.tsx +2 -1
  1026. package/corpus/templates/design/app/routes/team.tsx +3 -1
  1027. package/corpus/templates/design/app/routes/templates.tsx +2 -1
  1028. package/corpus/templates/dispatch/app/i18n-data.ts +1881 -1
  1029. package/corpus/templates/dispatch/app/routes/chat.$threadId.tsx +10 -7
  1030. package/corpus/templates/dispatch/app/routes/chat.tsx +9 -7
  1031. package/corpus/templates/dispatch/app/routes/extensions.$id.tsx +2 -1
  1032. package/corpus/templates/dispatch/app/routes/extensions._index.tsx +2 -1
  1033. package/corpus/templates/dispatch/app/routes/integrations.tsx +327 -209
  1034. package/corpus/templates/dispatch/app/routes/settings.tsx +3 -1
  1035. package/corpus/templates/dispatch/app/routes/tools.$id.tsx +2 -1
  1036. package/corpus/templates/dispatch/app/routes/tools._index.tsx +2 -1
  1037. package/corpus/templates/forms/app/components/CloudUpgrade.tsx +38 -28
  1038. package/corpus/templates/forms/app/components/ThemeToggle.tsx +3 -1
  1039. package/corpus/templates/forms/app/components/builder/FieldPropertiesPanel.tsx +33 -29
  1040. package/corpus/templates/forms/app/i18n/ar-SA.ts +279 -53
  1041. package/corpus/templates/forms/app/i18n/de-DE.ts +287 -53
  1042. package/corpus/templates/forms/app/i18n/en-US.ts +225 -0
  1043. package/corpus/templates/forms/app/i18n/es-ES.ts +233 -1
  1044. package/corpus/templates/forms/app/i18n/fr-FR.ts +290 -54
  1045. package/corpus/templates/forms/app/i18n/hi-IN.ts +275 -55
  1046. package/corpus/templates/forms/app/i18n/ja-JP.ts +278 -55
  1047. package/corpus/templates/forms/app/i18n/ko-KR.ts +271 -55
  1048. package/corpus/templates/forms/app/i18n/pt-BR.ts +286 -52
  1049. package/corpus/templates/forms/app/i18n/zh-CN.ts +261 -56
  1050. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +214 -148
  1051. package/corpus/templates/forms/app/pages/FormFillPage.tsx +12 -7
  1052. package/corpus/templates/forms/app/pages/ResponseInsightsPage.tsx +8 -4
  1053. package/corpus/templates/forms/app/routes/_app.extensions.$id.tsx +3 -1
  1054. package/corpus/templates/forms/app/routes/_app.extensions._index.tsx +3 -1
  1055. package/corpus/templates/forms/app/routes/_app.forms.$id.tsx +2 -1
  1056. package/corpus/templates/forms/app/routes/_app.forms.$id_.responses.tsx +2 -1
  1057. package/corpus/templates/forms/app/routes/_app.forms._index.tsx +3 -4
  1058. package/corpus/templates/forms/app/routes/_app.response-insights.tsx +3 -2
  1059. package/corpus/templates/forms/app/routes/_app.settings.tsx +2 -1
  1060. package/corpus/templates/forms/app/routes/_index.tsx +3 -4
  1061. package/corpus/templates/forms/app/routes/form-preview.tsx +25 -26
  1062. package/corpus/templates/macros/app/components/AddExerciseDialog.tsx +18 -15
  1063. package/corpus/templates/macros/app/components/AddMealDialog.tsx +22 -19
  1064. package/corpus/templates/macros/app/components/AddWeightDialog.tsx +17 -16
  1065. package/corpus/templates/macros/app/components/DailyProgress.tsx +24 -18
  1066. package/corpus/templates/macros/app/components/ExerciseCard.tsx +5 -3
  1067. package/corpus/templates/macros/app/components/MealCard.tsx +5 -3
  1068. package/corpus/templates/macros/app/components/VoiceDictation.tsx +14 -13
  1069. package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +37 -20
  1070. package/corpus/templates/macros/app/components/WeightCard.tsx +16 -9
  1071. package/corpus/templates/macros/app/components/WeightTracker.tsx +13 -6
  1072. package/corpus/templates/macros/app/i18n/ar-SA.ts +154 -2
  1073. package/corpus/templates/macros/app/i18n/de-DE.ts +158 -2
  1074. package/corpus/templates/macros/app/i18n/en-US.ts +152 -0
  1075. package/corpus/templates/macros/app/i18n/es-ES.ts +154 -0
  1076. package/corpus/templates/macros/app/i18n/fr-FR.ts +157 -2
  1077. package/corpus/templates/macros/app/i18n/hi-IN.ts +154 -3
  1078. package/corpus/templates/macros/app/i18n/ja-JP.ts +153 -2
  1079. package/corpus/templates/macros/app/i18n/ko-KR.ts +153 -2
  1080. package/corpus/templates/macros/app/i18n/pt-BR.ts +155 -0
  1081. package/corpus/templates/macros/app/i18n/zh-CN.ts +152 -2
  1082. package/corpus/templates/macros/app/routes/_index.tsx +20 -16
  1083. package/corpus/templates/macros/app/routes/analytics.tsx +3 -3
  1084. package/corpus/templates/macros/app/routes/extensions.$id.tsx +3 -1
  1085. package/corpus/templates/macros/app/routes/extensions._index.tsx +3 -1
  1086. package/corpus/templates/macros/app/routes/settings.tsx +2 -1
  1087. package/corpus/templates/macros/app/routes/team.tsx +6 -3
  1088. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +69 -62
  1089. package/corpus/templates/mail/app/components/ThemeToggle.tsx +10 -3
  1090. package/corpus/templates/mail/app/components/agent-engine-picker.tsx +6 -5
  1091. package/corpus/templates/mail/app/components/email/CodeBlockLangPicker.tsx +1 -1
  1092. package/corpus/templates/mail/app/components/email/ComposeModal.tsx +6 -8
  1093. package/corpus/templates/mail/app/components/email/ComposeSlashMenu.tsx +45 -34
  1094. package/corpus/templates/mail/app/components/email/EmailThread.tsx +5 -3
  1095. package/corpus/templates/mail/app/components/email/InlineReplyComposer.tsx +4 -6
  1096. package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +16 -10
  1097. package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +28 -20
  1098. package/corpus/templates/mail/app/components/email/SendLaterButton.tsx +12 -7
  1099. package/corpus/templates/mail/app/components/email/SnoozeModal.tsx +9 -6
  1100. package/corpus/templates/mail/app/components/email/SnoozePopover.tsx +9 -9
  1101. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +2 -2
  1102. package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +40 -30
  1103. package/corpus/templates/mail/app/i18n/ar-SA.ts +435 -134
  1104. package/corpus/templates/mail/app/i18n/de-DE.ts +441 -131
  1105. package/corpus/templates/mail/app/i18n/en-US.ts +300 -1
  1106. package/corpus/templates/mail/app/i18n/es-ES.ts +443 -134
  1107. package/corpus/templates/mail/app/i18n/fr-FR.ts +444 -134
  1108. package/corpus/templates/mail/app/i18n/hi-IN.ts +441 -138
  1109. package/corpus/templates/mail/app/i18n/ja-JP.ts +437 -134
  1110. package/corpus/templates/mail/app/i18n/ko-KR.ts +437 -134
  1111. package/corpus/templates/mail/app/i18n/pt-BR.ts +440 -133
  1112. package/corpus/templates/mail/app/i18n/zh-CN.ts +361 -70
  1113. package/corpus/templates/mail/app/pages/DraftQueuePage.tsx +66 -41
  1114. package/corpus/templates/mail/app/pages/InboxPage.tsx +5 -1
  1115. package/corpus/templates/mail/app/pages/SettingsPage.tsx +125 -108
  1116. package/corpus/templates/mail/app/routes/$.tsx +2 -1
  1117. package/corpus/templates/mail/app/routes/draft-queue.$id.tsx +2 -1
  1118. package/corpus/templates/mail/app/routes/draft-queue.tsx +2 -1
  1119. package/corpus/templates/mail/app/routes/email.tsx +10 -7
  1120. package/corpus/templates/mail/app/routes/settings.tsx +2 -1
  1121. package/corpus/templates/mail/app/routes/team.tsx +2 -1
  1122. package/corpus/templates/plan/app/components/editor/PlanDocumentEditor.tsx +7 -4
  1123. package/corpus/templates/plan/app/components/editor/planSlashCommands.ts +51 -26
  1124. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +2 -2
  1125. package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +7 -4
  1126. package/corpus/templates/plan/app/components/plan/DocumentArea.tsx +19 -15
  1127. package/corpus/templates/plan/app/components/plan/LocalCodebasePicker.tsx +34 -17
  1128. package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +9 -5
  1129. package/corpus/templates/plan/app/components/plan/PlanImageNode.tsx +9 -4
  1130. package/corpus/templates/plan/app/components/plan/PlanImageViewer.tsx +47 -20
  1131. package/corpus/templates/plan/app/components/plan/PlanMarkdownReader.tsx +4 -2
  1132. package/corpus/templates/plan/app/components/plan/PlanTableOfContents.tsx +6 -1
  1133. package/corpus/templates/plan/app/components/plan/PlanVisualSurface.tsx +10 -5
  1134. package/corpus/templates/plan/app/components/plan/PrototypeViewer.tsx +3 -1
  1135. package/corpus/templates/plan/app/components/plan/image-actions.ts +29 -7
  1136. package/corpus/templates/plan/app/components/plan/planBlocks.tsx +16 -8
  1137. package/corpus/templates/plan/app/components/plan/wireframe/LegacyRegionWireframe.tsx +27 -18
  1138. package/corpus/templates/plan/app/components/plan/wireframe/Wireframe.tsx +3 -1
  1139. package/corpus/templates/plan/app/components/plan/wireframe/wireframe-icons.ts +1 -0
  1140. package/corpus/templates/plan/app/i18n/ar-SA.ts +663 -1
  1141. package/corpus/templates/plan/app/i18n/de-DE.ts +670 -0
  1142. package/corpus/templates/plan/app/i18n/en-US.ts +643 -0
  1143. package/corpus/templates/plan/app/i18n/es-ES.ts +667 -0
  1144. package/corpus/templates/plan/app/i18n/fr-FR.ts +672 -2
  1145. package/corpus/templates/plan/app/i18n/hi-IN.ts +641 -1
  1146. package/corpus/templates/plan/app/i18n/ja-JP.ts +633 -1
  1147. package/corpus/templates/plan/app/i18n/ko-KR.ts +623 -1
  1148. package/corpus/templates/plan/app/i18n/pt-BR.ts +671 -3
  1149. package/corpus/templates/plan/app/i18n/zh-CN.ts +620 -1
  1150. package/corpus/templates/plan/app/pages/PlansPage.tsx +697 -488
  1151. package/corpus/templates/slides/app/components/CloudUpgrade.tsx +16 -13
  1152. package/corpus/templates/slides/app/components/ThemeToggle.tsx +3 -1
  1153. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +37 -25
  1154. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +3 -2
  1155. package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +3 -1
  1156. package/corpus/templates/slides/app/components/design-system/DesignSystemPreview.tsx +6 -4
  1157. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +104 -73
  1158. package/corpus/templates/slides/app/components/editor/AnimationsPanel.tsx +21 -17
  1159. package/corpus/templates/slides/app/components/editor/AssetLibraryPanel.tsx +6 -3
  1160. package/corpus/templates/slides/app/components/editor/BlockBubbleMenu.tsx +4 -2
  1161. package/corpus/templates/slides/app/components/editor/CodeEditor.tsx +7 -4
  1162. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +26 -18
  1163. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +116 -91
  1164. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +21 -21
  1165. package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +16 -16
  1166. package/corpus/templates/slides/app/components/editor/GeneratingOverlay.tsx +4 -2
  1167. package/corpus/templates/slides/app/components/editor/GoogleDocImportHint.tsx +9 -5
  1168. package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +44 -54
  1169. package/corpus/templates/slides/app/components/editor/ImageDropPromptPopover.tsx +10 -11
  1170. package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +4 -2
  1171. package/corpus/templates/slides/app/components/editor/ImageOverlay.tsx +3 -1
  1172. package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +8 -5
  1173. package/corpus/templates/slides/app/components/editor/ImportButton.tsx +3 -2
  1174. package/corpus/templates/slides/app/components/editor/LogoSearchPanel.tsx +20 -10
  1175. package/corpus/templates/slides/app/components/editor/MermaidToExcalidrawPanel.tsx +3 -1
  1176. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +5 -4
  1177. package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +22 -21
  1178. package/corpus/templates/slides/app/components/editor/SlideBubbleMenu.tsx +32 -21
  1179. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +19 -34
  1180. package/corpus/templates/slides/app/components/editor/SlideInlineEditor.tsx +9 -8
  1181. package/corpus/templates/slides/app/components/editor/SlideSlashMenu.tsx +32 -27
  1182. package/corpus/templates/slides/app/components/editor/SpeakerNotesPanel.tsx +7 -2
  1183. package/corpus/templates/slides/app/components/layout/AgentWorkIndicator.tsx +6 -3
  1184. package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +11 -8
  1185. package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +6 -5
  1186. package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +8 -6
  1187. package/corpus/templates/slides/app/components/visual-editor/MultiSelectChip.tsx +7 -3
  1188. package/corpus/templates/slides/app/components/visual-editor/SaveStatusIndicator.tsx +4 -2
  1189. package/corpus/templates/slides/app/i18n/ar-SA.ts +525 -3
  1190. package/corpus/templates/slides/app/i18n/de-DE.ts +504 -4
  1191. package/corpus/templates/slides/app/i18n/en-US.ts +490 -0
  1192. package/corpus/templates/slides/app/i18n/es-ES.ts +514 -4
  1193. package/corpus/templates/slides/app/i18n/fr-FR.ts +519 -5
  1194. package/corpus/templates/slides/app/i18n/hi-IN.ts +489 -4
  1195. package/corpus/templates/slides/app/i18n/ja-JP.ts +485 -3
  1196. package/corpus/templates/slides/app/i18n/ko-KR.ts +481 -3
  1197. package/corpus/templates/slides/app/i18n/pt-BR.ts +507 -2
  1198. package/corpus/templates/slides/app/i18n/zh-CN.ts +475 -3
  1199. package/corpus/templates/slides/app/pages/DeckEditor.tsx +25 -21
  1200. package/corpus/templates/slides/app/pages/Index.tsx +47 -45
  1201. package/corpus/templates/slides/app/pages/SharedPresentation.tsx +4 -3
  1202. package/corpus/templates/slides/app/routes/$.tsx +2 -1
  1203. package/corpus/templates/slides/app/routes/deck.$id.tsx +2 -1
  1204. package/corpus/templates/slides/app/routes/design-systems.tsx +2 -1
  1205. package/corpus/templates/slides/app/routes/settings.tsx +2 -1
  1206. package/corpus/templates/slides/app/routes/share.$token.tsx +2 -1
  1207. package/corpus/templates/slides/app/routes/slide.tsx +11 -5
  1208. package/corpus/templates/slides/app/routes/team.tsx +6 -3
  1209. package/corpus/templates/videos/app/components/CameraControls.tsx +11 -7
  1210. package/corpus/templates/videos/app/components/CameraToolbar.tsx +13 -11
  1211. package/corpus/templates/videos/app/components/CloudUpgrade.tsx +19 -16
  1212. package/corpus/templates/videos/app/components/CompSettingsEditor.tsx +6 -1
  1213. package/corpus/templates/videos/app/components/ComponentLibrarySidebar.tsx +29 -29
  1214. package/corpus/templates/videos/app/components/ComponentPropsPanel.tsx +37 -17
  1215. package/corpus/templates/videos/app/components/ComponentsSidebar.tsx +8 -3
  1216. package/corpus/templates/videos/app/components/CompositionCard.tsx +11 -3
  1217. package/corpus/templates/videos/app/components/CurrentElementPanel.tsx +45 -42
  1218. package/corpus/templates/videos/app/components/CursorControls.tsx +37 -18
  1219. package/corpus/templates/videos/app/components/CursorPositioningOverlay.tsx +3 -1
  1220. package/corpus/templates/videos/app/components/LibraryFolderRow.tsx +8 -4
  1221. package/corpus/templates/videos/app/components/MotionCurveSelect.tsx +9 -6
  1222. package/corpus/templates/videos/app/components/PropsEditor.tsx +6 -2
  1223. package/corpus/templates/videos/app/components/Sidebar.tsx +7 -7
  1224. package/corpus/templates/videos/app/components/Timeline.tsx +8 -6
  1225. package/corpus/templates/videos/app/components/TrackPropertiesPanel.tsx +50 -33
  1226. package/corpus/templates/videos/app/components/TweaksPanel.tsx +18 -9
  1227. package/corpus/templates/videos/app/components/VideoPlayer.tsx +9 -5
  1228. package/corpus/templates/videos/app/components/design-system/DesignSystemPreview.tsx +14 -12
  1229. package/corpus/templates/videos/app/components/design-system/DesignSystemSetup.tsx +31 -29
  1230. package/corpus/templates/videos/app/components/keyframes/KeyframeActionButtons.tsx +11 -7
  1231. package/corpus/templates/videos/app/i18n/ar-SA.ts +358 -1
  1232. package/corpus/templates/videos/app/i18n/de-DE.ts +378 -0
  1233. package/corpus/templates/videos/app/i18n/en-US.ts +362 -0
  1234. package/corpus/templates/videos/app/i18n/es-ES.ts +377 -1
  1235. package/corpus/templates/videos/app/i18n/fr-FR.ts +379 -2
  1236. package/corpus/templates/videos/app/i18n/hi-IN.ts +359 -1
  1237. package/corpus/templates/videos/app/i18n/ja-JP.ts +371 -1
  1238. package/corpus/templates/videos/app/i18n/ko-KR.ts +364 -1
  1239. package/corpus/templates/videos/app/i18n/pt-BR.ts +371 -1
  1240. package/corpus/templates/videos/app/i18n/zh-CN.ts +351 -1
  1241. package/corpus/templates/videos/app/pages/ComponentLibrary.tsx +6 -2
  1242. package/corpus/templates/videos/app/pages/ComponentLibraryView.tsx +45 -24
  1243. package/corpus/templates/videos/app/pages/CompositionView.tsx +61 -34
  1244. package/corpus/templates/videos/app/routes/$.tsx +2 -1
  1245. package/corpus/templates/videos/app/routes/c.$compositionId.tsx +2 -1
  1246. package/corpus/templates/videos/app/routes/components.tsx +2 -1
  1247. package/corpus/templates/videos/app/routes/design-systems.tsx +2 -1
  1248. package/corpus/templates/videos/app/routes/settings.tsx +2 -1
  1249. package/corpus/templates/videos/app/routes/team.tsx +2 -1
  1250. package/dist/agent/production-agent.d.ts.map +1 -1
  1251. package/dist/agent/production-agent.js +40 -2
  1252. package/dist/agent/production-agent.js.map +1 -1
  1253. package/dist/agent/run-store.d.ts +2 -0
  1254. package/dist/agent/run-store.d.ts.map +1 -1
  1255. package/dist/agent/run-store.js +2 -0
  1256. package/dist/agent/run-store.js.map +1 -1
  1257. package/dist/client/i18n.d.ts.map +1 -1
  1258. package/dist/client/i18n.js +12 -1
  1259. package/dist/client/i18n.js.map +1 -1
  1260. package/dist/collab/awareness.d.ts +2 -2
  1261. package/dist/collab/awareness.d.ts.map +1 -1
  1262. package/dist/collab/routes.d.ts +2 -2
  1263. package/dist/notifications/routes.d.ts +2 -2
  1264. package/dist/observability/routes.d.ts +3 -3
  1265. package/dist/progress/routes.d.ts +1 -1
  1266. package/dist/resources/handlers.d.ts +1 -1
  1267. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  1268. package/dist/templates/default/app/i18n/ar-SA.ts +275 -274
  1269. package/dist/templates/default/app/i18n/de-DE.ts +270 -260
  1270. package/dist/templates/default/app/i18n/es-ES.ts +282 -270
  1271. package/dist/templates/default/app/i18n/fr-FR.ts +275 -266
  1272. package/dist/templates/default/app/i18n/hi-IN.ts +274 -276
  1273. package/dist/templates/default/app/i18n/ja-JP.ts +280 -273
  1274. package/dist/templates/default/app/i18n/ko-KR.ts +274 -274
  1275. package/dist/templates/default/app/i18n/pt-BR.ts +273 -266
  1276. package/dist/templates/default/app/i18n/zh-CN.ts +273 -285
  1277. package/docs/content/locales/ar-SA/a2a-protocol.md +2 -2
  1278. package/docs/content/locales/ar-SA/actions.md +6 -6
  1279. package/docs/content/locales/ar-SA/agent-surfaces.md +5 -5
  1280. package/docs/content/locales/ar-SA/agent-teams.md +4 -4
  1281. package/docs/content/locales/ar-SA/agent-web-surfaces.md +2 -2
  1282. package/docs/content/locales/ar-SA/authentication.md +4 -4
  1283. package/docs/content/locales/ar-SA/automations.md +3 -3
  1284. package/docs/content/locales/ar-SA/blueprint-installer.md +2 -2
  1285. package/docs/content/locales/ar-SA/cli-adapters.md +1 -1
  1286. package/docs/content/locales/ar-SA/code-agents-ui.md +2 -2
  1287. package/docs/content/locales/ar-SA/components.md +14 -14
  1288. package/docs/content/locales/ar-SA/context-awareness.md +3 -3
  1289. package/docs/content/locales/ar-SA/creating-templates.md +12 -12
  1290. package/docs/content/locales/ar-SA/cross-app-sso.md +3 -3
  1291. package/docs/content/locales/ar-SA/database.md +7 -7
  1292. package/docs/content/locales/ar-SA/deployment.md +4 -4
  1293. package/docs/content/locales/ar-SA/dispatch.md +3 -3
  1294. package/docs/content/locales/ar-SA/drop-in-agent.md +8 -8
  1295. package/docs/content/locales/ar-SA/durable-resume.md +1 -1
  1296. package/docs/content/locales/ar-SA/embedding-sdk.md +2 -2
  1297. package/docs/content/locales/ar-SA/evals.md +3 -3
  1298. package/docs/content/locales/ar-SA/extensions.md +2 -2
  1299. package/docs/content/locales/ar-SA/external-agents.md +8 -8
  1300. package/docs/content/locales/ar-SA/faq.md +3 -3
  1301. package/docs/content/locales/ar-SA/file-uploads.md +4 -4
  1302. package/docs/content/locales/ar-SA/frames.md +1 -1
  1303. package/docs/content/locales/ar-SA/getting-started.md +13 -13
  1304. package/docs/content/locales/ar-SA/harness-agents.md +3 -3
  1305. package/docs/content/locales/ar-SA/human-approval.md +3 -3
  1306. package/docs/content/locales/ar-SA/key-concepts.md +14 -14
  1307. package/docs/content/locales/ar-SA/local-file-mode.md +5 -5
  1308. package/docs/content/locales/ar-SA/mcp-apps.md +9 -9
  1309. package/docs/content/locales/ar-SA/mcp-clients.md +9 -9
  1310. package/docs/content/locales/ar-SA/mcp-protocol.md +5 -5
  1311. package/docs/content/locales/ar-SA/messaging.md +5 -5
  1312. package/docs/content/locales/ar-SA/migration-workbench.md +1 -1
  1313. package/docs/content/locales/ar-SA/multi-app-workspace.md +1 -1
  1314. package/docs/content/locales/ar-SA/multi-tenancy.md +2 -2
  1315. package/docs/content/locales/ar-SA/native-chat-ui.md +4 -4
  1316. package/docs/content/locales/ar-SA/notifications.md +5 -5
  1317. package/docs/content/locales/ar-SA/observability.md +1 -1
  1318. package/docs/content/locales/ar-SA/observational-memory.md +2 -2
  1319. package/docs/content/locales/ar-SA/onboarding.md +8 -8
  1320. package/docs/content/locales/ar-SA/plan-plugin.md +3 -3
  1321. package/docs/content/locales/ar-SA/pr-visual-recap.md +11 -11
  1322. package/docs/content/locales/ar-SA/processors.md +2 -2
  1323. package/docs/content/locales/ar-SA/progress.md +3 -3
  1324. package/docs/content/locales/ar-SA/pure-agent-apps.md +1 -1
  1325. package/docs/content/locales/ar-SA/real-time-collaboration.md +6 -6
  1326. package/docs/content/locales/ar-SA/recurring-jobs.md +5 -5
  1327. package/docs/content/locales/ar-SA/routing.md +1 -1
  1328. package/docs/content/locales/ar-SA/sandbox-adapters.md +3 -3
  1329. package/docs/content/locales/ar-SA/security.md +10 -10
  1330. package/docs/content/locales/ar-SA/server.md +9 -9
  1331. package/docs/content/locales/ar-SA/sharing.md +7 -7
  1332. package/docs/content/locales/ar-SA/skills-guide.md +16 -16
  1333. package/docs/content/locales/ar-SA/template-analytics.md +10 -10
  1334. package/docs/content/locales/ar-SA/template-assets.md +19 -19
  1335. package/docs/content/locales/ar-SA/template-brain.md +11 -11
  1336. package/docs/content/locales/ar-SA/template-calendar.md +9 -9
  1337. package/docs/content/locales/ar-SA/template-chat.md +3 -3
  1338. package/docs/content/locales/ar-SA/template-clips.md +13 -13
  1339. package/docs/content/locales/ar-SA/template-content.md +15 -15
  1340. package/docs/content/locales/ar-SA/template-design.md +7 -7
  1341. package/docs/content/locales/ar-SA/template-dispatch.md +8 -8
  1342. package/docs/content/locales/ar-SA/template-forms.md +9 -9
  1343. package/docs/content/locales/ar-SA/template-mail.md +7 -7
  1344. package/docs/content/locales/ar-SA/template-plan.md +3 -3
  1345. package/docs/content/locales/ar-SA/template-slides.md +8 -8
  1346. package/docs/content/locales/ar-SA/template-videos.md +5 -5
  1347. package/docs/content/locales/ar-SA/tracking.md +6 -6
  1348. package/docs/content/locales/ar-SA/using-your-agent.md +4 -4
  1349. package/docs/content/locales/ar-SA/voice-input.md +4 -4
  1350. package/docs/content/locales/ar-SA/what-is-agent-native.md +4 -4
  1351. package/docs/content/locales/ar-SA/workspace-connections.md +8 -8
  1352. package/docs/content/locales/ar-SA/workspace-management.md +4 -4
  1353. package/docs/content/locales/ar-SA/workspace.md +24 -24
  1354. package/docs/content/locales/ar-SA/writing-agent-instructions.md +18 -18
  1355. package/docs/content/locales/de-DE/a2a-protocol.md +7 -7
  1356. package/docs/content/locales/de-DE/actions.md +5 -5
  1357. package/docs/content/locales/de-DE/agent-mentions.md +4 -4
  1358. package/docs/content/locales/de-DE/agent-surfaces.md +22 -22
  1359. package/docs/content/locales/de-DE/agent-teams.md +4 -4
  1360. package/docs/content/locales/de-DE/agent-web-surfaces.md +4 -4
  1361. package/docs/content/locales/de-DE/authentication.md +6 -6
  1362. package/docs/content/locales/de-DE/automations.md +8 -8
  1363. package/docs/content/locales/de-DE/blueprint-installer.md +2 -2
  1364. package/docs/content/locales/de-DE/client.md +6 -6
  1365. package/docs/content/locales/de-DE/cloneable-saas.md +2 -2
  1366. package/docs/content/locales/de-DE/code-agents-ui.md +9 -9
  1367. package/docs/content/locales/de-DE/components.md +15 -15
  1368. package/docs/content/locales/de-DE/context-awareness.md +8 -8
  1369. package/docs/content/locales/de-DE/creating-templates.md +13 -13
  1370. package/docs/content/locales/de-DE/cross-app-sso.md +3 -3
  1371. package/docs/content/locales/de-DE/database.md +5 -5
  1372. package/docs/content/locales/de-DE/deployment.md +6 -6
  1373. package/docs/content/locales/de-DE/dispatch.md +3 -3
  1374. package/docs/content/locales/de-DE/drop-in-agent.md +14 -14
  1375. package/docs/content/locales/de-DE/durable-resume.md +1 -1
  1376. package/docs/content/locales/de-DE/embedding-sdk.md +2 -2
  1377. package/docs/content/locales/de-DE/evals.md +2 -2
  1378. package/docs/content/locales/de-DE/extensions.md +2 -2
  1379. package/docs/content/locales/de-DE/external-agents.md +6 -6
  1380. package/docs/content/locales/de-DE/faq.md +5 -5
  1381. package/docs/content/locales/de-DE/file-uploads.md +4 -4
  1382. package/docs/content/locales/de-DE/frames.md +2 -2
  1383. package/docs/content/locales/de-DE/getting-started.md +16 -16
  1384. package/docs/content/locales/de-DE/harness-agents.md +3 -3
  1385. package/docs/content/locales/de-DE/human-approval.md +4 -4
  1386. package/docs/content/locales/de-DE/key-concepts.md +14 -14
  1387. package/docs/content/locales/de-DE/local-file-mode.md +8 -8
  1388. package/docs/content/locales/de-DE/mcp-apps.md +4 -4
  1389. package/docs/content/locales/de-DE/mcp-clients.md +7 -7
  1390. package/docs/content/locales/de-DE/mcp-protocol.md +3 -3
  1391. package/docs/content/locales/de-DE/messaging.md +5 -5
  1392. package/docs/content/locales/de-DE/migration-workbench.md +1 -1
  1393. package/docs/content/locales/de-DE/multi-app-workspace.md +2 -2
  1394. package/docs/content/locales/de-DE/multi-tenancy.md +1 -1
  1395. package/docs/content/locales/de-DE/native-chat-ui.md +8 -8
  1396. package/docs/content/locales/de-DE/notifications.md +3 -3
  1397. package/docs/content/locales/de-DE/observability.md +2 -2
  1398. package/docs/content/locales/de-DE/observational-memory.md +2 -2
  1399. package/docs/content/locales/de-DE/onboarding.md +8 -8
  1400. package/docs/content/locales/de-DE/plan-plugin.md +3 -3
  1401. package/docs/content/locales/de-DE/pr-visual-recap.md +11 -11
  1402. package/docs/content/locales/de-DE/processors.md +1 -1
  1403. package/docs/content/locales/de-DE/progress.md +2 -2
  1404. package/docs/content/locales/de-DE/pure-agent-apps.md +1 -1
  1405. package/docs/content/locales/de-DE/real-time-collaboration.md +8 -8
  1406. package/docs/content/locales/de-DE/recurring-jobs.md +5 -5
  1407. package/docs/content/locales/de-DE/routing.md +1 -1
  1408. package/docs/content/locales/de-DE/sandbox-adapters.md +2 -2
  1409. package/docs/content/locales/de-DE/security.md +10 -10
  1410. package/docs/content/locales/de-DE/server.md +10 -10
  1411. package/docs/content/locales/de-DE/sharing.md +6 -6
  1412. package/docs/content/locales/de-DE/skills-guide.md +17 -17
  1413. package/docs/content/locales/de-DE/template-analytics.md +10 -10
  1414. package/docs/content/locales/de-DE/template-assets.md +21 -21
  1415. package/docs/content/locales/de-DE/template-brain.md +11 -11
  1416. package/docs/content/locales/de-DE/template-calendar.md +10 -10
  1417. package/docs/content/locales/de-DE/template-chat.md +5 -5
  1418. package/docs/content/locales/de-DE/template-clips.md +14 -14
  1419. package/docs/content/locales/de-DE/template-content.md +14 -14
  1420. package/docs/content/locales/de-DE/template-design.md +7 -7
  1421. package/docs/content/locales/de-DE/template-dispatch.md +12 -12
  1422. package/docs/content/locales/de-DE/template-forms.md +9 -9
  1423. package/docs/content/locales/de-DE/template-mail.md +6 -6
  1424. package/docs/content/locales/de-DE/template-plan.md +3 -3
  1425. package/docs/content/locales/de-DE/template-slides.md +8 -8
  1426. package/docs/content/locales/de-DE/template-videos.md +6 -6
  1427. package/docs/content/locales/de-DE/tracking.md +3 -3
  1428. package/docs/content/locales/de-DE/using-your-agent.md +6 -6
  1429. package/docs/content/locales/de-DE/voice-input.md +9 -9
  1430. package/docs/content/locales/de-DE/what-is-agent-native.md +6 -6
  1431. package/docs/content/locales/de-DE/workspace-connections.md +9 -9
  1432. package/docs/content/locales/de-DE/workspace-management.md +5 -5
  1433. package/docs/content/locales/de-DE/workspace.md +23 -23
  1434. package/docs/content/locales/de-DE/writing-agent-instructions.md +30 -30
  1435. package/docs/content/locales/es-ES/a2a-protocol.md +7 -7
  1436. package/docs/content/locales/es-ES/actions.md +2 -2
  1437. package/docs/content/locales/es-ES/agent-mentions.md +3 -3
  1438. package/docs/content/locales/es-ES/agent-surfaces.md +7 -7
  1439. package/docs/content/locales/es-ES/agent-teams.md +3 -3
  1440. package/docs/content/locales/es-ES/agent-web-surfaces.md +5 -5
  1441. package/docs/content/locales/es-ES/authentication.md +6 -6
  1442. package/docs/content/locales/es-ES/automations.md +8 -8
  1443. package/docs/content/locales/es-ES/blueprint-installer.md +2 -2
  1444. package/docs/content/locales/es-ES/client.md +1 -1
  1445. package/docs/content/locales/es-ES/cloneable-saas.md +2 -2
  1446. package/docs/content/locales/es-ES/code-agents-ui.md +4 -4
  1447. package/docs/content/locales/es-ES/components.md +5 -5
  1448. package/docs/content/locales/es-ES/context-awareness.md +8 -8
  1449. package/docs/content/locales/es-ES/creating-templates.md +12 -12
  1450. package/docs/content/locales/es-ES/cross-app-sso.md +3 -3
  1451. package/docs/content/locales/es-ES/database.md +5 -5
  1452. package/docs/content/locales/es-ES/deployment.md +4 -4
  1453. package/docs/content/locales/es-ES/dispatch.md +3 -3
  1454. package/docs/content/locales/es-ES/drop-in-agent.md +8 -8
  1455. package/docs/content/locales/es-ES/durable-resume.md +1 -1
  1456. package/docs/content/locales/es-ES/embedding-sdk.md +2 -2
  1457. package/docs/content/locales/es-ES/evals.md +2 -2
  1458. package/docs/content/locales/es-ES/extensions.md +2 -2
  1459. package/docs/content/locales/es-ES/external-agents.md +5 -5
  1460. package/docs/content/locales/es-ES/faq.md +3 -3
  1461. package/docs/content/locales/es-ES/file-uploads.md +4 -4
  1462. package/docs/content/locales/es-ES/frames.md +1 -1
  1463. package/docs/content/locales/es-ES/getting-started.md +13 -13
  1464. package/docs/content/locales/es-ES/harness-agents.md +3 -3
  1465. package/docs/content/locales/es-ES/human-approval.md +3 -3
  1466. package/docs/content/locales/es-ES/key-concepts.md +14 -14
  1467. package/docs/content/locales/es-ES/local-file-mode.md +6 -6
  1468. package/docs/content/locales/es-ES/mcp-apps.md +4 -4
  1469. package/docs/content/locales/es-ES/mcp-clients.md +8 -8
  1470. package/docs/content/locales/es-ES/mcp-protocol.md +3 -3
  1471. package/docs/content/locales/es-ES/messaging.md +4 -4
  1472. package/docs/content/locales/es-ES/migration-workbench.md +1 -1
  1473. package/docs/content/locales/es-ES/multi-app-workspace.md +1 -1
  1474. package/docs/content/locales/es-ES/multi-tenancy.md +1 -1
  1475. package/docs/content/locales/es-ES/native-chat-ui.md +3 -3
  1476. package/docs/content/locales/es-ES/notifications.md +3 -3
  1477. package/docs/content/locales/es-ES/observability.md +2 -2
  1478. package/docs/content/locales/es-ES/observational-memory.md +2 -2
  1479. package/docs/content/locales/es-ES/onboarding.md +8 -8
  1480. package/docs/content/locales/es-ES/plan-plugin.md +3 -3
  1481. package/docs/content/locales/es-ES/pr-visual-recap.md +11 -11
  1482. package/docs/content/locales/es-ES/processors.md +1 -1
  1483. package/docs/content/locales/es-ES/progress.md +2 -2
  1484. package/docs/content/locales/es-ES/pure-agent-apps.md +1 -1
  1485. package/docs/content/locales/es-ES/real-time-collaboration.md +6 -6
  1486. package/docs/content/locales/es-ES/recurring-jobs.md +5 -5
  1487. package/docs/content/locales/es-ES/routing.md +1 -1
  1488. package/docs/content/locales/es-ES/sandbox-adapters.md +2 -2
  1489. package/docs/content/locales/es-ES/security.md +8 -8
  1490. package/docs/content/locales/es-ES/server.md +11 -11
  1491. package/docs/content/locales/es-ES/sharing.md +6 -6
  1492. package/docs/content/locales/es-ES/skills-guide.md +16 -16
  1493. package/docs/content/locales/es-ES/template-analytics.md +10 -10
  1494. package/docs/content/locales/es-ES/template-assets.md +19 -19
  1495. package/docs/content/locales/es-ES/template-brain.md +11 -11
  1496. package/docs/content/locales/es-ES/template-calendar.md +9 -9
  1497. package/docs/content/locales/es-ES/template-chat.md +3 -3
  1498. package/docs/content/locales/es-ES/template-clips.md +14 -14
  1499. package/docs/content/locales/es-ES/template-content.md +13 -13
  1500. package/docs/content/locales/es-ES/template-design.md +7 -7
  1501. package/docs/content/locales/es-ES/template-dispatch.md +8 -8
  1502. package/docs/content/locales/es-ES/template-forms.md +9 -9
  1503. package/docs/content/locales/es-ES/template-mail.md +6 -6
  1504. package/docs/content/locales/es-ES/template-plan.md +3 -3
  1505. package/docs/content/locales/es-ES/template-slides.md +8 -8
  1506. package/docs/content/locales/es-ES/template-videos.md +5 -5
  1507. package/docs/content/locales/es-ES/tracking.md +3 -3
  1508. package/docs/content/locales/es-ES/using-your-agent.md +5 -5
  1509. package/docs/content/locales/es-ES/voice-input.md +4 -4
  1510. package/docs/content/locales/es-ES/what-is-agent-native.md +6 -6
  1511. package/docs/content/locales/es-ES/workspace-connections.md +8 -8
  1512. package/docs/content/locales/es-ES/workspace-management.md +4 -4
  1513. package/docs/content/locales/es-ES/workspace.md +23 -23
  1514. package/docs/content/locales/es-ES/writing-agent-instructions.md +18 -18
  1515. package/docs/content/locales/fr-FR/a2a-protocol.md +7 -7
  1516. package/docs/content/locales/fr-FR/actions.md +2 -2
  1517. package/docs/content/locales/fr-FR/agent-mentions.md +3 -3
  1518. package/docs/content/locales/fr-FR/agent-surfaces.md +7 -7
  1519. package/docs/content/locales/fr-FR/agent-teams.md +3 -3
  1520. package/docs/content/locales/fr-FR/agent-web-surfaces.md +5 -5
  1521. package/docs/content/locales/fr-FR/authentication.md +6 -6
  1522. package/docs/content/locales/fr-FR/automations.md +8 -8
  1523. package/docs/content/locales/fr-FR/blueprint-installer.md +2 -2
  1524. package/docs/content/locales/fr-FR/client.md +1 -1
  1525. package/docs/content/locales/fr-FR/cloneable-saas.md +2 -2
  1526. package/docs/content/locales/fr-FR/code-agents-ui.md +4 -4
  1527. package/docs/content/locales/fr-FR/components.md +5 -5
  1528. package/docs/content/locales/fr-FR/context-awareness.md +8 -8
  1529. package/docs/content/locales/fr-FR/creating-templates.md +12 -12
  1530. package/docs/content/locales/fr-FR/cross-app-sso.md +4 -4
  1531. package/docs/content/locales/fr-FR/database.md +5 -5
  1532. package/docs/content/locales/fr-FR/deployment.md +5 -5
  1533. package/docs/content/locales/fr-FR/dispatch.md +3 -3
  1534. package/docs/content/locales/fr-FR/drop-in-agent.md +9 -9
  1535. package/docs/content/locales/fr-FR/durable-resume.md +1 -1
  1536. package/docs/content/locales/fr-FR/embedding-sdk.md +7 -7
  1537. package/docs/content/locales/fr-FR/evals.md +2 -2
  1538. package/docs/content/locales/fr-FR/extensions.md +2 -2
  1539. package/docs/content/locales/fr-FR/external-agents.md +5 -5
  1540. package/docs/content/locales/fr-FR/faq.md +3 -3
  1541. package/docs/content/locales/fr-FR/file-uploads.md +5 -5
  1542. package/docs/content/locales/fr-FR/frames.md +1 -1
  1543. package/docs/content/locales/fr-FR/getting-started.md +13 -13
  1544. package/docs/content/locales/fr-FR/harness-agents.md +3 -3
  1545. package/docs/content/locales/fr-FR/human-approval.md +3 -3
  1546. package/docs/content/locales/fr-FR/key-concepts.md +15 -15
  1547. package/docs/content/locales/fr-FR/local-file-mode.md +5 -5
  1548. package/docs/content/locales/fr-FR/mcp-apps.md +4 -4
  1549. package/docs/content/locales/fr-FR/mcp-clients.md +8 -8
  1550. package/docs/content/locales/fr-FR/mcp-protocol.md +3 -3
  1551. package/docs/content/locales/fr-FR/messaging.md +4 -4
  1552. package/docs/content/locales/fr-FR/migration-workbench.md +1 -1
  1553. package/docs/content/locales/fr-FR/multi-app-workspace.md +1 -1
  1554. package/docs/content/locales/fr-FR/multi-tenancy.md +1 -1
  1555. package/docs/content/locales/fr-FR/native-chat-ui.md +3 -3
  1556. package/docs/content/locales/fr-FR/notifications.md +3 -3
  1557. package/docs/content/locales/fr-FR/observability.md +2 -2
  1558. package/docs/content/locales/fr-FR/observational-memory.md +2 -2
  1559. package/docs/content/locales/fr-FR/onboarding.md +8 -8
  1560. package/docs/content/locales/fr-FR/plan-plugin.md +3 -3
  1561. package/docs/content/locales/fr-FR/pr-visual-recap.md +11 -11
  1562. package/docs/content/locales/fr-FR/processors.md +1 -1
  1563. package/docs/content/locales/fr-FR/progress.md +2 -2
  1564. package/docs/content/locales/fr-FR/pure-agent-apps.md +1 -1
  1565. package/docs/content/locales/fr-FR/real-time-collaboration.md +8 -8
  1566. package/docs/content/locales/fr-FR/recurring-jobs.md +5 -5
  1567. package/docs/content/locales/fr-FR/routing.md +1 -1
  1568. package/docs/content/locales/fr-FR/sandbox-adapters.md +2 -2
  1569. package/docs/content/locales/fr-FR/security.md +8 -8
  1570. package/docs/content/locales/fr-FR/server.md +10 -10
  1571. package/docs/content/locales/fr-FR/sharing.md +6 -6
  1572. package/docs/content/locales/fr-FR/skills-guide.md +16 -16
  1573. package/docs/content/locales/fr-FR/template-analytics.md +10 -10
  1574. package/docs/content/locales/fr-FR/template-assets.md +20 -20
  1575. package/docs/content/locales/fr-FR/template-brain.md +11 -11
  1576. package/docs/content/locales/fr-FR/template-calendar.md +9 -9
  1577. package/docs/content/locales/fr-FR/template-chat.md +3 -3
  1578. package/docs/content/locales/fr-FR/template-clips.md +15 -15
  1579. package/docs/content/locales/fr-FR/template-content.md +13 -13
  1580. package/docs/content/locales/fr-FR/template-design.md +8 -8
  1581. package/docs/content/locales/fr-FR/template-dispatch.md +8 -8
  1582. package/docs/content/locales/fr-FR/template-forms.md +10 -10
  1583. package/docs/content/locales/fr-FR/template-mail.md +6 -6
  1584. package/docs/content/locales/fr-FR/template-plan.md +3 -3
  1585. package/docs/content/locales/fr-FR/template-slides.md +9 -9
  1586. package/docs/content/locales/fr-FR/template-videos.md +5 -5
  1587. package/docs/content/locales/fr-FR/tracking.md +3 -3
  1588. package/docs/content/locales/fr-FR/using-your-agent.md +5 -5
  1589. package/docs/content/locales/fr-FR/voice-input.md +4 -4
  1590. package/docs/content/locales/fr-FR/what-is-agent-native.md +6 -6
  1591. package/docs/content/locales/fr-FR/workspace-connections.md +8 -8
  1592. package/docs/content/locales/fr-FR/workspace-management.md +5 -5
  1593. package/docs/content/locales/fr-FR/workspace.md +23 -23
  1594. package/docs/content/locales/fr-FR/writing-agent-instructions.md +18 -18
  1595. package/docs/content/locales/hi-IN/a2a-protocol.md +7 -7
  1596. package/docs/content/locales/hi-IN/actions.md +3 -3
  1597. package/docs/content/locales/hi-IN/agent-mentions.md +3 -3
  1598. package/docs/content/locales/hi-IN/agent-surfaces.md +7 -7
  1599. package/docs/content/locales/hi-IN/agent-teams.md +3 -3
  1600. package/docs/content/locales/hi-IN/agent-web-surfaces.md +5 -5
  1601. package/docs/content/locales/hi-IN/authentication.md +6 -6
  1602. package/docs/content/locales/hi-IN/automations.md +8 -8
  1603. package/docs/content/locales/hi-IN/blueprint-installer.md +2 -2
  1604. package/docs/content/locales/hi-IN/client.md +1 -1
  1605. package/docs/content/locales/hi-IN/cloneable-saas.md +2 -2
  1606. package/docs/content/locales/hi-IN/code-agents-ui.md +4 -4
  1607. package/docs/content/locales/hi-IN/components.md +5 -5
  1608. package/docs/content/locales/hi-IN/context-awareness.md +8 -8
  1609. package/docs/content/locales/hi-IN/creating-templates.md +14 -14
  1610. package/docs/content/locales/hi-IN/cross-app-sso.md +3 -3
  1611. package/docs/content/locales/hi-IN/database.md +5 -5
  1612. package/docs/content/locales/hi-IN/deployment.md +5 -5
  1613. package/docs/content/locales/hi-IN/dispatch.md +4 -4
  1614. package/docs/content/locales/hi-IN/drop-in-agent.md +8 -8
  1615. package/docs/content/locales/hi-IN/durable-resume.md +1 -1
  1616. package/docs/content/locales/hi-IN/embedding-sdk.md +2 -2
  1617. package/docs/content/locales/hi-IN/evals.md +2 -2
  1618. package/docs/content/locales/hi-IN/extensions.md +2 -2
  1619. package/docs/content/locales/hi-IN/external-agents.md +5 -5
  1620. package/docs/content/locales/hi-IN/faq.md +3 -3
  1621. package/docs/content/locales/hi-IN/file-uploads.md +4 -4
  1622. package/docs/content/locales/hi-IN/frames.md +1 -1
  1623. package/docs/content/locales/hi-IN/getting-started.md +14 -14
  1624. package/docs/content/locales/hi-IN/harness-agents.md +3 -3
  1625. package/docs/content/locales/hi-IN/human-approval.md +3 -3
  1626. package/docs/content/locales/hi-IN/key-concepts.md +14 -14
  1627. package/docs/content/locales/hi-IN/local-file-mode.md +5 -5
  1628. package/docs/content/locales/hi-IN/mcp-apps.md +4 -4
  1629. package/docs/content/locales/hi-IN/mcp-clients.md +7 -7
  1630. package/docs/content/locales/hi-IN/mcp-protocol.md +3 -3
  1631. package/docs/content/locales/hi-IN/messaging.md +6 -6
  1632. package/docs/content/locales/hi-IN/migration-workbench.md +1 -1
  1633. package/docs/content/locales/hi-IN/multi-app-workspace.md +1 -1
  1634. package/docs/content/locales/hi-IN/multi-tenancy.md +1 -1
  1635. package/docs/content/locales/hi-IN/native-chat-ui.md +3 -3
  1636. package/docs/content/locales/hi-IN/notifications.md +3 -3
  1637. package/docs/content/locales/hi-IN/observability.md +2 -2
  1638. package/docs/content/locales/hi-IN/observational-memory.md +2 -2
  1639. package/docs/content/locales/hi-IN/onboarding.md +8 -8
  1640. package/docs/content/locales/hi-IN/plan-plugin.md +3 -3
  1641. package/docs/content/locales/hi-IN/pr-visual-recap.md +11 -11
  1642. package/docs/content/locales/hi-IN/processors.md +1 -1
  1643. package/docs/content/locales/hi-IN/progress.md +2 -2
  1644. package/docs/content/locales/hi-IN/pure-agent-apps.md +1 -1
  1645. package/docs/content/locales/hi-IN/real-time-collaboration.md +6 -6
  1646. package/docs/content/locales/hi-IN/recurring-jobs.md +5 -5
  1647. package/docs/content/locales/hi-IN/routing.md +1 -1
  1648. package/docs/content/locales/hi-IN/sandbox-adapters.md +2 -2
  1649. package/docs/content/locales/hi-IN/security.md +8 -8
  1650. package/docs/content/locales/hi-IN/server.md +10 -10
  1651. package/docs/content/locales/hi-IN/sharing.md +6 -6
  1652. package/docs/content/locales/hi-IN/skills-guide.md +16 -16
  1653. package/docs/content/locales/hi-IN/template-analytics.md +10 -10
  1654. package/docs/content/locales/hi-IN/template-assets.md +19 -19
  1655. package/docs/content/locales/hi-IN/template-brain.md +11 -11
  1656. package/docs/content/locales/hi-IN/template-calendar.md +9 -9
  1657. package/docs/content/locales/hi-IN/template-chat.md +3 -3
  1658. package/docs/content/locales/hi-IN/template-clips.md +14 -14
  1659. package/docs/content/locales/hi-IN/template-content.md +13 -13
  1660. package/docs/content/locales/hi-IN/template-design.md +7 -7
  1661. package/docs/content/locales/hi-IN/template-dispatch.md +9 -9
  1662. package/docs/content/locales/hi-IN/template-forms.md +9 -9
  1663. package/docs/content/locales/hi-IN/template-mail.md +6 -6
  1664. package/docs/content/locales/hi-IN/template-plan.md +3 -3
  1665. package/docs/content/locales/hi-IN/template-slides.md +8 -8
  1666. package/docs/content/locales/hi-IN/template-videos.md +5 -5
  1667. package/docs/content/locales/hi-IN/tracking.md +3 -3
  1668. package/docs/content/locales/hi-IN/using-your-agent.md +1 -1
  1669. package/docs/content/locales/hi-IN/voice-input.md +4 -4
  1670. package/docs/content/locales/hi-IN/what-is-agent-native.md +4 -4
  1671. package/docs/content/locales/hi-IN/workspace-connections.md +8 -8
  1672. package/docs/content/locales/hi-IN/workspace-management.md +4 -4
  1673. package/docs/content/locales/hi-IN/workspace.md +23 -23
  1674. package/docs/content/locales/hi-IN/writing-agent-instructions.md +18 -18
  1675. package/docs/content/locales/ja-JP/a2a-protocol.md +7 -7
  1676. package/docs/content/locales/ja-JP/actions.md +3 -3
  1677. package/docs/content/locales/ja-JP/agent-mentions.md +3 -3
  1678. package/docs/content/locales/ja-JP/agent-surfaces.md +7 -7
  1679. package/docs/content/locales/ja-JP/agent-teams.md +3 -3
  1680. package/docs/content/locales/ja-JP/agent-web-surfaces.md +5 -5
  1681. package/docs/content/locales/ja-JP/authentication.md +6 -6
  1682. package/docs/content/locales/ja-JP/automations.md +8 -8
  1683. package/docs/content/locales/ja-JP/blueprint-installer.md +2 -2
  1684. package/docs/content/locales/ja-JP/client.md +1 -1
  1685. package/docs/content/locales/ja-JP/cloneable-saas.md +2 -2
  1686. package/docs/content/locales/ja-JP/code-agents-ui.md +4 -4
  1687. package/docs/content/locales/ja-JP/components.md +5 -5
  1688. package/docs/content/locales/ja-JP/context-awareness.md +8 -8
  1689. package/docs/content/locales/ja-JP/creating-templates.md +12 -12
  1690. package/docs/content/locales/ja-JP/cross-app-sso.md +3 -3
  1691. package/docs/content/locales/ja-JP/database.md +7 -7
  1692. package/docs/content/locales/ja-JP/deployment.md +4 -4
  1693. package/docs/content/locales/ja-JP/dispatch.md +4 -4
  1694. package/docs/content/locales/ja-JP/drop-in-agent.md +8 -8
  1695. package/docs/content/locales/ja-JP/durable-resume.md +1 -1
  1696. package/docs/content/locales/ja-JP/embedding-sdk.md +2 -2
  1697. package/docs/content/locales/ja-JP/evals.md +2 -2
  1698. package/docs/content/locales/ja-JP/extensions.md +2 -2
  1699. package/docs/content/locales/ja-JP/external-agents.md +5 -5
  1700. package/docs/content/locales/ja-JP/faq.md +3 -3
  1701. package/docs/content/locales/ja-JP/file-uploads.md +4 -4
  1702. package/docs/content/locales/ja-JP/frames.md +1 -1
  1703. package/docs/content/locales/ja-JP/getting-started.md +13 -13
  1704. package/docs/content/locales/ja-JP/harness-agents.md +3 -3
  1705. package/docs/content/locales/ja-JP/human-approval.md +3 -3
  1706. package/docs/content/locales/ja-JP/key-concepts.md +14 -14
  1707. package/docs/content/locales/ja-JP/local-file-mode.md +5 -5
  1708. package/docs/content/locales/ja-JP/mcp-apps.md +4 -4
  1709. package/docs/content/locales/ja-JP/mcp-clients.md +8 -8
  1710. package/docs/content/locales/ja-JP/mcp-protocol.md +3 -3
  1711. package/docs/content/locales/ja-JP/messaging.md +6 -6
  1712. package/docs/content/locales/ja-JP/migration-workbench.md +1 -1
  1713. package/docs/content/locales/ja-JP/multi-app-workspace.md +1 -1
  1714. package/docs/content/locales/ja-JP/multi-tenancy.md +1 -1
  1715. package/docs/content/locales/ja-JP/native-chat-ui.md +3 -3
  1716. package/docs/content/locales/ja-JP/notifications.md +3 -3
  1717. package/docs/content/locales/ja-JP/observability.md +2 -2
  1718. package/docs/content/locales/ja-JP/observational-memory.md +2 -2
  1719. package/docs/content/locales/ja-JP/onboarding.md +8 -8
  1720. package/docs/content/locales/ja-JP/plan-plugin.md +3 -3
  1721. package/docs/content/locales/ja-JP/pr-visual-recap.md +11 -11
  1722. package/docs/content/locales/ja-JP/processors.md +1 -1
  1723. package/docs/content/locales/ja-JP/progress.md +2 -2
  1724. package/docs/content/locales/ja-JP/pure-agent-apps.md +1 -1
  1725. package/docs/content/locales/ja-JP/real-time-collaboration.md +6 -6
  1726. package/docs/content/locales/ja-JP/recurring-jobs.md +5 -5
  1727. package/docs/content/locales/ja-JP/routing.md +1 -1
  1728. package/docs/content/locales/ja-JP/sandbox-adapters.md +2 -2
  1729. package/docs/content/locales/ja-JP/security.md +8 -8
  1730. package/docs/content/locales/ja-JP/server.md +10 -10
  1731. package/docs/content/locales/ja-JP/sharing.md +6 -6
  1732. package/docs/content/locales/ja-JP/skills-guide.md +16 -16
  1733. package/docs/content/locales/ja-JP/template-analytics.md +10 -10
  1734. package/docs/content/locales/ja-JP/template-assets.md +19 -19
  1735. package/docs/content/locales/ja-JP/template-brain.md +11 -11
  1736. package/docs/content/locales/ja-JP/template-calendar.md +9 -9
  1737. package/docs/content/locales/ja-JP/template-chat.md +3 -3
  1738. package/docs/content/locales/ja-JP/template-clips.md +14 -14
  1739. package/docs/content/locales/ja-JP/template-content.md +13 -13
  1740. package/docs/content/locales/ja-JP/template-design.md +7 -7
  1741. package/docs/content/locales/ja-JP/template-dispatch.md +12 -12
  1742. package/docs/content/locales/ja-JP/template-forms.md +9 -9
  1743. package/docs/content/locales/ja-JP/template-mail.md +6 -6
  1744. package/docs/content/locales/ja-JP/template-plan.md +3 -3
  1745. package/docs/content/locales/ja-JP/template-slides.md +8 -8
  1746. package/docs/content/locales/ja-JP/template-videos.md +5 -5
  1747. package/docs/content/locales/ja-JP/tracking.md +3 -3
  1748. package/docs/content/locales/ja-JP/using-your-agent.md +4 -4
  1749. package/docs/content/locales/ja-JP/voice-input.md +4 -4
  1750. package/docs/content/locales/ja-JP/what-is-agent-native.md +4 -4
  1751. package/docs/content/locales/ja-JP/workspace-connections.md +8 -8
  1752. package/docs/content/locales/ja-JP/workspace-management.md +5 -5
  1753. package/docs/content/locales/ja-JP/workspace.md +23 -23
  1754. package/docs/content/locales/ja-JP/writing-agent-instructions.md +18 -18
  1755. package/docs/content/locales/ko-KR/a2a-protocol.md +7 -7
  1756. package/docs/content/locales/ko-KR/actions.md +3 -3
  1757. package/docs/content/locales/ko-KR/agent-mentions.md +3 -3
  1758. package/docs/content/locales/ko-KR/agent-surfaces.md +15 -15
  1759. package/docs/content/locales/ko-KR/agent-teams.md +3 -3
  1760. package/docs/content/locales/ko-KR/agent-web-surfaces.md +5 -5
  1761. package/docs/content/locales/ko-KR/authentication.md +13 -13
  1762. package/docs/content/locales/ko-KR/automations.md +8 -8
  1763. package/docs/content/locales/ko-KR/blueprint-installer.md +2 -2
  1764. package/docs/content/locales/ko-KR/client.md +1 -1
  1765. package/docs/content/locales/ko-KR/cloneable-saas.md +2 -2
  1766. package/docs/content/locales/ko-KR/code-agents-ui.md +4 -4
  1767. package/docs/content/locales/ko-KR/components.md +5 -5
  1768. package/docs/content/locales/ko-KR/context-awareness.md +8 -8
  1769. package/docs/content/locales/ko-KR/creating-templates.md +12 -12
  1770. package/docs/content/locales/ko-KR/cross-app-sso.md +3 -3
  1771. package/docs/content/locales/ko-KR/database.md +7 -7
  1772. package/docs/content/locales/ko-KR/deployment.md +4 -4
  1773. package/docs/content/locales/ko-KR/dispatch.md +4 -4
  1774. package/docs/content/locales/ko-KR/drop-in-agent.md +8 -8
  1775. package/docs/content/locales/ko-KR/durable-resume.md +1 -1
  1776. package/docs/content/locales/ko-KR/embedding-sdk.md +2 -2
  1777. package/docs/content/locales/ko-KR/evals.md +2 -2
  1778. package/docs/content/locales/ko-KR/extensions.md +2 -2
  1779. package/docs/content/locales/ko-KR/external-agents.md +5 -5
  1780. package/docs/content/locales/ko-KR/faq.md +3 -3
  1781. package/docs/content/locales/ko-KR/file-uploads.md +4 -4
  1782. package/docs/content/locales/ko-KR/frames.md +1 -1
  1783. package/docs/content/locales/ko-KR/getting-started.md +13 -13
  1784. package/docs/content/locales/ko-KR/harness-agents.md +3 -3
  1785. package/docs/content/locales/ko-KR/human-approval.md +3 -3
  1786. package/docs/content/locales/ko-KR/key-concepts.md +14 -14
  1787. package/docs/content/locales/ko-KR/local-file-mode.md +5 -5
  1788. package/docs/content/locales/ko-KR/mcp-apps.md +4 -4
  1789. package/docs/content/locales/ko-KR/mcp-clients.md +8 -8
  1790. package/docs/content/locales/ko-KR/mcp-protocol.md +3 -3
  1791. package/docs/content/locales/ko-KR/messaging.md +6 -6
  1792. package/docs/content/locales/ko-KR/migration-workbench.md +1 -1
  1793. package/docs/content/locales/ko-KR/multi-app-workspace.md +1 -1
  1794. package/docs/content/locales/ko-KR/multi-tenancy.md +1 -1
  1795. package/docs/content/locales/ko-KR/native-chat-ui.md +3 -3
  1796. package/docs/content/locales/ko-KR/notifications.md +3 -3
  1797. package/docs/content/locales/ko-KR/observability.md +2 -2
  1798. package/docs/content/locales/ko-KR/observational-memory.md +2 -2
  1799. package/docs/content/locales/ko-KR/onboarding.md +8 -8
  1800. package/docs/content/locales/ko-KR/plan-plugin.md +3 -3
  1801. package/docs/content/locales/ko-KR/pr-visual-recap.md +11 -11
  1802. package/docs/content/locales/ko-KR/processors.md +1 -1
  1803. package/docs/content/locales/ko-KR/progress.md +2 -2
  1804. package/docs/content/locales/ko-KR/pure-agent-apps.md +1 -1
  1805. package/docs/content/locales/ko-KR/real-time-collaboration.md +6 -6
  1806. package/docs/content/locales/ko-KR/recurring-jobs.md +5 -5
  1807. package/docs/content/locales/ko-KR/routing.md +1 -1
  1808. package/docs/content/locales/ko-KR/sandbox-adapters.md +2 -2
  1809. package/docs/content/locales/ko-KR/security.md +8 -8
  1810. package/docs/content/locales/ko-KR/server.md +10 -10
  1811. package/docs/content/locales/ko-KR/sharing.md +6 -6
  1812. package/docs/content/locales/ko-KR/skills-guide.md +16 -16
  1813. package/docs/content/locales/ko-KR/template-analytics.md +10 -10
  1814. package/docs/content/locales/ko-KR/template-assets.md +19 -19
  1815. package/docs/content/locales/ko-KR/template-brain.md +11 -11
  1816. package/docs/content/locales/ko-KR/template-calendar.md +9 -9
  1817. package/docs/content/locales/ko-KR/template-chat.md +3 -3
  1818. package/docs/content/locales/ko-KR/template-clips.md +14 -14
  1819. package/docs/content/locales/ko-KR/template-content.md +13 -13
  1820. package/docs/content/locales/ko-KR/template-design.md +7 -7
  1821. package/docs/content/locales/ko-KR/template-dispatch.md +11 -11
  1822. package/docs/content/locales/ko-KR/template-forms.md +9 -9
  1823. package/docs/content/locales/ko-KR/template-mail.md +6 -6
  1824. package/docs/content/locales/ko-KR/template-plan.md +3 -3
  1825. package/docs/content/locales/ko-KR/template-slides.md +8 -8
  1826. package/docs/content/locales/ko-KR/template-videos.md +5 -5
  1827. package/docs/content/locales/ko-KR/tracking.md +3 -3
  1828. package/docs/content/locales/ko-KR/using-your-agent.md +5 -5
  1829. package/docs/content/locales/ko-KR/voice-input.md +4 -4
  1830. package/docs/content/locales/ko-KR/what-is-agent-native.md +6 -6
  1831. package/docs/content/locales/ko-KR/workspace-connections.md +8 -8
  1832. package/docs/content/locales/ko-KR/workspace-management.md +4 -4
  1833. package/docs/content/locales/ko-KR/workspace.md +23 -23
  1834. package/docs/content/locales/ko-KR/writing-agent-instructions.md +18 -18
  1835. package/docs/content/locales/pt-BR/a2a-protocol.md +7 -7
  1836. package/docs/content/locales/pt-BR/actions.md +2 -2
  1837. package/docs/content/locales/pt-BR/agent-mentions.md +3 -3
  1838. package/docs/content/locales/pt-BR/agent-surfaces.md +7 -7
  1839. package/docs/content/locales/pt-BR/agent-teams.md +3 -3
  1840. package/docs/content/locales/pt-BR/agent-web-surfaces.md +5 -5
  1841. package/docs/content/locales/pt-BR/authentication.md +6 -6
  1842. package/docs/content/locales/pt-BR/automations.md +8 -8
  1843. package/docs/content/locales/pt-BR/blueprint-installer.md +2 -2
  1844. package/docs/content/locales/pt-BR/client.md +2 -2
  1845. package/docs/content/locales/pt-BR/cloneable-saas.md +2 -2
  1846. package/docs/content/locales/pt-BR/code-agents-ui.md +4 -4
  1847. package/docs/content/locales/pt-BR/components.md +5 -5
  1848. package/docs/content/locales/pt-BR/context-awareness.md +8 -8
  1849. package/docs/content/locales/pt-BR/creating-templates.md +12 -12
  1850. package/docs/content/locales/pt-BR/cross-app-sso.md +3 -3
  1851. package/docs/content/locales/pt-BR/database.md +5 -5
  1852. package/docs/content/locales/pt-BR/deployment.md +5 -5
  1853. package/docs/content/locales/pt-BR/dispatch.md +3 -3
  1854. package/docs/content/locales/pt-BR/drop-in-agent.md +9 -9
  1855. package/docs/content/locales/pt-BR/durable-resume.md +1 -1
  1856. package/docs/content/locales/pt-BR/embedding-sdk.md +2 -2
  1857. package/docs/content/locales/pt-BR/evals.md +2 -2
  1858. package/docs/content/locales/pt-BR/extensions.md +2 -2
  1859. package/docs/content/locales/pt-BR/external-agents.md +5 -5
  1860. package/docs/content/locales/pt-BR/faq.md +3 -3
  1861. package/docs/content/locales/pt-BR/file-uploads.md +4 -4
  1862. package/docs/content/locales/pt-BR/frames.md +2 -2
  1863. package/docs/content/locales/pt-BR/getting-started.md +13 -13
  1864. package/docs/content/locales/pt-BR/harness-agents.md +3 -3
  1865. package/docs/content/locales/pt-BR/human-approval.md +3 -3
  1866. package/docs/content/locales/pt-BR/key-concepts.md +15 -15
  1867. package/docs/content/locales/pt-BR/local-file-mode.md +5 -5
  1868. package/docs/content/locales/pt-BR/mcp-apps.md +4 -4
  1869. package/docs/content/locales/pt-BR/mcp-clients.md +8 -8
  1870. package/docs/content/locales/pt-BR/mcp-protocol.md +3 -3
  1871. package/docs/content/locales/pt-BR/messaging.md +4 -4
  1872. package/docs/content/locales/pt-BR/migration-workbench.md +1 -1
  1873. package/docs/content/locales/pt-BR/multi-app-workspace.md +1 -1
  1874. package/docs/content/locales/pt-BR/multi-tenancy.md +1 -1
  1875. package/docs/content/locales/pt-BR/native-chat-ui.md +3 -3
  1876. package/docs/content/locales/pt-BR/notifications.md +3 -3
  1877. package/docs/content/locales/pt-BR/observability.md +2 -2
  1878. package/docs/content/locales/pt-BR/observational-memory.md +2 -2
  1879. package/docs/content/locales/pt-BR/onboarding.md +8 -8
  1880. package/docs/content/locales/pt-BR/plan-plugin.md +3 -3
  1881. package/docs/content/locales/pt-BR/pr-visual-recap.md +11 -11
  1882. package/docs/content/locales/pt-BR/processors.md +1 -1
  1883. package/docs/content/locales/pt-BR/progress.md +2 -2
  1884. package/docs/content/locales/pt-BR/pure-agent-apps.md +1 -1
  1885. package/docs/content/locales/pt-BR/real-time-collaboration.md +6 -6
  1886. package/docs/content/locales/pt-BR/recurring-jobs.md +5 -5
  1887. package/docs/content/locales/pt-BR/routing.md +1 -1
  1888. package/docs/content/locales/pt-BR/sandbox-adapters.md +2 -2
  1889. package/docs/content/locales/pt-BR/security.md +9 -9
  1890. package/docs/content/locales/pt-BR/server.md +10 -10
  1891. package/docs/content/locales/pt-BR/sharing.md +6 -6
  1892. package/docs/content/locales/pt-BR/skills-guide.md +16 -16
  1893. package/docs/content/locales/pt-BR/template-analytics.md +10 -10
  1894. package/docs/content/locales/pt-BR/template-assets.md +20 -20
  1895. package/docs/content/locales/pt-BR/template-brain.md +11 -11
  1896. package/docs/content/locales/pt-BR/template-calendar.md +9 -9
  1897. package/docs/content/locales/pt-BR/template-chat.md +3 -3
  1898. package/docs/content/locales/pt-BR/template-clips.md +15 -15
  1899. package/docs/content/locales/pt-BR/template-content.md +13 -13
  1900. package/docs/content/locales/pt-BR/template-design.md +8 -8
  1901. package/docs/content/locales/pt-BR/template-dispatch.md +8 -8
  1902. package/docs/content/locales/pt-BR/template-forms.md +10 -10
  1903. package/docs/content/locales/pt-BR/template-mail.md +6 -6
  1904. package/docs/content/locales/pt-BR/template-plan.md +3 -3
  1905. package/docs/content/locales/pt-BR/template-slides.md +9 -9
  1906. package/docs/content/locales/pt-BR/template-videos.md +5 -5
  1907. package/docs/content/locales/pt-BR/tracking.md +3 -3
  1908. package/docs/content/locales/pt-BR/using-your-agent.md +5 -5
  1909. package/docs/content/locales/pt-BR/voice-input.md +4 -4
  1910. package/docs/content/locales/pt-BR/what-is-agent-native.md +5 -5
  1911. package/docs/content/locales/pt-BR/workspace-connections.md +8 -8
  1912. package/docs/content/locales/pt-BR/workspace-management.md +4 -4
  1913. package/docs/content/locales/pt-BR/workspace.md +23 -23
  1914. package/docs/content/locales/pt-BR/writing-agent-instructions.md +18 -18
  1915. package/docs/content/locales/zh-CN/a2a-protocol.md +7 -7
  1916. package/docs/content/locales/zh-CN/actions.md +3 -3
  1917. package/docs/content/locales/zh-CN/agent-mentions.md +3 -3
  1918. package/docs/content/locales/zh-CN/agent-surfaces.md +7 -7
  1919. package/docs/content/locales/zh-CN/agent-teams.md +3 -3
  1920. package/docs/content/locales/zh-CN/agent-web-surfaces.md +5 -5
  1921. package/docs/content/locales/zh-CN/authentication.md +13 -13
  1922. package/docs/content/locales/zh-CN/automations.md +8 -8
  1923. package/docs/content/locales/zh-CN/blueprint-installer.md +2 -2
  1924. package/docs/content/locales/zh-CN/client.md +1 -1
  1925. package/docs/content/locales/zh-CN/cloneable-saas.md +2 -2
  1926. package/docs/content/locales/zh-CN/code-agents-ui.md +4 -4
  1927. package/docs/content/locales/zh-CN/components.md +7 -7
  1928. package/docs/content/locales/zh-CN/context-awareness.md +8 -8
  1929. package/docs/content/locales/zh-CN/creating-templates.md +12 -12
  1930. package/docs/content/locales/zh-CN/cross-app-sso.md +3 -3
  1931. package/docs/content/locales/zh-CN/database.md +7 -7
  1932. package/docs/content/locales/zh-CN/deployment.md +4 -4
  1933. package/docs/content/locales/zh-CN/dispatch.md +4 -4
  1934. package/docs/content/locales/zh-CN/drop-in-agent.md +8 -8
  1935. package/docs/content/locales/zh-CN/durable-resume.md +1 -1
  1936. package/docs/content/locales/zh-CN/embedding-sdk.md +2 -2
  1937. package/docs/content/locales/zh-CN/evals.md +2 -2
  1938. package/docs/content/locales/zh-CN/extensions.md +2 -2
  1939. package/docs/content/locales/zh-CN/external-agents.md +5 -5
  1940. package/docs/content/locales/zh-CN/faq.md +3 -3
  1941. package/docs/content/locales/zh-CN/file-uploads.md +4 -4
  1942. package/docs/content/locales/zh-CN/frames.md +2 -2
  1943. package/docs/content/locales/zh-CN/getting-started.md +13 -13
  1944. package/docs/content/locales/zh-CN/harness-agents.md +3 -3
  1945. package/docs/content/locales/zh-CN/human-approval.md +3 -3
  1946. package/docs/content/locales/zh-CN/key-concepts.md +14 -14
  1947. package/docs/content/locales/zh-CN/local-file-mode.md +5 -5
  1948. package/docs/content/locales/zh-CN/mcp-apps.md +4 -4
  1949. package/docs/content/locales/zh-CN/mcp-clients.md +7 -7
  1950. package/docs/content/locales/zh-CN/mcp-protocol.md +3 -3
  1951. package/docs/content/locales/zh-CN/messaging.md +6 -6
  1952. package/docs/content/locales/zh-CN/migration-workbench.md +1 -1
  1953. package/docs/content/locales/zh-CN/multi-app-workspace.md +1 -1
  1954. package/docs/content/locales/zh-CN/multi-tenancy.md +1 -1
  1955. package/docs/content/locales/zh-CN/native-chat-ui.md +3 -3
  1956. package/docs/content/locales/zh-CN/notifications.md +3 -3
  1957. package/docs/content/locales/zh-CN/observability.md +2 -2
  1958. package/docs/content/locales/zh-CN/observational-memory.md +2 -2
  1959. package/docs/content/locales/zh-CN/onboarding.md +8 -8
  1960. package/docs/content/locales/zh-CN/plan-plugin.md +3 -3
  1961. package/docs/content/locales/zh-CN/pr-visual-recap.md +11 -11
  1962. package/docs/content/locales/zh-CN/processors.md +1 -1
  1963. package/docs/content/locales/zh-CN/progress.md +2 -2
  1964. package/docs/content/locales/zh-CN/pure-agent-apps.md +1 -1
  1965. package/docs/content/locales/zh-CN/real-time-collaboration.md +6 -6
  1966. package/docs/content/locales/zh-CN/recurring-jobs.md +5 -5
  1967. package/docs/content/locales/zh-CN/routing.md +1 -1
  1968. package/docs/content/locales/zh-CN/sandbox-adapters.md +2 -2
  1969. package/docs/content/locales/zh-CN/security.md +8 -8
  1970. package/docs/content/locales/zh-CN/server.md +10 -10
  1971. package/docs/content/locales/zh-CN/sharing.md +6 -6
  1972. package/docs/content/locales/zh-CN/skills-guide.md +16 -16
  1973. package/docs/content/locales/zh-CN/template-analytics.md +10 -10
  1974. package/docs/content/locales/zh-CN/template-assets.md +20 -20
  1975. package/docs/content/locales/zh-CN/template-brain.md +11 -11
  1976. package/docs/content/locales/zh-CN/template-calendar.md +9 -9
  1977. package/docs/content/locales/zh-CN/template-chat.md +3 -3
  1978. package/docs/content/locales/zh-CN/template-clips.md +14 -14
  1979. package/docs/content/locales/zh-CN/template-content.md +13 -13
  1980. package/docs/content/locales/zh-CN/template-design.md +7 -7
  1981. package/docs/content/locales/zh-CN/template-dispatch.md +11 -11
  1982. package/docs/content/locales/zh-CN/template-forms.md +9 -9
  1983. package/docs/content/locales/zh-CN/template-mail.md +6 -6
  1984. package/docs/content/locales/zh-CN/template-plan.md +3 -3
  1985. package/docs/content/locales/zh-CN/template-slides.md +8 -8
  1986. package/docs/content/locales/zh-CN/template-videos.md +5 -5
  1987. package/docs/content/locales/zh-CN/tracking.md +3 -3
  1988. package/docs/content/locales/zh-CN/using-your-agent.md +5 -5
  1989. package/docs/content/locales/zh-CN/voice-input.md +4 -4
  1990. package/docs/content/locales/zh-CN/what-is-agent-native.md +5 -5
  1991. package/docs/content/locales/zh-CN/workspace-connections.md +8 -8
  1992. package/docs/content/locales/zh-CN/workspace-management.md +5 -5
  1993. package/docs/content/locales/zh-CN/workspace.md +23 -23
  1994. package/docs/content/locales/zh-CN/writing-agent-instructions.md +18 -18
  1995. package/package.json +1 -1
  1996. package/src/templates/default/app/i18n/ar-SA.ts +275 -274
  1997. package/src/templates/default/app/i18n/de-DE.ts +270 -260
  1998. package/src/templates/default/app/i18n/es-ES.ts +282 -270
  1999. package/src/templates/default/app/i18n/fr-FR.ts +275 -266
  2000. package/src/templates/default/app/i18n/hi-IN.ts +274 -276
  2001. package/src/templates/default/app/i18n/ja-JP.ts +280 -273
  2002. package/src/templates/default/app/i18n/ko-KR.ts +274 -274
  2003. package/src/templates/default/app/i18n/pt-BR.ts +273 -266
  2004. package/src/templates/default/app/i18n/zh-CN.ts +273 -285
@@ -1,4 +1,8 @@
1
- import { useActionMutation, useActionQuery } from "@agent-native/core/client";
1
+ import {
2
+ useActionMutation,
3
+ useActionQuery,
4
+ useT,
5
+ } from "@agent-native/core/client";
2
6
  import {
3
7
  IconAlertTriangle,
4
8
  IconArchive,
@@ -89,6 +93,7 @@ import {
89
93
 
90
94
  type Provider = "manual" | "generic" | "clips" | "slack" | "granola" | "github";
91
95
  type CaptureStatusFilter = BrainCaptureReviewStatus | "all";
96
+ type BrainT = ReturnType<typeof useT>;
92
97
 
93
98
  interface SourceFormState {
94
99
  title: string;
@@ -153,27 +158,32 @@ const providers: Array<{
153
158
  },
154
159
  ];
155
160
 
156
- function defaultTitle(provider: Provider) {
161
+ function defaultTitle(provider: Provider, t?: ReturnType<typeof useT>) {
157
162
  switch (provider) {
158
163
  case "slack":
159
- return "Slack knowledge channels";
164
+ return t?.("sources.defaultTitle.slack") ?? "Slack knowledge channels";
160
165
  case "granola":
161
- return "Granola team notes";
166
+ return t?.("sources.defaultTitle.granola") ?? "Granola team notes";
162
167
  case "github":
163
- return "GitHub product repos";
168
+ return t?.("sources.defaultTitle.github") ?? "GitHub product repos";
164
169
  case "clips":
165
- return "Clips exports";
170
+ return t?.("sources.defaultTitle.clips") ?? "Clips exports";
166
171
  case "generic":
167
- return "Generic transcript webhook";
172
+ return (
173
+ t?.("sources.defaultTitle.generic") ?? "Generic transcript webhook"
174
+ );
168
175
  case "manual":
169
176
  default:
170
- return "Manual imports";
177
+ return t?.("sources.defaultTitle.manual") ?? "Manual imports";
171
178
  }
172
179
  }
173
180
 
174
- function defaultForm(provider: Provider): SourceFormState {
181
+ function defaultForm(
182
+ provider: Provider,
183
+ t?: ReturnType<typeof useT>,
184
+ ): SourceFormState {
175
185
  return {
176
- title: defaultTitle(provider),
186
+ title: defaultTitle(provider, t),
177
187
  provider,
178
188
  channelRefs: "",
179
189
  historyLimit: "15",
@@ -308,15 +318,21 @@ function shortDate(value?: string | null) {
308
318
  });
309
319
  }
310
320
 
311
- function syncDetail(source: BrainSource) {
321
+ function syncDetail(source: BrainSource, t: BrainT) {
312
322
  const retry = sourceRetryAfter(source);
313
- if (retry) return `Retry after ${shortDate(retry) ?? retry}`;
323
+ if (retry)
324
+ return t("sources.retryAfter", { date: shortDate(retry) ?? retry });
314
325
  if (source.lastError) return source.lastError;
315
326
  if (source.latestRun?.status === "error") {
316
- return source.latestRun.error ?? "Last sync failed";
327
+ return source.latestRun.error ?? t("sources.lastSyncFailed");
317
328
  }
318
- if (source.nextSyncAt) return `Next ${shortDate(source.nextSyncAt)}`;
319
- return sourceAutoSync(source) ? "Waiting for first sync" : "Manual sync";
329
+ if (source.nextSyncAt)
330
+ return t("sources.nextSync", {
331
+ date: shortDate(source.nextSyncAt) ?? source.nextSyncAt,
332
+ });
333
+ return sourceAutoSync(source)
334
+ ? t("sources.waitingForFirstSync")
335
+ : t("sources.manualSync");
320
336
  }
321
337
 
322
338
  const captureStatusOptions: CaptureStatusFilter[] = [
@@ -327,43 +343,44 @@ const captureStatusOptions: CaptureStatusFilter[] = [
327
343
  "all",
328
344
  ];
329
345
 
330
- function captureStatusLabel(status: CaptureStatusFilter) {
346
+ function captureStatusLabel(status: CaptureStatusFilter, t: BrainT) {
331
347
  switch (status) {
332
348
  case "queued":
333
- return "Queued";
349
+ return t("sources.captureStatus.queued");
334
350
  case "distilling":
335
- return "Distilling";
351
+ return t("sources.captureStatus.distilling");
336
352
  case "distilled":
337
- return "Distilled";
353
+ return t("sources.captureStatus.distilled");
338
354
  case "ignored":
339
- return "Ignored";
355
+ return t("sources.captureStatus.ignored");
340
356
  case "all":
341
357
  default:
342
- return "All captures";
358
+ return t("sources.captureStatus.all");
343
359
  }
344
360
  }
345
361
 
346
- function queueStatusLabel(status: string) {
362
+ function queueStatusLabel(status: string, t: BrainT) {
347
363
  switch (status) {
348
364
  case "processing":
349
- return "Processing";
365
+ return t("sources.queueStatus.processing");
350
366
  case "done":
351
- return "Done";
367
+ return t("sources.queueStatus.done");
352
368
  case "failed":
353
- return "Failed";
369
+ return t("sources.queueStatus.failed");
354
370
  case "queued":
355
371
  default:
356
- return "Queued";
372
+ return t("sources.queueStatus.queued");
357
373
  }
358
374
  }
359
375
 
360
376
  function queueActionLabel(
361
377
  queue: NonNullable<CapturesResponse["captures"]>[number]["distillationQueue"],
378
+ t: BrainT,
362
379
  ) {
363
- if (!queue) return "Queue distill";
364
- if (queue.status === "failed") return "Retry distill";
365
- if (queue.status === "done") return "Distilled";
366
- return "Queued";
380
+ if (!queue) return t("sources.queueDistill");
381
+ if (queue.status === "failed") return t("sources.retryDistill");
382
+ if (queue.status === "done") return t("sources.captureStatus.distilled");
383
+ return t("sources.queueStatus.queued");
367
384
  }
368
385
 
369
386
  function captureCanQueue(capture: BrainCaptureReviewItem) {
@@ -382,23 +399,24 @@ function dispatchIntegrationsHref(providerId: string) {
382
399
  return `/dispatch/integrations?${params.toString()}`;
383
400
  }
384
401
 
385
- function grantStateLabel(state: BrainWorkspaceConnectionGrantState) {
402
+ function grantStateLabel(state: BrainWorkspaceConnectionGrantState, t: BrainT) {
386
403
  switch (state) {
387
404
  case "connected":
388
- return "Connected";
405
+ return t("sources.grantState.connected");
389
406
  case "granted":
390
- return "Granted";
407
+ return t("sources.grantState.granted");
391
408
  case "needs_grant":
392
- return "Needs grant";
409
+ return t("sources.grantState.needsGrant");
393
410
  case "not_connected":
394
411
  default:
395
- return "Not connected";
412
+ return t("sources.grantState.notConnected");
396
413
  }
397
414
  }
398
415
 
399
416
  function grantStateDetail(
400
417
  provider: BrainConnectionProvider,
401
418
  state: BrainWorkspaceConnectionGrantState,
419
+ t: BrainT,
402
420
  ) {
403
421
  const workspace = provider.workspaceConnection;
404
422
  if (workspace?.grantAvailabilityMessage) {
@@ -407,20 +425,22 @@ function grantStateDetail(
407
425
  const sourceCount = provider.configuredSourceCount.toLocaleString();
408
426
  switch (state) {
409
427
  case "connected":
410
- return `${workspace?.activeConnectionCount ?? 0} active connection${
411
- workspace?.activeConnectionCount === 1 ? "" : "s"
412
- } granted to Brain`;
428
+ return t("sources.grantDetail.connected", {
429
+ count: (workspace?.activeConnectionCount ?? 0).toLocaleString(),
430
+ });
413
431
  case "granted":
414
- return `Brain can access ${
415
- workspace?.grantedConnectionCount ?? 0
416
- } connection${workspace?.grantedConnectionCount === 1 ? "" : "s"}`;
432
+ return t("sources.grantDetail.granted", {
433
+ count: (workspace?.grantedConnectionCount ?? 0).toLocaleString(),
434
+ });
417
435
  case "needs_grant":
418
- return "Connection exists in Dispatch; grant Brain access to reuse it";
436
+ return t("sources.grantDetail.needsGrant");
419
437
  case "not_connected":
420
438
  default:
421
439
  return provider.hasConfiguredSources
422
- ? `${sourceCount} source${sourceCount === "1" ? "" : "s"} configured with scoped credentials`
423
- : "No shared workspace connection yet";
440
+ ? t("sources.grantDetail.configuredSources", {
441
+ count: sourceCount,
442
+ })
443
+ : t("sources.grantDetail.noSharedConnection");
424
444
  }
425
445
  }
426
446
 
@@ -448,20 +468,20 @@ function readinessToneClass(tone: ReadinessTone) {
448
468
  }
449
469
  }
450
470
 
451
- function providerHealthLabel(provider: BrainConnectionProvider) {
471
+ function providerHealthLabel(provider: BrainConnectionProvider, t: BrainT) {
452
472
  switch (provider.providerHealth?.status) {
453
473
  case "ready":
454
- return "Ready";
474
+ return t("sources.providerHealth.ready");
455
475
  case "needs_grant":
456
- return "Grant needed";
476
+ return t("sources.providerHealth.grantNeeded");
457
477
  case "unhealthy":
458
- return "Needs repair";
478
+ return t("sources.providerHealth.needsRepair");
459
479
  case "missing_credentials":
460
- return "Missing keys";
480
+ return t("sources.providerHealth.missingKeys");
461
481
  case "unsupported":
462
- return "Metadata only";
482
+ return t("sources.providerHealth.metadataOnly");
463
483
  default:
464
- return "Unknown";
484
+ return t("sources.providerHealth.unknown");
465
485
  }
466
486
  }
467
487
 
@@ -498,17 +518,20 @@ type BrainWorkspaceSummaryConnection = NonNullable<
498
518
  BrainConnectionProvider["workspaceConnection"]
499
519
  >["connections"][number];
500
520
 
501
- function appAccessLabel(access: BrainWorkspaceSummaryConnection["appAccess"]) {
521
+ function appAccessLabel(
522
+ access: BrainWorkspaceSummaryConnection["appAccess"],
523
+ t: BrainT,
524
+ ) {
502
525
  switch (access?.mode) {
503
526
  case "all-apps":
504
- return "All apps";
527
+ return t("sources.appAccess.allApps");
505
528
  case "allowed-app":
506
- return "Brain allow-list";
529
+ return t("sources.appAccess.brainAllowList");
507
530
  case "explicit-grant":
508
- return "Brain grant";
531
+ return t("sources.appAccess.brainGrant");
509
532
  case "unavailable":
510
533
  default:
511
- return "Needs Brain grant";
534
+ return t("sources.appAccess.needsBrainGrant");
512
535
  }
513
536
  }
514
537
 
@@ -518,19 +541,22 @@ function appAccessClass(access: BrainWorkspaceSummaryConnection["appAccess"]) {
518
541
  : grantStateClass("needs_grant");
519
542
  }
520
543
 
521
- function workspaceStatusLabel(status: BrainWorkspaceConnectionStatus) {
544
+ function workspaceStatusLabel(
545
+ status: BrainWorkspaceConnectionStatus,
546
+ t: BrainT,
547
+ ) {
522
548
  switch (status) {
523
549
  case "connected":
524
- return "Connected";
550
+ return t("sources.workspaceStatus.connected");
525
551
  case "checking":
526
- return "Checking";
552
+ return t("sources.workspaceStatus.checking");
527
553
  case "needs_reauth":
528
- return "Needs reauth";
554
+ return t("sources.workspaceStatus.needsReauth");
529
555
  case "error":
530
- return "Error";
556
+ return t("sources.workspaceStatus.error");
531
557
  case "disabled":
532
558
  default:
533
- return "Disabled";
559
+ return t("sources.workspaceStatus.disabled");
534
560
  }
535
561
  }
536
562
 
@@ -629,53 +655,53 @@ function countLabel(count: number, singular: string, plural = `${singular}s`) {
629
655
 
630
656
  function sharedConnectionReadiness(
631
657
  provider: BrainConnectionProvider,
658
+ t: BrainT,
632
659
  ): ProviderReadinessItem {
633
660
  const workspace = provider.workspaceConnection;
634
661
  if (!workspace) {
635
662
  return {
636
- label: "Shared connection",
637
- value: "Checking",
638
- detail: "Workspace connection status has not loaded yet.",
663
+ label: t("sources.sharedConnection"),
664
+ value: t("sources.workspaceStatus.checking"),
665
+ detail: t("sources.readiness.workspaceNotLoaded"),
639
666
  tone: "muted",
640
667
  icon: IconCircleDashed,
641
668
  };
642
669
  }
643
670
  if (workspace.hasActiveWorkspaceConnection) {
644
671
  return {
645
- label: "Shared connection",
646
- value: "Connected",
647
- detail: `${countLabel(
648
- workspace.activeConnectionCount,
649
- "active connection",
650
- )} can provide credential refs.`,
672
+ label: t("sources.sharedConnection"),
673
+ value: t("sources.workspaceStatus.connected"),
674
+ detail: t("sources.readiness.activeConnections", {
675
+ count: workspace.activeConnectionCount.toLocaleString(),
676
+ }),
651
677
  tone: "ready",
652
678
  icon: IconCircleCheck,
653
679
  };
654
680
  }
655
681
  if (workspace.hasGrantedWorkspaceConnection) {
656
682
  return {
657
- label: "Shared connection",
658
- value: "Repair",
659
- detail: "Brain has a grant, but the provider connection needs attention.",
683
+ label: t("sources.sharedConnection"),
684
+ value: t("sources.readiness.repair"),
685
+ detail: t("sources.readiness.grantNeedsAttention"),
660
686
  tone: "attention",
661
687
  icon: IconAlertTriangle,
662
688
  };
663
689
  }
664
690
  if (workspace.hasWorkspaceConnection) {
665
691
  return {
666
- label: "Shared connection",
667
- value: "Grantable",
668
- detail: "A workspace connection exists and can be granted to Brain.",
692
+ label: t("sources.sharedConnection"),
693
+ value: t("sources.readiness.grantable"),
694
+ detail: t("sources.readiness.workspaceConnectionGrantable"),
669
695
  tone: "attention",
670
696
  icon: IconShieldCheck,
671
697
  };
672
698
  }
673
699
  return {
674
- label: "Shared connection",
675
- value: "Not connected",
700
+ label: t("sources.sharedConnection"),
701
+ value: t("sources.grantState.notConnected"),
676
702
  detail: scopedCredentialCount(provider)
677
- ? "Brain can still use scoped local credential refs."
678
- : "Add a reusable provider connection in Dispatch.",
703
+ ? t("sources.readiness.scopedLocalCredentialRefs")
704
+ : t("sources.readiness.addReusableConnection"),
679
705
  tone: "muted",
680
706
  icon: IconCircleDashed,
681
707
  };
@@ -683,36 +709,42 @@ function sharedConnectionReadiness(
683
709
 
684
710
  function appGrantReadiness(
685
711
  provider: BrainConnectionProvider,
712
+ t: BrainT,
686
713
  ): ProviderReadinessItem {
687
714
  const workspace = provider.workspaceConnection;
688
715
  const grantState = workspace?.grantState ?? "not_connected";
689
716
  if (grantState === "connected" || grantState === "granted") {
690
717
  return {
691
- label: "Brain app grant",
692
- value: grantState === "connected" ? "Granted" : "Granted, repair",
718
+ label: t("sources.brainAppGrant"),
719
+ value:
720
+ grantState === "connected"
721
+ ? t("sources.grantState.granted")
722
+ : t("sources.readiness.grantedRepair"),
693
723
  detail:
694
724
  grantState === "connected"
695
- ? "Brain can use the shared workspace connection."
696
- : "Access is granted, but the connection is not active yet.",
725
+ ? t("sources.readiness.brainCanUseSharedConnection")
726
+ : t("sources.readiness.accessGrantedConnectionInactive"),
697
727
  tone: grantState === "connected" ? "ready" : "attention",
698
728
  icon: grantStateIcon(grantState),
699
729
  };
700
730
  }
701
731
  if (grantState === "needs_grant") {
702
732
  return {
703
- label: "Brain app grant",
704
- value: "Needed",
705
- detail: "Grant the existing provider connection to the Brain app.",
733
+ label: t("sources.brainAppGrant"),
734
+ value: t("sources.readiness.needed"),
735
+ detail: t("sources.readiness.grantExistingConnection"),
706
736
  tone: "attention",
707
737
  icon: IconAlertTriangle,
708
738
  };
709
739
  }
710
740
  return {
711
- label: "Brain app grant",
712
- value: scopedCredentialCount(provider) ? "Not needed" : "No grant",
741
+ label: t("sources.brainAppGrant"),
742
+ value: scopedCredentialCount(provider)
743
+ ? t("sources.readiness.notNeeded")
744
+ : t("sources.readiness.noGrant"),
713
745
  detail: scopedCredentialCount(provider)
714
- ? "Scoped Brain credentials are already available."
715
- : "A grant appears after a workspace provider connection exists.",
746
+ ? t("sources.readiness.scopedCredentialsAvailable")
747
+ : t("sources.readiness.grantAppearsAfterConnection"),
716
748
  tone: "muted",
717
749
  icon: IconCircleDashed,
718
750
  };
@@ -720,22 +752,23 @@ function appGrantReadiness(
720
752
 
721
753
  function credentialPathReadiness(
722
754
  provider: BrainConnectionProvider,
755
+ t: BrainT,
723
756
  ): ProviderReadinessItem {
724
757
  const health = provider.credentialHealth;
725
758
  if (!health) {
726
759
  return {
727
- label: "Credential path",
728
- value: "Checking",
729
- detail: "Credential availability has not loaded yet.",
760
+ label: t("sources.credentialPath"),
761
+ value: t("sources.workspaceStatus.checking"),
762
+ detail: t("sources.readiness.credentialNotLoaded"),
730
763
  tone: "muted",
731
764
  icon: IconCircleDashed,
732
765
  };
733
766
  }
734
767
  if (health.status === "not_required") {
735
768
  return {
736
- label: "Credential path",
737
- value: "Not required",
738
- detail: "This provider does not require a credential key.",
769
+ label: t("sources.credentialPath"),
770
+ value: t("sources.notRequired"),
771
+ detail: t("sources.readiness.noCredentialKeyRequired"),
739
772
  tone: "ready",
740
773
  icon: IconCircleCheck,
741
774
  };
@@ -744,46 +777,46 @@ function credentialPathReadiness(
744
777
  const available = availableCredentialDetails(provider)[0];
745
778
  if (available?.provenance?.source === "workspace_connection") {
746
779
  return {
747
- label: "Credential path",
748
- value: "Shared",
749
- detail: "Using workspace credential refs; values stay hidden.",
780
+ label: t("sources.credentialPath"),
781
+ value: t("sources.readiness.shared"),
782
+ detail: t("sources.readiness.usingWorkspaceCredentialRefs"),
750
783
  tone: "ready",
751
784
  icon: IconShieldCheck,
752
785
  };
753
786
  }
754
787
  if (available?.provenance?.source === "brain_local") {
755
788
  return {
756
- label: "Credential path",
757
- value: "Brain-local",
758
- detail: "Scoped Brain credential refs are configured.",
789
+ label: t("sources.credentialPath"),
790
+ value: t("sources.readiness.brainLocal"),
791
+ detail: t("sources.readiness.scopedCredentialRefsConfigured"),
759
792
  tone: "ready",
760
793
  icon: IconShieldCheck,
761
794
  };
762
795
  }
763
796
  if (available?.provenance?.source === "registered_secret") {
764
797
  return {
765
- label: "Credential path",
766
- value: "Vault",
767
- detail: "A registered credential ref is available in the vault.",
798
+ label: t("sources.credentialPath"),
799
+ value: t("sources.readiness.vault"),
800
+ detail: t("sources.readiness.registeredCredentialRefAvailable"),
768
801
  tone: "ready",
769
802
  icon: IconShieldCheck,
770
803
  };
771
804
  }
772
805
  if (health.available) {
773
806
  return {
774
- label: "Credential path",
775
- value: "Available",
776
- detail: "Required credential refs are available without exposing values.",
807
+ label: t("sources.credentialPath"),
808
+ value: t("sources.readiness.available"),
809
+ detail: t("sources.readiness.requiredCredentialRefsAvailable"),
777
810
  tone: "ready",
778
811
  icon: IconShieldCheck,
779
812
  };
780
813
  }
781
814
  return {
782
- label: "Credential path",
783
- value: "Missing",
815
+ label: t("sources.credentialPath"),
816
+ value: t("sources.readiness.missing"),
784
817
  detail:
785
818
  health.missingMessages[0] ??
786
- "Add a shared provider connection or scoped Brain credential.",
819
+ t("sources.readiness.addSharedOrScopedCredential"),
787
820
  tone: "danger",
788
821
  icon: IconAlertTriangle,
789
822
  };
@@ -791,135 +824,136 @@ function credentialPathReadiness(
791
824
 
792
825
  function providerConnectionReadiness(
793
826
  provider: BrainConnectionProvider,
827
+ t: BrainT,
794
828
  ): ProviderReadinessItem {
795
829
  const workspace = provider.workspaceConnection;
796
830
  const health = provider.providerHealth?.status;
797
831
  if (!provider.sourceProviderSupported) {
798
832
  return {
799
- label: "Provider connection",
800
- value: "Metadata only",
801
- detail: "Brain source setup is not implemented for this provider.",
833
+ label: t("sources.providerConnection"),
834
+ value: t("sources.providerHealth.metadataOnly"),
835
+ detail: t("sources.readiness.sourceSetupNotImplemented"),
802
836
  tone: "muted",
803
837
  icon: IconCircleDashed,
804
838
  };
805
839
  }
806
840
  if (health === "ready") {
807
841
  return {
808
- label: "Provider connection",
809
- value: "Ready",
842
+ label: t("sources.providerConnection"),
843
+ value: t("sources.providerHealth.ready"),
810
844
  detail: workspace?.hasActiveWorkspaceConnection
811
- ? "Ready through a shared workspace connection."
845
+ ? t("sources.readiness.readyThroughSharedConnection")
812
846
  : scopedCredentialCount(provider)
813
- ? "Ready through scoped Brain credential refs."
814
- : "Ready for source setup.",
847
+ ? t("sources.readiness.readyThroughScopedRefs")
848
+ : t("sources.readiness.readyForSourceSetup"),
815
849
  tone: "ready",
816
850
  icon: IconCircleCheck,
817
851
  };
818
852
  }
819
853
  if (health === "needs_grant") {
820
854
  return {
821
- label: "Provider connection",
822
- value: "Needs grant",
823
- detail: "The provider is connected, but Brain needs app access.",
855
+ label: t("sources.providerConnection"),
856
+ value: t("sources.providerHealth.grantNeeded"),
857
+ detail: t("sources.readiness.providerNeedsAppAccess"),
824
858
  tone: "attention",
825
859
  icon: IconAlertTriangle,
826
860
  };
827
861
  }
828
862
  if (health === "unhealthy") {
829
863
  return {
830
- label: "Provider connection",
831
- value: "Repair",
832
- detail: "Reauthorize or repair the shared provider connection.",
864
+ label: t("sources.providerConnection"),
865
+ value: t("sources.readiness.repair"),
866
+ detail: t("sources.readiness.reauthorizeProviderConnection"),
833
867
  tone: "attention",
834
868
  icon: IconAlertTriangle,
835
869
  };
836
870
  }
837
871
  if (health === "missing_credentials" && !workspace?.hasWorkspaceConnection) {
838
872
  return {
839
- label: "Provider connection",
840
- value: "Connect provider",
841
- detail: "Add a shared connection or configure scoped Brain credentials.",
873
+ label: t("sources.providerConnection"),
874
+ value: t("sources.connectProvider"),
875
+ detail: t("sources.readiness.addSharedOrScopedCredential"),
842
876
  tone: "danger",
843
877
  icon: IconAlertTriangle,
844
878
  };
845
879
  }
846
880
  return {
847
- label: "Provider connection",
848
- value: providerHealthLabel(provider),
881
+ label: t("sources.providerConnection"),
882
+ value: providerHealthLabel(provider, t),
849
883
  detail:
850
884
  provider.providerHealth?.message ??
851
- "Provider readiness could not be determined.",
885
+ t("sources.readiness.providerUnknown"),
852
886
  tone: health === "missing_credentials" ? "danger" : "muted",
853
887
  icon:
854
888
  health === "missing_credentials" ? IconAlertTriangle : IconCircleDashed,
855
889
  };
856
890
  }
857
891
 
858
- function providerReadinessItems(provider: BrainConnectionProvider) {
892
+ function providerReadinessItems(provider: BrainConnectionProvider, t: BrainT) {
859
893
  return [
860
- sharedConnectionReadiness(provider),
861
- appGrantReadiness(provider),
862
- providerConnectionReadiness(provider),
863
- credentialPathReadiness(provider),
894
+ sharedConnectionReadiness(provider, t),
895
+ appGrantReadiness(provider, t),
896
+ providerConnectionReadiness(provider, t),
897
+ credentialPathReadiness(provider, t),
864
898
  ];
865
899
  }
866
900
 
867
901
  function providerReadinessCallout(
868
902
  provider: BrainConnectionProvider,
903
+ t: BrainT,
869
904
  ): ProviderReadinessItem & { title: string } {
870
905
  const workspace = provider.workspaceConnection;
871
906
  if (!provider.sourceProviderSupported) {
872
907
  return {
873
- ...providerConnectionReadiness(provider),
874
- title: "Connection metadata only",
908
+ ...providerConnectionReadiness(provider, t),
909
+ title: t("sources.connectionMetadataOnly"),
875
910
  };
876
911
  }
877
912
  if (workspace?.hasActiveWorkspaceConnection) {
878
913
  return {
879
- label: "Readiness",
880
- value: "Shared",
881
- title: "Shared workspace connection ready",
882
- detail: "Brain can reuse the provider connection without showing values.",
914
+ label: t("sources.readinessLabel"),
915
+ value: t("sources.readiness.shared"),
916
+ title: t("sources.sharedWorkspaceConnectionReady"),
917
+ detail: t("sources.readiness.reuseProviderConnection"),
883
918
  tone: "ready",
884
919
  icon: IconCircleCheck,
885
920
  };
886
921
  }
887
922
  if (workspace?.grantState === "needs_grant") {
888
923
  return {
889
- label: "Readiness",
890
- value: "Grant needed",
891
- title: "Grant Brain access",
892
- detail:
893
- "A workspace provider connection exists; approve Brain to use it.",
924
+ label: t("sources.readinessLabel"),
925
+ value: t("sources.providerHealth.grantNeeded"),
926
+ title: t("sources.grantBrainAccess"),
927
+ detail: t("sources.readiness.approveBrainAccess"),
894
928
  tone: "attention",
895
929
  icon: IconAlertTriangle,
896
930
  };
897
931
  }
898
932
  if (scopedCredentialCount(provider)) {
899
933
  return {
900
- label: "Readiness",
901
- value: "Local",
902
- title: "Scoped credentials ready",
903
- detail: "Brain has local credential refs available; values stay hidden.",
934
+ label: t("sources.readinessLabel"),
935
+ value: t("sources.readiness.local"),
936
+ title: t("sources.scopedCredentialsReady"),
937
+ detail: t("sources.readiness.localCredentialRefsAvailable"),
904
938
  tone: "ready",
905
939
  icon: IconShieldCheck,
906
940
  };
907
941
  }
908
942
  if (provider.credentialHealth?.status === "not_required") {
909
943
  return {
910
- label: "Readiness",
911
- value: "Ready",
912
- title: "No credential required",
913
- detail: "This provider can be configured without a credential key.",
944
+ label: t("sources.readinessLabel"),
945
+ value: t("sources.providerHealth.ready"),
946
+ title: t("sources.noCredentialRequired"),
947
+ detail: t("sources.readiness.providerNoCredential"),
914
948
  tone: "ready",
915
949
  icon: IconCircleCheck,
916
950
  };
917
951
  }
918
952
  return {
919
- label: "Readiness",
920
- value: "Connect",
921
- title: "Connect the provider",
922
- detail: "Add a shared provider connection or scoped Brain credential.",
953
+ label: t("sources.readinessLabel"),
954
+ value: t("sources.readiness.connect"),
955
+ title: t("sources.connectTheProvider"),
956
+ detail: t("sources.readiness.addSharedOrScopedCredential"),
923
957
  tone: "danger",
924
958
  icon: IconAlertTriangle,
925
959
  };
@@ -958,27 +992,28 @@ function provenanceLabel(
958
992
  BrainConnectionProvider["credentialHealth"]
959
993
  >["details"][number]["provenance"]
960
994
  >,
995
+ t: BrainT,
961
996
  ) {
962
997
  switch (provenance.source) {
963
998
  case "workspace_connection":
964
999
  return [
965
- provenance.connectionLabel ?? "Workspace connection",
1000
+ provenance.connectionLabel ?? t("sources.workspaceConnection"),
966
1001
  provenance.appAccessMode === "explicit-grant"
967
- ? "explicit Brain grant"
1002
+ ? t("sources.provenance.explicitBrainGrant")
968
1003
  : provenance.appAccessMode === "all-apps"
969
- ? "all apps"
1004
+ ? t("sources.appAccess.allApps")
970
1005
  : provenance.appAccessMode === "allowed-app"
971
- ? "Brain allow-list"
1006
+ ? t("sources.appAccess.brainAllowList")
972
1007
  : null,
973
1008
  ]
974
1009
  .filter(Boolean)
975
1010
  .join(" - ");
976
1011
  case "brain_local":
977
- return "Brain-local credential";
1012
+ return t("sources.provenance.brainLocalCredential");
978
1013
  case "registered_secret":
979
- return "Credential vault";
1014
+ return t("sources.provenance.credentialVault");
980
1015
  default:
981
- return "Credential source";
1016
+ return t("sources.provenance.credentialSource");
982
1017
  }
983
1018
  }
984
1019
 
@@ -993,6 +1028,7 @@ function ProviderCatalog({
993
1028
  workspaceError?: string | null;
994
1029
  onAddSource: (provider: Provider) => void;
995
1030
  }) {
1031
+ const t = useT();
996
1032
  const [expandedProviderId, setExpandedProviderId] = useState<string | null>(
997
1033
  null,
998
1034
  );
@@ -1003,17 +1039,20 @@ function ProviderCatalog({
1003
1039
  <div>
1004
1040
  <div className="flex items-center gap-2">
1005
1041
  <IconDatabaseImport className="size-4 text-muted-foreground" />
1006
- <h2 className="text-sm font-medium">Connection providers</h2>
1042
+ <h2 className="text-sm font-medium">
1043
+ {t("sources.connectionProviders")}
1044
+ </h2>
1007
1045
  </div>
1008
1046
  <p className="mt-1 max-w-2xl text-sm leading-6 text-muted-foreground">
1009
- Reuse workspace integrations, grant Brain access, or add Brain-local
1010
- sources without exposing credential values.
1047
+ {t("sources.connectionProvidersDescription")}
1011
1048
  </p>
1012
1049
  </div>
1013
1050
  <Badge variant="outline" className="w-fit max-w-full">
1014
1051
  {loading
1015
- ? "Loading"
1016
- : `${connectionProviders.length.toLocaleString()} providers`}
1052
+ ? t("sources.loading")
1053
+ : t("sources.providerCount", {
1054
+ count: connectionProviders.length.toLocaleString(),
1055
+ })}
1017
1056
  </Badge>
1018
1057
  </div>
1019
1058
 
@@ -1021,7 +1060,7 @@ function ProviderCatalog({
1021
1060
  <div className="rounded-md border border-border bg-card p-4 text-sm text-muted-foreground">
1022
1061
  <div className="flex items-center gap-2">
1023
1062
  <IconLoader2 className="size-4 animate-spin" />
1024
- Loading provider catalog...
1063
+ {t("sources.loadingProviderCatalog")}
1025
1064
  </div>
1026
1065
  </div>
1027
1066
  ) : connectionProviders.length ? (
@@ -1049,9 +1088,9 @@ function ProviderCatalog({
1049
1088
  ? sourceProviderIcon(sourceProvider)
1050
1089
  : IconDatabaseImport;
1051
1090
  const expanded = expandedProviderId === provider.id;
1052
- const readinessCallout = providerReadinessCallout(provider);
1091
+ const readinessCallout = providerReadinessCallout(provider, t);
1053
1092
  const ReadinessIcon = readinessCallout.icon;
1054
- const readinessItems = providerReadinessItems(provider);
1093
+ const readinessItems = providerReadinessItems(provider, t);
1055
1094
  return (
1056
1095
  <div
1057
1096
  key={provider.id}
@@ -1067,7 +1106,7 @@ function ProviderCatalog({
1067
1106
  <p className="mt-1 text-xs text-muted-foreground">
1068
1107
  {provider.hasConfiguredSources
1069
1108
  ? `${provider.configuredSourceCount.toLocaleString()} configured`
1070
- : "No Brain sources yet"}
1109
+ : t("sources.noBrainSourcesYet")}
1071
1110
  </p>
1072
1111
  </div>
1073
1112
  </div>
@@ -1076,19 +1115,19 @@ function ProviderCatalog({
1076
1115
  className={`${grantStateClass(grantState)} w-fit max-w-full`}
1077
1116
  >
1078
1117
  <GrantIcon className="me-1 size-3" />
1079
- {grantStateLabel(grantState)}
1118
+ {grantStateLabel(grantState, t)}
1080
1119
  </Badge>
1081
1120
  <Badge
1082
1121
  variant="outline"
1083
1122
  className={`${providerHealthClass(provider)} w-fit max-w-full`}
1084
1123
  >
1085
- {providerHealthLabel(provider)}
1124
+ {providerHealthLabel(provider, t)}
1086
1125
  </Badge>
1087
1126
  </div>
1088
1127
 
1089
1128
  <p className="text-xs leading-5 text-muted-foreground">
1090
1129
  {provider.providerHealth?.message ??
1091
- grantStateDetail(provider, grantState)}
1130
+ grantStateDetail(provider, grantState, t)}
1092
1131
  </p>
1093
1132
 
1094
1133
  <div className="rounded-md border border-border bg-muted/25 p-3">
@@ -1131,10 +1170,10 @@ function ProviderCatalog({
1131
1170
  <div className="grid gap-2">
1132
1171
  <div className="flex items-center justify-between gap-2">
1133
1172
  <p className="text-xs font-medium uppercase tracking-wide text-muted-foreground">
1134
- Connection readiness
1173
+ {t("sources.connectionReadiness")}
1135
1174
  </p>
1136
1175
  <span className="truncate text-xs text-muted-foreground">
1137
- Values hidden
1176
+ {t("sources.valuesHidden")}
1138
1177
  </span>
1139
1178
  </div>
1140
1179
  <div className="grid gap-2 sm:grid-cols-2">
@@ -1149,8 +1188,8 @@ function ProviderCatalog({
1149
1188
  <div>
1150
1189
  <p className="text-xs font-medium uppercase tracking-wide text-muted-foreground">
1151
1190
  {credentialRefs.length
1152
- ? "Credential refs"
1153
- : "Catalog keys"}
1191
+ ? t("sources.credentialRefs")
1192
+ : t("sources.catalogKeys")}
1154
1193
  </p>
1155
1194
  <div className="mt-2 flex flex-wrap gap-1.5">
1156
1195
  {credentialBadges.length ? (
@@ -1161,7 +1200,7 @@ function ProviderCatalog({
1161
1200
  ))
1162
1201
  ) : (
1163
1202
  <span className="text-xs text-muted-foreground">
1164
- No credential keys required
1203
+ {t("sources.noCredentialKeysRequired")}
1165
1204
  </span>
1166
1205
  )}
1167
1206
  </div>
@@ -1175,23 +1214,12 @@ function ProviderCatalog({
1175
1214
  <div className="grid gap-2 rounded-md border border-border bg-card p-3">
1176
1215
  <div className="flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground">
1177
1216
  <IconBrandSlack className="size-4" />
1178
- Slack setup guide
1217
+ {t("sources.slackSetupGuide")}
1179
1218
  </div>
1180
1219
  <div className="grid gap-1 text-xs leading-5 text-muted-foreground">
1181
- <p>
1182
- Allow-list approved channel IDs such as C0123456789,
1183
- or channel names like #product when name resolution
1184
- is acceptable.
1185
- </p>
1186
- <p>
1187
- Minimum scopes are channels:read and
1188
- channels:history. Add groups:read and groups:history
1189
- for private channels.
1190
- </p>
1191
- <p>
1192
- Invite the Slack app to private channels before
1193
- syncing. DMs and MPIMs stay excluded.
1194
- </p>
1220
+ <p>{t("sources.slackSetupAllowList")}</p>
1221
+ <p>{t("sources.slackSetupScopes")}</p>
1222
+ <p>{t("sources.slackSetupPrivateChannels")}</p>
1195
1223
  </div>
1196
1224
  </div>
1197
1225
  ) : null}
@@ -1204,7 +1232,7 @@ function ProviderCatalog({
1204
1232
  {credential.required ? (
1205
1233
  <span className="text-muted-foreground">
1206
1234
  {" "}
1207
- required
1235
+ {t("sources.required")}
1208
1236
  </span>
1209
1237
  ) : null}
1210
1238
  </p>
@@ -1220,7 +1248,7 @@ function ProviderCatalog({
1220
1248
  {provider.credentialHealth?.details.length ? (
1221
1249
  <div className="grid gap-2">
1222
1250
  <p className="text-xs font-medium uppercase tracking-wide text-muted-foreground">
1223
- Credential provenance
1251
+ {t("sources.credentialProvenance")}
1224
1252
  </p>
1225
1253
  {provider.credentialHealth.details.map((detail) => (
1226
1254
  <div
@@ -1237,12 +1265,14 @@ function ProviderCatalog({
1237
1265
  : readinessToneClass("danger")
1238
1266
  }
1239
1267
  >
1240
- {detail.available ? "Available" : "Missing"}
1268
+ {detail.available
1269
+ ? t("sources.readiness.available")
1270
+ : t("sources.readiness.missing")}
1241
1271
  </Badge>
1242
1272
  </div>
1243
1273
  <p className="mt-1 text-xs leading-5 text-muted-foreground">
1244
1274
  {detail.provenance
1245
- ? provenanceLabel(detail.provenance)
1275
+ ? provenanceLabel(detail.provenance, t)
1246
1276
  : detail.missingMessage}
1247
1277
  </p>
1248
1278
  </div>
@@ -1252,7 +1282,7 @@ function ProviderCatalog({
1252
1282
  {workspace?.connections.length ? (
1253
1283
  <div className="grid gap-2">
1254
1284
  <p className="text-xs font-medium uppercase tracking-wide text-muted-foreground">
1255
- Workspace connections
1285
+ {t("sources.workspaceConnections")}
1256
1286
  </p>
1257
1287
  {workspace.connections.map((connection) => {
1258
1288
  const refs = [
@@ -1282,7 +1312,7 @@ function ProviderCatalog({
1282
1312
  connection.status,
1283
1313
  )}
1284
1314
  >
1285
- {workspaceStatusLabel(connection.status)}
1315
+ {workspaceStatusLabel(connection.status, t)}
1286
1316
  </Badge>
1287
1317
  <Badge
1288
1318
  variant="outline"
@@ -1290,7 +1320,7 @@ function ProviderCatalog({
1290
1320
  connection.appAccess,
1291
1321
  )}
1292
1322
  >
1293
- {appAccessLabel(connection.appAccess)}
1323
+ {appAccessLabel(connection.appAccess, t)}
1294
1324
  </Badge>
1295
1325
  </div>
1296
1326
  </div>
@@ -1307,7 +1337,7 @@ function ProviderCatalog({
1307
1337
  </div>
1308
1338
  ) : (
1309
1339
  <p className="text-xs text-muted-foreground">
1310
- No credential refs on this connection
1340
+ {t("sources.noCredentialRefs")}
1311
1341
  </p>
1312
1342
  )}
1313
1343
  {connection.lastError ? (
@@ -1321,15 +1351,12 @@ function ProviderCatalog({
1321
1351
  </div>
1322
1352
  ) : (
1323
1353
  <p className="text-xs leading-5 text-muted-foreground">
1324
- No shared workspace connection has been registered for
1325
- this provider yet.
1354
+ {t("sources.noSharedWorkspaceConnection")}
1326
1355
  </p>
1327
1356
  )}
1328
1357
  {!provider.sourceProviderSupported ? (
1329
1358
  <p className="text-xs leading-5 text-muted-foreground">
1330
- Brain can reuse this connection metadata, but source
1331
- setup for this provider has not been added to this
1332
- template yet.
1359
+ {t("sources.connectionMetadataOnlyDetail")}
1333
1360
  </p>
1334
1361
  ) : null}
1335
1362
  </div>
@@ -1347,13 +1374,13 @@ function ProviderCatalog({
1347
1374
  }
1348
1375
  >
1349
1376
  <IconSettings2 className="size-4" />
1350
- {expanded ? "Hide details" : "Details"}
1377
+ {expanded ? t("sources.hideDetails") : t("sources.details")}
1351
1378
  </Button>
1352
1379
  {grantState === "needs_grant" ? (
1353
1380
  <Button size="sm" variant="outline" asChild>
1354
1381
  <a href={dispatchIntegrationsHref(provider.id)}>
1355
1382
  <IconExternalLink className="size-4" />
1356
- Grant in Dispatch
1383
+ {t("sources.grantInDispatch")}
1357
1384
  </a>
1358
1385
  </Button>
1359
1386
  ) : null}
@@ -1364,7 +1391,7 @@ function ProviderCatalog({
1364
1391
  onClick={() => onAddSource(sourceProvider)}
1365
1392
  >
1366
1393
  <IconDatabaseImport className="size-4" />
1367
- Add source
1394
+ {t("sources.addSource")}
1368
1395
  </Button>
1369
1396
  ) : null}
1370
1397
  </div>
@@ -1374,12 +1401,12 @@ function ProviderCatalog({
1374
1401
  </div>
1375
1402
  ) : (
1376
1403
  <div className="rounded-md border border-border bg-card p-4 text-sm text-muted-foreground">
1377
- No Brain connection providers are available from the shared catalog.
1404
+ {t("sources.noConnectionProviders")}
1378
1405
  </div>
1379
1406
  )}
1380
1407
  {workspaceError ? (
1381
1408
  <div className="rounded-md border border-border bg-card p-4 text-sm text-muted-foreground">
1382
- Workspace integration status is unavailable: {workspaceError}
1409
+ {t("sources.workspaceStatusUnavailable", { error: workspaceError })}
1383
1410
  </div>
1384
1411
  ) : null}
1385
1412
  </section>
@@ -1393,6 +1420,7 @@ function BrainHealthStrip({
1393
1420
  health?: BrainHealthResponse;
1394
1421
  loading: boolean;
1395
1422
  }) {
1423
+ const t = useT();
1396
1424
  const attention =
1397
1425
  (health?.sources.needsSetup ?? 0) +
1398
1426
  (health?.sources.needsSync ?? 0) +
@@ -1407,39 +1435,47 @@ function BrainHealthStrip({
1407
1435
  <div className="min-w-0">
1408
1436
  <div className="flex flex-wrap items-center gap-2">
1409
1437
  <IconReportAnalytics className="size-4 text-muted-foreground" />
1410
- <h2 className="text-sm font-medium">Brain health</h2>
1438
+ <h2 className="text-sm font-medium">{t("sources.brainHealth")}</h2>
1411
1439
  {loading ? (
1412
1440
  <Badge variant="outline" className="gap-1.5">
1413
1441
  <IconLoader2 className="size-3 animate-spin" />
1414
- Checking
1442
+ {t("sources.workspaceStatus.checking")}
1415
1443
  </Badge>
1416
1444
  ) : null}
1417
1445
  </div>
1418
1446
  <p className="mt-1 text-sm leading-6 text-muted-foreground">
1419
- {nextStep ??
1420
- "Sources, review queue, and retrieval checks are ready for normal use."}
1447
+ {nextStep ?? t("sources.healthReady")}
1421
1448
  </p>
1422
1449
  </div>
1423
1450
  <div className="grid gap-2 sm:grid-flow-col sm:auto-cols-max">
1424
1451
  <Badge variant="outline" className="justify-center gap-1.5">
1425
1452
  <IconCircleCheck className="size-3" />
1426
- {health?.sources.healthy ?? 0}/{health?.sources.total ?? 0} healthy
1453
+ {t("sources.healthHealthy", {
1454
+ healthy: (health?.sources.healthy ?? 0).toLocaleString(),
1455
+ total: (health?.sources.total ?? 0).toLocaleString(),
1456
+ })}
1427
1457
  </Badge>
1428
1458
  {attention ? (
1429
1459
  <Badge variant="outline" className="justify-center gap-1.5">
1430
1460
  <IconAlertTriangle className="size-3" />
1431
- {attention} attention
1461
+ {t("sources.healthAttention", {
1462
+ count: attention.toLocaleString(),
1463
+ })}
1432
1464
  </Badge>
1433
1465
  ) : null}
1434
1466
  <Badge variant="outline" className="justify-center gap-1.5">
1435
1467
  <IconClock className="size-3" />
1436
1468
  {health?.sources.lastSyncedAt
1437
- ? `Last sync ${shortDate(health.sources.lastSyncedAt)}`
1438
- : "No sync yet"}
1469
+ ? t("sources.lastSyncWithDate", {
1470
+ date: shortDate(health.sources.lastSyncedAt),
1471
+ })
1472
+ : t("sources.noSyncYet")}
1439
1473
  </Badge>
1440
1474
  {lastEval ? (
1441
1475
  <Badge variant="outline" className="justify-center gap-1.5">
1442
- Eval {Math.round(lastEval.score * 100)}%
1476
+ {t("sources.evalScore", {
1477
+ score: Math.round(lastEval.score * 100).toLocaleString(),
1478
+ })}
1443
1479
  </Badge>
1444
1480
  ) : null}
1445
1481
  </div>
@@ -1472,6 +1508,7 @@ function SourceListItem({
1472
1508
  onSync: () => void;
1473
1509
  onTune: () => void;
1474
1510
  }) {
1511
+ const t = useT();
1475
1512
  const Icon = sourceProviderIcon(source.provider);
1476
1513
  const retry = sourceRetryAfter(source);
1477
1514
  const hasSyncNotice = Boolean(
@@ -1504,7 +1541,7 @@ function SourceListItem({
1504
1541
  </Badge>
1505
1542
  {nextSync ? (
1506
1543
  <span className="text-xs text-muted-foreground">
1507
- Next sync {nextSync}
1544
+ {t("sources.nextSync", { date: nextSync })}
1508
1545
  </span>
1509
1546
  ) : null}
1510
1547
  </div>
@@ -1522,20 +1559,22 @@ function SourceListItem({
1522
1559
  }
1523
1560
  >
1524
1561
  <SourceFact
1525
- label="Captures"
1562
+ label={t("sources.captures")}
1526
1563
  value={(source.recordCount ?? 0).toLocaleString()}
1527
1564
  />
1528
1565
  <SourceFact
1529
- label="Last sync"
1530
- value={shortDate(sourceLastSync(source)) ?? "Never"}
1566
+ label={t("sources.lastSync")}
1567
+ value={shortDate(sourceLastSync(source)) ?? t("sources.never")}
1531
1568
  />
1532
- {coverage ? <SourceFact label="Coverage" value={coverage} /> : null}
1569
+ {coverage ? (
1570
+ <SourceFact label={t("sources.coverage")} value={coverage} />
1571
+ ) : null}
1533
1572
  </div>
1534
1573
 
1535
1574
  <div className="flex items-center justify-end gap-2">
1536
1575
  <Button size="sm" variant="outline" onClick={onReview}>
1537
1576
  <IconFileSearch className="size-4" />
1538
- Captures
1577
+ {t("sources.captures")}
1539
1578
  </Button>
1540
1579
  <DropdownMenu>
1541
1580
  <DropdownMenuTrigger asChild>
@@ -1543,7 +1582,9 @@ function SourceListItem({
1543
1582
  size="icon"
1544
1583
  variant="ghost"
1545
1584
  className="size-9"
1546
- aria-label={`More actions for ${sourceName(source)}`}
1585
+ aria-label={t("sources.moreActionsFor", {
1586
+ source: sourceName(source),
1587
+ })}
1547
1588
  >
1548
1589
  <IconDotsVertical className="size-4" />
1549
1590
  </Button>
@@ -1551,11 +1592,11 @@ function SourceListItem({
1551
1592
  <DropdownMenuContent align="end" className="w-40">
1552
1593
  <DropdownMenuItem disabled={syncPending} onSelect={onSync}>
1553
1594
  <IconRefresh className="size-4" />
1554
- Sync now
1595
+ {t("sources.syncNow")}
1555
1596
  </DropdownMenuItem>
1556
1597
  <DropdownMenuItem onSelect={onTune}>
1557
1598
  <IconSettings2 className="size-4" />
1558
- Tune source
1599
+ {t("sources.tuneSource")}
1559
1600
  </DropdownMenuItem>
1560
1601
  </DropdownMenuContent>
1561
1602
  </DropdownMenu>
@@ -1573,7 +1614,7 @@ function SourceListItem({
1573
1614
  <div className="mt-3 flex gap-2 rounded-md border border-border bg-muted/25 px-3 py-2 text-sm">
1574
1615
  <IconAlertTriangle className="mt-0.5 size-4 shrink-0 text-muted-foreground" />
1575
1616
  <p className="min-w-0 truncate text-muted-foreground">
1576
- {syncDetail(source)}
1617
+ {syncDetail(source, t)}
1577
1618
  </p>
1578
1619
  </div>
1579
1620
  ) : null}
@@ -1583,6 +1624,7 @@ function SourceListItem({
1583
1624
  }
1584
1625
 
1585
1626
  export default function SourcesRoute() {
1627
+ const t = useT();
1586
1628
  const [params, setParams] = useSearchParams();
1587
1629
  const type = params.get("type") ?? "all";
1588
1630
  const [advancedOpen, setAdvancedOpen] = useState(false);
@@ -1597,7 +1639,9 @@ export default function SourcesRoute() {
1597
1639
  );
1598
1640
  const [bulkResult, setBulkResult] =
1599
1641
  useState<EnqueueCapturesDistillationResponse | null>(null);
1600
- const [form, setForm] = useState<SourceFormState>(() => defaultForm("slack"));
1642
+ const [form, setForm] = useState<SourceFormState>(() =>
1643
+ defaultForm("slack", t),
1644
+ );
1601
1645
 
1602
1646
  const sourcesQuery = useActionQuery<SourcesResponse>(
1603
1647
  "list-sources" as any,
@@ -1662,9 +1706,8 @@ export default function SourcesRoute() {
1662
1706
  { captureId: string; status: "ignored" }
1663
1707
  >("mark-capture-distilled" as any);
1664
1708
 
1665
- const sources: BrainSource[] = sourcesQuery.data?.sources ?? [];
1666
- const connectionProviders: BrainConnectionProvider[] =
1667
- connectionProvidersQuery.data?.providers ?? [];
1709
+ const sources = sourcesQuery.data?.sources ?? [];
1710
+ const connectionProviders = connectionProvidersQuery.data?.providers ?? [];
1668
1711
  const formProviderMetadata = providerMetadataForSource(
1669
1712
  connectionProviders,
1670
1713
  form.provider,
@@ -1682,7 +1725,7 @@ export default function SourcesRoute() {
1682
1725
  const selectedWorkspaceConnection = formWorkspaceConnections.find(
1683
1726
  (connection) => connection.id === form.workspaceConnectionId,
1684
1727
  );
1685
- const captures: BrainCaptureReviewItem[] = capturesQuery.data?.captures ?? [];
1728
+ const captures = capturesQuery.data?.captures ?? [];
1686
1729
  const queueableCaptures = captures.filter(captureCanQueue);
1687
1730
  const queueableCaptureIds = new Set(
1688
1731
  queueableCaptures.map((capture) => capture.id),
@@ -1738,7 +1781,7 @@ export default function SourcesRoute() {
1738
1781
  ? (type as Provider)
1739
1782
  : "slack");
1740
1783
  setEditingSource(null);
1741
- setForm(defaultForm(selected));
1784
+ setForm(defaultForm(selected, t));
1742
1785
  setSetupOpen(true);
1743
1786
  }
1744
1787
 
@@ -1776,14 +1819,14 @@ export default function SourcesRoute() {
1776
1819
  if (editingSource) {
1777
1820
  updateSource.mutate({
1778
1821
  id: editingSource.id,
1779
- title: form.title.trim() || defaultTitle(form.provider),
1822
+ title: form.title.trim() || defaultTitle(form.provider, t),
1780
1823
  status:
1781
1824
  form.autoSync || sourceEnabled(editingSource) ? "active" : "paused",
1782
1825
  config,
1783
1826
  });
1784
1827
  } else {
1785
1828
  createSource.mutate({
1786
- title: form.title.trim() || defaultTitle(form.provider),
1829
+ title: form.title.trim() || defaultTitle(form.provider, t),
1787
1830
  provider: form.provider,
1788
1831
  visibility: "org",
1789
1832
  config,
@@ -1827,9 +1870,9 @@ export default function SourcesRoute() {
1827
1870
  return (
1828
1871
  <div className="min-h-full bg-muted/20">
1829
1872
  <PageHeader
1830
- eyebrow="Sources"
1831
- title="Source configuration"
1832
- description="Connect approved places Brain can learn from, then sync and review them as needed."
1873
+ eyebrow={t("sources.eyebrow")}
1874
+ title={t("sources.title")}
1875
+ description={t("sources.description")}
1833
1876
  actions={
1834
1877
  <div className="grid w-full gap-2 sm:w-auto sm:grid-flow-col sm:auto-cols-max sm:justify-end">
1835
1878
  <Button
@@ -1838,7 +1881,7 @@ export default function SourcesRoute() {
1838
1881
  onClick={() => setAdvancedOpen(true)}
1839
1882
  >
1840
1883
  <IconSettings2 className="size-4" />
1841
- Advanced
1884
+ {t("sources.advanced")}
1842
1885
  </Button>
1843
1886
  <Button
1844
1887
  size="sm"
@@ -1846,7 +1889,7 @@ export default function SourcesRoute() {
1846
1889
  onClick={() => openCreate()}
1847
1890
  >
1848
1891
  <IconDatabaseImport className="size-4" />
1849
- Add source
1892
+ {t("sources.addSource")}
1850
1893
  </Button>
1851
1894
  </div>
1852
1895
  }
@@ -1871,8 +1914,8 @@ export default function SourcesRoute() {
1871
1914
  ) : (
1872
1915
  <div>
1873
1916
  <EmptyActionState
1874
- title="Connect Brain's first source"
1875
- detail="Add an approved Slack channel, Granola Team-space source, GitHub repo, Clips export, manual import, or signed webhook."
1917
+ title={t("sources.emptyTitle")}
1918
+ detail={t("sources.emptyDetail")}
1876
1919
  />
1877
1920
  </div>
1878
1921
  )}
@@ -1886,8 +1929,8 @@ export default function SourcesRoute() {
1886
1929
  enqueueCapturesDistillation.isError ? (
1887
1930
  <div>
1888
1931
  <EmptyActionState
1889
- title="Source action failed"
1890
- detail="Check source credentials, channel allow-lists, and the latest sync error."
1932
+ title={t("sources.actionFailedTitle")}
1933
+ detail={t("sources.actionFailedDetail")}
1891
1934
  />
1892
1935
  </div>
1893
1936
  ) : null}
@@ -1896,10 +1939,9 @@ export default function SourcesRoute() {
1896
1939
  <Sheet open={advancedOpen} onOpenChange={setAdvancedOpen}>
1897
1940
  <SheetContent className="w-full overflow-y-auto sm:max-w-3xl">
1898
1941
  <SheetHeader>
1899
- <SheetTitle>Advanced source controls</SheetTitle>
1942
+ <SheetTitle>{t("sources.advancedTitle")}</SheetTitle>
1900
1943
  <SheetDescription>
1901
- Filter sources, check connection readiness, and run maintenance
1902
- syncs when the normal source list is not enough.
1944
+ {t("sources.advancedDescription")}
1903
1945
  </SheetDescription>
1904
1946
  </SheetHeader>
1905
1947
 
@@ -1907,15 +1949,19 @@ export default function SourcesRoute() {
1907
1949
  <section className="grid gap-3 rounded-md border border-border bg-card p-4">
1908
1950
  <div className="grid gap-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-end">
1909
1951
  <div className="grid gap-2">
1910
- <Label htmlFor="source-type-filter">Source type</Label>
1952
+ <Label htmlFor="source-type-filter">
1953
+ {t("sources.sourceType")}
1954
+ </Label>
1911
1955
  <Select value={type} onValueChange={updateType}>
1912
1956
  <SelectTrigger id="source-type-filter">
1913
- <SelectValue placeholder="Source type" />
1957
+ <SelectValue placeholder={t("sources.sourceType")} />
1914
1958
  </SelectTrigger>
1915
1959
  <SelectContent>
1916
1960
  {sourceTypes.map((sourceType) => (
1917
1961
  <SelectItem key={sourceType} value={sourceType}>
1918
- {sourceType === "all" ? "All sources" : sourceType}
1962
+ {sourceType === "all"
1963
+ ? t("sources.allSources")
1964
+ : sourceType}
1919
1965
  </SelectItem>
1920
1966
  ))}
1921
1967
  </SelectContent>
@@ -1928,7 +1974,7 @@ export default function SourcesRoute() {
1928
1974
  onClick={() => syncDueSources.mutate({ limit: 5 })}
1929
1975
  >
1930
1976
  <IconPlayerPlay className="size-4" />
1931
- Run due syncs
1977
+ {t("sources.runDueSyncs")}
1932
1978
  </Button>
1933
1979
  </div>
1934
1980
  </section>
@@ -1962,18 +2008,22 @@ export default function SourcesRoute() {
1962
2008
  >
1963
2009
  <SheetContent className="w-full overflow-y-auto sm:max-w-2xl">
1964
2010
  <SheetHeader>
1965
- <SheetTitle>Review raw captures</SheetTitle>
2011
+ <SheetTitle>{t("sources.reviewRawCaptures")}</SheetTitle>
1966
2012
  <SheetDescription>
1967
2013
  {reviewSource
1968
- ? `${sourceName(reviewSource)} inventory. Raw bodies stay hidden unless a reviewer enables previews.`
1969
- : "Review imported raw material before distillation."}
2014
+ ? t("sources.captureInventoryDescription", {
2015
+ source: sourceName(reviewSource),
2016
+ })
2017
+ : t("sources.reviewRawCapturesDescription")}
1970
2018
  </SheetDescription>
1971
2019
  </SheetHeader>
1972
2020
 
1973
2021
  <div className="mt-6 grid gap-4">
1974
2022
  <div className="grid gap-3 rounded-md border border-border bg-muted/25 p-3 sm:grid-cols-[1fr_auto] sm:items-center">
1975
2023
  <div className="grid gap-2 sm:max-w-56">
1976
- <Label htmlFor="capture-status-filter">Status</Label>
2024
+ <Label htmlFor="capture-status-filter">
2025
+ {t("sources.status")}
2026
+ </Label>
1977
2027
  <Select
1978
2028
  value={captureStatus}
1979
2029
  onValueChange={(value) => {
@@ -1988,7 +2038,7 @@ export default function SourcesRoute() {
1988
2038
  <SelectContent>
1989
2039
  {captureStatusOptions.map((status) => (
1990
2040
  <SelectItem key={status} value={status}>
1991
- {captureStatusLabel(status)}
2041
+ {captureStatusLabel(status, t)}
1992
2042
  </SelectItem>
1993
2043
  ))}
1994
2044
  </SelectContent>
@@ -1996,9 +2046,9 @@ export default function SourcesRoute() {
1996
2046
  </div>
1997
2047
  <label className="flex items-center justify-between gap-3 text-sm">
1998
2048
  <span>
1999
- Previews
2049
+ {t("sources.previews")}
2000
2050
  <span className="block text-xs text-muted-foreground">
2001
- Show short snippets for intentional review
2051
+ {t("sources.previewsDescription")}
2002
2052
  </span>
2003
2053
  </span>
2004
2054
  <Switch
@@ -2012,10 +2062,11 @@ export default function SourcesRoute() {
2012
2062
  <div className="grid gap-3 rounded-md border border-border bg-card p-3">
2013
2063
  <div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
2014
2064
  <div>
2015
- <p className="text-sm font-medium">Batch distillation</p>
2065
+ <p className="text-sm font-medium">
2066
+ {t("sources.batchDistillation")}
2067
+ </p>
2016
2068
  <p className="mt-1 text-xs leading-5 text-muted-foreground">
2017
- Select queueable captures and hand them to the Brain
2018
- distillation worker together.
2069
+ {t("sources.batchDistillationDescription")}
2019
2070
  </p>
2020
2071
  </div>
2021
2072
  <div className="grid gap-2 sm:flex sm:flex-wrap sm:justify-end">
@@ -2026,7 +2077,9 @@ export default function SourcesRoute() {
2026
2077
  onClick={toggleAllQueueableCaptures}
2027
2078
  >
2028
2079
  <IconChecks className="size-4" />
2029
- {allQueueableSelected ? "Unselect all" : "Select all"}
2080
+ {allQueueableSelected
2081
+ ? t("sources.unselectAll")
2082
+ : t("sources.selectAll")}
2030
2083
  </Button>
2031
2084
  <Button
2032
2085
  size="sm"
@@ -2041,7 +2094,7 @@ export default function SourcesRoute() {
2041
2094
  ) : (
2042
2095
  <IconSend className="size-4 rtl:-scale-x-100" />
2043
2096
  )}
2044
- Queue selected
2097
+ {t("sources.queueSelected")}
2045
2098
  </Button>
2046
2099
  {selectedCaptureIds.size ? (
2047
2100
  <Button
@@ -2049,25 +2102,31 @@ export default function SourcesRoute() {
2049
2102
  variant="ghost"
2050
2103
  onClick={() => setSelectedCaptureIds(new Set())}
2051
2104
  >
2052
- Clear
2105
+ {t("sources.clear")}
2053
2106
  </Button>
2054
2107
  ) : null}
2055
2108
  </div>
2056
2109
  </div>
2057
2110
  <div className="flex flex-wrap gap-1.5">
2058
2111
  <Badge variant="outline">
2059
- {selectedQueueableIds.length.toLocaleString()} selected
2112
+ {t("sources.selectedCount", {
2113
+ count: selectedQueueableIds.length.toLocaleString(),
2114
+ })}
2060
2115
  </Badge>
2061
2116
  <Badge variant="outline">
2062
- {queueableCaptures.length.toLocaleString()} queueable
2117
+ {t("sources.queueableCount", {
2118
+ count: queueableCaptures.length.toLocaleString(),
2119
+ })}
2063
2120
  </Badge>
2064
2121
  {bulkResult ? (
2065
2122
  <Badge
2066
2123
  variant={bulkResult.errors ? "destructive" : "secondary"}
2067
2124
  >
2068
- {bulkResult.queued.toLocaleString()} queued,{" "}
2069
- {bulkResult.existing.toLocaleString()} existing,{" "}
2070
- {bulkResult.errors.toLocaleString()} errors
2125
+ {t("sources.bulkResult", {
2126
+ queued: bulkResult.queued.toLocaleString(),
2127
+ existing: bulkResult.existing.toLocaleString(),
2128
+ errors: bulkResult.errors.toLocaleString(),
2129
+ })}
2071
2130
  </Badge>
2072
2131
  ) : null}
2073
2132
  </div>
@@ -2078,8 +2137,8 @@ export default function SourcesRoute() {
2078
2137
  <LoadingRows rows={3} />
2079
2138
  ) : capturesQuery.isError ? (
2080
2139
  <EmptyActionState
2081
- title="Capture inventory failed"
2082
- detail="Check source access and try again."
2140
+ title={t("sources.captureInventoryFailedTitle")}
2141
+ detail={t("sources.captureInventoryFailedDetail")}
2083
2142
  />
2084
2143
  ) : (capturesQuery.data?.captures ?? []).length ? (
2085
2144
  <div className="grid gap-3">
@@ -2106,7 +2165,9 @@ export default function SourcesRoute() {
2106
2165
  className="mt-1 size-4 shrink-0 rounded border-border accent-primary disabled:cursor-not-allowed disabled:opacity-50"
2107
2166
  checked={selected}
2108
2167
  disabled={!canQueue || isMutating}
2109
- aria-label={`Select ${capture.title}`}
2168
+ aria-label={t("sources.selectCapture", {
2169
+ title: capture.title,
2170
+ })}
2110
2171
  onChange={(event) =>
2111
2172
  toggleCaptureSelection(
2112
2173
  capture.id,
@@ -2132,8 +2193,7 @@ export default function SourcesRoute() {
2132
2193
  </p>
2133
2194
  ) : (
2134
2195
  <p className="mt-2 text-xs leading-5 text-muted-foreground">
2135
- Raw content hidden. Enable previews or open the
2136
- source only when review requires context.
2196
+ {t("sources.rawContentHidden")}
2137
2197
  </p>
2138
2198
  )}
2139
2199
  {queue ? (
@@ -2146,20 +2206,20 @@ export default function SourcesRoute() {
2146
2206
  : "outline"
2147
2207
  }
2148
2208
  >
2149
- Distillation{" "}
2150
- {queueStatusLabel(queue.status)}
2209
+ {t("sources.distillation")}{" "}
2210
+ {queueStatusLabel(queue.status, t)}
2151
2211
  </Badge>
2152
2212
  {queue.attempts ? (
2153
2213
  <span>
2154
2214
  {queue.attempts}{" "}
2155
2215
  {queue.attempts === 1
2156
- ? "attempt"
2157
- : "attempts"}
2216
+ ? t("sources.attempt")
2217
+ : t("sources.attempts")}
2158
2218
  </span>
2159
2219
  ) : null}
2160
2220
  {queue.runAfter ? (
2161
2221
  <span>
2162
- Next check{" "}
2222
+ {t("sources.nextCheck")}{" "}
2163
2223
  {shortDate(queue.runAfter) ??
2164
2224
  queue.runAfter}
2165
2225
  </span>
@@ -2169,9 +2229,7 @@ export default function SourcesRoute() {
2169
2229
  <p className="mt-2">{queue.error}</p>
2170
2230
  ) : queueIsActive ? (
2171
2231
  <p className="mt-2">
2172
- Waiting for the Brain distillation worker to
2173
- write knowledge or send this capture to
2174
- review.
2232
+ {t("sources.waitingForWorker")}
2175
2233
  </p>
2176
2234
  ) : null}
2177
2235
  </div>
@@ -2189,7 +2247,7 @@ export default function SourcesRoute() {
2189
2247
  rel="noreferrer"
2190
2248
  >
2191
2249
  <IconExternalLink className="size-4" />
2192
- Source
2250
+ {t("sources.source")}
2193
2251
  </a>
2194
2252
  </Button>
2195
2253
  ) : null}
@@ -2209,7 +2267,7 @@ export default function SourcesRoute() {
2209
2267
  ) : (
2210
2268
  <IconSend className="size-4 rtl:-scale-x-100" />
2211
2269
  )}
2212
- {queueActionLabel(queue)}
2270
+ {queueActionLabel(queue, t)}
2213
2271
  </Button>
2214
2272
  <Button
2215
2273
  size="sm"
@@ -2223,7 +2281,7 @@ export default function SourcesRoute() {
2223
2281
  }
2224
2282
  >
2225
2283
  <IconArchive className="size-4" />
2226
- Ignore
2284
+ {t("sources.ignore")}
2227
2285
  </Button>
2228
2286
  </div>
2229
2287
  </div>
@@ -2232,8 +2290,8 @@ export default function SourcesRoute() {
2232
2290
  </div>
2233
2291
  ) : (
2234
2292
  <EmptyActionState
2235
- title="No captures match this view"
2236
- detail="Try another status, run a source sync, or import a transcript."
2293
+ title={t("sources.noCapturesTitle")}
2294
+ detail={t("sources.noCapturesDetail")}
2237
2295
  />
2238
2296
  )}
2239
2297
  </div>
@@ -2244,18 +2302,14 @@ export default function SourcesRoute() {
2244
2302
  <SheetContent className="w-full overflow-y-auto sm:max-w-xl">
2245
2303
  <SheetHeader>
2246
2304
  <SheetTitle>
2247
- {editingSource ? "Tune source" : "Add source"}
2305
+ {editingSource ? t("sources.tuneSource") : t("sources.addSource")}
2248
2306
  </SheetTitle>
2249
- <SheetDescription>
2250
- Configure what Brain may ingest. Credentials stay in the workspace
2251
- credential store; this form only saves allow-lists, cursors, and
2252
- review rules.
2253
- </SheetDescription>
2307
+ <SheetDescription>{t("sources.setupDescription")}</SheetDescription>
2254
2308
  </SheetHeader>
2255
2309
 
2256
2310
  <div className="mt-6 grid gap-5">
2257
2311
  <div className="grid gap-2">
2258
- <Label htmlFor="source-title">Name</Label>
2312
+ <Label htmlFor="source-title">{t("sources.name")}</Label>
2259
2313
  <Input
2260
2314
  id="source-title"
2261
2315
  value={form.title}
@@ -2264,7 +2318,7 @@ export default function SourcesRoute() {
2264
2318
  </div>
2265
2319
 
2266
2320
  <div className="grid gap-2">
2267
- <Label>Provider</Label>
2321
+ <Label>{t("sources.provider")}</Label>
2268
2322
  <Select
2269
2323
  value={form.provider}
2270
2324
  disabled={!!editingSource}
@@ -2272,8 +2326,8 @@ export default function SourcesRoute() {
2272
2326
  setForm((current) => ({
2273
2327
  ...defaultForm(provider as Provider),
2274
2328
  title:
2275
- current.title === defaultTitle(current.provider)
2276
- ? defaultTitle(provider as Provider)
2329
+ current.title === defaultTitle(current.provider, t)
2330
+ ? defaultTitle(provider as Provider, t)
2277
2331
  : current.title,
2278
2332
  workspaceConnectionId: "",
2279
2333
  }))
@@ -2295,7 +2349,7 @@ export default function SourcesRoute() {
2295
2349
  {supportsWorkspaceConnectionBinding(form.provider) && (
2296
2350
  <div className="grid gap-2">
2297
2351
  <Label htmlFor="workspace-connection">
2298
- Workspace connection
2352
+ {t("sources.workspaceConnection")}
2299
2353
  </Label>
2300
2354
  <Select
2301
2355
  value={form.workspaceConnectionId || "__automatic__"}
@@ -2313,7 +2367,7 @@ export default function SourcesRoute() {
2313
2367
  </SelectTrigger>
2314
2368
  <SelectContent>
2315
2369
  <SelectItem value="__automatic__">
2316
- Automatic credential selection
2370
+ {t("sources.automaticCredentialSelection")}
2317
2371
  </SelectItem>
2318
2372
  {formWorkspaceConnections.map((connection) => (
2319
2373
  <SelectItem key={connection.id} value={connection.id}>
@@ -2327,10 +2381,12 @@ export default function SourcesRoute() {
2327
2381
  </Select>
2328
2382
  <p className="text-xs leading-5 text-muted-foreground">
2329
2383
  {selectedWorkspaceConnection
2330
- ? `This source is bound to ${selectedWorkspaceConnection.label}; sync will not fall back to another shared connection.`
2384
+ ? t("sources.boundConnectionDescription", {
2385
+ connection: selectedWorkspaceConnection.label,
2386
+ })
2331
2387
  : formWorkspaceConnections.length
2332
- ? "Pick a granted connection to pin this source, or leave automatic to use the existing credential fallback."
2333
- : "Grant a workspace connection to Brain in Dispatch before pinning this source."}
2388
+ ? t("sources.pickGrantedConnection")
2389
+ : t("sources.grantConnectionBeforePinning")}
2334
2390
  </p>
2335
2391
  </div>
2336
2392
  )}
@@ -2340,22 +2396,17 @@ export default function SourcesRoute() {
2340
2396
  <div className="rounded-md border border-border bg-muted/25 p-3">
2341
2397
  <div className="flex items-center gap-2 text-sm font-medium">
2342
2398
  <IconShieldCheck className="size-4 text-muted-foreground" />
2343
- Slack access rules
2399
+ {t("sources.slackAccessRules")}
2344
2400
  </div>
2345
2401
  <div className="mt-2 grid gap-1 text-xs leading-5 text-muted-foreground">
2346
- <p>
2347
- Use one approved channel ID or #name per line. IDs are
2348
- safest for pilots; names are resolved before validation.
2349
- </p>
2350
- <p>
2351
- Slack access should support auth.test,
2352
- conversations.info/history, and chat.getPermalink. Add
2353
- private-channel access when piloting private channels.
2354
- </p>
2402
+ <p>{t("sources.slackAccessRuleIds")}</p>
2403
+ <p>{t("sources.slackAccessRuleScopes")}</p>
2355
2404
  </div>
2356
2405
  </div>
2357
2406
  <div className="grid gap-2">
2358
- <Label htmlFor="slack-channels">Allowed channels</Label>
2407
+ <Label htmlFor="slack-channels">
2408
+ {t("sources.allowedChannels")}
2409
+ </Label>
2359
2410
  <Textarea
2360
2411
  id="slack-channels"
2361
2412
  value={form.channelRefs}
@@ -2365,13 +2416,14 @@ export default function SourcesRoute() {
2365
2416
  placeholder={"C0123456789\n#product\n#launches"}
2366
2417
  />
2367
2418
  <p className="text-xs leading-5 text-muted-foreground">
2368
- Brain verifies the allow-list, rejects DMs/MPIMs, and never
2369
- stores credential values in source config.
2419
+ {t("sources.allowedChannelsDescription")}
2370
2420
  </p>
2371
2421
  </div>
2372
2422
  <div className="grid gap-2 sm:grid-cols-2">
2373
2423
  <div className="grid gap-2">
2374
- <Label htmlFor="history-limit">Messages per page</Label>
2424
+ <Label htmlFor="history-limit">
2425
+ {t("sources.messagesPerPage")}
2426
+ </Label>
2375
2427
  <Input
2376
2428
  id="history-limit"
2377
2429
  type="number"
@@ -2384,7 +2436,9 @@ export default function SourcesRoute() {
2384
2436
  />
2385
2437
  </div>
2386
2438
  <div className="grid gap-2">
2387
- <Label htmlFor="poll-minutes">Poll minutes</Label>
2439
+ <Label htmlFor="poll-minutes">
2440
+ {t("sources.pollMinutes")}
2441
+ </Label>
2388
2442
  <Input
2389
2443
  id="poll-minutes"
2390
2444
  type="number"
@@ -2404,7 +2458,9 @@ export default function SourcesRoute() {
2404
2458
  <div className="grid gap-4 rounded-md border border-border p-4">
2405
2459
  <div className="grid gap-2 sm:grid-cols-2">
2406
2460
  <div className="grid gap-2">
2407
- <Label htmlFor="granola-page-size">Page size</Label>
2461
+ <Label htmlFor="granola-page-size">
2462
+ {t("sources.pageSize")}
2463
+ </Label>
2408
2464
  <Input
2409
2465
  id="granola-page-size"
2410
2466
  type="number"
@@ -2417,7 +2473,9 @@ export default function SourcesRoute() {
2417
2473
  />
2418
2474
  </div>
2419
2475
  <div className="grid gap-2">
2420
- <Label htmlFor="granola-poll-minutes">Poll minutes</Label>
2476
+ <Label htmlFor="granola-poll-minutes">
2477
+ {t("sources.pollMinutes")}
2478
+ </Label>
2421
2479
  <Input
2422
2480
  id="granola-poll-minutes"
2423
2481
  type="number"
@@ -2432,7 +2490,7 @@ export default function SourcesRoute() {
2432
2490
  </div>
2433
2491
  <div className="grid gap-2">
2434
2492
  <Label htmlFor="granola-updated-after">
2435
- Initial updated-after
2493
+ {t("sources.initialUpdatedAfter")}
2436
2494
  </Label>
2437
2495
  <Input
2438
2496
  id="granola-updated-after"
@@ -2443,8 +2501,7 @@ export default function SourcesRoute() {
2443
2501
  placeholder="2026-05-01T00:00:00.000Z"
2444
2502
  />
2445
2503
  <p className="text-xs leading-5 text-muted-foreground">
2446
- Granola Enterprise API returns Team-space notes; private
2447
- notes are outside the API scope.
2504
+ {t("sources.granolaDescription")}
2448
2505
  </p>
2449
2506
  </div>
2450
2507
  </div>
@@ -2453,7 +2510,9 @@ export default function SourcesRoute() {
2453
2510
  {form.provider === "github" && (
2454
2511
  <div className="grid gap-4 rounded-md border border-border p-4">
2455
2512
  <div className="grid gap-2">
2456
- <Label htmlFor="github-repos">Approved repositories</Label>
2513
+ <Label htmlFor="github-repos">
2514
+ {t("sources.approvedRepositories")}
2515
+ </Label>
2457
2516
  <Textarea
2458
2517
  id="github-repos"
2459
2518
  value={form.githubRepos}
@@ -2463,13 +2522,12 @@ export default function SourcesRoute() {
2463
2522
  placeholder={"owner/repo\nhttps://github.com/owner/repo"}
2464
2523
  />
2465
2524
  <p className="text-xs leading-5 text-muted-foreground">
2466
- Brain imports bounded issue and pull request context from
2467
- these repositories using the workspace GitHub credential.
2525
+ {t("sources.githubRepositoriesDescription")}
2468
2526
  </p>
2469
2527
  </div>
2470
2528
  <div className="grid gap-2 sm:grid-cols-3">
2471
2529
  <div className="grid gap-2">
2472
- <Label htmlFor="github-state">State</Label>
2530
+ <Label htmlFor="github-state">{t("sources.state")}</Label>
2473
2531
  <Select
2474
2532
  value={form.githubState}
2475
2533
  onValueChange={(githubState) =>
@@ -2483,14 +2541,20 @@ export default function SourcesRoute() {
2483
2541
  <SelectValue />
2484
2542
  </SelectTrigger>
2485
2543
  <SelectContent>
2486
- <SelectItem value="all">All</SelectItem>
2487
- <SelectItem value="open">Open</SelectItem>
2488
- <SelectItem value="closed">Closed</SelectItem>
2544
+ <SelectItem value="all">{t("sources.all")}</SelectItem>
2545
+ <SelectItem value="open">
2546
+ {t("sources.open")}
2547
+ </SelectItem>
2548
+ <SelectItem value="closed">
2549
+ {t("sources.closed")}
2550
+ </SelectItem>
2489
2551
  </SelectContent>
2490
2552
  </Select>
2491
2553
  </div>
2492
2554
  <div className="grid gap-2">
2493
- <Label htmlFor="github-limit">Items per repo</Label>
2555
+ <Label htmlFor="github-limit">
2556
+ {t("sources.itemsPerRepo")}
2557
+ </Label>
2494
2558
  <Input
2495
2559
  id="github-limit"
2496
2560
  type="number"
@@ -2503,7 +2567,9 @@ export default function SourcesRoute() {
2503
2567
  />
2504
2568
  </div>
2505
2569
  <div className="grid gap-2">
2506
- <Label htmlFor="github-poll-minutes">Poll minutes</Label>
2570
+ <Label htmlFor="github-poll-minutes">
2571
+ {t("sources.pollMinutes")}
2572
+ </Label>
2507
2573
  <Input
2508
2574
  id="github-poll-minutes"
2509
2575
  type="number"
@@ -2518,7 +2584,7 @@ export default function SourcesRoute() {
2518
2584
  </div>
2519
2585
  <div className="grid gap-3 rounded-md bg-muted/25 p-3">
2520
2586
  <label className="flex items-center justify-between gap-3 text-sm">
2521
- <span>Include issues</span>
2587
+ <span>{t("sources.includeIssues")}</span>
2522
2588
  <Switch
2523
2589
  checked={form.githubIncludeIssues}
2524
2590
  onCheckedChange={(githubIncludeIssues) =>
@@ -2527,7 +2593,7 @@ export default function SourcesRoute() {
2527
2593
  />
2528
2594
  </label>
2529
2595
  <label className="flex items-center justify-between gap-3 text-sm">
2530
- <span>Include pull requests</span>
2596
+ <span>{t("sources.includePullRequests")}</span>
2531
2597
  <Switch
2532
2598
  checked={form.githubIncludePullRequests}
2533
2599
  onCheckedChange={(githubIncludePullRequests) =>
@@ -2542,7 +2608,9 @@ export default function SourcesRoute() {
2542
2608
  {(form.provider === "generic" || form.provider === "clips") && (
2543
2609
  <div className="grid gap-4 rounded-md border border-border p-4">
2544
2610
  <div className="grid gap-2">
2545
- <Label htmlFor="source-key">Webhook source key</Label>
2611
+ <Label htmlFor="source-key">
2612
+ {t("sources.webhookSourceKey")}
2613
+ </Label>
2546
2614
  <Input
2547
2615
  id="source-key"
2548
2616
  value={form.sourceKey}
@@ -2552,8 +2620,7 @@ export default function SourcesRoute() {
2552
2620
  placeholder={form.provider}
2553
2621
  />
2554
2622
  <p className="text-xs leading-5 text-muted-foreground">
2555
- New sources receive a one-time ingest token. Existing
2556
- sources keep their token unless rotated separately.
2623
+ {t("sources.webhookSourceKeyDescription")}
2557
2624
  </p>
2558
2625
  </div>
2559
2626
  </div>
@@ -2562,9 +2629,9 @@ export default function SourcesRoute() {
2562
2629
  <div className="grid gap-3 rounded-md border border-border bg-muted/25 p-4">
2563
2630
  <label className="flex items-center justify-between gap-3 text-sm">
2564
2631
  <span>
2565
- Auto-sync
2632
+ {t("sources.autoSync")}
2566
2633
  <span className="block text-xs text-muted-foreground">
2567
- Background polling uses this source when due
2634
+ {t("sources.autoSyncDescription")}
2568
2635
  </span>
2569
2636
  </span>
2570
2637
  <Switch
@@ -2574,9 +2641,9 @@ export default function SourcesRoute() {
2574
2641
  </label>
2575
2642
  <label className="flex items-center justify-between gap-3 text-sm">
2576
2643
  <span>
2577
- Review required
2644
+ {t("sources.reviewRequired")}
2578
2645
  <span className="block text-xs text-muted-foreground">
2579
- Queue extracted knowledge before approval
2646
+ {t("sources.reviewRequiredDescription")}
2580
2647
  </span>
2581
2648
  </span>
2582
2649
  <Switch
@@ -2595,7 +2662,7 @@ export default function SourcesRoute() {
2595
2662
  className="w-full sm:w-auto"
2596
2663
  onClick={() => setSetupOpen(false)}
2597
2664
  >
2598
- Cancel
2665
+ {t("sources.cancel")}
2599
2666
  </Button>
2600
2667
  <Button
2601
2668
  className="w-full sm:w-auto"
@@ -2606,7 +2673,9 @@ export default function SourcesRoute() {
2606
2673
  !form.title.trim()
2607
2674
  }
2608
2675
  >
2609
- {editingSource ? "Save source" : "Create source"}
2676
+ {editingSource
2677
+ ? t("sources.saveSource")
2678
+ : t("sources.createSource")}
2610
2679
  </Button>
2611
2680
  </SheetFooter>
2612
2681
  </SheetContent>