@agent-native/core 0.75.5 → 0.76.1

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 (460) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +48 -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 +38 -2
  18. package/corpus/core/src/agent/production-agent.ts +54 -0
  19. package/corpus/core/src/agent/run-manager.ts +27 -0
  20. package/corpus/core/src/agent/run-store.ts +185 -4
  21. package/corpus/core/src/client/CommandMenu.tsx +16 -0
  22. package/corpus/core/src/client/app-providers.tsx +26 -1
  23. package/corpus/core/src/client/i18n.tsx +605 -0
  24. package/corpus/core/src/client/index.ts +28 -0
  25. package/corpus/core/src/index.browser.ts +25 -0
  26. package/corpus/core/src/localization/actions/get-localization-preference.ts +23 -0
  27. package/corpus/core/src/localization/actions/set-localization-preference.ts +30 -0
  28. package/corpus/core/src/localization/index.ts +2 -0
  29. package/corpus/core/src/localization/server.ts +131 -0
  30. package/corpus/core/src/localization/shared.ts +163 -0
  31. package/corpus/core/src/server/action-discovery.ts +8 -0
  32. package/corpus/core/src/server/agent-chat-plugin.ts +71 -0
  33. package/corpus/core/src/server/auth.ts +13 -0
  34. package/corpus/core/src/server/index.ts +8 -0
  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/CommandPalette.tsx +12 -12
  50. package/corpus/templates/analytics/app/components/layout/Header.tsx +18 -15
  51. package/corpus/templates/analytics/app/components/layout/Layout.tsx +7 -5
  52. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +9 -3
  53. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +28 -26
  54. package/corpus/templates/analytics/app/i18n/ar-SA.ts +3 -0
  55. package/corpus/templates/analytics/app/i18n/de-DE.ts +3 -0
  56. package/corpus/templates/analytics/app/i18n/en-US.ts +3 -0
  57. package/corpus/templates/analytics/app/i18n/es-ES.ts +3 -0
  58. package/corpus/templates/analytics/app/i18n/fr-FR.ts +3 -0
  59. package/corpus/templates/analytics/app/i18n/hi-IN.ts +3 -0
  60. package/corpus/templates/analytics/app/i18n/index.ts +31 -0
  61. package/corpus/templates/analytics/app/i18n/ja-JP.ts +3 -0
  62. package/corpus/templates/analytics/app/i18n/ko-KR.ts +3 -0
  63. package/corpus/templates/analytics/app/i18n/pt-BR.ts +3 -0
  64. package/corpus/templates/analytics/app/i18n/zh-CN.ts +3 -0
  65. package/corpus/templates/analytics/app/i18n-data.ts +433 -0
  66. package/corpus/templates/analytics/app/pages/Settings.tsx +50 -16
  67. package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +2 -2
  68. package/corpus/templates/analytics/app/root.tsx +14 -1
  69. package/corpus/templates/analytics/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  70. package/corpus/templates/analytics/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  71. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +6 -0
  72. package/corpus/templates/assets/app/components/layout/Header.tsx +17 -8
  73. package/corpus/templates/assets/app/components/layout/Layout.tsx +10 -6
  74. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +40 -23
  75. package/corpus/templates/assets/app/i18n/ar-SA.ts +3 -0
  76. package/corpus/templates/assets/app/i18n/de-DE.ts +3 -0
  77. package/corpus/templates/assets/app/i18n/en-US.ts +3 -0
  78. package/corpus/templates/assets/app/i18n/es-ES.ts +3 -0
  79. package/corpus/templates/assets/app/i18n/fr-FR.ts +3 -0
  80. package/corpus/templates/assets/app/i18n/hi-IN.ts +3 -0
  81. package/corpus/templates/assets/app/i18n/index.ts +31 -0
  82. package/corpus/templates/assets/app/i18n/ja-JP.ts +3 -0
  83. package/corpus/templates/assets/app/i18n/ko-KR.ts +3 -0
  84. package/corpus/templates/assets/app/i18n/pt-BR.ts +3 -0
  85. package/corpus/templates/assets/app/i18n/zh-CN.ts +3 -0
  86. package/corpus/templates/assets/app/i18n-data.ts +668 -0
  87. package/corpus/templates/assets/app/root.tsx +40 -15
  88. package/corpus/templates/assets/app/routes/_index.tsx +9 -10
  89. package/corpus/templates/assets/app/routes/settings.tsx +37 -6
  90. package/corpus/templates/assets/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  91. package/corpus/templates/assets/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  92. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +5 -0
  93. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +6 -0
  94. package/corpus/templates/brain/app/components/layout/Layout.tsx +12 -8
  95. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +23 -12
  96. package/corpus/templates/brain/app/i18n/ar-SA.ts +3 -0
  97. package/corpus/templates/brain/app/i18n/de-DE.ts +3 -0
  98. package/corpus/templates/brain/app/i18n/en-US.ts +3 -0
  99. package/corpus/templates/brain/app/i18n/es-ES.ts +3 -0
  100. package/corpus/templates/brain/app/i18n/fr-FR.ts +3 -0
  101. package/corpus/templates/brain/app/i18n/hi-IN.ts +3 -0
  102. package/corpus/templates/brain/app/i18n/index.ts +31 -0
  103. package/corpus/templates/brain/app/i18n/ja-JP.ts +3 -0
  104. package/corpus/templates/brain/app/i18n/ko-KR.ts +3 -0
  105. package/corpus/templates/brain/app/i18n/pt-BR.ts +3 -0
  106. package/corpus/templates/brain/app/i18n/zh-CN.ts +3 -0
  107. package/corpus/templates/brain/app/i18n-data.ts +624 -0
  108. package/corpus/templates/brain/app/root.tsx +27 -12
  109. package/corpus/templates/brain/app/routes/knowledge.tsx +6 -6
  110. package/corpus/templates/brain/app/routes/ops.tsx +4 -4
  111. package/corpus/templates/brain/app/routes/search.tsx +4 -4
  112. package/corpus/templates/brain/app/routes/settings.tsx +48 -11
  113. package/corpus/templates/brain/app/routes/sources.tsx +3 -3
  114. package/corpus/templates/brain/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  115. package/corpus/templates/brain/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  116. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +6 -0
  117. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +2 -0
  118. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +16 -9
  119. package/corpus/templates/calendar/app/i18n/ar-SA.ts +57 -0
  120. package/corpus/templates/calendar/app/i18n/de-DE.ts +58 -0
  121. package/corpus/templates/calendar/app/i18n/en-US.ts +57 -0
  122. package/corpus/templates/calendar/app/i18n/es-ES.ts +58 -0
  123. package/corpus/templates/calendar/app/i18n/fr-FR.ts +58 -0
  124. package/corpus/templates/calendar/app/i18n/hi-IN.ts +57 -0
  125. package/corpus/templates/calendar/app/i18n/index.ts +31 -0
  126. package/corpus/templates/calendar/app/i18n/ja-JP.ts +58 -0
  127. package/corpus/templates/calendar/app/i18n/ko-KR.ts +57 -0
  128. package/corpus/templates/calendar/app/i18n/pt-BR.ts +57 -0
  129. package/corpus/templates/calendar/app/i18n/zh-CN.ts +57 -0
  130. package/corpus/templates/calendar/app/i18n-data.ts +516 -0
  131. package/corpus/templates/calendar/app/pages/CalendarView.tsx +2 -0
  132. package/corpus/templates/calendar/app/pages/Settings.tsx +63 -28
  133. package/corpus/templates/calendar/app/root.tsx +78 -7
  134. package/corpus/templates/calendar/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  135. package/corpus/templates/calendar/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  136. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +5 -0
  137. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +6 -0
  138. package/corpus/templates/chat/app/components/layout/Header.tsx +17 -11
  139. package/corpus/templates/chat/app/components/layout/Layout.tsx +12 -8
  140. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +47 -18
  141. package/corpus/templates/chat/app/i18n/ar-SA.ts +62 -0
  142. package/corpus/templates/chat/app/i18n/de-DE.ts +63 -0
  143. package/corpus/templates/chat/app/i18n/en-US.ts +63 -0
  144. package/corpus/templates/chat/app/i18n/es-ES.ts +63 -0
  145. package/corpus/templates/chat/app/i18n/fr-FR.ts +63 -0
  146. package/corpus/templates/chat/app/i18n/hi-IN.ts +63 -0
  147. package/corpus/templates/chat/app/i18n/index.ts +31 -0
  148. package/corpus/templates/chat/app/i18n/ja-JP.ts +63 -0
  149. package/corpus/templates/chat/app/i18n/ko-KR.ts +63 -0
  150. package/corpus/templates/chat/app/i18n/pt-BR.ts +63 -0
  151. package/corpus/templates/chat/app/i18n/zh-CN.ts +61 -0
  152. package/corpus/templates/chat/app/i18n-data.ts +475 -0
  153. package/corpus/templates/chat/app/root.tsx +18 -5
  154. package/corpus/templates/chat/app/routes/_index.tsx +9 -8
  155. package/corpus/templates/chat/app/routes/settings.tsx +86 -0
  156. package/corpus/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  157. package/corpus/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  158. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +6 -0
  159. package/corpus/templates/clips/app/components/layout/Header.tsx +23 -17
  160. package/corpus/templates/clips/app/components/library/empty-state.tsx +10 -34
  161. package/corpus/templates/clips/app/components/library/library-layout.tsx +45 -34
  162. package/corpus/templates/clips/app/i18n/ar-SA.ts +182 -0
  163. package/corpus/templates/clips/app/i18n/de-DE.ts +184 -0
  164. package/corpus/templates/clips/app/i18n/en-US.ts +179 -0
  165. package/corpus/templates/clips/app/i18n/es-ES.ts +183 -0
  166. package/corpus/templates/clips/app/i18n/fr-FR.ts +184 -0
  167. package/corpus/templates/clips/app/i18n/hi-IN.ts +180 -0
  168. package/corpus/templates/clips/app/i18n/index.ts +41 -0
  169. package/corpus/templates/clips/app/i18n/ja-JP.ts +180 -0
  170. package/corpus/templates/clips/app/i18n/ko-KR.ts +178 -0
  171. package/corpus/templates/clips/app/i18n/pt-BR.ts +183 -0
  172. package/corpus/templates/clips/app/i18n/zh-CN.ts +173 -0
  173. package/corpus/templates/clips/app/root.tsx +104 -10
  174. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +154 -95
  175. package/corpus/templates/clips/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  176. package/corpus/templates/clips/changelog/2026-06-24-clips-now-includes-a-language-picker-and-simplified-chinese-ui.md +6 -0
  177. package/corpus/templates/clips/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  178. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +6 -0
  179. package/corpus/templates/content/app/components/EmptyState.tsx +7 -5
  180. package/corpus/templates/content/app/components/ThemeToggle.tsx +4 -2
  181. package/corpus/templates/content/app/components/layout/Header.tsx +2 -0
  182. package/corpus/templates/content/app/components/layout/Layout.tsx +8 -7
  183. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +41 -1
  184. package/corpus/templates/content/app/i18n/ar-SA.ts +3 -0
  185. package/corpus/templates/content/app/i18n/de-DE.ts +3 -0
  186. package/corpus/templates/content/app/i18n/en-US.ts +3 -0
  187. package/corpus/templates/content/app/i18n/es-ES.ts +3 -0
  188. package/corpus/templates/content/app/i18n/fr-FR.ts +3 -0
  189. package/corpus/templates/content/app/i18n/hi-IN.ts +3 -0
  190. package/corpus/templates/content/app/i18n/index.ts +31 -0
  191. package/corpus/templates/content/app/i18n/ja-JP.ts +3 -0
  192. package/corpus/templates/content/app/i18n/ko-KR.ts +3 -0
  193. package/corpus/templates/content/app/i18n/pt-BR.ts +3 -0
  194. package/corpus/templates/content/app/i18n/zh-CN.ts +3 -0
  195. package/corpus/templates/content/app/i18n-data.ts +490 -0
  196. package/corpus/templates/content/app/root.tsx +110 -23
  197. package/corpus/templates/content/app/routes/_app.settings.tsx +84 -0
  198. package/corpus/templates/content/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  199. package/corpus/templates/content/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  200. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +6 -0
  201. package/corpus/templates/design/app/components/layout/Header.tsx +16 -8
  202. package/corpus/templates/design/app/components/layout/Layout.tsx +8 -6
  203. package/corpus/templates/design/app/components/layout/Sidebar.tsx +25 -9
  204. package/corpus/templates/design/app/i18n/ar-SA.ts +3 -0
  205. package/corpus/templates/design/app/i18n/de-DE.ts +3 -0
  206. package/corpus/templates/design/app/i18n/en-US.ts +3 -0
  207. package/corpus/templates/design/app/i18n/es-ES.ts +3 -0
  208. package/corpus/templates/design/app/i18n/fr-FR.ts +3 -0
  209. package/corpus/templates/design/app/i18n/hi-IN.ts +3 -0
  210. package/corpus/templates/design/app/i18n/index.ts +31 -0
  211. package/corpus/templates/design/app/i18n/ja-JP.ts +3 -0
  212. package/corpus/templates/design/app/i18n/ko-KR.ts +3 -0
  213. package/corpus/templates/design/app/i18n/pt-BR.ts +3 -0
  214. package/corpus/templates/design/app/i18n/zh-CN.ts +3 -0
  215. package/corpus/templates/design/app/i18n-data.ts +350 -0
  216. package/corpus/templates/design/app/root.tsx +40 -15
  217. package/corpus/templates/design/app/routes/settings.tsx +43 -0
  218. package/corpus/templates/design/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  219. package/corpus/templates/design/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  220. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +6 -0
  221. package/corpus/templates/dispatch/app/i18n/ar-SA.ts +3 -0
  222. package/corpus/templates/dispatch/app/i18n/de-DE.ts +3 -0
  223. package/corpus/templates/dispatch/app/i18n/en-US.ts +3 -0
  224. package/corpus/templates/dispatch/app/i18n/es-ES.ts +3 -0
  225. package/corpus/templates/dispatch/app/i18n/fr-FR.ts +3 -0
  226. package/corpus/templates/dispatch/app/i18n/hi-IN.ts +3 -0
  227. package/corpus/templates/dispatch/app/i18n/index.ts +31 -0
  228. package/corpus/templates/dispatch/app/i18n/ja-JP.ts +3 -0
  229. package/corpus/templates/dispatch/app/i18n/ko-KR.ts +3 -0
  230. package/corpus/templates/dispatch/app/i18n/pt-BR.ts +3 -0
  231. package/corpus/templates/dispatch/app/i18n/zh-CN.ts +3 -0
  232. package/corpus/templates/dispatch/app/i18n-data.ts +267 -0
  233. package/corpus/templates/dispatch/app/root.tsx +18 -4
  234. package/corpus/templates/dispatch/app/routes/settings.tsx +86 -0
  235. package/corpus/templates/dispatch/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  236. package/corpus/templates/dispatch/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  237. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +6 -0
  238. package/corpus/templates/forms/app/components/layout/Header.tsx +16 -9
  239. package/corpus/templates/forms/app/components/layout/Layout.tsx +6 -4
  240. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +34 -17
  241. package/corpus/templates/forms/app/i18n/ar-SA.ts +58 -0
  242. package/corpus/templates/forms/app/i18n/de-DE.ts +59 -0
  243. package/corpus/templates/forms/app/i18n/en-US.ts +59 -0
  244. package/corpus/templates/forms/app/i18n/es-ES.ts +59 -0
  245. package/corpus/templates/forms/app/i18n/fr-FR.ts +59 -0
  246. package/corpus/templates/forms/app/i18n/hi-IN.ts +59 -0
  247. package/corpus/templates/forms/app/i18n/index.ts +31 -0
  248. package/corpus/templates/forms/app/i18n/ja-JP.ts +59 -0
  249. package/corpus/templates/forms/app/i18n/ko-KR.ts +59 -0
  250. package/corpus/templates/forms/app/i18n/pt-BR.ts +59 -0
  251. package/corpus/templates/forms/app/i18n/zh-CN.ts +56 -0
  252. package/corpus/templates/forms/app/root.tsx +65 -16
  253. package/corpus/templates/forms/app/routes/_app.settings.tsx +85 -0
  254. package/corpus/templates/forms/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  255. package/corpus/templates/forms/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  256. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +29 -17
  257. package/corpus/templates/macros/app/components/layout/Header.tsx +16 -10
  258. package/corpus/templates/macros/app/i18n/ar-SA.ts +54 -0
  259. package/corpus/templates/macros/app/i18n/de-DE.ts +55 -0
  260. package/corpus/templates/macros/app/i18n/en-US.ts +55 -0
  261. package/corpus/templates/macros/app/i18n/es-ES.ts +55 -0
  262. package/corpus/templates/macros/app/i18n/fr-FR.ts +55 -0
  263. package/corpus/templates/macros/app/i18n/hi-IN.ts +55 -0
  264. package/corpus/templates/macros/app/i18n/index.ts +31 -0
  265. package/corpus/templates/macros/app/i18n/ja-JP.ts +55 -0
  266. package/corpus/templates/macros/app/i18n/ko-KR.ts +55 -0
  267. package/corpus/templates/macros/app/i18n/pt-BR.ts +55 -0
  268. package/corpus/templates/macros/app/i18n/zh-CN.ts +53 -0
  269. package/corpus/templates/macros/app/root.tsx +65 -15
  270. package/corpus/templates/macros/app/routes/settings.tsx +85 -0
  271. package/corpus/templates/macros/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  272. package/corpus/templates/macros/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  273. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +6 -0
  274. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +9 -4
  275. package/corpus/templates/mail/app/i18n/ar-SA.ts +33 -0
  276. package/corpus/templates/mail/app/i18n/de-DE.ts +33 -0
  277. package/corpus/templates/mail/app/i18n/en-US.ts +32 -0
  278. package/corpus/templates/mail/app/i18n/es-ES.ts +33 -0
  279. package/corpus/templates/mail/app/i18n/fr-FR.ts +33 -0
  280. package/corpus/templates/mail/app/i18n/hi-IN.ts +32 -0
  281. package/corpus/templates/mail/app/i18n/index.ts +31 -0
  282. package/corpus/templates/mail/app/i18n/ja-JP.ts +32 -0
  283. package/corpus/templates/mail/app/i18n/ko-KR.ts +33 -0
  284. package/corpus/templates/mail/app/i18n/pt-BR.ts +34 -0
  285. package/corpus/templates/mail/app/i18n/zh-CN.ts +32 -0
  286. package/corpus/templates/mail/app/pages/SettingsPage.tsx +67 -13
  287. package/corpus/templates/mail/app/root.tsx +20 -0
  288. package/corpus/templates/mail/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  289. package/corpus/templates/mail/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
  290. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +5 -0
  291. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +6 -0
  292. package/corpus/templates/plan/app/components/layout/Header.tsx +19 -12
  293. package/corpus/templates/plan/app/components/layout/Layout.tsx +11 -7
  294. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +41 -28
  295. package/corpus/templates/plan/app/i18n/ar-SA.ts +77 -0
  296. package/corpus/templates/plan/app/i18n/de-DE.ts +78 -0
  297. package/corpus/templates/plan/app/i18n/en-US.ts +78 -0
  298. package/corpus/templates/plan/app/i18n/es-ES.ts +78 -0
  299. package/corpus/templates/plan/app/i18n/fr-FR.ts +78 -0
  300. package/corpus/templates/plan/app/i18n/hi-IN.ts +78 -0
  301. package/corpus/templates/plan/app/i18n/index.ts +31 -0
  302. package/corpus/templates/plan/app/i18n/ja-JP.ts +79 -0
  303. package/corpus/templates/plan/app/i18n/ko-KR.ts +77 -0
  304. package/corpus/templates/plan/app/i18n/pt-BR.ts +78 -0
  305. package/corpus/templates/plan/app/i18n/zh-CN.ts +74 -0
  306. package/corpus/templates/plan/app/root.tsx +45 -8
  307. package/corpus/templates/plan/app/routes/settings.tsx +86 -0
  308. package/corpus/templates/plan/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  309. package/corpus/templates/plan/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  310. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +6 -0
  311. package/corpus/templates/slides/app/components/layout/Header.tsx +23 -11
  312. package/corpus/templates/slides/app/components/layout/Layout.tsx +7 -6
  313. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +23 -11
  314. package/corpus/templates/slides/app/i18n/ar-SA.ts +54 -0
  315. package/corpus/templates/slides/app/i18n/de-DE.ts +56 -0
  316. package/corpus/templates/slides/app/i18n/en-US.ts +55 -0
  317. package/corpus/templates/slides/app/i18n/es-ES.ts +55 -0
  318. package/corpus/templates/slides/app/i18n/fr-FR.ts +55 -0
  319. package/corpus/templates/slides/app/i18n/hi-IN.ts +55 -0
  320. package/corpus/templates/slides/app/i18n/index.ts +31 -0
  321. package/corpus/templates/slides/app/i18n/ja-JP.ts +55 -0
  322. package/corpus/templates/slides/app/i18n/ko-KR.ts +55 -0
  323. package/corpus/templates/slides/app/i18n/pt-BR.ts +55 -0
  324. package/corpus/templates/slides/app/i18n/zh-CN.ts +53 -0
  325. package/corpus/templates/slides/app/root.tsx +50 -8
  326. package/corpus/templates/slides/app/routes/settings.tsx +85 -0
  327. package/corpus/templates/slides/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  328. package/corpus/templates/slides/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  329. package/corpus/templates/videos/.agents/skills/self-modifying-code/SKILL.md +6 -0
  330. package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +14 -9
  331. package/corpus/templates/videos/app/components/Sidebar.tsx +16 -9
  332. package/corpus/templates/videos/app/components/StudioHeader.tsx +12 -8
  333. package/corpus/templates/videos/app/components/layout/Header.tsx +21 -15
  334. package/corpus/templates/videos/app/components/layout/Layout.tsx +10 -7
  335. package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +21 -6
  336. package/corpus/templates/videos/app/i18n/ar-SA.ts +73 -0
  337. package/corpus/templates/videos/app/i18n/de-DE.ts +75 -0
  338. package/corpus/templates/videos/app/i18n/en-US.ts +74 -0
  339. package/corpus/templates/videos/app/i18n/es-ES.ts +75 -0
  340. package/corpus/templates/videos/app/i18n/fr-FR.ts +75 -0
  341. package/corpus/templates/videos/app/i18n/hi-IN.ts +74 -0
  342. package/corpus/templates/videos/app/i18n/index.ts +31 -0
  343. package/corpus/templates/videos/app/i18n/ja-JP.ts +74 -0
  344. package/corpus/templates/videos/app/i18n/ko-KR.ts +74 -0
  345. package/corpus/templates/videos/app/i18n/pt-BR.ts +75 -0
  346. package/corpus/templates/videos/app/i18n/zh-CN.ts +72 -0
  347. package/corpus/templates/videos/app/pages/Index.tsx +11 -9
  348. package/corpus/templates/videos/app/root.tsx +45 -7
  349. package/corpus/templates/videos/app/routes/settings.tsx +85 -0
  350. package/corpus/templates/videos/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  351. package/corpus/templates/videos/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  352. package/dist/agent/durable-background.d.ts +15 -0
  353. package/dist/agent/durable-background.d.ts.map +1 -1
  354. package/dist/agent/durable-background.js +28 -2
  355. package/dist/agent/durable-background.js.map +1 -1
  356. package/dist/agent/production-agent.d.ts.map +1 -1
  357. package/dist/agent/production-agent.js +34 -1
  358. package/dist/agent/production-agent.js.map +1 -1
  359. package/dist/agent/run-manager.d.ts +8 -0
  360. package/dist/agent/run-manager.d.ts.map +1 -1
  361. package/dist/agent/run-manager.js +18 -1
  362. package/dist/agent/run-manager.js.map +1 -1
  363. package/dist/agent/run-store.d.ts +99 -0
  364. package/dist/agent/run-store.d.ts.map +1 -1
  365. package/dist/agent/run-store.js +155 -4
  366. package/dist/agent/run-store.js.map +1 -1
  367. package/dist/client/CommandMenu.d.ts +3 -0
  368. package/dist/client/CommandMenu.d.ts.map +1 -1
  369. package/dist/client/CommandMenu.js +9 -0
  370. package/dist/client/CommandMenu.js.map +1 -1
  371. package/dist/client/app-providers.d.ts +8 -1
  372. package/dist/client/app-providers.d.ts.map +1 -1
  373. package/dist/client/app-providers.js +7 -5
  374. package/dist/client/app-providers.js.map +1 -1
  375. package/dist/client/i18n.d.ts +54 -0
  376. package/dist/client/i18n.d.ts.map +1 -0
  377. package/dist/client/i18n.js +354 -0
  378. package/dist/client/i18n.js.map +1 -0
  379. package/dist/client/index.d.ts +2 -1
  380. package/dist/client/index.d.ts.map +1 -1
  381. package/dist/client/index.js +2 -1
  382. package/dist/client/index.js.map +1 -1
  383. package/dist/index.browser.d.ts +1 -1
  384. package/dist/index.browser.d.ts.map +1 -1
  385. package/dist/index.browser.js +1 -1
  386. package/dist/index.browser.js.map +1 -1
  387. package/dist/localization/actions/get-localization-preference.d.ts +4 -0
  388. package/dist/localization/actions/get-localization-preference.d.ts.map +1 -0
  389. package/dist/localization/actions/get-localization-preference.js +16 -0
  390. package/dist/localization/actions/get-localization-preference.js.map +1 -0
  391. package/dist/localization/actions/set-localization-preference.d.ts +6 -0
  392. package/dist/localization/actions/set-localization-preference.d.ts.map +1 -0
  393. package/dist/localization/actions/set-localization-preference.js +24 -0
  394. package/dist/localization/actions/set-localization-preference.js.map +1 -0
  395. package/dist/localization/index.d.ts +3 -0
  396. package/dist/localization/index.d.ts.map +1 -0
  397. package/dist/localization/index.js +3 -0
  398. package/dist/localization/index.js.map +1 -0
  399. package/dist/localization/server.d.ts +25 -0
  400. package/dist/localization/server.d.ts.map +1 -0
  401. package/dist/localization/server.js +69 -0
  402. package/dist/localization/server.js.map +1 -0
  403. package/dist/localization/shared.d.ts +25 -0
  404. package/dist/localization/shared.d.ts.map +1 -0
  405. package/dist/localization/shared.js +134 -0
  406. package/dist/localization/shared.js.map +1 -0
  407. package/dist/server/action-discovery.d.ts.map +1 -1
  408. package/dist/server/action-discovery.js +8 -0
  409. package/dist/server/action-discovery.js.map +1 -1
  410. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  411. package/dist/server/agent-chat-plugin.js +58 -1
  412. package/dist/server/agent-chat-plugin.js.map +1 -1
  413. package/dist/server/auth.d.ts.map +1 -1
  414. package/dist/server/auth.js +12 -0
  415. package/dist/server/auth.js.map +1 -1
  416. package/dist/server/index.d.ts +1 -0
  417. package/dist/server/index.d.ts.map +1 -1
  418. package/dist/server/index.js +1 -0
  419. package/dist/server/index.js.map +1 -1
  420. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
  421. package/dist/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
  422. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
  423. package/dist/templates/default/AGENTS.md +16 -15
  424. package/dist/templates/default/app/i18n/en-US.ts +29 -0
  425. package/dist/templates/default/app/i18n/index.ts +13 -0
  426. package/dist/templates/default/app/root.tsx +20 -1
  427. package/dist/templates/default/app/routes/_index.tsx +24 -9
  428. package/dist/templates/default/app/routes/settings.tsx +67 -0
  429. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
  430. package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
  431. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
  432. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  433. package/dist/vite/action-types-plugin.js +8 -0
  434. package/dist/vite/action-types-plugin.js.map +1 -1
  435. package/docs/AGENTS.md +1 -0
  436. package/docs/content/client.md +15 -0
  437. package/docs/content/internationalization.md +145 -0
  438. package/docs/content/locales/ar-SA/internationalization.md +102 -0
  439. package/docs/content/locales/de-DE/internationalization.md +102 -0
  440. package/docs/content/locales/es-ES/internationalization.md +102 -0
  441. package/docs/content/locales/fr-FR/internationalization.md +102 -0
  442. package/docs/content/locales/hi-IN/internationalization.md +102 -0
  443. package/docs/content/locales/ja-JP/internationalization.md +114 -0
  444. package/docs/content/locales/ko-KR/internationalization.md +102 -0
  445. package/docs/content/locales/pt-BR/internationalization.md +102 -0
  446. package/docs/content/locales/zh-CN/internationalization.md +102 -0
  447. package/docs/content/skills-guide.md +19 -18
  448. package/package.json +7 -1
  449. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
  450. package/src/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
  451. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
  452. package/src/templates/default/AGENTS.md +16 -15
  453. package/src/templates/default/app/i18n/en-US.ts +29 -0
  454. package/src/templates/default/app/i18n/index.ts +13 -0
  455. package/src/templates/default/app/root.tsx +20 -1
  456. package/src/templates/default/app/routes/_index.tsx +24 -9
  457. package/src/templates/default/app/routes/settings.tsx +67 -0
  458. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
  459. package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
  460. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
@@ -7,6 +7,7 @@ import {
7
7
  IconMenu2,
8
8
  IconX,
9
9
  IconMessageCircle,
10
+ IconSettings,
10
11
  } from "@tabler/icons-react";
11
12
  import { OrgSwitcher } from "@agent-native/core/client/org";
12
13
  import { Button } from "@/components/ui/button";
@@ -27,6 +28,7 @@ import {
27
28
  appPath,
28
29
  focusAgentChat,
29
30
  navigateWithAgentChatViewTransition,
31
+ useT,
30
32
  } from "@agent-native/core/client";
31
33
  import { ExtensionsSidebarSection } from "@agent-native/core/client/extensions";
32
34
  import { Textarea } from "@/components/ui/textarea";
@@ -48,13 +50,13 @@ const statusDots: Record<string, string> = {
48
50
  export function Sidebar() {
49
51
  const location = useLocation();
50
52
  const navigate = useNavigate();
53
+ const t = useT();
51
54
  const { data: formsData, isLoading: formsLoading } = useForms();
52
55
  const forms = Array.isArray(formsData) ? formsData : [];
53
56
  const createForm = useCreateForm();
54
57
  const { send } = useSendToAgentChat();
55
58
  const promptRun = useAgentPromptRun({
56
- staleMessage:
57
- "Form generation is taking longer than expected. You can try again.",
59
+ staleMessage: t("sidebar.formGenerationStale"),
58
60
  });
59
61
  const [popoverOpen, setPopoverOpen] = useState(false);
60
62
  const [prompt, setPrompt] = useState("");
@@ -74,7 +76,7 @@ export function Sidebar() {
74
76
  const tempId = crypto.randomUUID().replace(/-/g, "").slice(0, 10);
75
77
  navigate(`/forms/${tempId}`);
76
78
  createForm.mutate(
77
- { title: "Untitled Form" },
79
+ { title: t("sidebar.untitledForm") },
78
80
  { onSuccess: (form) => navigate(`/forms/${form.id}`, { replace: true }) },
79
81
  );
80
82
  }
@@ -108,7 +110,7 @@ export function Sidebar() {
108
110
  <PopoverTrigger asChild>
109
111
  <button className="cursor-pointer flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm text-muted-foreground hover:bg-accent/50 hover:text-foreground min-h-[44px]">
110
112
  <IconPlus size={14} className="shrink-0" />
111
- <span>New form</span>
113
+ <span>{t("sidebar.newForm")}</span>
112
114
  </button>
113
115
  </PopoverTrigger>
114
116
  );
@@ -121,7 +123,7 @@ export function Sidebar() {
121
123
  className="w-80 p-0 rounded-xl"
122
124
  >
123
125
  <div className="p-4 pb-3">
124
- <p className="text-sm font-semibold">New form</p>
126
+ <p className="text-sm font-semibold">{t("sidebar.newForm")}</p>
125
127
  <Textarea
126
128
  ref={textareaRef}
127
129
  value={prompt}
@@ -132,7 +134,7 @@ export function Sidebar() {
132
134
  handleSubmitPrompt();
133
135
  }
134
136
  }}
135
- placeholder="Describe your form..."
137
+ placeholder={t("sidebar.describeFormPlaceholder")}
136
138
  className="mt-2 w-full resize-none bg-transparent text-sm placeholder:text-muted-foreground/50 border-none shadow-none"
137
139
  rows={4}
138
140
  />
@@ -146,11 +148,11 @@ export function Sidebar() {
146
148
  className="h-auto p-0 text-xs text-muted-foreground"
147
149
  onClick={handleSkip}
148
150
  >
149
- Skip prompt
151
+ {t("sidebar.skipPrompt")}
150
152
  </Button>
151
153
  <span className="text-[11px] text-muted-foreground/70">
152
154
  {/Mac|iPhone|iPad/.test(navigator.userAgent) ? "⌘" : "Ctrl"}
153
- +Enter to submit
155
+ {t("sidebar.submitShortcutSuffix")}
154
156
  </span>
155
157
  <Button
156
158
  variant="secondary"
@@ -158,7 +160,7 @@ export function Sidebar() {
158
160
  className="h-7 w-7"
159
161
  onClick={handleSubmitPrompt}
160
162
  disabled={!prompt.trim() || promptRun.isActivePrompt(prompt)}
161
- aria-label="Send prompt"
163
+ aria-label={t("sidebar.sendPrompt")}
162
164
  >
163
165
  <IconArrowUp size={14} />
164
166
  </Button>
@@ -181,7 +183,7 @@ export function Sidebar() {
181
183
  <TooltipTrigger asChild>
182
184
  <button
183
185
  type="button"
184
- aria-label="Open Ask Forms full screen"
186
+ aria-label={t("sidebar.openAskFullScreen")}
185
187
  className="flex min-w-0 items-center gap-2 rounded-md text-base font-semibold tracking-tight text-foreground transition-colors hover:text-foreground/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
186
188
  onClick={toggleLogoView}
187
189
  >
@@ -197,11 +199,11 @@ export function Sidebar() {
197
199
  aria-hidden="true"
198
200
  className="hidden h-4 w-auto shrink-0 dark:block"
199
201
  />
200
- <span className="truncate">Forms</span>
202
+ <span className="truncate">{t("navigation.brand")}</span>
201
203
  </button>
202
204
  </TooltipTrigger>
203
205
  <TooltipContent side="right">
204
- Open Ask Forms full screen
206
+ {t("sidebar.openAskFullScreen")}
205
207
  </TooltipContent>
206
208
  </Tooltip>
207
209
  </TooltipProvider>
@@ -235,7 +237,9 @@ export function Sidebar() {
235
237
  )}
236
238
  >
237
239
  <IconMessageCircle size={14} className="shrink-0" />
238
- <span className="min-w-0 flex-1 basis-0 truncate">Ask Forms</span>
240
+ <span className="min-w-0 flex-1 basis-0 truncate">
241
+ {t("navigation.askForms")}
242
+ </span>
239
243
  </Link>
240
244
 
241
245
  {formsLoading && forms.length === 0
@@ -267,7 +271,7 @@ export function Sidebar() {
267
271
  ? "bg-accent text-accent-foreground"
268
272
  : "text-muted-foreground hover:bg-accent/50 hover:text-foreground",
269
273
  )}
270
- title={form.title || "Untitled Form"}
274
+ title={form.title || t("sidebar.untitledForm")}
271
275
  >
272
276
  <span
273
277
  className={cn(
@@ -276,7 +280,7 @@ export function Sidebar() {
276
280
  )}
277
281
  />
278
282
  <span className="min-w-0 flex-1 basis-0 truncate">
279
- {form.title || "Untitled Form"}
283
+ {form.title || t("sidebar.untitledForm")}
280
284
  </span>
281
285
  </Link>
282
286
  );
@@ -291,6 +295,19 @@ export function Sidebar() {
291
295
 
292
296
  {/* Pinned nav + footer */}
293
297
  <div className="shrink-0 border-t border-border px-3 py-1.5">
298
+ <Link
299
+ to="/settings"
300
+ onClick={() => isMobile && setMobileOpen(false)}
301
+ className={cn(
302
+ "flex w-full items-center gap-2.5 rounded-md px-3 py-2 text-sm min-h-[44px]",
303
+ location.pathname === "/settings"
304
+ ? "bg-accent text-accent-foreground"
305
+ : "text-muted-foreground hover:bg-accent/50 hover:text-foreground",
306
+ )}
307
+ >
308
+ <IconSettings size={14} className="shrink-0" />
309
+ <span>{t("navigation.settings")}</span>
310
+ </Link>
294
311
  <Link
295
312
  to="/team"
296
313
  onClick={() => isMobile && setMobileOpen(false)}
@@ -302,7 +319,7 @@ export function Sidebar() {
302
319
  )}
303
320
  >
304
321
  <IconUsers size={14} className="shrink-0" />
305
- <span>Team</span>
322
+ <span>{t("navigation.team")}</span>
306
323
  </Link>
307
324
  </div>
308
325
 
@@ -331,7 +348,7 @@ export function Sidebar() {
331
348
  size="icon"
332
349
  className="fixed top-2 left-2 z-40 h-10 w-10 md:hidden"
333
350
  onClick={() => setMobileOpen(true)}
334
- aria-label="Open sidebar"
351
+ aria-label={t("sidebar.openSidebar")}
335
352
  >
336
353
  <IconMenu2 size={20} />
337
354
  </Button>
@@ -0,0 +1,58 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "النماذج",
4
+ searchForms: "بحث في النماذج",
5
+ appearance: "المظهر",
6
+ toggleTheme: "تبديل السمة",
7
+ },
8
+ header: {
9
+ settings: "الإعدادات",
10
+ forms: "النماذج",
11
+ team: "الفريق",
12
+ responses: "الردود",
13
+ form: "نموذج",
14
+ extensions: "الإضافات",
15
+ },
16
+ navigation: {
17
+ settings: "الإعدادات",
18
+ brand: "النماذج",
19
+ askForms: "اسأل Forms",
20
+ team: "الفريق",
21
+ },
22
+ settings: {
23
+ title: "الإعدادات",
24
+ description: "تفضيلات اللغة ومساحة العمل لهذا التطبيق.",
25
+ languageTitle: "اللغة",
26
+ languageDescription: "اختر لغة الواجهة. يتم حفظ هذا التفضيل في حسابك.",
27
+ languageLabel: "لغة الواجهة",
28
+ workspaceTitle: "مساحة العمل",
29
+ workspaceDescription:
30
+ "إدارة أعضاء الفريق ووصول المؤسسة وتفضيلات مساحة العمل المشتركة.",
31
+ openTeamSettings: "فتح إعدادات الفريق",
32
+ openResourceSettings: "فتح إعدادات الموارد",
33
+ agentTitle: "إعدادات الوكيل",
34
+ agentDescription:
35
+ "افتح إعدادات الوكيل في الشريط الجانبي لإدارة النموذج ومفاتيح API والأتمتة والصوت وعناصر التحكم الأخرى.",
36
+ openAgentSettings: "فتح إعدادات الوكيل",
37
+ },
38
+ agent: {
39
+ emptyState: "اسألني أي شيء عن نماذجك",
40
+ suggestionSurvey: "أنشئ استطلاع ملاحظات العملاء",
41
+ suggestionSubmissions: "اعرض الإرسالات حسب اليوم",
42
+ suggestionExport: "صدر الردود إلى CSV",
43
+ },
44
+ sidebar: {
45
+ formGenerationStale:
46
+ "يستغرق إنشاء النموذج وقتا أطول من المتوقع. يمكنك المحاولة مرة أخرى.",
47
+ untitledForm: "نموذج بلا عنوان",
48
+ newForm: "نموذج جديد",
49
+ describeFormPlaceholder: "صف نموذجك...",
50
+ skipPrompt: "تخطي المطالبة",
51
+ submitShortcutSuffix: "+Enter للإرسال",
52
+ sendPrompt: "إرسال المطالبة",
53
+ openAskFullScreen: "فتح Ask Forms بملء الشاشة",
54
+ openSidebar: "فتح الشريط الجانبي",
55
+ },
56
+ };
57
+
58
+ export default messages;
@@ -0,0 +1,59 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "Formulare",
4
+ searchForms: "Formulare suchen",
5
+ appearance: "Darstellung",
6
+ toggleTheme: "Design wechseln",
7
+ },
8
+ header: {
9
+ settings: "Einstellungen",
10
+ forms: "Formulare",
11
+ team: "Team",
12
+ responses: "Antworten",
13
+ form: "Formular",
14
+ extensions: "Erweiterungen",
15
+ },
16
+ navigation: {
17
+ settings: "Einstellungen",
18
+ brand: "Formulare",
19
+ askForms: "Ask Forms",
20
+ team: "Team",
21
+ },
22
+ settings: {
23
+ title: "Einstellungen",
24
+ description: "Sprach- und Arbeitsbereichseinstellungen für diese App.",
25
+ languageTitle: "Sprache",
26
+ languageDescription:
27
+ "Wähle die Sprache der Oberfläche. Diese Einstellung wird in deinem Konto gespeichert.",
28
+ languageLabel: "Oberflächensprache",
29
+ workspaceTitle: "Arbeitsbereich",
30
+ workspaceDescription:
31
+ "Verwalte Teammitglieder, Organisationszugriff und gemeinsame Arbeitsbereichseinstellungen.",
32
+ openTeamSettings: "Teameinstellungen öffnen",
33
+ openResourceSettings: "Ressourceneinstellungen öffnen",
34
+ agentTitle: "Agent-Einstellungen",
35
+ agentDescription:
36
+ "Öffne die Agent-Einstellungen in der Seitenleiste für Modell, API-Schlüssel, Automatisierungen, Sprache und weitere Steuerungen.",
37
+ openAgentSettings: "Agent-Einstellungen öffnen",
38
+ },
39
+ agent: {
40
+ emptyState: "Frag mich alles zu deinen Formularen",
41
+ suggestionSurvey: "Erstelle eine Kundenfeedback-Umfrage",
42
+ suggestionSubmissions: "Zeige Einreichungen nach Tag",
43
+ suggestionExport: "Antworten als CSV exportieren",
44
+ },
45
+ sidebar: {
46
+ formGenerationStale:
47
+ "Die Formularerstellung dauert langer als erwartet. Du kannst es erneut versuchen.",
48
+ untitledForm: "Unbenanntes Formular",
49
+ newForm: "Neues Formular",
50
+ describeFormPlaceholder: "Beschreibe dein Formular...",
51
+ skipPrompt: "Prompt uberspringen",
52
+ submitShortcutSuffix: "+Enter zum Senden",
53
+ sendPrompt: "Prompt senden",
54
+ openAskFullScreen: "Ask Forms im Vollbild offnen",
55
+ openSidebar: "Seitenleiste offnen",
56
+ },
57
+ };
58
+
59
+ export default messages;
@@ -0,0 +1,59 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "Forms",
4
+ searchForms: "Search forms",
5
+ appearance: "Appearance",
6
+ toggleTheme: "Toggle theme",
7
+ },
8
+ header: {
9
+ settings: "Settings",
10
+ forms: "Forms",
11
+ team: "Team",
12
+ responses: "Responses",
13
+ form: "Form",
14
+ extensions: "Extensions",
15
+ },
16
+ navigation: {
17
+ settings: "Settings",
18
+ brand: "Forms",
19
+ askForms: "Ask Forms",
20
+ team: "Team",
21
+ },
22
+ settings: {
23
+ title: "Settings",
24
+ description: "Language and workspace preferences for this app.",
25
+ languageTitle: "Language",
26
+ languageDescription:
27
+ "Choose the interface language. This preference is saved for your account.",
28
+ languageLabel: "Interface language",
29
+ workspaceTitle: "Workspace",
30
+ workspaceDescription:
31
+ "Manage team members, organization access, and shared workspace preferences.",
32
+ openTeamSettings: "Open team settings",
33
+ openResourceSettings: "Open resource settings",
34
+ agentTitle: "Agent settings",
35
+ agentDescription:
36
+ "Open the agent sidebar settings for model, API keys, automations, voice, and other agent controls.",
37
+ openAgentSettings: "Open agent settings",
38
+ },
39
+ agent: {
40
+ emptyState: "Ask me anything about your forms",
41
+ suggestionSurvey: "Build a customer feedback survey",
42
+ suggestionSubmissions: "Show submissions by day",
43
+ suggestionExport: "Export responses to CSV",
44
+ },
45
+ sidebar: {
46
+ formGenerationStale:
47
+ "Form generation is taking longer than expected. You can try again.",
48
+ untitledForm: "Untitled Form",
49
+ newForm: "New form",
50
+ describeFormPlaceholder: "Describe your form...",
51
+ skipPrompt: "Skip prompt",
52
+ submitShortcutSuffix: "+Enter to submit",
53
+ sendPrompt: "Send prompt",
54
+ openAskFullScreen: "Open Ask Forms full screen",
55
+ openSidebar: "Open sidebar",
56
+ },
57
+ };
58
+
59
+ export default messages;
@@ -0,0 +1,59 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "Formularios",
4
+ searchForms: "Buscar formularios",
5
+ appearance: "Apariencia",
6
+ toggleTheme: "Cambiar tema",
7
+ },
8
+ header: {
9
+ settings: "Ajustes",
10
+ forms: "Formularios",
11
+ team: "Equipo",
12
+ responses: "Respuestas",
13
+ form: "Formulario",
14
+ extensions: "Extensiones",
15
+ },
16
+ navigation: {
17
+ settings: "Ajustes",
18
+ brand: "Formularios",
19
+ askForms: "Preguntar a Forms",
20
+ team: "Equipo",
21
+ },
22
+ settings: {
23
+ title: "Ajustes",
24
+ description: "Preferencias de idioma y espacio de trabajo para esta app.",
25
+ languageTitle: "Idioma",
26
+ languageDescription:
27
+ "Elige el idioma de la interfaz. Esta preferencia se guarda en tu cuenta.",
28
+ languageLabel: "Idioma de la interfaz",
29
+ workspaceTitle: "Espacio de trabajo",
30
+ workspaceDescription:
31
+ "Gestiona miembros del equipo, acceso de la organización y preferencias compartidas.",
32
+ openTeamSettings: "Abrir ajustes del equipo",
33
+ openResourceSettings: "Abrir ajustes de recursos",
34
+ agentTitle: "Ajustes del agente",
35
+ agentDescription:
36
+ "Abre los ajustes del agente en la barra lateral para modelos, claves API, automatizaciones, voz y otros controles.",
37
+ openAgentSettings: "Abrir ajustes del agente",
38
+ },
39
+ agent: {
40
+ emptyState: "Preguntame cualquier cosa sobre tus formularios",
41
+ suggestionSurvey: "Crear una encuesta de feedback de clientes",
42
+ suggestionSubmissions: "Mostrar envios por dia",
43
+ suggestionExport: "Exportar respuestas a CSV",
44
+ },
45
+ sidebar: {
46
+ formGenerationStale:
47
+ "La generacion del formulario tarda mas de lo esperado. Puedes intentarlo otra vez.",
48
+ untitledForm: "Formulario sin titulo",
49
+ newForm: "Nuevo formulario",
50
+ describeFormPlaceholder: "Describe tu formulario...",
51
+ skipPrompt: "Omitir prompt",
52
+ submitShortcutSuffix: "+Enter para enviar",
53
+ sendPrompt: "Enviar prompt",
54
+ openAskFullScreen: "Abrir Ask Forms a pantalla completa",
55
+ openSidebar: "Abrir barra lateral",
56
+ },
57
+ };
58
+
59
+ export default messages;
@@ -0,0 +1,59 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "Formulaires",
4
+ searchForms: "Rechercher des formulaires",
5
+ appearance: "Apparence",
6
+ toggleTheme: "Changer de theme",
7
+ },
8
+ header: {
9
+ settings: "Paramètres",
10
+ forms: "Formulaires",
11
+ team: "Equipe",
12
+ responses: "Reponses",
13
+ form: "Formulaire",
14
+ extensions: "Extensions",
15
+ },
16
+ navigation: {
17
+ settings: "Paramètres",
18
+ brand: "Formulaires",
19
+ askForms: "Demander a Forms",
20
+ team: "Equipe",
21
+ },
22
+ settings: {
23
+ title: "Paramètres",
24
+ description: "Préférences de langue et d’espace de travail pour cette app.",
25
+ languageTitle: "Langue",
26
+ languageDescription:
27
+ "Choisissez la langue de l’interface. Cette préférence est enregistrée dans votre compte.",
28
+ languageLabel: "Langue de l’interface",
29
+ workspaceTitle: "Espace de travail",
30
+ workspaceDescription:
31
+ "Gérez les membres, l’accès de l’organisation et les préférences partagées.",
32
+ openTeamSettings: "Ouvrir les paramètres d’équipe",
33
+ openResourceSettings: "Ouvrir les paramètres des ressources",
34
+ agentTitle: "Paramètres de l’agent",
35
+ agentDescription:
36
+ "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.",
37
+ openAgentSettings: "Ouvrir les paramètres de l’agent",
38
+ },
39
+ agent: {
40
+ emptyState: "Posez-moi vos questions sur vos formulaires",
41
+ suggestionSurvey: "Creer une enquete de satisfaction client",
42
+ suggestionSubmissions: "Afficher les reponses par jour",
43
+ suggestionExport: "Exporter les reponses en CSV",
44
+ },
45
+ sidebar: {
46
+ formGenerationStale:
47
+ "La generation du formulaire prend plus de temps que prevu. Vous pouvez reessayer.",
48
+ untitledForm: "Formulaire sans titre",
49
+ newForm: "Nouveau formulaire",
50
+ describeFormPlaceholder: "Decrivez votre formulaire...",
51
+ skipPrompt: "Ignorer le prompt",
52
+ submitShortcutSuffix: "+Enter pour envoyer",
53
+ sendPrompt: "Envoyer le prompt",
54
+ openAskFullScreen: "Ouvrir Ask Forms en plein ecran",
55
+ openSidebar: "Ouvrir la barre laterale",
56
+ },
57
+ };
58
+
59
+ export default messages;
@@ -0,0 +1,59 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "फॉर्म",
4
+ searchForms: "फॉर्म खोजें",
5
+ appearance: "दिखावट",
6
+ toggleTheme: "थीम बदलें",
7
+ },
8
+ header: {
9
+ settings: "सेटिंग्स",
10
+ forms: "फॉर्म",
11
+ team: "टीम",
12
+ responses: "जवाब",
13
+ form: "फॉर्म",
14
+ extensions: "एक्सटेंशन",
15
+ },
16
+ navigation: {
17
+ settings: "सेटिंग्स",
18
+ brand: "फॉर्म",
19
+ askForms: "Ask Forms",
20
+ team: "टीम",
21
+ },
22
+ settings: {
23
+ title: "सेटिंग्स",
24
+ description: "इस ऐप के लिए भाषा और कार्यस्थान प्राथमिकताएं।",
25
+ languageTitle: "भाषा",
26
+ languageDescription:
27
+ "इंटरफ़ेस भाषा चुनें। यह पसंद आपके खाते में सहेजी जाती है।",
28
+ languageLabel: "इंटरफ़ेस भाषा",
29
+ workspaceTitle: "कार्यस्थान",
30
+ workspaceDescription:
31
+ "टीम सदस्यों, संगठन पहुंच और साझा कार्यस्थान प्राथमिकताओं को प्रबंधित करें।",
32
+ openTeamSettings: "टीम सेटिंग्स खोलें",
33
+ openResourceSettings: "संसाधन सेटिंग्स खोलें",
34
+ agentTitle: "एजेंट सेटिंग्स",
35
+ agentDescription:
36
+ "मॉडल, API कुंजियों, ऑटोमेशन, आवाज़ और अन्य एजेंट नियंत्रणों के लिए साइडबार सेटिंग्स खोलें।",
37
+ openAgentSettings: "एजेंट सेटिंग्स खोलें",
38
+ },
39
+ agent: {
40
+ emptyState: "अपने फॉर्म के बारे में कुछ भी पूछें",
41
+ suggestionSurvey: "ग्राहक feedback survey बनाएं",
42
+ suggestionSubmissions: "दिन के हिसाब से submissions दिखाएं",
43
+ suggestionExport: "Responses को CSV में export करें",
44
+ },
45
+ sidebar: {
46
+ formGenerationStale:
47
+ "Form generation उम्मीद से ज्यादा समय ले रहा है। आप फिर कोशिश कर सकते हैं।",
48
+ untitledForm: "Untitled Form",
49
+ newForm: "नया फॉर्म",
50
+ describeFormPlaceholder: "अपने फॉर्म का वर्णन करें...",
51
+ skipPrompt: "Prompt छोड़ें",
52
+ submitShortcutSuffix: "+Enter से submit करें",
53
+ sendPrompt: "Prompt भेजें",
54
+ openAskFullScreen: "Ask Forms full screen में खोलें",
55
+ openSidebar: "Sidebar खोलें",
56
+ },
57
+ };
58
+
59
+ 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,59 @@
1
+ const messages = {
2
+ root: {
3
+ commandForms: "フォーム",
4
+ searchForms: "フォームを検索",
5
+ appearance: "表示",
6
+ toggleTheme: "テーマを切り替え",
7
+ },
8
+ header: {
9
+ settings: "設定",
10
+ forms: "フォーム",
11
+ team: "チーム",
12
+ responses: "回答",
13
+ form: "フォーム",
14
+ extensions: "拡張機能",
15
+ },
16
+ navigation: {
17
+ settings: "設定",
18
+ brand: "フォーム",
19
+ askForms: "Ask Forms",
20
+ team: "チーム",
21
+ },
22
+ settings: {
23
+ title: "設定",
24
+ description: "このアプリの言語とワークスペース設定。",
25
+ languageTitle: "言語",
26
+ languageDescription:
27
+ "インターフェース言語を選択します。この設定はアカウントに保存されます。",
28
+ languageLabel: "インターフェース言語",
29
+ workspaceTitle: "ワークスペース",
30
+ workspaceDescription:
31
+ "チームメンバー、組織アクセス、共有ワークスペース設定を管理します。",
32
+ openTeamSettings: "チーム設定を開く",
33
+ openResourceSettings: "リソース設定を開く",
34
+ agentTitle: "エージェント設定",
35
+ agentDescription:
36
+ "右サイドバーのエージェント設定を開き、モデル、API キー、自動化、音声などを管理します。",
37
+ openAgentSettings: "エージェント設定を開く",
38
+ },
39
+ agent: {
40
+ emptyState: "フォームについて何でも聞いてください",
41
+ suggestionSurvey: "顧客フィードバック調査を作成",
42
+ suggestionSubmissions: "日別の送信を表示",
43
+ suggestionExport: "回答を CSV にエクスポート",
44
+ },
45
+ sidebar: {
46
+ formGenerationStale:
47
+ "フォーム生成に予想より時間がかかっています。もう一度試せます。",
48
+ untitledForm: "無題のフォーム",
49
+ newForm: "新しいフォーム",
50
+ describeFormPlaceholder: "フォームを説明...",
51
+ skipPrompt: "プロンプトをスキップ",
52
+ submitShortcutSuffix: "+Enter で送信",
53
+ sendPrompt: "プロンプトを送信",
54
+ openAskFullScreen: "Ask Forms を全画面で開く",
55
+ openSidebar: "サイドバーを開く",
56
+ },
57
+ };
58
+
59
+ export default messages;