@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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +48 -0
- package/corpus/core/docs/AGENTS.md +1 -0
- package/corpus/core/docs/content/client.md +15 -0
- package/corpus/core/docs/content/internationalization.md +145 -0
- package/corpus/core/docs/content/locales/ar-SA/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/de-DE/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/es-ES/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/fr-FR/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/hi-IN/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/ja-JP/internationalization.md +114 -0
- package/corpus/core/docs/content/locales/ko-KR/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/pt-BR/internationalization.md +102 -0
- package/corpus/core/docs/content/locales/zh-CN/internationalization.md +102 -0
- package/corpus/core/docs/content/skills-guide.md +19 -18
- package/corpus/core/package.json +7 -1
- package/corpus/core/src/agent/durable-background.ts +38 -2
- package/corpus/core/src/agent/production-agent.ts +54 -0
- package/corpus/core/src/agent/run-manager.ts +27 -0
- package/corpus/core/src/agent/run-store.ts +185 -4
- package/corpus/core/src/client/CommandMenu.tsx +16 -0
- package/corpus/core/src/client/app-providers.tsx +26 -1
- package/corpus/core/src/client/i18n.tsx +605 -0
- package/corpus/core/src/client/index.ts +28 -0
- package/corpus/core/src/index.browser.ts +25 -0
- package/corpus/core/src/localization/actions/get-localization-preference.ts +23 -0
- package/corpus/core/src/localization/actions/set-localization-preference.ts +30 -0
- package/corpus/core/src/localization/index.ts +2 -0
- package/corpus/core/src/localization/server.ts +131 -0
- package/corpus/core/src/localization/shared.ts +163 -0
- package/corpus/core/src/server/action-discovery.ts +8 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +71 -0
- package/corpus/core/src/server/auth.ts +13 -0
- package/corpus/core/src/server/index.ts +8 -0
- package/corpus/core/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/corpus/core/src/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
- package/corpus/core/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/core/src/templates/default/AGENTS.md +16 -15
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +29 -0
- package/corpus/core/src/templates/default/app/i18n/index.ts +13 -0
- package/corpus/core/src/templates/default/app/root.tsx +20 -1
- package/corpus/core/src/templates/default/app/routes/_index.tsx +24 -9
- package/corpus/core/src/templates/default/app/routes/settings.tsx +67 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/core/src/vite/action-types-plugin.ts +10 -0
- package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +12 -12
- package/corpus/templates/analytics/app/components/layout/Header.tsx +18 -15
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +7 -5
- package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +9 -3
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +28 -26
- package/corpus/templates/analytics/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/analytics/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/analytics/app/i18n/en-US.ts +3 -0
- package/corpus/templates/analytics/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/analytics/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/analytics/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/analytics/app/i18n/index.ts +31 -0
- package/corpus/templates/analytics/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/analytics/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/analytics/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/analytics/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/analytics/app/i18n-data.ts +433 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +50 -16
- package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +2 -2
- package/corpus/templates/analytics/app/root.tsx +14 -1
- package/corpus/templates/analytics/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/assets/app/components/layout/Header.tsx +17 -8
- package/corpus/templates/assets/app/components/layout/Layout.tsx +10 -6
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +40 -23
- package/corpus/templates/assets/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/assets/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/assets/app/i18n/en-US.ts +3 -0
- package/corpus/templates/assets/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/assets/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/assets/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/assets/app/i18n/index.ts +31 -0
- package/corpus/templates/assets/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/assets/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/assets/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/assets/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/assets/app/i18n-data.ts +668 -0
- package/corpus/templates/assets/app/root.tsx +40 -15
- package/corpus/templates/assets/app/routes/_index.tsx +9 -10
- package/corpus/templates/assets/app/routes/settings.tsx +37 -6
- package/corpus/templates/assets/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/assets/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +12 -8
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +23 -12
- package/corpus/templates/brain/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/brain/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/brain/app/i18n/en-US.ts +3 -0
- package/corpus/templates/brain/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/brain/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/brain/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/brain/app/i18n/index.ts +31 -0
- package/corpus/templates/brain/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/brain/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/brain/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/brain/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/brain/app/i18n-data.ts +624 -0
- package/corpus/templates/brain/app/root.tsx +27 -12
- package/corpus/templates/brain/app/routes/knowledge.tsx +6 -6
- package/corpus/templates/brain/app/routes/ops.tsx +4 -4
- package/corpus/templates/brain/app/routes/search.tsx +4 -4
- package/corpus/templates/brain/app/routes/settings.tsx +48 -11
- package/corpus/templates/brain/app/routes/sources.tsx +3 -3
- package/corpus/templates/brain/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/brain/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +2 -0
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +16 -9
- package/corpus/templates/calendar/app/i18n/ar-SA.ts +57 -0
- package/corpus/templates/calendar/app/i18n/de-DE.ts +58 -0
- package/corpus/templates/calendar/app/i18n/en-US.ts +57 -0
- package/corpus/templates/calendar/app/i18n/es-ES.ts +58 -0
- package/corpus/templates/calendar/app/i18n/fr-FR.ts +58 -0
- package/corpus/templates/calendar/app/i18n/hi-IN.ts +57 -0
- package/corpus/templates/calendar/app/i18n/index.ts +31 -0
- package/corpus/templates/calendar/app/i18n/ja-JP.ts +58 -0
- package/corpus/templates/calendar/app/i18n/ko-KR.ts +57 -0
- package/corpus/templates/calendar/app/i18n/pt-BR.ts +57 -0
- package/corpus/templates/calendar/app/i18n/zh-CN.ts +57 -0
- package/corpus/templates/calendar/app/i18n-data.ts +516 -0
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +2 -0
- package/corpus/templates/calendar/app/pages/Settings.tsx +63 -28
- package/corpus/templates/calendar/app/root.tsx +78 -7
- package/corpus/templates/calendar/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/calendar/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/chat/app/components/layout/Header.tsx +17 -11
- package/corpus/templates/chat/app/components/layout/Layout.tsx +12 -8
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +47 -18
- package/corpus/templates/chat/app/i18n/ar-SA.ts +62 -0
- package/corpus/templates/chat/app/i18n/de-DE.ts +63 -0
- package/corpus/templates/chat/app/i18n/en-US.ts +63 -0
- package/corpus/templates/chat/app/i18n/es-ES.ts +63 -0
- package/corpus/templates/chat/app/i18n/fr-FR.ts +63 -0
- package/corpus/templates/chat/app/i18n/hi-IN.ts +63 -0
- package/corpus/templates/chat/app/i18n/index.ts +31 -0
- package/corpus/templates/chat/app/i18n/ja-JP.ts +63 -0
- package/corpus/templates/chat/app/i18n/ko-KR.ts +63 -0
- package/corpus/templates/chat/app/i18n/pt-BR.ts +63 -0
- package/corpus/templates/chat/app/i18n/zh-CN.ts +61 -0
- package/corpus/templates/chat/app/i18n-data.ts +475 -0
- package/corpus/templates/chat/app/root.tsx +18 -5
- package/corpus/templates/chat/app/routes/_index.tsx +9 -8
- package/corpus/templates/chat/app/routes/settings.tsx +86 -0
- package/corpus/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/clips/app/components/layout/Header.tsx +23 -17
- package/corpus/templates/clips/app/components/library/empty-state.tsx +10 -34
- package/corpus/templates/clips/app/components/library/library-layout.tsx +45 -34
- package/corpus/templates/clips/app/i18n/ar-SA.ts +182 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +184 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +179 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +183 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +184 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +180 -0
- package/corpus/templates/clips/app/i18n/index.ts +41 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +180 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +178 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +183 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +173 -0
- package/corpus/templates/clips/app/root.tsx +104 -10
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +154 -95
- package/corpus/templates/clips/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-24-clips-now-includes-a-language-picker-and-simplified-chinese-ui.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/content/app/components/EmptyState.tsx +7 -5
- package/corpus/templates/content/app/components/ThemeToggle.tsx +4 -2
- package/corpus/templates/content/app/components/layout/Header.tsx +2 -0
- package/corpus/templates/content/app/components/layout/Layout.tsx +8 -7
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +41 -1
- package/corpus/templates/content/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/content/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/content/app/i18n/en-US.ts +3 -0
- package/corpus/templates/content/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/content/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/content/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/content/app/i18n/index.ts +31 -0
- package/corpus/templates/content/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/content/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/content/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/content/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/content/app/i18n-data.ts +490 -0
- package/corpus/templates/content/app/root.tsx +110 -23
- package/corpus/templates/content/app/routes/_app.settings.tsx +84 -0
- package/corpus/templates/content/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/content/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/design/app/components/layout/Header.tsx +16 -8
- package/corpus/templates/design/app/components/layout/Layout.tsx +8 -6
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +25 -9
- package/corpus/templates/design/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/design/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/design/app/i18n/en-US.ts +3 -0
- package/corpus/templates/design/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/design/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/design/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/design/app/i18n/index.ts +31 -0
- package/corpus/templates/design/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/design/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/design/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/design/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/design/app/i18n-data.ts +350 -0
- package/corpus/templates/design/app/root.tsx +40 -15
- package/corpus/templates/design/app/routes/settings.tsx +43 -0
- package/corpus/templates/design/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/design/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/dispatch/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/en-US.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/index.ts +31 -0
- package/corpus/templates/dispatch/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/dispatch/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +267 -0
- package/corpus/templates/dispatch/app/root.tsx +18 -4
- package/corpus/templates/dispatch/app/routes/settings.tsx +86 -0
- package/corpus/templates/dispatch/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/forms/app/components/layout/Header.tsx +16 -9
- package/corpus/templates/forms/app/components/layout/Layout.tsx +6 -4
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +34 -17
- package/corpus/templates/forms/app/i18n/ar-SA.ts +58 -0
- package/corpus/templates/forms/app/i18n/de-DE.ts +59 -0
- package/corpus/templates/forms/app/i18n/en-US.ts +59 -0
- package/corpus/templates/forms/app/i18n/es-ES.ts +59 -0
- package/corpus/templates/forms/app/i18n/fr-FR.ts +59 -0
- package/corpus/templates/forms/app/i18n/hi-IN.ts +59 -0
- package/corpus/templates/forms/app/i18n/index.ts +31 -0
- package/corpus/templates/forms/app/i18n/ja-JP.ts +59 -0
- package/corpus/templates/forms/app/i18n/ko-KR.ts +59 -0
- package/corpus/templates/forms/app/i18n/pt-BR.ts +59 -0
- package/corpus/templates/forms/app/i18n/zh-CN.ts +56 -0
- package/corpus/templates/forms/app/root.tsx +65 -16
- package/corpus/templates/forms/app/routes/_app.settings.tsx +85 -0
- package/corpus/templates/forms/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/forms/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +29 -17
- package/corpus/templates/macros/app/components/layout/Header.tsx +16 -10
- package/corpus/templates/macros/app/i18n/ar-SA.ts +54 -0
- package/corpus/templates/macros/app/i18n/de-DE.ts +55 -0
- package/corpus/templates/macros/app/i18n/en-US.ts +55 -0
- package/corpus/templates/macros/app/i18n/es-ES.ts +55 -0
- package/corpus/templates/macros/app/i18n/fr-FR.ts +55 -0
- package/corpus/templates/macros/app/i18n/hi-IN.ts +55 -0
- package/corpus/templates/macros/app/i18n/index.ts +31 -0
- package/corpus/templates/macros/app/i18n/ja-JP.ts +55 -0
- package/corpus/templates/macros/app/i18n/ko-KR.ts +55 -0
- package/corpus/templates/macros/app/i18n/pt-BR.ts +55 -0
- package/corpus/templates/macros/app/i18n/zh-CN.ts +53 -0
- package/corpus/templates/macros/app/root.tsx +65 -15
- package/corpus/templates/macros/app/routes/settings.tsx +85 -0
- package/corpus/templates/macros/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/macros/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +9 -4
- package/corpus/templates/mail/app/i18n/ar-SA.ts +33 -0
- package/corpus/templates/mail/app/i18n/de-DE.ts +33 -0
- package/corpus/templates/mail/app/i18n/en-US.ts +32 -0
- package/corpus/templates/mail/app/i18n/es-ES.ts +33 -0
- package/corpus/templates/mail/app/i18n/fr-FR.ts +33 -0
- package/corpus/templates/mail/app/i18n/hi-IN.ts +32 -0
- package/corpus/templates/mail/app/i18n/index.ts +31 -0
- package/corpus/templates/mail/app/i18n/ja-JP.ts +32 -0
- package/corpus/templates/mail/app/i18n/ko-KR.ts +33 -0
- package/corpus/templates/mail/app/i18n/pt-BR.ts +34 -0
- package/corpus/templates/mail/app/i18n/zh-CN.ts +32 -0
- package/corpus/templates/mail/app/pages/SettingsPage.tsx +67 -13
- package/corpus/templates/mail/app/root.tsx +20 -0
- package/corpus/templates/mail/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/mail/changelog/2026-06-24-settings-now-link-directly-to-agent-settings-for-model-api-k.md +6 -0
- package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/plan/app/components/layout/Header.tsx +19 -12
- package/corpus/templates/plan/app/components/layout/Layout.tsx +11 -7
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +41 -28
- package/corpus/templates/plan/app/i18n/ar-SA.ts +77 -0
- package/corpus/templates/plan/app/i18n/de-DE.ts +78 -0
- package/corpus/templates/plan/app/i18n/en-US.ts +78 -0
- package/corpus/templates/plan/app/i18n/es-ES.ts +78 -0
- package/corpus/templates/plan/app/i18n/fr-FR.ts +78 -0
- package/corpus/templates/plan/app/i18n/hi-IN.ts +78 -0
- package/corpus/templates/plan/app/i18n/index.ts +31 -0
- package/corpus/templates/plan/app/i18n/ja-JP.ts +79 -0
- package/corpus/templates/plan/app/i18n/ko-KR.ts +77 -0
- package/corpus/templates/plan/app/i18n/pt-BR.ts +78 -0
- package/corpus/templates/plan/app/i18n/zh-CN.ts +74 -0
- package/corpus/templates/plan/app/root.tsx +45 -8
- package/corpus/templates/plan/app/routes/settings.tsx +86 -0
- package/corpus/templates/plan/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/slides/app/components/layout/Header.tsx +23 -11
- package/corpus/templates/slides/app/components/layout/Layout.tsx +7 -6
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +23 -11
- package/corpus/templates/slides/app/i18n/ar-SA.ts +54 -0
- package/corpus/templates/slides/app/i18n/de-DE.ts +56 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +55 -0
- package/corpus/templates/slides/app/i18n/es-ES.ts +55 -0
- package/corpus/templates/slides/app/i18n/fr-FR.ts +55 -0
- package/corpus/templates/slides/app/i18n/hi-IN.ts +55 -0
- package/corpus/templates/slides/app/i18n/index.ts +31 -0
- package/corpus/templates/slides/app/i18n/ja-JP.ts +55 -0
- package/corpus/templates/slides/app/i18n/ko-KR.ts +55 -0
- package/corpus/templates/slides/app/i18n/pt-BR.ts +55 -0
- package/corpus/templates/slides/app/i18n/zh-CN.ts +53 -0
- package/corpus/templates/slides/app/root.tsx +50 -8
- package/corpus/templates/slides/app/routes/settings.tsx +85 -0
- package/corpus/templates/slides/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/slides/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/corpus/templates/videos/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +14 -9
- package/corpus/templates/videos/app/components/Sidebar.tsx +16 -9
- package/corpus/templates/videos/app/components/StudioHeader.tsx +12 -8
- package/corpus/templates/videos/app/components/layout/Header.tsx +21 -15
- package/corpus/templates/videos/app/components/layout/Layout.tsx +10 -7
- package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +21 -6
- package/corpus/templates/videos/app/i18n/ar-SA.ts +73 -0
- package/corpus/templates/videos/app/i18n/de-DE.ts +75 -0
- package/corpus/templates/videos/app/i18n/en-US.ts +74 -0
- package/corpus/templates/videos/app/i18n/es-ES.ts +75 -0
- package/corpus/templates/videos/app/i18n/fr-FR.ts +75 -0
- package/corpus/templates/videos/app/i18n/hi-IN.ts +74 -0
- package/corpus/templates/videos/app/i18n/index.ts +31 -0
- package/corpus/templates/videos/app/i18n/ja-JP.ts +74 -0
- package/corpus/templates/videos/app/i18n/ko-KR.ts +74 -0
- package/corpus/templates/videos/app/i18n/pt-BR.ts +75 -0
- package/corpus/templates/videos/app/i18n/zh-CN.ts +72 -0
- package/corpus/templates/videos/app/pages/Index.tsx +11 -9
- package/corpus/templates/videos/app/root.tsx +45 -7
- package/corpus/templates/videos/app/routes/settings.tsx +85 -0
- package/corpus/templates/videos/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
- package/corpus/templates/videos/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
- package/dist/agent/durable-background.d.ts +15 -0
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +28 -2
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +34 -1
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +8 -0
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +18 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +99 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +155 -4
- package/dist/agent/run-store.js.map +1 -1
- package/dist/client/CommandMenu.d.ts +3 -0
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +9 -0
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/app-providers.d.ts +8 -1
- package/dist/client/app-providers.d.ts.map +1 -1
- package/dist/client/app-providers.js +7 -5
- package/dist/client/app-providers.js.map +1 -1
- package/dist/client/i18n.d.ts +54 -0
- package/dist/client/i18n.d.ts.map +1 -0
- package/dist/client/i18n.js +354 -0
- package/dist/client/i18n.js.map +1 -0
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -1
- package/dist/client/index.js.map +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/localization/actions/get-localization-preference.d.ts +4 -0
- package/dist/localization/actions/get-localization-preference.d.ts.map +1 -0
- package/dist/localization/actions/get-localization-preference.js +16 -0
- package/dist/localization/actions/get-localization-preference.js.map +1 -0
- package/dist/localization/actions/set-localization-preference.d.ts +6 -0
- package/dist/localization/actions/set-localization-preference.d.ts.map +1 -0
- package/dist/localization/actions/set-localization-preference.js +24 -0
- package/dist/localization/actions/set-localization-preference.js.map +1 -0
- package/dist/localization/index.d.ts +3 -0
- package/dist/localization/index.d.ts.map +1 -0
- package/dist/localization/index.js +3 -0
- package/dist/localization/index.js.map +1 -0
- package/dist/localization/server.d.ts +25 -0
- package/dist/localization/server.d.ts.map +1 -0
- package/dist/localization/server.js +69 -0
- package/dist/localization/server.js.map +1 -0
- package/dist/localization/shared.d.ts +25 -0
- package/dist/localization/shared.d.ts.map +1 -0
- package/dist/localization/shared.js +134 -0
- package/dist/localization/shared.js.map +1 -0
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +8 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +58 -1
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +12 -0
- package/dist/server/auth.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/dist/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
- package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/dist/templates/default/AGENTS.md +16 -15
- package/dist/templates/default/app/i18n/en-US.ts +29 -0
- package/dist/templates/default/app/i18n/index.ts +13 -0
- package/dist/templates/default/app/root.tsx +20 -1
- package/dist/templates/default/app/routes/_index.tsx +24 -9
- package/dist/templates/default/app/routes/settings.tsx +67 -0
- package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
- package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/dist/vite/action-types-plugin.d.ts.map +1 -1
- package/dist/vite/action-types-plugin.js +8 -0
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/docs/AGENTS.md +1 -0
- package/docs/content/client.md +15 -0
- package/docs/content/internationalization.md +145 -0
- package/docs/content/locales/ar-SA/internationalization.md +102 -0
- package/docs/content/locales/de-DE/internationalization.md +102 -0
- package/docs/content/locales/es-ES/internationalization.md +102 -0
- package/docs/content/locales/fr-FR/internationalization.md +102 -0
- package/docs/content/locales/hi-IN/internationalization.md +102 -0
- package/docs/content/locales/ja-JP/internationalization.md +114 -0
- package/docs/content/locales/ko-KR/internationalization.md +102 -0
- package/docs/content/locales/pt-BR/internationalization.md +102 -0
- package/docs/content/locales/zh-CN/internationalization.md +102 -0
- package/docs/content/skills-guide.md +19 -18
- package/package.json +7 -1
- package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/src/templates/default/.agents/skills/internationalization/SKILL.md +77 -0
- package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +6 -0
- package/src/templates/default/AGENTS.md +16 -15
- package/src/templates/default/app/i18n/en-US.ts +29 -0
- package/src/templates/default/app/i18n/index.ts +13 -0
- package/src/templates/default/app/root.tsx +20 -1
- package/src/templates/default/app/routes/_index.tsx +24 -9
- package/src/templates/default/app/routes/settings.tsx +67 -0
- package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +5 -0
- package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +77 -0
- package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +6 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import type { LocaleCode } from "@agent-native/core/client";
|
|
2
|
+
|
|
3
|
+
const enUS = {
|
|
4
|
+
root: {
|
|
5
|
+
commandActions: "Actions",
|
|
6
|
+
commandSearch: "Search",
|
|
7
|
+
commandAppearance: "Appearance",
|
|
8
|
+
toggleTheme: "Toggle theme",
|
|
9
|
+
},
|
|
10
|
+
settings: {
|
|
11
|
+
title: "Settings",
|
|
12
|
+
description: "Language, workspace, resource, and agent preferences.",
|
|
13
|
+
languageTitle: "Language",
|
|
14
|
+
languageDescription:
|
|
15
|
+
"Choose the interface language. This preference is saved for your account.",
|
|
16
|
+
languageLabel: "Interface language",
|
|
17
|
+
workspaceTitle: "Workspace",
|
|
18
|
+
workspaceDescription:
|
|
19
|
+
"Manage team access and shared workspace resources for Dispatch.",
|
|
20
|
+
openTeamSettings: "Open team settings",
|
|
21
|
+
openResourceSettings: "Open resource settings",
|
|
22
|
+
agentTitle: "Agent settings",
|
|
23
|
+
agentDescription:
|
|
24
|
+
"Open the agent sidebar settings for model, API keys, automations, voice, and other agent controls.",
|
|
25
|
+
openAgentSettings: "Open agent settings",
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
type Messages = typeof enUS;
|
|
30
|
+
type PartialMessages = { [K in keyof Messages]?: Partial<Messages[K]> };
|
|
31
|
+
|
|
32
|
+
function mergeMessages(overrides: PartialMessages): Messages {
|
|
33
|
+
return {
|
|
34
|
+
root: { ...enUS.root, ...overrides.root },
|
|
35
|
+
settings: { ...enUS.settings, ...overrides.settings },
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const messagesByLocale = {
|
|
40
|
+
"en-US": enUS,
|
|
41
|
+
"zh-CN": mergeMessages({
|
|
42
|
+
root: {
|
|
43
|
+
commandActions: "操作",
|
|
44
|
+
commandSearch: "搜索",
|
|
45
|
+
commandAppearance: "外观",
|
|
46
|
+
toggleTheme: "切换主题",
|
|
47
|
+
},
|
|
48
|
+
settings: {
|
|
49
|
+
title: "设置",
|
|
50
|
+
description: "语言、工作区、资源和代理偏好设置。",
|
|
51
|
+
languageTitle: "语言",
|
|
52
|
+
languageDescription: "选择界面语言。此偏好会保存到你的账户。",
|
|
53
|
+
languageLabel: "界面语言",
|
|
54
|
+
workspaceTitle: "工作区",
|
|
55
|
+
workspaceDescription: "管理 Dispatch 的团队访问权限和共享工作区资源。",
|
|
56
|
+
openTeamSettings: "打开团队设置",
|
|
57
|
+
openResourceSettings: "打开资源设置",
|
|
58
|
+
agentTitle: "代理设置",
|
|
59
|
+
agentDescription:
|
|
60
|
+
"打开代理侧边栏设置,管理模型、API 密钥、自动化、语音和其他代理控制项。",
|
|
61
|
+
openAgentSettings: "打开代理设置",
|
|
62
|
+
},
|
|
63
|
+
}),
|
|
64
|
+
"es-ES": mergeMessages({
|
|
65
|
+
root: {
|
|
66
|
+
commandActions: "Acciones",
|
|
67
|
+
commandSearch: "Buscar",
|
|
68
|
+
commandAppearance: "Apariencia",
|
|
69
|
+
toggleTheme: "Cambiar tema",
|
|
70
|
+
},
|
|
71
|
+
settings: {
|
|
72
|
+
title: "Ajustes",
|
|
73
|
+
description:
|
|
74
|
+
"Preferencias de idioma, espacio de trabajo, recursos y agente.",
|
|
75
|
+
languageTitle: "Idioma",
|
|
76
|
+
languageDescription:
|
|
77
|
+
"Elige el idioma de la interfaz. Esta preferencia se guarda en tu cuenta.",
|
|
78
|
+
languageLabel: "Idioma de la interfaz",
|
|
79
|
+
workspaceTitle: "Espacio de trabajo",
|
|
80
|
+
workspaceDescription:
|
|
81
|
+
"Gestiona el acceso del equipo y los recursos compartidos de Dispatch.",
|
|
82
|
+
openTeamSettings: "Abrir ajustes del equipo",
|
|
83
|
+
openResourceSettings: "Abrir ajustes de recursos",
|
|
84
|
+
agentTitle: "Ajustes del agente",
|
|
85
|
+
agentDescription:
|
|
86
|
+
"Abre los ajustes del agente en la barra lateral para modelos, claves API, automatizaciones, voz y otros controles.",
|
|
87
|
+
openAgentSettings: "Abrir ajustes del agente",
|
|
88
|
+
},
|
|
89
|
+
}),
|
|
90
|
+
"fr-FR": mergeMessages({
|
|
91
|
+
root: {
|
|
92
|
+
commandActions: "Actions",
|
|
93
|
+
commandSearch: "Rechercher",
|
|
94
|
+
commandAppearance: "Apparence",
|
|
95
|
+
toggleTheme: "Changer de thème",
|
|
96
|
+
},
|
|
97
|
+
settings: {
|
|
98
|
+
title: "Paramètres",
|
|
99
|
+
description:
|
|
100
|
+
"Préférences de langue, d’espace de travail, de ressources et d’agent.",
|
|
101
|
+
languageTitle: "Langue",
|
|
102
|
+
languageDescription:
|
|
103
|
+
"Choisissez la langue de l’interface. Cette préférence est enregistrée dans votre compte.",
|
|
104
|
+
languageLabel: "Langue de l’interface",
|
|
105
|
+
workspaceTitle: "Espace de travail",
|
|
106
|
+
workspaceDescription:
|
|
107
|
+
"Gérez l’accès de l’équipe et les ressources partagées de Dispatch.",
|
|
108
|
+
openTeamSettings: "Ouvrir les paramètres d’équipe",
|
|
109
|
+
openResourceSettings: "Ouvrir les paramètres des ressources",
|
|
110
|
+
agentTitle: "Paramètres de l’agent",
|
|
111
|
+
agentDescription:
|
|
112
|
+
"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.",
|
|
113
|
+
openAgentSettings: "Ouvrir les paramètres de l’agent",
|
|
114
|
+
},
|
|
115
|
+
}),
|
|
116
|
+
"de-DE": mergeMessages({
|
|
117
|
+
root: {
|
|
118
|
+
commandActions: "Aktionen",
|
|
119
|
+
commandSearch: "Suchen",
|
|
120
|
+
commandAppearance: "Darstellung",
|
|
121
|
+
toggleTheme: "Theme wechseln",
|
|
122
|
+
},
|
|
123
|
+
settings: {
|
|
124
|
+
title: "Einstellungen",
|
|
125
|
+
description:
|
|
126
|
+
"Sprach-, Arbeitsbereichs-, Ressourcen- und Agent-Einstellungen.",
|
|
127
|
+
languageTitle: "Sprache",
|
|
128
|
+
languageDescription:
|
|
129
|
+
"Wähle die Sprache der Oberfläche. Diese Einstellung wird in deinem Konto gespeichert.",
|
|
130
|
+
languageLabel: "Oberflächensprache",
|
|
131
|
+
workspaceTitle: "Arbeitsbereich",
|
|
132
|
+
workspaceDescription:
|
|
133
|
+
"Verwalte Teamzugriff und gemeinsam genutzte Dispatch-Ressourcen.",
|
|
134
|
+
openTeamSettings: "Teameinstellungen öffnen",
|
|
135
|
+
openResourceSettings: "Ressourceneinstellungen öffnen",
|
|
136
|
+
agentTitle: "Agent-Einstellungen",
|
|
137
|
+
agentDescription:
|
|
138
|
+
"Öffne die Agent-Einstellungen in der Seitenleiste für Modell, API-Schlüssel, Automatisierungen, Sprache und weitere Steuerungen.",
|
|
139
|
+
openAgentSettings: "Agent-Einstellungen öffnen",
|
|
140
|
+
},
|
|
141
|
+
}),
|
|
142
|
+
"ja-JP": mergeMessages({
|
|
143
|
+
root: {
|
|
144
|
+
commandActions: "操作",
|
|
145
|
+
commandSearch: "検索",
|
|
146
|
+
commandAppearance: "外観",
|
|
147
|
+
toggleTheme: "テーマを切り替え",
|
|
148
|
+
},
|
|
149
|
+
settings: {
|
|
150
|
+
title: "設定",
|
|
151
|
+
description: "言語、ワークスペース、リソース、エージェント設定。",
|
|
152
|
+
languageTitle: "言語",
|
|
153
|
+
languageDescription:
|
|
154
|
+
"インターフェース言語を選択します。この設定はアカウントに保存されます。",
|
|
155
|
+
languageLabel: "インターフェース言語",
|
|
156
|
+
workspaceTitle: "ワークスペース",
|
|
157
|
+
workspaceDescription:
|
|
158
|
+
"Dispatch のチームアクセスと共有ワークスペースリソースを管理します。",
|
|
159
|
+
openTeamSettings: "チーム設定を開く",
|
|
160
|
+
openResourceSettings: "リソース設定を開く",
|
|
161
|
+
agentTitle: "エージェント設定",
|
|
162
|
+
agentDescription:
|
|
163
|
+
"右サイドバーのエージェント設定を開き、モデル、API キー、自動化、音声などを管理します。",
|
|
164
|
+
openAgentSettings: "エージェント設定を開く",
|
|
165
|
+
},
|
|
166
|
+
}),
|
|
167
|
+
"ko-KR": mergeMessages({
|
|
168
|
+
root: {
|
|
169
|
+
commandActions: "작업",
|
|
170
|
+
commandSearch: "검색",
|
|
171
|
+
commandAppearance: "모양",
|
|
172
|
+
toggleTheme: "테마 전환",
|
|
173
|
+
},
|
|
174
|
+
settings: {
|
|
175
|
+
title: "설정",
|
|
176
|
+
description: "언어, 워크스페이스, 리소스 및 에이전트 환경설정입니다.",
|
|
177
|
+
languageTitle: "언어",
|
|
178
|
+
languageDescription:
|
|
179
|
+
"인터페이스 언어를 선택하세요. 이 기본 설정은 계정에 저장됩니다.",
|
|
180
|
+
languageLabel: "인터페이스 언어",
|
|
181
|
+
workspaceTitle: "워크스페이스",
|
|
182
|
+
workspaceDescription:
|
|
183
|
+
"Dispatch의 팀 접근 권한과 공유 워크스페이스 리소스를 관리합니다.",
|
|
184
|
+
openTeamSettings: "팀 설정 열기",
|
|
185
|
+
openResourceSettings: "리소스 설정 열기",
|
|
186
|
+
agentTitle: "에이전트 설정",
|
|
187
|
+
agentDescription:
|
|
188
|
+
"오른쪽 사이드바의 에이전트 설정을 열어 모델, API 키, 자동화, 음성 및 기타 제어를 관리합니다.",
|
|
189
|
+
openAgentSettings: "에이전트 설정 열기",
|
|
190
|
+
},
|
|
191
|
+
}),
|
|
192
|
+
"pt-BR": mergeMessages({
|
|
193
|
+
root: {
|
|
194
|
+
commandActions: "Ações",
|
|
195
|
+
commandSearch: "Buscar",
|
|
196
|
+
commandAppearance: "Aparência",
|
|
197
|
+
toggleTheme: "Alternar tema",
|
|
198
|
+
},
|
|
199
|
+
settings: {
|
|
200
|
+
title: "Configurações",
|
|
201
|
+
description:
|
|
202
|
+
"Preferências de idioma, espaço de trabalho, recursos e agente.",
|
|
203
|
+
languageTitle: "Idioma",
|
|
204
|
+
languageDescription:
|
|
205
|
+
"Escolha o idioma da interface. Essa preferência é salva na sua conta.",
|
|
206
|
+
languageLabel: "Idioma da interface",
|
|
207
|
+
workspaceTitle: "Espaço de trabalho",
|
|
208
|
+
workspaceDescription:
|
|
209
|
+
"Gerencie acesso da equipe e recursos compartilhados do Dispatch.",
|
|
210
|
+
openTeamSettings: "Abrir configurações da equipe",
|
|
211
|
+
openResourceSettings: "Abrir configurações de recursos",
|
|
212
|
+
agentTitle: "Configurações do agente",
|
|
213
|
+
agentDescription:
|
|
214
|
+
"Abra as configurações do agente na barra lateral para modelos, chaves de API, automações, voz e outros controles.",
|
|
215
|
+
openAgentSettings: "Abrir configurações do agente",
|
|
216
|
+
},
|
|
217
|
+
}),
|
|
218
|
+
"hi-IN": mergeMessages({
|
|
219
|
+
root: {
|
|
220
|
+
commandActions: "क्रियाएं",
|
|
221
|
+
commandSearch: "खोजें",
|
|
222
|
+
commandAppearance: "रूप",
|
|
223
|
+
toggleTheme: "थीम बदलें",
|
|
224
|
+
},
|
|
225
|
+
settings: {
|
|
226
|
+
title: "सेटिंग्स",
|
|
227
|
+
description: "भाषा, कार्यस्थान, संसाधन और एजेंट प्राथमिकताएं।",
|
|
228
|
+
languageTitle: "भाषा",
|
|
229
|
+
languageDescription:
|
|
230
|
+
"इंटरफ़ेस भाषा चुनें। यह पसंद आपके खाते में सहेजी जाती है।",
|
|
231
|
+
languageLabel: "इंटरफ़ेस भाषा",
|
|
232
|
+
workspaceTitle: "कार्यस्थान",
|
|
233
|
+
workspaceDescription:
|
|
234
|
+
"Dispatch के लिए टीम पहुंच और साझा कार्यस्थान संसाधनों को प्रबंधित करें।",
|
|
235
|
+
openTeamSettings: "टीम सेटिंग्स खोलें",
|
|
236
|
+
openResourceSettings: "संसाधन सेटिंग्स खोलें",
|
|
237
|
+
agentTitle: "एजेंट सेटिंग्स",
|
|
238
|
+
agentDescription:
|
|
239
|
+
"मॉडल, API कुंजियों, ऑटोमेशन, आवाज़ और अन्य एजेंट नियंत्रणों के लिए साइडबार सेटिंग्स खोलें।",
|
|
240
|
+
openAgentSettings: "एजेंट सेटिंग्स खोलें",
|
|
241
|
+
},
|
|
242
|
+
}),
|
|
243
|
+
"ar-SA": mergeMessages({
|
|
244
|
+
root: {
|
|
245
|
+
commandActions: "الإجراءات",
|
|
246
|
+
commandSearch: "بحث",
|
|
247
|
+
commandAppearance: "المظهر",
|
|
248
|
+
toggleTheme: "تبديل السمة",
|
|
249
|
+
},
|
|
250
|
+
settings: {
|
|
251
|
+
title: "الإعدادات",
|
|
252
|
+
description: "تفضيلات اللغة ومساحة العمل والموارد والوكيل.",
|
|
253
|
+
languageTitle: "اللغة",
|
|
254
|
+
languageDescription: "اختر لغة الواجهة. يتم حفظ هذا التفضيل في حسابك.",
|
|
255
|
+
languageLabel: "لغة الواجهة",
|
|
256
|
+
workspaceTitle: "مساحة العمل",
|
|
257
|
+
workspaceDescription:
|
|
258
|
+
"إدارة وصول الفريق وموارد مساحة العمل المشتركة في Dispatch.",
|
|
259
|
+
openTeamSettings: "فتح إعدادات الفريق",
|
|
260
|
+
openResourceSettings: "فتح إعدادات الموارد",
|
|
261
|
+
agentTitle: "إعدادات الوكيل",
|
|
262
|
+
agentDescription:
|
|
263
|
+
"افتح إعدادات الوكيل في الشريط الجانبي لإدارة النموذج ومفاتيح API والأتمتة والصوت وعناصر التحكم الأخرى.",
|
|
264
|
+
openAgentSettings: "فتح إعدادات الوكيل",
|
|
265
|
+
},
|
|
266
|
+
}),
|
|
267
|
+
} satisfies Record<LocaleCode, Messages>;
|
|
@@ -14,10 +14,12 @@ import {
|
|
|
14
14
|
CommandMenu,
|
|
15
15
|
configureTracking,
|
|
16
16
|
createAgentNativeQueryClient,
|
|
17
|
+
getLocaleInitScript,
|
|
17
18
|
getThemeInitScript,
|
|
18
19
|
useCommandMenuShortcut,
|
|
19
20
|
useDbSync,
|
|
20
21
|
appPath,
|
|
22
|
+
useT,
|
|
21
23
|
} from "@agent-native/core/client";
|
|
22
24
|
import { useQueryClient } from "@tanstack/react-query";
|
|
23
25
|
import { IconSun, IconMoon } from "@tabler/icons-react";
|
|
@@ -27,6 +29,7 @@ import type { LinksFunction } from "react-router";
|
|
|
27
29
|
import { dispatchExtensions } from "./dispatch-extensions";
|
|
28
30
|
import changelog from "../CHANGELOG.md?raw";
|
|
29
31
|
import stylesheet from "./global.css?url";
|
|
32
|
+
import { i18nCatalog } from "./i18n";
|
|
30
33
|
|
|
31
34
|
configureTracking({
|
|
32
35
|
getDefaultProps: (_name, properties) => ({
|
|
@@ -40,6 +43,7 @@ export const links: LinksFunction = () => [
|
|
|
40
43
|
];
|
|
41
44
|
|
|
42
45
|
const THEME_INIT_SCRIPT = getThemeInitScript();
|
|
46
|
+
const LOCALE_INIT_SCRIPT = getLocaleInitScript();
|
|
43
47
|
|
|
44
48
|
export function Layout({ children }: { children: React.ReactNode }) {
|
|
45
49
|
return (
|
|
@@ -54,6 +58,11 @@ export function Layout({ children }: { children: React.ReactNode }) {
|
|
|
54
58
|
suppressHydrationWarning
|
|
55
59
|
dangerouslySetInnerHTML={{ __html: THEME_INIT_SCRIPT }}
|
|
56
60
|
/>
|
|
61
|
+
<script
|
|
62
|
+
data-agent-native-locale-init
|
|
63
|
+
suppressHydrationWarning
|
|
64
|
+
dangerouslySetInnerHTML={{ __html: LOCALE_INIT_SCRIPT }}
|
|
65
|
+
/>
|
|
57
66
|
<link rel="manifest" href={appPath("/manifest.json")} />
|
|
58
67
|
<meta name="theme-color" content="#0f172a" />
|
|
59
68
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
@@ -149,6 +158,7 @@ function useThreadDeepLink() {
|
|
|
149
158
|
|
|
150
159
|
function ThemeToggleItem() {
|
|
151
160
|
const { resolvedTheme, setTheme } = useTheme();
|
|
161
|
+
const t = useT();
|
|
152
162
|
const isDark = resolvedTheme === "dark";
|
|
153
163
|
return (
|
|
154
164
|
<CommandMenu.Item
|
|
@@ -156,13 +166,14 @@ function ThemeToggleItem() {
|
|
|
156
166
|
keywords={["theme", "dark", "light", "mode"]}
|
|
157
167
|
>
|
|
158
168
|
{isDark ? <IconSun size={16} /> : <IconMoon size={16} />}
|
|
159
|
-
|
|
169
|
+
{t("root.toggleTheme")}
|
|
160
170
|
</CommandMenu.Item>
|
|
161
171
|
);
|
|
162
172
|
}
|
|
163
173
|
|
|
164
174
|
function AppContent() {
|
|
165
175
|
const [cmdkOpen, setCmdkOpen] = useState(false);
|
|
176
|
+
const t = useT();
|
|
166
177
|
useCommandMenuShortcut(useCallback(() => setCmdkOpen(true), []));
|
|
167
178
|
return (
|
|
168
179
|
<>
|
|
@@ -173,10 +184,12 @@ function AppContent() {
|
|
|
173
184
|
changelog={changelog}
|
|
174
185
|
changelogKey="dispatch"
|
|
175
186
|
>
|
|
176
|
-
<CommandMenu.Group heading="
|
|
177
|
-
<CommandMenu.Item onSelect={() => {}}>
|
|
187
|
+
<CommandMenu.Group heading={t("root.commandActions")}>
|
|
188
|
+
<CommandMenu.Item onSelect={() => {}}>
|
|
189
|
+
{t("root.commandSearch")}
|
|
190
|
+
</CommandMenu.Item>
|
|
178
191
|
</CommandMenu.Group>
|
|
179
|
-
<CommandMenu.Group heading="
|
|
192
|
+
<CommandMenu.Group heading={t("root.commandAppearance")}>
|
|
180
193
|
<ThemeToggleItem />
|
|
181
194
|
</CommandMenu.Group>
|
|
182
195
|
</CommandMenu>
|
|
@@ -193,6 +206,7 @@ export default function Root() {
|
|
|
193
206
|
<AppProviders
|
|
194
207
|
queryClient={queryClient}
|
|
195
208
|
toaster={<Toaster richColors position="bottom-left" closeButton />}
|
|
209
|
+
i18n={{ catalog: i18nCatalog }}
|
|
196
210
|
>
|
|
197
211
|
<AppContent />
|
|
198
212
|
</AppProviders>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Link } from "react-router";
|
|
2
|
+
import {
|
|
3
|
+
ChangelogSettingsCard,
|
|
4
|
+
LanguagePicker,
|
|
5
|
+
openAgentSettings,
|
|
6
|
+
useT,
|
|
7
|
+
} from "@agent-native/core/client";
|
|
8
|
+
import { Button } from "@agent-native/dispatch/components/ui/button";
|
|
9
|
+
import {
|
|
10
|
+
Card,
|
|
11
|
+
CardContent,
|
|
12
|
+
CardDescription,
|
|
13
|
+
CardHeader,
|
|
14
|
+
CardTitle,
|
|
15
|
+
} from "@agent-native/dispatch/components/ui/card";
|
|
16
|
+
import { Label } from "@agent-native/dispatch/components/ui/label";
|
|
17
|
+
import changelog from "../../CHANGELOG.md?raw";
|
|
18
|
+
|
|
19
|
+
export function meta() {
|
|
20
|
+
return [{ title: "Settings - Dispatch" }];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default function SettingsRoute() {
|
|
24
|
+
const t = useT();
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<main className="mx-auto w-full max-w-3xl space-y-6 px-4 py-6 sm:px-6 sm:py-10">
|
|
28
|
+
<div className="space-y-1">
|
|
29
|
+
<h1 className="text-2xl font-semibold tracking-tight">
|
|
30
|
+
{t("settings.title")}
|
|
31
|
+
</h1>
|
|
32
|
+
<p className="text-sm leading-6 text-muted-foreground">
|
|
33
|
+
{t("settings.description")}
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<Card>
|
|
38
|
+
<CardHeader>
|
|
39
|
+
<CardTitle className="text-base">
|
|
40
|
+
{t("settings.languageTitle")}
|
|
41
|
+
</CardTitle>
|
|
42
|
+
<CardDescription>{t("settings.languageDescription")}</CardDescription>
|
|
43
|
+
</CardHeader>
|
|
44
|
+
<CardContent className="max-w-xs space-y-1.5">
|
|
45
|
+
<Label>{t("settings.languageLabel")}</Label>
|
|
46
|
+
<LanguagePicker label={t("settings.languageLabel")} />
|
|
47
|
+
</CardContent>
|
|
48
|
+
</Card>
|
|
49
|
+
|
|
50
|
+
<Card>
|
|
51
|
+
<CardHeader>
|
|
52
|
+
<CardTitle className="text-base">
|
|
53
|
+
{t("settings.workspaceTitle")}
|
|
54
|
+
</CardTitle>
|
|
55
|
+
<CardDescription>
|
|
56
|
+
{t("settings.workspaceDescription")}
|
|
57
|
+
</CardDescription>
|
|
58
|
+
</CardHeader>
|
|
59
|
+
<CardContent className="flex flex-wrap gap-2">
|
|
60
|
+
<Button variant="outline" asChild>
|
|
61
|
+
<Link to="/team">{t("settings.openTeamSettings")}</Link>
|
|
62
|
+
</Button>
|
|
63
|
+
<Button variant="outline" asChild>
|
|
64
|
+
<Link to="/workspace">{t("settings.openResourceSettings")}</Link>
|
|
65
|
+
</Button>
|
|
66
|
+
</CardContent>
|
|
67
|
+
</Card>
|
|
68
|
+
|
|
69
|
+
<Card>
|
|
70
|
+
<CardHeader>
|
|
71
|
+
<CardTitle className="text-base">
|
|
72
|
+
{t("settings.agentTitle")}
|
|
73
|
+
</CardTitle>
|
|
74
|
+
<CardDescription>{t("settings.agentDescription")}</CardDescription>
|
|
75
|
+
</CardHeader>
|
|
76
|
+
<CardContent>
|
|
77
|
+
<Button variant="outline" onClick={() => openAgentSettings()}>
|
|
78
|
+
{t("settings.openAgentSettings")}
|
|
79
|
+
</Button>
|
|
80
|
+
</CardContent>
|
|
81
|
+
</Card>
|
|
82
|
+
|
|
83
|
+
<ChangelogSettingsCard markdown={changelog} />
|
|
84
|
+
</main>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
@@ -66,6 +66,11 @@ el.dataset.selectedId = selectedItem?.id || "";
|
|
|
66
66
|
|
|
67
67
|
**Use configuration-driven rendering** — Extract visual decisions (colors, layouts, sizes) into JSON config files in `data/`. The agent can modify the config (Tier 1) instead of the component source (Tier 2).
|
|
68
68
|
|
|
69
|
+
**Keep localized copy in catalogs** — When editing visible UI copy, labels,
|
|
70
|
+
toasts, empty states, prompts, or formatting, read `internationalization` and
|
|
71
|
+
update `app/i18n/en-US.ts` plus existing locale catalogs instead of leaving new
|
|
72
|
+
inline strings in components.
|
|
73
|
+
|
|
69
74
|
## Don't
|
|
70
75
|
|
|
71
76
|
- Don't modify `.env` files or files containing secrets
|
|
@@ -80,3 +85,4 @@ el.dataset.selectedId = selectedItem?.id || "";
|
|
|
80
85
|
- **actions** — The agent can create or modify actions to add new capabilities
|
|
81
86
|
- **delegate-to-agent** — Self-modification requests come through the agent chat
|
|
82
87
|
- **real-time-sync** — Database writes trigger change events to update the UI
|
|
88
|
+
- **internationalization** — UI copy, language catalogs, locale switching, and RTL-safe edits
|
|
@@ -1,41 +1,48 @@
|
|
|
1
1
|
import { useLocation } from "react-router";
|
|
2
2
|
import { useHeaderTitle, useHeaderActions } from "./HeaderActions";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
AgentToggleButton,
|
|
5
|
+
LanguagePicker,
|
|
6
|
+
useT,
|
|
7
|
+
} from "@agent-native/core/client";
|
|
4
8
|
|
|
5
9
|
const pageTitles: Record<string, string> = {
|
|
6
|
-
"/": "
|
|
7
|
-
"/forms": "
|
|
8
|
-
"/
|
|
10
|
+
"/": "header.forms",
|
|
11
|
+
"/forms": "header.forms",
|
|
12
|
+
"/settings": "header.settings",
|
|
13
|
+
"/team": "header.team",
|
|
9
14
|
};
|
|
10
15
|
|
|
11
16
|
function resolveTitle(pathname: string): string {
|
|
12
17
|
if (pageTitles[pathname]) return pageTitles[pathname];
|
|
13
18
|
|
|
14
19
|
if (pathname.startsWith("/forms/") && pathname.endsWith("/responses")) {
|
|
15
|
-
return "
|
|
20
|
+
return "header.responses";
|
|
16
21
|
}
|
|
17
|
-
if (pathname.startsWith("/forms/")) return "
|
|
18
|
-
if (pathname.startsWith("/extensions")) return "
|
|
22
|
+
if (pathname.startsWith("/forms/")) return "header.form";
|
|
23
|
+
if (pathname.startsWith("/extensions")) return "header.extensions";
|
|
19
24
|
|
|
20
|
-
return "
|
|
25
|
+
return "header.forms";
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
export function Header() {
|
|
24
29
|
const location = useLocation();
|
|
25
30
|
const title = useHeaderTitle();
|
|
26
31
|
const actions = useHeaderActions();
|
|
32
|
+
const t = useT();
|
|
27
33
|
|
|
28
34
|
return (
|
|
29
35
|
<header className="flex h-12 items-center gap-3 border-b border-border bg-background px-4 lg:px-6 shrink-0">
|
|
30
36
|
<div className="flex items-center gap-3 flex-1 min-w-0">
|
|
31
37
|
{title ?? (
|
|
32
38
|
<h1 className="text-lg font-semibold tracking-tight truncate">
|
|
33
|
-
{resolveTitle(location.pathname)}
|
|
39
|
+
{t(resolveTitle(location.pathname))}
|
|
34
40
|
</h1>
|
|
35
41
|
)}
|
|
36
42
|
</div>
|
|
37
43
|
<div className="flex items-center gap-2 shrink-0">
|
|
38
44
|
{actions}
|
|
45
|
+
<LanguagePicker variant="icon" />
|
|
39
46
|
<AgentToggleButton />
|
|
40
47
|
</div>
|
|
41
48
|
</header>
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
focusAgentChat,
|
|
9
9
|
navigateWithAgentChatViewTransition,
|
|
10
10
|
useAgentChatHomeHandoff,
|
|
11
|
+
useT,
|
|
11
12
|
} from "@agent-native/core/client";
|
|
12
13
|
import { InvitationBanner } from "@agent-native/core/client/org";
|
|
13
14
|
import { TAB_ID } from "@/lib/tab-id";
|
|
@@ -26,6 +27,7 @@ interface LayoutProps {
|
|
|
26
27
|
export function Layout({ children }: LayoutProps) {
|
|
27
28
|
const location = useLocation();
|
|
28
29
|
const navigate = useNavigate();
|
|
30
|
+
const t = useT();
|
|
29
31
|
const chatHomeHandoffActive = useAgentChatHomeHandoff({
|
|
30
32
|
storageKey: "forms",
|
|
31
33
|
activePath: location.pathname,
|
|
@@ -70,11 +72,11 @@ export function Layout({ children }: LayoutProps) {
|
|
|
70
72
|
browserTabId={TAB_ID}
|
|
71
73
|
openOnChatRunning={chatHomeHandoffActive}
|
|
72
74
|
onFullscreenRequest={openAskAgentFullscreen}
|
|
73
|
-
emptyStateText="
|
|
75
|
+
emptyStateText={t("agent.emptyState")}
|
|
74
76
|
suggestions={[
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
77
|
+
t("agent.suggestionSurvey"),
|
|
78
|
+
t("agent.suggestionSubmissions"),
|
|
79
|
+
t("agent.suggestionExport"),
|
|
78
80
|
]}
|
|
79
81
|
scope={sidebarScope}
|
|
80
82
|
>
|