@agent-native/core 0.75.4 → 0.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +47 -0
  3. package/corpus/core/docs/AGENTS.md +1 -0
  4. package/corpus/core/docs/content/client.md +15 -0
  5. package/corpus/core/docs/content/internationalization.md +145 -0
  6. package/corpus/core/docs/content/locales/ar-SA/internationalization.md +102 -0
  7. package/corpus/core/docs/content/locales/de-DE/internationalization.md +102 -0
  8. package/corpus/core/docs/content/locales/es-ES/internationalization.md +102 -0
  9. package/corpus/core/docs/content/locales/fr-FR/internationalization.md +102 -0
  10. package/corpus/core/docs/content/locales/hi-IN/internationalization.md +102 -0
  11. package/corpus/core/docs/content/locales/ja-JP/internationalization.md +114 -0
  12. package/corpus/core/docs/content/locales/ko-KR/internationalization.md +102 -0
  13. package/corpus/core/docs/content/locales/pt-BR/internationalization.md +102 -0
  14. package/corpus/core/docs/content/locales/zh-CN/internationalization.md +102 -0
  15. package/corpus/core/docs/content/skills-guide.md +19 -18
  16. package/corpus/core/package.json +7 -1
  17. package/corpus/core/src/agent/durable-background.ts +62 -28
  18. package/corpus/core/src/agent/production-agent.ts +16 -12
  19. package/corpus/core/src/cli/skills.ts +22 -4
  20. package/corpus/core/src/client/CommandMenu.tsx +16 -0
  21. package/corpus/core/src/client/app-providers.tsx +26 -1
  22. package/corpus/core/src/client/i18n.tsx +605 -0
  23. package/corpus/core/src/client/index.ts +28 -0
  24. package/corpus/core/src/deploy/build.ts +47 -113
  25. package/corpus/core/src/deploy/workspace-deploy.ts +62 -30
  26. package/corpus/core/src/index.browser.ts +25 -0
  27. package/corpus/core/src/localization/actions/get-localization-preference.ts +23 -0
  28. package/corpus/core/src/localization/actions/set-localization-preference.ts +30 -0
  29. package/corpus/core/src/localization/index.ts +2 -0
  30. package/corpus/core/src/localization/server.ts +131 -0
  31. package/corpus/core/src/localization/shared.ts +163 -0
  32. package/corpus/core/src/server/action-discovery.ts +8 -0
  33. package/corpus/core/src/server/index.ts +8 -0
  34. package/corpus/core/src/server/self-dispatch.ts +29 -2
  35. package/corpus/core/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
  36. package/corpus/core/src/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
  37. package/corpus/core/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
  38. package/corpus/core/src/templates/default/AGENTS.md +16 -15
  39. package/corpus/core/src/templates/default/app/i18n/en-US.ts +29 -0
  40. package/corpus/core/src/templates/default/app/i18n/index.ts +13 -0
  41. package/corpus/core/src/templates/default/app/root.tsx +20 -1
  42. package/corpus/core/src/templates/default/app/routes/_index.tsx +24 -9
  43. package/corpus/core/src/templates/default/app/routes/settings.tsx +67 -0
  44. package/corpus/core/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
  45. package/corpus/core/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
  46. package/corpus/core/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
  47. package/corpus/core/src/vite/action-types-plugin.ts +10 -0
  48. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +6 -0
  49. package/corpus/templates/analytics/app/components/layout/Header.tsx +18 -15
  50. package/corpus/templates/analytics/app/components/layout/Layout.tsx +7 -5
  51. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +9 -3
  52. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +5 -3
  53. package/corpus/templates/analytics/app/i18n/ar-SA.ts +3 -0
  54. package/corpus/templates/analytics/app/i18n/de-DE.ts +3 -0
  55. package/corpus/templates/analytics/app/i18n/en-US.ts +3 -0
  56. package/corpus/templates/analytics/app/i18n/es-ES.ts +3 -0
  57. package/corpus/templates/analytics/app/i18n/fr-FR.ts +3 -0
  58. package/corpus/templates/analytics/app/i18n/hi-IN.ts +3 -0
  59. package/corpus/templates/analytics/app/i18n/index.ts +31 -0
  60. package/corpus/templates/analytics/app/i18n/ja-JP.ts +3 -0
  61. package/corpus/templates/analytics/app/i18n/ko-KR.ts +3 -0
  62. package/corpus/templates/analytics/app/i18n/pt-BR.ts +3 -0
  63. package/corpus/templates/analytics/app/i18n/zh-CN.ts +3 -0
  64. package/corpus/templates/analytics/app/i18n-data.ts +433 -0
  65. package/corpus/templates/analytics/app/pages/Settings.tsx +50 -16
  66. package/corpus/templates/analytics/app/root.tsx +14 -1
  67. package/corpus/templates/analytics/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  68. package/corpus/templates/analytics/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  69. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +6 -0
  70. package/corpus/templates/assets/app/components/layout/Header.tsx +17 -8
  71. package/corpus/templates/assets/app/components/layout/Layout.tsx +10 -6
  72. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +40 -23
  73. package/corpus/templates/assets/app/i18n/ar-SA.ts +3 -0
  74. package/corpus/templates/assets/app/i18n/de-DE.ts +3 -0
  75. package/corpus/templates/assets/app/i18n/en-US.ts +3 -0
  76. package/corpus/templates/assets/app/i18n/es-ES.ts +3 -0
  77. package/corpus/templates/assets/app/i18n/fr-FR.ts +3 -0
  78. package/corpus/templates/assets/app/i18n/hi-IN.ts +3 -0
  79. package/corpus/templates/assets/app/i18n/index.ts +31 -0
  80. package/corpus/templates/assets/app/i18n/ja-JP.ts +3 -0
  81. package/corpus/templates/assets/app/i18n/ko-KR.ts +3 -0
  82. package/corpus/templates/assets/app/i18n/pt-BR.ts +3 -0
  83. package/corpus/templates/assets/app/i18n/zh-CN.ts +3 -0
  84. package/corpus/templates/assets/app/i18n-data.ts +668 -0
  85. package/corpus/templates/assets/app/root.tsx +40 -15
  86. package/corpus/templates/assets/app/routes/_index.tsx +9 -10
  87. package/corpus/templates/assets/app/routes/settings.tsx +37 -6
  88. package/corpus/templates/assets/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  89. package/corpus/templates/assets/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  90. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +5 -0
  91. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +6 -0
  92. package/corpus/templates/brain/app/components/layout/Layout.tsx +12 -8
  93. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +23 -12
  94. package/corpus/templates/brain/app/i18n/ar-SA.ts +3 -0
  95. package/corpus/templates/brain/app/i18n/de-DE.ts +3 -0
  96. package/corpus/templates/brain/app/i18n/en-US.ts +3 -0
  97. package/corpus/templates/brain/app/i18n/es-ES.ts +3 -0
  98. package/corpus/templates/brain/app/i18n/fr-FR.ts +3 -0
  99. package/corpus/templates/brain/app/i18n/hi-IN.ts +3 -0
  100. package/corpus/templates/brain/app/i18n/index.ts +31 -0
  101. package/corpus/templates/brain/app/i18n/ja-JP.ts +3 -0
  102. package/corpus/templates/brain/app/i18n/ko-KR.ts +3 -0
  103. package/corpus/templates/brain/app/i18n/pt-BR.ts +3 -0
  104. package/corpus/templates/brain/app/i18n/zh-CN.ts +3 -0
  105. package/corpus/templates/brain/app/i18n-data.ts +624 -0
  106. package/corpus/templates/brain/app/root.tsx +27 -12
  107. package/corpus/templates/brain/app/routes/settings.tsx +45 -8
  108. package/corpus/templates/brain/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  109. package/corpus/templates/brain/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  110. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +6 -0
  111. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +2 -0
  112. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +16 -9
  113. package/corpus/templates/calendar/app/i18n/ar-SA.ts +57 -0
  114. package/corpus/templates/calendar/app/i18n/de-DE.ts +58 -0
  115. package/corpus/templates/calendar/app/i18n/en-US.ts +57 -0
  116. package/corpus/templates/calendar/app/i18n/es-ES.ts +58 -0
  117. package/corpus/templates/calendar/app/i18n/fr-FR.ts +58 -0
  118. package/corpus/templates/calendar/app/i18n/hi-IN.ts +57 -0
  119. package/corpus/templates/calendar/app/i18n/index.ts +31 -0
  120. package/corpus/templates/calendar/app/i18n/ja-JP.ts +58 -0
  121. package/corpus/templates/calendar/app/i18n/ko-KR.ts +57 -0
  122. package/corpus/templates/calendar/app/i18n/pt-BR.ts +57 -0
  123. package/corpus/templates/calendar/app/i18n/zh-CN.ts +57 -0
  124. package/corpus/templates/calendar/app/i18n-data.ts +516 -0
  125. package/corpus/templates/calendar/app/pages/CalendarView.tsx +2 -0
  126. package/corpus/templates/calendar/app/pages/Settings.tsx +63 -28
  127. package/corpus/templates/calendar/app/root.tsx +78 -7
  128. package/corpus/templates/calendar/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  129. package/corpus/templates/calendar/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  130. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +5 -0
  131. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +6 -0
  132. package/corpus/templates/chat/app/components/layout/Header.tsx +17 -11
  133. package/corpus/templates/chat/app/components/layout/Layout.tsx +12 -8
  134. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +47 -18
  135. package/corpus/templates/chat/app/i18n/ar-SA.ts +62 -0
  136. package/corpus/templates/chat/app/i18n/de-DE.ts +63 -0
  137. package/corpus/templates/chat/app/i18n/en-US.ts +63 -0
  138. package/corpus/templates/chat/app/i18n/es-ES.ts +63 -0
  139. package/corpus/templates/chat/app/i18n/fr-FR.ts +63 -0
  140. package/corpus/templates/chat/app/i18n/hi-IN.ts +63 -0
  141. package/corpus/templates/chat/app/i18n/index.ts +31 -0
  142. package/corpus/templates/chat/app/i18n/ja-JP.ts +63 -0
  143. package/corpus/templates/chat/app/i18n/ko-KR.ts +63 -0
  144. package/corpus/templates/chat/app/i18n/pt-BR.ts +63 -0
  145. package/corpus/templates/chat/app/i18n/zh-CN.ts +61 -0
  146. package/corpus/templates/chat/app/i18n-data.ts +475 -0
  147. package/corpus/templates/chat/app/root.tsx +18 -5
  148. package/corpus/templates/chat/app/routes/_index.tsx +9 -8
  149. package/corpus/templates/chat/app/routes/settings.tsx +86 -0
  150. package/corpus/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  151. package/corpus/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  152. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +6 -0
  153. package/corpus/templates/clips/app/components/layout/Header.tsx +23 -17
  154. package/corpus/templates/clips/app/components/library/empty-state.tsx +10 -34
  155. package/corpus/templates/clips/app/components/library/library-layout.tsx +45 -34
  156. package/corpus/templates/clips/app/i18n/ar-SA.ts +182 -0
  157. package/corpus/templates/clips/app/i18n/de-DE.ts +184 -0
  158. package/corpus/templates/clips/app/i18n/en-US.ts +179 -0
  159. package/corpus/templates/clips/app/i18n/es-ES.ts +183 -0
  160. package/corpus/templates/clips/app/i18n/fr-FR.ts +184 -0
  161. package/corpus/templates/clips/app/i18n/hi-IN.ts +180 -0
  162. package/corpus/templates/clips/app/i18n/index.ts +41 -0
  163. package/corpus/templates/clips/app/i18n/ja-JP.ts +180 -0
  164. package/corpus/templates/clips/app/i18n/ko-KR.ts +178 -0
  165. package/corpus/templates/clips/app/i18n/pt-BR.ts +183 -0
  166. package/corpus/templates/clips/app/i18n/zh-CN.ts +173 -0
  167. package/corpus/templates/clips/app/root.tsx +104 -10
  168. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +154 -95
  169. package/corpus/templates/clips/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  170. package/corpus/templates/clips/changelog/2026-06-24-chrome-extension-setup-now-shows-a-clear-all-done-confirmati.md +6 -0
  171. package/corpus/templates/clips/changelog/2026-06-24-clips-now-includes-a-language-picker-and-simplified-chinese-ui.md +6 -0
  172. package/corpus/templates/clips/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  173. package/corpus/templates/clips/chrome-extension/src/permission.html +60 -0
  174. package/corpus/templates/clips/chrome-extension/src/permission.ts +28 -15
  175. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +6 -0
  176. package/corpus/templates/content/app/components/EmptyState.tsx +7 -5
  177. package/corpus/templates/content/app/components/ThemeToggle.tsx +4 -2
  178. package/corpus/templates/content/app/components/layout/Header.tsx +2 -0
  179. package/corpus/templates/content/app/components/layout/Layout.tsx +8 -7
  180. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +41 -1
  181. package/corpus/templates/content/app/i18n/ar-SA.ts +3 -0
  182. package/corpus/templates/content/app/i18n/de-DE.ts +3 -0
  183. package/corpus/templates/content/app/i18n/en-US.ts +3 -0
  184. package/corpus/templates/content/app/i18n/es-ES.ts +3 -0
  185. package/corpus/templates/content/app/i18n/fr-FR.ts +3 -0
  186. package/corpus/templates/content/app/i18n/hi-IN.ts +3 -0
  187. package/corpus/templates/content/app/i18n/index.ts +31 -0
  188. package/corpus/templates/content/app/i18n/ja-JP.ts +3 -0
  189. package/corpus/templates/content/app/i18n/ko-KR.ts +3 -0
  190. package/corpus/templates/content/app/i18n/pt-BR.ts +3 -0
  191. package/corpus/templates/content/app/i18n/zh-CN.ts +3 -0
  192. package/corpus/templates/content/app/i18n-data.ts +490 -0
  193. package/corpus/templates/content/app/root.tsx +110 -23
  194. package/corpus/templates/content/app/routes/_app.settings.tsx +84 -0
  195. package/corpus/templates/content/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  196. package/corpus/templates/content/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  197. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +6 -0
  198. package/corpus/templates/design/app/components/layout/Header.tsx +16 -8
  199. package/corpus/templates/design/app/components/layout/Layout.tsx +8 -6
  200. package/corpus/templates/design/app/components/layout/Sidebar.tsx +25 -9
  201. package/corpus/templates/design/app/i18n/ar-SA.ts +3 -0
  202. package/corpus/templates/design/app/i18n/de-DE.ts +3 -0
  203. package/corpus/templates/design/app/i18n/en-US.ts +3 -0
  204. package/corpus/templates/design/app/i18n/es-ES.ts +3 -0
  205. package/corpus/templates/design/app/i18n/fr-FR.ts +3 -0
  206. package/corpus/templates/design/app/i18n/hi-IN.ts +3 -0
  207. package/corpus/templates/design/app/i18n/index.ts +31 -0
  208. package/corpus/templates/design/app/i18n/ja-JP.ts +3 -0
  209. package/corpus/templates/design/app/i18n/ko-KR.ts +3 -0
  210. package/corpus/templates/design/app/i18n/pt-BR.ts +3 -0
  211. package/corpus/templates/design/app/i18n/zh-CN.ts +3 -0
  212. package/corpus/templates/design/app/i18n-data.ts +350 -0
  213. package/corpus/templates/design/app/root.tsx +40 -15
  214. package/corpus/templates/design/app/routes/settings.tsx +43 -0
  215. package/corpus/templates/design/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  216. package/corpus/templates/design/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  217. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +6 -0
  218. package/corpus/templates/dispatch/app/i18n/ar-SA.ts +3 -0
  219. package/corpus/templates/dispatch/app/i18n/de-DE.ts +3 -0
  220. package/corpus/templates/dispatch/app/i18n/en-US.ts +3 -0
  221. package/corpus/templates/dispatch/app/i18n/es-ES.ts +3 -0
  222. package/corpus/templates/dispatch/app/i18n/fr-FR.ts +3 -0
  223. package/corpus/templates/dispatch/app/i18n/hi-IN.ts +3 -0
  224. package/corpus/templates/dispatch/app/i18n/index.ts +31 -0
  225. package/corpus/templates/dispatch/app/i18n/ja-JP.ts +3 -0
  226. package/corpus/templates/dispatch/app/i18n/ko-KR.ts +3 -0
  227. package/corpus/templates/dispatch/app/i18n/pt-BR.ts +3 -0
  228. package/corpus/templates/dispatch/app/i18n/zh-CN.ts +3 -0
  229. package/corpus/templates/dispatch/app/i18n-data.ts +267 -0
  230. package/corpus/templates/dispatch/app/root.tsx +18 -4
  231. package/corpus/templates/dispatch/app/routes/settings.tsx +86 -0
  232. package/corpus/templates/dispatch/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  233. package/corpus/templates/dispatch/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  234. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +6 -0
  235. package/corpus/templates/forms/app/components/layout/Header.tsx +16 -9
  236. package/corpus/templates/forms/app/components/layout/Layout.tsx +6 -4
  237. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +34 -17
  238. package/corpus/templates/forms/app/i18n/ar-SA.ts +58 -0
  239. package/corpus/templates/forms/app/i18n/de-DE.ts +59 -0
  240. package/corpus/templates/forms/app/i18n/en-US.ts +59 -0
  241. package/corpus/templates/forms/app/i18n/es-ES.ts +59 -0
  242. package/corpus/templates/forms/app/i18n/fr-FR.ts +59 -0
  243. package/corpus/templates/forms/app/i18n/hi-IN.ts +59 -0
  244. package/corpus/templates/forms/app/i18n/index.ts +31 -0
  245. package/corpus/templates/forms/app/i18n/ja-JP.ts +59 -0
  246. package/corpus/templates/forms/app/i18n/ko-KR.ts +59 -0
  247. package/corpus/templates/forms/app/i18n/pt-BR.ts +59 -0
  248. package/corpus/templates/forms/app/i18n/zh-CN.ts +56 -0
  249. package/corpus/templates/forms/app/root.tsx +65 -16
  250. package/corpus/templates/forms/app/routes/_app.settings.tsx +85 -0
  251. package/corpus/templates/forms/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  252. package/corpus/templates/forms/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  253. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +29 -17
  254. package/corpus/templates/macros/app/components/layout/Header.tsx +16 -10
  255. package/corpus/templates/macros/app/i18n/ar-SA.ts +54 -0
  256. package/corpus/templates/macros/app/i18n/de-DE.ts +55 -0
  257. package/corpus/templates/macros/app/i18n/en-US.ts +55 -0
  258. package/corpus/templates/macros/app/i18n/es-ES.ts +55 -0
  259. package/corpus/templates/macros/app/i18n/fr-FR.ts +55 -0
  260. package/corpus/templates/macros/app/i18n/hi-IN.ts +55 -0
  261. package/corpus/templates/macros/app/i18n/index.ts +31 -0
  262. package/corpus/templates/macros/app/i18n/ja-JP.ts +55 -0
  263. package/corpus/templates/macros/app/i18n/ko-KR.ts +55 -0
  264. package/corpus/templates/macros/app/i18n/pt-BR.ts +55 -0
  265. package/corpus/templates/macros/app/i18n/zh-CN.ts +53 -0
  266. package/corpus/templates/macros/app/root.tsx +65 -15
  267. package/corpus/templates/macros/app/routes/settings.tsx +85 -0
  268. package/corpus/templates/macros/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  269. package/corpus/templates/macros/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  270. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +6 -0
  271. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +9 -4
  272. package/corpus/templates/mail/app/i18n/ar-SA.ts +33 -0
  273. package/corpus/templates/mail/app/i18n/de-DE.ts +33 -0
  274. package/corpus/templates/mail/app/i18n/en-US.ts +32 -0
  275. package/corpus/templates/mail/app/i18n/es-ES.ts +33 -0
  276. package/corpus/templates/mail/app/i18n/fr-FR.ts +33 -0
  277. package/corpus/templates/mail/app/i18n/hi-IN.ts +32 -0
  278. package/corpus/templates/mail/app/i18n/index.ts +31 -0
  279. package/corpus/templates/mail/app/i18n/ja-JP.ts +32 -0
  280. package/corpus/templates/mail/app/i18n/ko-KR.ts +33 -0
  281. package/corpus/templates/mail/app/i18n/pt-BR.ts +34 -0
  282. package/corpus/templates/mail/app/i18n/zh-CN.ts +32 -0
  283. package/corpus/templates/mail/app/pages/SettingsPage.tsx +67 -13
  284. package/corpus/templates/mail/app/root.tsx +20 -0
  285. package/corpus/templates/mail/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  286. package/corpus/templates/mail/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  287. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +5 -0
  288. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +6 -0
  289. package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +22 -4
  290. package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +22 -4
  291. package/corpus/templates/plan/app/components/layout/Header.tsx +19 -12
  292. package/corpus/templates/plan/app/components/layout/Layout.tsx +11 -7
  293. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +41 -28
  294. package/corpus/templates/plan/app/i18n/ar-SA.ts +77 -0
  295. package/corpus/templates/plan/app/i18n/de-DE.ts +78 -0
  296. package/corpus/templates/plan/app/i18n/en-US.ts +78 -0
  297. package/corpus/templates/plan/app/i18n/es-ES.ts +78 -0
  298. package/corpus/templates/plan/app/i18n/fr-FR.ts +78 -0
  299. package/corpus/templates/plan/app/i18n/hi-IN.ts +78 -0
  300. package/corpus/templates/plan/app/i18n/index.ts +31 -0
  301. package/corpus/templates/plan/app/i18n/ja-JP.ts +79 -0
  302. package/corpus/templates/plan/app/i18n/ko-KR.ts +77 -0
  303. package/corpus/templates/plan/app/i18n/pt-BR.ts +78 -0
  304. package/corpus/templates/plan/app/i18n/zh-CN.ts +74 -0
  305. package/corpus/templates/plan/app/root.tsx +45 -8
  306. package/corpus/templates/plan/app/routes/settings.tsx +86 -0
  307. package/corpus/templates/plan/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  308. package/corpus/templates/plan/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  309. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +6 -0
  310. package/corpus/templates/slides/app/components/layout/Header.tsx +23 -11
  311. package/corpus/templates/slides/app/components/layout/Layout.tsx +7 -6
  312. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +23 -11
  313. package/corpus/templates/slides/app/i18n/ar-SA.ts +54 -0
  314. package/corpus/templates/slides/app/i18n/de-DE.ts +56 -0
  315. package/corpus/templates/slides/app/i18n/en-US.ts +55 -0
  316. package/corpus/templates/slides/app/i18n/es-ES.ts +55 -0
  317. package/corpus/templates/slides/app/i18n/fr-FR.ts +55 -0
  318. package/corpus/templates/slides/app/i18n/hi-IN.ts +55 -0
  319. package/corpus/templates/slides/app/i18n/index.ts +31 -0
  320. package/corpus/templates/slides/app/i18n/ja-JP.ts +55 -0
  321. package/corpus/templates/slides/app/i18n/ko-KR.ts +55 -0
  322. package/corpus/templates/slides/app/i18n/pt-BR.ts +55 -0
  323. package/corpus/templates/slides/app/i18n/zh-CN.ts +53 -0
  324. package/corpus/templates/slides/app/root.tsx +50 -8
  325. package/corpus/templates/slides/app/routes/settings.tsx +85 -0
  326. package/corpus/templates/slides/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  327. package/corpus/templates/slides/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  328. package/corpus/templates/videos/.agents/skills/self-modifying-code/SKILL.md +6 -0
  329. package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +14 -9
  330. package/corpus/templates/videos/app/components/Sidebar.tsx +16 -9
  331. package/corpus/templates/videos/app/components/StudioHeader.tsx +12 -8
  332. package/corpus/templates/videos/app/components/layout/Header.tsx +21 -15
  333. package/corpus/templates/videos/app/components/layout/Layout.tsx +10 -7
  334. package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +21 -6
  335. package/corpus/templates/videos/app/i18n/ar-SA.ts +73 -0
  336. package/corpus/templates/videos/app/i18n/de-DE.ts +75 -0
  337. package/corpus/templates/videos/app/i18n/en-US.ts +74 -0
  338. package/corpus/templates/videos/app/i18n/es-ES.ts +75 -0
  339. package/corpus/templates/videos/app/i18n/fr-FR.ts +75 -0
  340. package/corpus/templates/videos/app/i18n/hi-IN.ts +74 -0
  341. package/corpus/templates/videos/app/i18n/index.ts +31 -0
  342. package/corpus/templates/videos/app/i18n/ja-JP.ts +74 -0
  343. package/corpus/templates/videos/app/i18n/ko-KR.ts +74 -0
  344. package/corpus/templates/videos/app/i18n/pt-BR.ts +75 -0
  345. package/corpus/templates/videos/app/i18n/zh-CN.ts +72 -0
  346. package/corpus/templates/videos/app/pages/Index.tsx +11 -9
  347. package/corpus/templates/videos/app/root.tsx +45 -7
  348. package/corpus/templates/videos/app/routes/settings.tsx +85 -0
  349. package/corpus/templates/videos/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  350. package/corpus/templates/videos/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  351. package/dist/agent/durable-background.d.ts +32 -28
  352. package/dist/agent/durable-background.d.ts.map +1 -1
  353. package/dist/agent/durable-background.js +59 -28
  354. package/dist/agent/durable-background.js.map +1 -1
  355. package/dist/agent/production-agent.d.ts.map +1 -1
  356. package/dist/agent/production-agent.js +16 -12
  357. package/dist/agent/production-agent.js.map +1 -1
  358. package/dist/cli/skills.d.ts +1 -1
  359. package/dist/cli/skills.d.ts.map +1 -1
  360. package/dist/cli/skills.js +22 -4
  361. package/dist/cli/skills.js.map +1 -1
  362. package/dist/client/CommandMenu.d.ts +3 -0
  363. package/dist/client/CommandMenu.d.ts.map +1 -1
  364. package/dist/client/CommandMenu.js +9 -0
  365. package/dist/client/CommandMenu.js.map +1 -1
  366. package/dist/client/app-providers.d.ts +8 -1
  367. package/dist/client/app-providers.d.ts.map +1 -1
  368. package/dist/client/app-providers.js +7 -5
  369. package/dist/client/app-providers.js.map +1 -1
  370. package/dist/client/i18n.d.ts +54 -0
  371. package/dist/client/i18n.d.ts.map +1 -0
  372. package/dist/client/i18n.js +354 -0
  373. package/dist/client/i18n.js.map +1 -0
  374. package/dist/client/index.d.ts +2 -1
  375. package/dist/client/index.d.ts.map +1 -1
  376. package/dist/client/index.js +2 -1
  377. package/dist/client/index.js.map +1 -1
  378. package/dist/deploy/build.d.ts +32 -36
  379. package/dist/deploy/build.d.ts.map +1 -1
  380. package/dist/deploy/build.js +47 -104
  381. package/dist/deploy/build.js.map +1 -1
  382. package/dist/deploy/workspace-deploy.js +62 -30
  383. package/dist/deploy/workspace-deploy.js.map +1 -1
  384. package/dist/index.browser.d.ts +1 -1
  385. package/dist/index.browser.d.ts.map +1 -1
  386. package/dist/index.browser.js +1 -1
  387. package/dist/index.browser.js.map +1 -1
  388. package/dist/localization/actions/get-localization-preference.d.ts +4 -0
  389. package/dist/localization/actions/get-localization-preference.d.ts.map +1 -0
  390. package/dist/localization/actions/get-localization-preference.js +16 -0
  391. package/dist/localization/actions/get-localization-preference.js.map +1 -0
  392. package/dist/localization/actions/set-localization-preference.d.ts +6 -0
  393. package/dist/localization/actions/set-localization-preference.d.ts.map +1 -0
  394. package/dist/localization/actions/set-localization-preference.js +24 -0
  395. package/dist/localization/actions/set-localization-preference.js.map +1 -0
  396. package/dist/localization/index.d.ts +3 -0
  397. package/dist/localization/index.d.ts.map +1 -0
  398. package/dist/localization/index.js +3 -0
  399. package/dist/localization/index.js.map +1 -0
  400. package/dist/localization/server.d.ts +25 -0
  401. package/dist/localization/server.d.ts.map +1 -0
  402. package/dist/localization/server.js +69 -0
  403. package/dist/localization/server.js.map +1 -0
  404. package/dist/localization/shared.d.ts +25 -0
  405. package/dist/localization/shared.d.ts.map +1 -0
  406. package/dist/localization/shared.js +134 -0
  407. package/dist/localization/shared.js.map +1 -0
  408. package/dist/server/action-discovery.d.ts.map +1 -1
  409. package/dist/server/action-discovery.js +8 -0
  410. package/dist/server/action-discovery.js.map +1 -1
  411. package/dist/server/index.d.ts +1 -0
  412. package/dist/server/index.d.ts.map +1 -1
  413. package/dist/server/index.js +1 -0
  414. package/dist/server/index.js.map +1 -1
  415. package/dist/server/self-dispatch.d.ts +0 -10
  416. package/dist/server/self-dispatch.d.ts.map +1 -1
  417. package/dist/server/self-dispatch.js +27 -2
  418. package/dist/server/self-dispatch.js.map +1 -1
  419. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
  420. package/dist/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
  421. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
  422. package/dist/templates/default/AGENTS.md +16 -15
  423. package/dist/templates/default/app/i18n/en-US.ts +29 -0
  424. package/dist/templates/default/app/i18n/index.ts +13 -0
  425. package/dist/templates/default/app/root.tsx +20 -1
  426. package/dist/templates/default/app/routes/_index.tsx +24 -9
  427. package/dist/templates/default/app/routes/settings.tsx +67 -0
  428. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
  429. package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
  430. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
  431. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  432. package/dist/vite/action-types-plugin.js +8 -0
  433. package/dist/vite/action-types-plugin.js.map +1 -1
  434. package/docs/AGENTS.md +1 -0
  435. package/docs/content/client.md +15 -0
  436. package/docs/content/internationalization.md +145 -0
  437. package/docs/content/locales/ar-SA/internationalization.md +102 -0
  438. package/docs/content/locales/de-DE/internationalization.md +102 -0
  439. package/docs/content/locales/es-ES/internationalization.md +102 -0
  440. package/docs/content/locales/fr-FR/internationalization.md +102 -0
  441. package/docs/content/locales/hi-IN/internationalization.md +102 -0
  442. package/docs/content/locales/ja-JP/internationalization.md +114 -0
  443. package/docs/content/locales/ko-KR/internationalization.md +102 -0
  444. package/docs/content/locales/pt-BR/internationalization.md +102 -0
  445. package/docs/content/locales/zh-CN/internationalization.md +102 -0
  446. package/docs/content/skills-guide.md +19 -18
  447. package/package.json +7 -1
  448. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
  449. package/src/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
  450. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
  451. package/src/templates/default/AGENTS.md +16 -15
  452. package/src/templates/default/app/i18n/en-US.ts +29 -0
  453. package/src/templates/default/app/i18n/index.ts +13 -0
  454. package/src/templates/default/app/root.tsx +20 -1
  455. package/src/templates/default/app/routes/_index.tsx +24 -9
  456. package/src/templates/default/app/routes/settings.tsx +67 -0
  457. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
  458. package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
  459. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
@@ -11,6 +11,7 @@ import {
11
11
  IconMessageCircle,
12
12
  IconPin,
13
13
  IconPlus,
14
+ IconSettings,
14
15
  } from "@tabler/icons-react";
15
16
  import { toast } from "sonner";
16
17
  import {
@@ -18,6 +19,7 @@ import {
18
19
  FeedbackButton,
19
20
  navigateWithAgentChatViewTransition,
20
21
  useChatThreads,
22
+ useT,
21
23
  type ChatThreadSummary,
22
24
  } from "@agent-native/core/client";
23
25
  import { ExtensionsSidebarSection } from "@agent-native/core/client/extensions";
@@ -38,19 +40,30 @@ import {
38
40
  } from "@/components/ui/tooltip";
39
41
 
40
42
  const navItems = [
41
- { icon: IconMessageCircle, label: "Chat", href: "/", view: "chat" },
43
+ {
44
+ icon: IconMessageCircle,
45
+ labelKey: "navigation.chat",
46
+ href: "/",
47
+ view: "chat",
48
+ },
42
49
  {
43
50
  icon: IconActivity,
44
- label: "Observability",
51
+ labelKey: "navigation.observability",
45
52
  href: "/observability",
46
53
  view: "observability",
47
54
  },
48
55
  {
49
56
  icon: IconDatabase,
50
- label: "Database",
57
+ labelKey: "navigation.database",
51
58
  href: "/database",
52
59
  view: "database",
53
60
  },
61
+ {
62
+ icon: IconSettings,
63
+ labelKey: "navigation.settings",
64
+ href: "/settings",
65
+ view: "settings",
66
+ },
54
67
  ];
55
68
 
56
69
  const CHAT_STORAGE_KEY = "chat";
@@ -122,6 +135,7 @@ function chatThreadPath(threadId: string) {
122
135
  function ChatThreadsSection() {
123
136
  const navigate = useNavigate();
124
137
  const location = useLocation();
138
+ const t = useT();
125
139
  const {
126
140
  threads,
127
141
  activeThreadId,
@@ -201,7 +215,7 @@ function ChatThreadsSection() {
201
215
  threadId === activeThreadId || threadId === persistedActiveThreadId();
202
216
  const archived = await archiveThread(threadId);
203
217
  if (!archived) {
204
- toast.error("Could not archive chat.");
218
+ toast.error(t("chat.archiveFailed"));
205
219
  return;
206
220
  }
207
221
  if (wasActive) {
@@ -231,7 +245,7 @@ function ChatThreadsSection() {
231
245
  setRenameDraft("");
232
246
  if (title) {
233
247
  const renamed = await renameThread(threadId, title);
234
- if (!renamed) toast.error("Could not rename chat.");
248
+ if (!renamed) toast.error(t("chat.renameFailed"));
235
249
  }
236
250
  committingRenameRef.current = false;
237
251
  }
@@ -245,7 +259,7 @@ function ChatThreadsSection() {
245
259
  <div className="mt-2 border-l border-sidebar-border/70 pl-3">
246
260
  <div className="mb-1 flex h-7 items-center gap-2 pr-1">
247
261
  <div className="min-w-0 flex-1 text-xs font-medium text-sidebar-foreground/70">
248
- Chats
262
+ {t("chat.chats")}
249
263
  </div>
250
264
  <Tooltip>
251
265
  <TooltipTrigger asChild>
@@ -253,12 +267,12 @@ function ChatThreadsSection() {
253
267
  type="button"
254
268
  onClick={handleNewChat}
255
269
  className="flex size-6 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/65 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground"
256
- aria-label="New chat"
270
+ aria-label={t("chat.newChat")}
257
271
  >
258
272
  <IconPlus className="size-3.5" />
259
273
  </button>
260
274
  </TooltipTrigger>
261
- <TooltipContent>New chat</TooltipContent>
275
+ <TooltipContent>{t("chat.newChat")}</TooltipContent>
262
276
  </Tooltip>
263
277
  </div>
264
278
  <div className="grid gap-0.5">
@@ -295,7 +309,9 @@ function ChatThreadsSection() {
295
309
  }
296
310
  }}
297
311
  maxLength={160}
298
- aria-label={`Rename ${threadTitle(thread)}`}
312
+ aria-label={t("chat.renameThread", {
313
+ title: threadTitle(thread),
314
+ })}
299
315
  className="h-6 min-w-0 rounded-sm border-sidebar-border bg-background px-1.5 text-xs"
300
316
  />
301
317
  </form>
@@ -318,7 +334,9 @@ function ChatThreadsSection() {
318
334
  <DropdownMenuTrigger asChild>
319
335
  <button
320
336
  type="button"
321
- aria-label={`Chat options for ${threadTitle(thread)}`}
337
+ aria-label={t("chat.optionsFor", {
338
+ title: threadTitle(thread),
339
+ })}
322
340
  className="absolute right-1 flex size-6 items-center justify-center rounded-md text-sidebar-foreground/65 opacity-0 transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100 group-focus-within:opacity-100 data-[state=open]:opacity-100"
323
341
  >
324
342
  <IconDots className="size-4" />
@@ -333,7 +351,7 @@ function ChatThreadsSection() {
333
351
  onSelect={() => startRenameThread(thread)}
334
352
  >
335
353
  <IconEdit className="size-4" />
336
- Rename chat
354
+ {t("chat.renameChat")}
337
355
  </DropdownMenuItem>
338
356
  <DropdownMenuItem
339
357
  onSelect={() =>
@@ -341,14 +359,16 @@ function ChatThreadsSection() {
341
359
  }
342
360
  >
343
361
  <IconPin className="size-4" />
344
- {thread.pinnedAt ? "Unpin chat" : "Pin chat"}
362
+ {thread.pinnedAt
363
+ ? t("chat.unpinChat")
364
+ : t("chat.pinChat")}
345
365
  </DropdownMenuItem>
346
366
  <DropdownMenuItem
347
367
  className="text-destructive focus:bg-destructive focus:text-destructive-foreground"
348
368
  onSelect={() => void handleArchiveThread(thread.id)}
349
369
  >
350
370
  <IconArchive className="size-4" />
351
- Archive chat
371
+ {t("chat.archiveChat")}
352
372
  </DropdownMenuItem>
353
373
  </DropdownMenuContent>
354
374
  </DropdownMenu>
@@ -370,6 +390,7 @@ export function Sidebar({
370
390
  }: SidebarProps) {
371
391
  const location = useLocation();
372
392
  const navigate = useNavigate();
393
+ const t = useT();
373
394
  const isChatRoute =
374
395
  location.pathname === "/" || location.pathname.startsWith("/chat/");
375
396
  const ToggleIcon = collapsed
@@ -399,13 +420,19 @@ export function Sidebar({
399
420
  "flex shrink-0 items-center justify-center rounded-md text-sidebar-foreground/65 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
400
421
  collapsed ? "size-8" : "size-7",
401
422
  )}
402
- aria-label={collapsed ? "Expand sidebar" : "Collapse sidebar"}
423
+ aria-label={
424
+ collapsed
425
+ ? t("navigation.expandSidebar")
426
+ : t("navigation.collapseSidebar")
427
+ }
403
428
  >
404
429
  <ToggleIcon className="size-4" />
405
430
  </button>
406
431
  </TooltipTrigger>
407
432
  <TooltipContent side="right">
408
- {collapsed ? "Expand sidebar" : "Collapse sidebar"}
433
+ {collapsed
434
+ ? t("navigation.expandSidebar")
435
+ : t("navigation.collapseSidebar")}
409
436
  </TooltipContent>
410
437
  </Tooltip>
411
438
  ) : null;
@@ -483,11 +510,11 @@ export function Sidebar({
483
510
  }}
484
511
  className={navClass({ isActive })}
485
512
  aria-current={isActive ? "page" : undefined}
486
- aria-label={collapsed ? item.label : undefined}
513
+ aria-label={collapsed ? t(item.labelKey) : undefined}
487
514
  >
488
515
  <Icon className="size-4 shrink-0" />
489
516
  <span className={collapsed ? "sr-only" : "truncate"}>
490
- {item.label}
517
+ {t(item.labelKey)}
491
518
  </span>
492
519
  </Link>
493
520
  );
@@ -496,7 +523,9 @@ export function Sidebar({
496
523
  {collapsed ? (
497
524
  <Tooltip>
498
525
  <TooltipTrigger asChild>{link}</TooltipTrigger>
499
- <TooltipContent side="right">{item.label}</TooltipContent>
526
+ <TooltipContent side="right">
527
+ {t(item.labelKey)}
528
+ </TooltipContent>
500
529
  </Tooltip>
501
530
  ) : (
502
531
  link
@@ -0,0 +1,62 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "الإعدادات",
4
+ description: "تفضيلات اللغة ومساحة العمل لهذا التطبيق.",
5
+ languageTitle: "اللغة",
6
+ languageDescription: "اختر لغة الواجهة. يتم حفظ هذا التفضيل في حسابك.",
7
+ languageLabel: "لغة الواجهة",
8
+ workspaceTitle: "مساحة العمل",
9
+ workspaceDescription:
10
+ "إدارة أعضاء الفريق ووصول المؤسسة وتفضيلات مساحة العمل المشتركة.",
11
+ openTeamSettings: "فتح إعدادات الفريق",
12
+ openResourceSettings: "فتح إعدادات الموارد",
13
+ agentTitle: "إعدادات الوكيل",
14
+ agentDescription:
15
+ "افتح إعدادات الوكيل في الشريط الجانبي لإدارة النموذج ومفاتيح API والأتمتة والصوت وعناصر التحكم الأخرى.",
16
+ openAgentSettings: "فتح إعدادات الوكيل",
17
+ },
18
+ chat: {
19
+ archiveChat: "Archive Chat",
20
+ archiveFailed: "Archive Failed",
21
+ chats: "Chats",
22
+ composerPlaceholder: "Ask the agent...",
23
+ emptyState: "Ask me anything",
24
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
25
+ heroTitle: "How can I help?",
26
+ inspectEmptyState: "Ask me anything about this app",
27
+ inspectSuggestionAction: "Show available actions",
28
+ inspectSuggestionCapabilities: "What can this app do?",
29
+ inspectSuggestionHello: "Help me get started",
30
+ newChat: "New Chat",
31
+ optionsFor: "Options For",
32
+ pinChat: "Pin Chat",
33
+ renameChat: "Rename Chat",
34
+ renameFailed: "Rename Failed",
35
+ renameThread: "Rename Thread",
36
+ suggestionActions: "Show me the available actions",
37
+ suggestionCapabilities: "What can this app do?",
38
+ suggestionCustomize: "Help me customize this app",
39
+ unpinChat: "Unpin Chat",
40
+ },
41
+ navigation: {
42
+ chat: "المحادثة",
43
+ collapseSidebar: "Collapse Sidebar",
44
+ database: "قاعدة البيانات",
45
+ expandSidebar: "Expand Sidebar",
46
+ extensions: "الإضافات",
47
+ navigation: "التنقل",
48
+ navigationDescription: "التنقل الرئيسي",
49
+ observability: "قابلية المراقبة",
50
+ openNavigation: "فتح التنقل",
51
+ settings: "الإعدادات",
52
+ team: "الفريق",
53
+ },
54
+ root: {
55
+ commandActions: "الإجراءات",
56
+ commandAppearance: "المظهر",
57
+ commandSearch: "بحث",
58
+ toggleTheme: "تبديل السمة",
59
+ },
60
+ };
61
+
62
+ export default messages;
@@ -0,0 +1,63 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "Einstellungen",
4
+ description: "Sprach- und Arbeitsbereichseinstellungen für diese App.",
5
+ languageTitle: "Sprache",
6
+ languageDescription:
7
+ "Wähle die Sprache der Oberfläche. Diese Einstellung wird in deinem Konto gespeichert.",
8
+ languageLabel: "Oberflächensprache",
9
+ workspaceTitle: "Arbeitsbereich",
10
+ workspaceDescription:
11
+ "Verwalte Teammitglieder, Organisationszugriff und gemeinsame Arbeitsbereichseinstellungen.",
12
+ openTeamSettings: "Teameinstellungen öffnen",
13
+ openResourceSettings: "Ressourceneinstellungen öffnen",
14
+ agentTitle: "Agent-Einstellungen",
15
+ agentDescription:
16
+ "Öffne die Agent-Einstellungen in der Seitenleiste für Modell, API-Schlüssel, Automatisierungen, Sprache und weitere Steuerungen.",
17
+ openAgentSettings: "Agent-Einstellungen öffnen",
18
+ },
19
+ chat: {
20
+ archiveChat: "Archive Chat",
21
+ archiveFailed: "Archive Failed",
22
+ chats: "Chats",
23
+ composerPlaceholder: "Ask the agent...",
24
+ emptyState: "Ask me anything",
25
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
26
+ heroTitle: "How can I help?",
27
+ inspectEmptyState: "Ask me anything about this app",
28
+ inspectSuggestionAction: "Show available actions",
29
+ inspectSuggestionCapabilities: "What can this app do?",
30
+ inspectSuggestionHello: "Help me get started",
31
+ newChat: "New Chat",
32
+ optionsFor: "Options For",
33
+ pinChat: "Pin Chat",
34
+ renameChat: "Rename Chat",
35
+ renameFailed: "Rename Failed",
36
+ renameThread: "Rename Thread",
37
+ suggestionActions: "Show me the available actions",
38
+ suggestionCapabilities: "What can this app do?",
39
+ suggestionCustomize: "Help me customize this app",
40
+ unpinChat: "Unpin Chat",
41
+ },
42
+ navigation: {
43
+ chat: "Chat",
44
+ collapseSidebar: "Collapse Sidebar",
45
+ database: "Datenbank",
46
+ expandSidebar: "Expand Sidebar",
47
+ extensions: "Erweiterungen",
48
+ navigation: "Navigation",
49
+ navigationDescription: "Hauptnavigation",
50
+ observability: "Beobachtbarkeit",
51
+ openNavigation: "Navigation öffnen",
52
+ settings: "Einstellungen",
53
+ team: "Team",
54
+ },
55
+ root: {
56
+ commandActions: "Aktionen",
57
+ commandAppearance: "Darstellung",
58
+ commandSearch: "Suchen",
59
+ toggleTheme: "Design wechseln",
60
+ },
61
+ };
62
+
63
+ export default messages;
@@ -0,0 +1,63 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "Settings",
4
+ description: "Language and workspace preferences for this app.",
5
+ languageTitle: "Language",
6
+ languageDescription:
7
+ "Choose the interface language. This preference is saved for your account.",
8
+ languageLabel: "Interface language",
9
+ workspaceTitle: "Workspace",
10
+ workspaceDescription:
11
+ "Manage team members, organization access, and shared workspace preferences.",
12
+ openTeamSettings: "Open team settings",
13
+ openResourceSettings: "Open resource settings",
14
+ agentTitle: "Agent settings",
15
+ agentDescription:
16
+ "Open the agent sidebar settings for model, API keys, automations, voice, and other agent controls.",
17
+ openAgentSettings: "Open agent settings",
18
+ },
19
+ chat: {
20
+ archiveChat: "Archive Chat",
21
+ archiveFailed: "Archive Failed",
22
+ chats: "Chats",
23
+ composerPlaceholder: "Ask the agent...",
24
+ emptyState: "Ask me anything",
25
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
26
+ heroTitle: "How can I help?",
27
+ inspectEmptyState: "Ask me anything about this app",
28
+ inspectSuggestionAction: "Show available actions",
29
+ inspectSuggestionCapabilities: "What can this app do?",
30
+ inspectSuggestionHello: "Help me get started",
31
+ newChat: "New Chat",
32
+ optionsFor: "Options For",
33
+ pinChat: "Pin Chat",
34
+ renameChat: "Rename Chat",
35
+ renameFailed: "Rename Failed",
36
+ renameThread: "Rename Thread",
37
+ suggestionActions: "Show me the available actions",
38
+ suggestionCapabilities: "What can this app do?",
39
+ suggestionCustomize: "Help me customize this app",
40
+ unpinChat: "Unpin Chat",
41
+ },
42
+ navigation: {
43
+ chat: "Chat",
44
+ collapseSidebar: "Collapse Sidebar",
45
+ database: "Database",
46
+ expandSidebar: "Expand Sidebar",
47
+ extensions: "Extensions",
48
+ navigation: "Navigation",
49
+ navigationDescription: "Main navigation",
50
+ observability: "Observability",
51
+ openNavigation: "Open navigation",
52
+ settings: "Settings",
53
+ team: "Team",
54
+ },
55
+ root: {
56
+ commandActions: "Actions",
57
+ commandAppearance: "Appearance",
58
+ commandSearch: "Search",
59
+ toggleTheme: "Toggle theme",
60
+ },
61
+ };
62
+
63
+ export default messages;
@@ -0,0 +1,63 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "Ajustes",
4
+ description: "Preferencias de idioma y espacio de trabajo para esta app.",
5
+ languageTitle: "Idioma",
6
+ languageDescription:
7
+ "Elige el idioma de la interfaz. Esta preferencia se guarda en tu cuenta.",
8
+ languageLabel: "Idioma de la interfaz",
9
+ workspaceTitle: "Espacio de trabajo",
10
+ workspaceDescription:
11
+ "Gestiona miembros del equipo, acceso de la organización y preferencias compartidas.",
12
+ openTeamSettings: "Abrir ajustes del equipo",
13
+ openResourceSettings: "Abrir ajustes de recursos",
14
+ agentTitle: "Ajustes del agente",
15
+ agentDescription:
16
+ "Abre los ajustes del agente en la barra lateral para modelos, claves API, automatizaciones, voz y otros controles.",
17
+ openAgentSettings: "Abrir ajustes del agente",
18
+ },
19
+ chat: {
20
+ archiveChat: "Archive Chat",
21
+ archiveFailed: "Archive Failed",
22
+ chats: "Chats",
23
+ composerPlaceholder: "Ask the agent...",
24
+ emptyState: "Ask me anything",
25
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
26
+ heroTitle: "How can I help?",
27
+ inspectEmptyState: "Ask me anything about this app",
28
+ inspectSuggestionAction: "Show available actions",
29
+ inspectSuggestionCapabilities: "What can this app do?",
30
+ inspectSuggestionHello: "Help me get started",
31
+ newChat: "New Chat",
32
+ optionsFor: "Options For",
33
+ pinChat: "Pin Chat",
34
+ renameChat: "Rename Chat",
35
+ renameFailed: "Rename Failed",
36
+ renameThread: "Rename Thread",
37
+ suggestionActions: "Show me the available actions",
38
+ suggestionCapabilities: "What can this app do?",
39
+ suggestionCustomize: "Help me customize this app",
40
+ unpinChat: "Unpin Chat",
41
+ },
42
+ navigation: {
43
+ chat: "Chat",
44
+ collapseSidebar: "Collapse Sidebar",
45
+ database: "Base de datos",
46
+ expandSidebar: "Expand Sidebar",
47
+ extensions: "Extensiones",
48
+ navigation: "Navegación",
49
+ navigationDescription: "Navegación principal",
50
+ observability: "Observabilidad",
51
+ openNavigation: "Abrir navegación",
52
+ settings: "Ajustes",
53
+ team: "Equipo",
54
+ },
55
+ root: {
56
+ commandActions: "Acciones",
57
+ commandAppearance: "Apariencia",
58
+ commandSearch: "Buscar",
59
+ toggleTheme: "Cambiar tema",
60
+ },
61
+ };
62
+
63
+ export default messages;
@@ -0,0 +1,63 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "Paramètres",
4
+ description: "Préférences de langue et d’espace de travail pour cette app.",
5
+ languageTitle: "Langue",
6
+ languageDescription:
7
+ "Choisissez la langue de l’interface. Cette préférence est enregistrée dans votre compte.",
8
+ languageLabel: "Langue de l’interface",
9
+ workspaceTitle: "Espace de travail",
10
+ workspaceDescription:
11
+ "Gérez les membres, l’accès de l’organisation et les préférences partagées.",
12
+ openTeamSettings: "Ouvrir les paramètres d’équipe",
13
+ openResourceSettings: "Ouvrir les paramètres des ressources",
14
+ agentTitle: "Paramètres de l’agent",
15
+ agentDescription:
16
+ "Ouvrez les paramètres de l’agent dans la barre latérale pour les modèles, clés API, automatisations, voix et autres contrôles.",
17
+ openAgentSettings: "Ouvrir les paramètres de l’agent",
18
+ },
19
+ chat: {
20
+ archiveChat: "Archive Chat",
21
+ archiveFailed: "Archive Failed",
22
+ chats: "Chats",
23
+ composerPlaceholder: "Ask the agent...",
24
+ emptyState: "Ask me anything",
25
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
26
+ heroTitle: "How can I help?",
27
+ inspectEmptyState: "Ask me anything about this app",
28
+ inspectSuggestionAction: "Show available actions",
29
+ inspectSuggestionCapabilities: "What can this app do?",
30
+ inspectSuggestionHello: "Help me get started",
31
+ newChat: "New Chat",
32
+ optionsFor: "Options For",
33
+ pinChat: "Pin Chat",
34
+ renameChat: "Rename Chat",
35
+ renameFailed: "Rename Failed",
36
+ renameThread: "Rename Thread",
37
+ suggestionActions: "Show me the available actions",
38
+ suggestionCapabilities: "What can this app do?",
39
+ suggestionCustomize: "Help me customize this app",
40
+ unpinChat: "Unpin Chat",
41
+ },
42
+ navigation: {
43
+ chat: "Chat",
44
+ collapseSidebar: "Collapse Sidebar",
45
+ database: "Base de données",
46
+ expandSidebar: "Expand Sidebar",
47
+ extensions: "Extensions",
48
+ navigation: "Navigation",
49
+ navigationDescription: "Navigation principale",
50
+ observability: "Observabilité",
51
+ openNavigation: "Ouvrir la navigation",
52
+ settings: "Paramètres",
53
+ team: "Équipe",
54
+ },
55
+ root: {
56
+ commandActions: "Actions",
57
+ commandAppearance: "Apparence",
58
+ commandSearch: "Rechercher",
59
+ toggleTheme: "Changer de thème",
60
+ },
61
+ };
62
+
63
+ export default messages;
@@ -0,0 +1,63 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "सेटिंग्स",
4
+ description: "इस ऐप के लिए भाषा और कार्यस्थान प्राथमिकताएं।",
5
+ languageTitle: "भाषा",
6
+ languageDescription:
7
+ "इंटरफ़ेस भाषा चुनें। यह पसंद आपके खाते में सहेजी जाती है।",
8
+ languageLabel: "इंटरफ़ेस भाषा",
9
+ workspaceTitle: "कार्यस्थान",
10
+ workspaceDescription:
11
+ "टीम सदस्यों, संगठन पहुंच और साझा कार्यस्थान प्राथमिकताओं को प्रबंधित करें।",
12
+ openTeamSettings: "टीम सेटिंग्स खोलें",
13
+ openResourceSettings: "संसाधन सेटिंग्स खोलें",
14
+ agentTitle: "एजेंट सेटिंग्स",
15
+ agentDescription:
16
+ "मॉडल, API कुंजियों, ऑटोमेशन, आवाज़ और अन्य एजेंट नियंत्रणों के लिए साइडबार सेटिंग्स खोलें।",
17
+ openAgentSettings: "एजेंट सेटिंग्स खोलें",
18
+ },
19
+ chat: {
20
+ archiveChat: "Archive Chat",
21
+ archiveFailed: "Archive Failed",
22
+ chats: "Chats",
23
+ composerPlaceholder: "Ask the agent...",
24
+ emptyState: "Ask me anything",
25
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
26
+ heroTitle: "How can I help?",
27
+ inspectEmptyState: "Ask me anything about this app",
28
+ inspectSuggestionAction: "Show available actions",
29
+ inspectSuggestionCapabilities: "What can this app do?",
30
+ inspectSuggestionHello: "Help me get started",
31
+ newChat: "New Chat",
32
+ optionsFor: "Options For",
33
+ pinChat: "Pin Chat",
34
+ renameChat: "Rename Chat",
35
+ renameFailed: "Rename Failed",
36
+ renameThread: "Rename Thread",
37
+ suggestionActions: "Show me the available actions",
38
+ suggestionCapabilities: "What can this app do?",
39
+ suggestionCustomize: "Help me customize this app",
40
+ unpinChat: "Unpin Chat",
41
+ },
42
+ navigation: {
43
+ chat: "चैट",
44
+ collapseSidebar: "Collapse Sidebar",
45
+ database: "डेटाबेस",
46
+ expandSidebar: "Expand Sidebar",
47
+ extensions: "एक्सटेंशन",
48
+ navigation: "नेविगेशन",
49
+ navigationDescription: "मुख्य नेविगेशन",
50
+ observability: "अवलोकनक्षमता",
51
+ openNavigation: "नेविगेशन खोलें",
52
+ settings: "सेटिंग्स",
53
+ team: "टीम",
54
+ },
55
+ root: {
56
+ commandActions: "कार्रवाइयाँ",
57
+ commandAppearance: "दिखावट",
58
+ commandSearch: "खोजें",
59
+ toggleTheme: "थीम बदलें",
60
+ },
61
+ };
62
+
63
+ export default messages;
@@ -0,0 +1,31 @@
1
+ import enUS from "./en-US";
2
+ import type { AgentNativeI18nCatalog } from "@agent-native/core/client";
3
+
4
+ export const i18nCatalog = {
5
+ sourceLocale: "en-US",
6
+ messages: enUS,
7
+ loadMessages: async (locale) => {
8
+ switch (locale) {
9
+ case "zh-CN":
10
+ return (await import("./zh-CN")).default;
11
+ case "es-ES":
12
+ return (await import("./es-ES")).default;
13
+ case "fr-FR":
14
+ return (await import("./fr-FR")).default;
15
+ case "de-DE":
16
+ return (await import("./de-DE")).default;
17
+ case "ja-JP":
18
+ return (await import("./ja-JP")).default;
19
+ case "ko-KR":
20
+ return (await import("./ko-KR")).default;
21
+ case "pt-BR":
22
+ return (await import("./pt-BR")).default;
23
+ case "hi-IN":
24
+ return (await import("./hi-IN")).default;
25
+ case "ar-SA":
26
+ return (await import("./ar-SA")).default;
27
+ default:
28
+ return null;
29
+ }
30
+ },
31
+ } satisfies AgentNativeI18nCatalog;
@@ -0,0 +1,63 @@
1
+ const messages = {
2
+ settings: {
3
+ title: "設定",
4
+ description: "このアプリの言語とワークスペース設定。",
5
+ languageTitle: "言語",
6
+ languageDescription:
7
+ "インターフェース言語を選択します。この設定はアカウントに保存されます。",
8
+ languageLabel: "インターフェース言語",
9
+ workspaceTitle: "ワークスペース",
10
+ workspaceDescription:
11
+ "チームメンバー、組織アクセス、共有ワークスペース設定を管理します。",
12
+ openTeamSettings: "チーム設定を開く",
13
+ openResourceSettings: "リソース設定を開く",
14
+ agentTitle: "エージェント設定",
15
+ agentDescription:
16
+ "右サイドバーのエージェント設定を開き、モデル、API キー、自動化、音声などを管理します。",
17
+ openAgentSettings: "エージェント設定を開く",
18
+ },
19
+ chat: {
20
+ archiveChat: "Archive Chat",
21
+ archiveFailed: "Archive Failed",
22
+ chats: "Chats",
23
+ composerPlaceholder: "Ask the agent...",
24
+ emptyState: "Ask me anything",
25
+ heroDescription: "Ask the agent to inspect, explain, or change this app.",
26
+ heroTitle: "How can I help?",
27
+ inspectEmptyState: "Ask me anything about this app",
28
+ inspectSuggestionAction: "Show available actions",
29
+ inspectSuggestionCapabilities: "What can this app do?",
30
+ inspectSuggestionHello: "Help me get started",
31
+ newChat: "New Chat",
32
+ optionsFor: "Options For",
33
+ pinChat: "Pin Chat",
34
+ renameChat: "Rename Chat",
35
+ renameFailed: "Rename Failed",
36
+ renameThread: "Rename Thread",
37
+ suggestionActions: "Show me the available actions",
38
+ suggestionCapabilities: "What can this app do?",
39
+ suggestionCustomize: "Help me customize this app",
40
+ unpinChat: "Unpin Chat",
41
+ },
42
+ navigation: {
43
+ chat: "チャット",
44
+ collapseSidebar: "Collapse Sidebar",
45
+ database: "データベース",
46
+ expandSidebar: "Expand Sidebar",
47
+ extensions: "拡張機能",
48
+ navigation: "ナビゲーション",
49
+ navigationDescription: "メインナビゲーション",
50
+ observability: "可観測性",
51
+ openNavigation: "ナビゲーションを開く",
52
+ settings: "設定",
53
+ team: "チーム",
54
+ },
55
+ root: {
56
+ commandActions: "操作",
57
+ commandAppearance: "外観",
58
+ commandSearch: "検索",
59
+ toggleTheme: "テーマを切り替え",
60
+ },
61
+ };
62
+
63
+ export default messages;