@nocobase/app-plugin-agents 2.0.0-beta.6 → 2.0.0-beta.8

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 (220) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +4 -2
  3. package/dist/client/chat/controller.d.ts.map +1 -1
  4. package/dist/client/chat/controller.js +3 -2
  5. package/dist/client/chat/controller.js.map +1 -1
  6. package/dist/client/chat/notices.d.ts +12 -0
  7. package/dist/client/chat/notices.d.ts.map +1 -0
  8. package/dist/client/chat/notices.js +15 -0
  9. package/dist/client/chat/notices.js.map +1 -0
  10. package/dist/client/chat/submissions.d.ts +16 -0
  11. package/dist/client/chat/submissions.d.ts.map +1 -1
  12. package/dist/client/chat/submissions.js +22 -0
  13. package/dist/client/chat/submissions.js.map +1 -1
  14. package/dist/client/chat.d.ts +1 -0
  15. package/dist/client/chat.d.ts.map +1 -1
  16. package/dist/client/chat.js +1 -0
  17. package/dist/client/chat.js.map +1 -1
  18. package/dist/client/components/page-container.js +1 -1
  19. package/dist/client/components/page-container.js.map +1 -1
  20. package/dist/client/components/ui/alert-dialog.d.ts +3 -1
  21. package/dist/client/components/ui/alert-dialog.d.ts.map +1 -1
  22. package/dist/client/components/ui/alert-dialog.js +2 -2
  23. package/dist/client/components/ui/alert-dialog.js.map +1 -1
  24. package/dist/client/locales/de-DE.d.ts.map +1 -1
  25. package/dist/client/locales/de-DE.js +134 -109
  26. package/dist/client/locales/de-DE.js.map +1 -1
  27. package/dist/client/locales/en-US.d.ts +1 -0
  28. package/dist/client/locales/en-US.d.ts.map +1 -1
  29. package/dist/client/locales/en-US.js +3 -2
  30. package/dist/client/locales/en-US.js.map +1 -1
  31. package/dist/client/locales/es-ES.d.ts.map +1 -1
  32. package/dist/client/locales/es-ES.js +211 -186
  33. package/dist/client/locales/es-ES.js.map +1 -1
  34. package/dist/client/locales/fr-FR.d.ts.map +1 -1
  35. package/dist/client/locales/fr-FR.js +143 -118
  36. package/dist/client/locales/fr-FR.js.map +1 -1
  37. package/dist/client/locales/id-ID.d.ts.map +1 -1
  38. package/dist/client/locales/id-ID.js +132 -107
  39. package/dist/client/locales/id-ID.js.map +1 -1
  40. package/dist/client/locales/index.d.ts.map +1 -1
  41. package/dist/client/locales/index.js +2 -0
  42. package/dist/client/locales/index.js.map +1 -1
  43. package/dist/client/locales/ja-JP.d.ts.map +1 -1
  44. package/dist/client/locales/ja-JP.js +215 -190
  45. package/dist/client/locales/ja-JP.js.map +1 -1
  46. package/dist/client/locales/ko-KR.d.ts +5 -0
  47. package/dist/client/locales/ko-KR.d.ts.map +1 -0
  48. package/dist/client/locales/ko-KR.js +1311 -0
  49. package/dist/client/locales/ko-KR.js.map +1 -0
  50. package/dist/client/locales/pt-BR.d.ts.map +1 -1
  51. package/dist/client/locales/pt-BR.js +205 -180
  52. package/dist/client/locales/pt-BR.js.map +1 -1
  53. package/dist/client/locales/ru-RU.d.ts +5 -0
  54. package/dist/client/locales/ru-RU.d.ts.map +1 -0
  55. package/dist/client/locales/ru-RU.js +1341 -0
  56. package/dist/client/locales/ru-RU.js.map +1 -0
  57. package/dist/client/locales/runtimes.en-US.d.ts +1 -0
  58. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  59. package/dist/client/locales/runtimes.en-US.js +3 -2
  60. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  61. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  62. package/dist/client/locales/runtimes.zh-CN.js +3 -2
  63. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  64. package/dist/client/locales/vi-VN.d.ts.map +1 -1
  65. package/dist/client/locales/vi-VN.js +171 -146
  66. package/dist/client/locales/vi-VN.js.map +1 -1
  67. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  68. package/dist/client/locales/zh-CN.js +3 -2
  69. package/dist/client/locales/zh-CN.js.map +1 -1
  70. package/dist/client/locales/zh-TW.d.ts.map +1 -1
  71. package/dist/client/locales/zh-TW.js +148 -123
  72. package/dist/client/locales/zh-TW.js.map +1 -1
  73. package/dist/client/pages/runtimes/quota.d.ts +3 -2
  74. package/dist/client/pages/runtimes/quota.d.ts.map +1 -1
  75. package/dist/client/pages/runtimes/quota.js +8 -3
  76. package/dist/client/pages/runtimes/quota.js.map +1 -1
  77. package/dist/client/pages/runtimes/runner-tools.d.ts.map +1 -1
  78. package/dist/client/pages/runtimes/runner-tools.js +7 -16
  79. package/dist/client/pages/runtimes/runner-tools.js.map +1 -1
  80. package/dist/client/pages/usage/date-range-picker.d.ts.map +1 -1
  81. package/dist/client/pages/usage/date-range-picker.js +3 -1
  82. package/dist/client/pages/usage/date-range-picker.js.map +1 -1
  83. package/dist/database/migrations/.manifest.json +8 -0
  84. package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts +4 -0
  85. package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts.map +1 -0
  86. package/dist/database/migrations/202611070001_ag_run_runner_pin.js +17 -0
  87. package/dist/database/migrations/202611070001_ag_run_runner_pin.js.map +1 -0
  88. package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts +4 -0
  89. package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts.map +1 -0
  90. package/dist/database/migrations/202611080002_ag_run_failure_params.js +17 -0
  91. package/dist/database/migrations/202611080002_ag_run_failure_params.js.map +1 -0
  92. package/dist/package.json +1 -1
  93. package/dist/server/composition.d.ts +2 -0
  94. package/dist/server/composition.d.ts.map +1 -1
  95. package/dist/server/composition.js +1 -1
  96. package/dist/server/composition.js.map +1 -1
  97. package/dist/server/core/agents/agent.service.d.ts +2 -1
  98. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  99. package/dist/server/core/agents/agent.service.js.map +1 -1
  100. package/dist/server/core/agents/agent.store.d.ts +2 -2
  101. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  102. package/dist/server/core/agents/agent.store.js +8 -2
  103. package/dist/server/core/agents/agent.store.js.map +1 -1
  104. package/dist/server/core/brief/brief.d.ts +10 -5
  105. package/dist/server/core/brief/brief.d.ts.map +1 -1
  106. package/dist/server/core/brief/brief.js +36 -13
  107. package/dist/server/core/brief/brief.js.map +1 -1
  108. package/dist/server/core/brief/index.d.ts +1 -1
  109. package/dist/server/core/brief/index.d.ts.map +1 -1
  110. package/dist/server/core/brief/index.js +1 -1
  111. package/dist/server/core/brief/index.js.map +1 -1
  112. package/dist/server/core/runs/claim.d.ts +13 -3
  113. package/dist/server/core/runs/claim.d.ts.map +1 -1
  114. package/dist/server/core/runs/claim.js +203 -36
  115. package/dist/server/core/runs/claim.js.map +1 -1
  116. package/dist/server/core/runs/extensions.d.ts +4 -1
  117. package/dist/server/core/runs/extensions.d.ts.map +1 -1
  118. package/dist/server/core/runs/extensions.js +3 -1
  119. package/dist/server/core/runs/extensions.js.map +1 -1
  120. package/dist/server/core/runs/git-credentials.d.ts.map +1 -1
  121. package/dist/server/core/runs/git-credentials.js +24 -2
  122. package/dist/server/core/runs/git-credentials.js.map +1 -1
  123. package/dist/server/core/runs/identity.d.ts.map +1 -1
  124. package/dist/server/core/runs/identity.js +9 -0
  125. package/dist/server/core/runs/identity.js.map +1 -1
  126. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  127. package/dist/server/core/runs/lifecycle.js +14 -0
  128. package/dist/server/core/runs/lifecycle.js.map +1 -1
  129. package/dist/server/core/runs/ports.d.ts +7 -0
  130. package/dist/server/core/runs/ports.d.ts.map +1 -1
  131. package/dist/server/core/runs/ports.js.map +1 -1
  132. package/dist/server/core/runs/preview.d.ts +1 -4
  133. package/dist/server/core/runs/preview.d.ts.map +1 -1
  134. package/dist/server/core/runs/preview.js +10 -5
  135. package/dist/server/core/runs/preview.js.map +1 -1
  136. package/dist/server/core/runs/quota-wait.d.ts +7 -0
  137. package/dist/server/core/runs/quota-wait.d.ts.map +1 -0
  138. package/dist/server/core/runs/quota-wait.js +56 -0
  139. package/dist/server/core/runs/quota-wait.js.map +1 -0
  140. package/dist/server/core/runs/run-data-purge.d.ts.map +1 -1
  141. package/dist/server/core/runs/run-data-purge.js +1 -0
  142. package/dist/server/core/runs/run-data-purge.js.map +1 -1
  143. package/dist/server/core/runs/run.service.d.ts +13 -0
  144. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  145. package/dist/server/core/runs/run.service.js +84 -3
  146. package/dist/server/core/runs/run.service.js.map +1 -1
  147. package/dist/server/core/runs/run.store.d.ts +2 -0
  148. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  149. package/dist/server/core/runs/run.store.js +3 -0
  150. package/dist/server/core/runs/run.store.js.map +1 -1
  151. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  152. package/dist/server/core/runs/sweeper.js +2 -0
  153. package/dist/server/core/runs/sweeper.js.map +1 -1
  154. package/dist/server/core/runs/transitions.d.ts +1 -0
  155. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  156. package/dist/server/core/runs/transitions.js +15 -1
  157. package/dist/server/core/runs/transitions.js.map +1 -1
  158. package/dist/server/core/runs/workload.d.ts +1 -1
  159. package/dist/server/core/runs/workload.d.ts.map +1 -1
  160. package/dist/server/core/runs/workload.js +19 -4
  161. package/dist/server/core/runs/workload.js.map +1 -1
  162. package/dist/server/kernel/clock.d.ts +2 -0
  163. package/dist/server/kernel/clock.d.ts.map +1 -1
  164. package/dist/server/kernel/clock.js +14 -0
  165. package/dist/server/kernel/clock.js.map +1 -1
  166. package/dist/server/kernel/events.d.ts +4 -1
  167. package/dist/server/kernel/events.d.ts.map +1 -1
  168. package/dist/server/kernel/events.js.map +1 -1
  169. package/dist/server/locales/de-DE.js +3 -3
  170. package/dist/server/locales/de-DE.js.map +1 -1
  171. package/dist/server/locales/es-ES.js +6 -6
  172. package/dist/server/locales/es-ES.js.map +1 -1
  173. package/dist/server/locales/fr-FR.js +4 -4
  174. package/dist/server/locales/fr-FR.js.map +1 -1
  175. package/dist/server/locales/id-ID.js +5 -5
  176. package/dist/server/locales/id-ID.js.map +1 -1
  177. package/dist/server/locales/index.d.ts.map +1 -1
  178. package/dist/server/locales/index.js +2 -0
  179. package/dist/server/locales/index.js.map +1 -1
  180. package/dist/server/locales/ja-JP.d.ts.map +1 -1
  181. package/dist/server/locales/ja-JP.js +6 -6
  182. package/dist/server/locales/ja-JP.js.map +1 -1
  183. package/dist/server/locales/ko-KR.d.ts +5 -0
  184. package/dist/server/locales/ko-KR.d.ts.map +1 -0
  185. package/dist/server/locales/ko-KR.js +59 -0
  186. package/dist/server/locales/ko-KR.js.map +1 -0
  187. package/dist/server/locales/pt-BR.js +6 -6
  188. package/dist/server/locales/pt-BR.js.map +1 -1
  189. package/dist/server/locales/ru-RU.d.ts +5 -0
  190. package/dist/server/locales/ru-RU.d.ts.map +1 -0
  191. package/dist/server/locales/ru-RU.js +59 -0
  192. package/dist/server/locales/ru-RU.js.map +1 -0
  193. package/dist/server/locales/vi-VN.js +6 -6
  194. package/dist/server/locales/vi-VN.js.map +1 -1
  195. package/dist/server/locales/zh-TW.d.ts.map +1 -1
  196. package/dist/server/locales/zh-TW.js +6 -6
  197. package/dist/server/locales/zh-TW.js.map +1 -1
  198. package/dist/server/routes/admin.d.ts.map +1 -1
  199. package/dist/server/routes/admin.js +27 -1
  200. package/dist/server/routes/admin.js.map +1 -1
  201. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  202. package/dist/server/routes/runners/admin.js +3 -3
  203. package/dist/server/routes/runners/admin.js.map +1 -1
  204. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  205. package/dist/server/routes/runners/runner.js +13 -22
  206. package/dist/server/routes/runners/runner.js.map +1 -1
  207. package/dist/server/routes/schemas.d.ts +4 -0
  208. package/dist/server/routes/schemas.d.ts.map +1 -1
  209. package/dist/server/routes/schemas.js +17 -4
  210. package/dist/server/routes/schemas.js.map +1 -1
  211. package/dist/server/runners/runner.service.d.ts.map +1 -1
  212. package/dist/server/runners/runner.service.js +17 -5
  213. package/dist/server/runners/runner.service.js.map +1 -1
  214. package/dist/shared/briefs.d.ts +2 -6
  215. package/dist/shared/briefs.d.ts.map +1 -1
  216. package/dist/shared/runs.d.ts +4 -0
  217. package/dist/shared/runs.d.ts.map +1 -1
  218. package/dist/shared/runs.js.map +1 -1
  219. package/package.json +12 -12
  220. package/skills/nocobase-app-plugin-agents/references/runners.md +1 -1
@@ -1,5 +1,3 @@
1
- import runtimesEnUS from './runtimes.en-US.js';
2
- import chatEnUS from './chat.en-US.js';
3
1
  const viVN = {
4
2
  modelSuggestions: {
5
3
  design: 'Suy luận mạnh nhất: đề xuất, kiến trúc, điều tra vấn đề khó và đánh giá thay đổi quan trọng; cũng triển khai thông thường và thay đổi nhiều gói.',
@@ -55,7 +53,7 @@ const viVN = {
55
53
  title: 'Hủy các thay đổi chưa được lưu?',
56
54
  },
57
55
  errors: {
58
- boundRunnerIncompatible: 'Runner này không thể chạy Agent đã chọn. Hãy đổi runner hoặc bắt đầu cuộc trò chuyện mới.',
56
+ boundRunnerIncompatible: 'Môi trường này không thể chạy Agent đã chọn. Hãy đổi môi trường để tiếp tục.',
59
57
  CONFLICT: 'Trong lúc đó, nó đã thay đổi. Tải lại và thử lại.',
60
58
  REVISION_CONFLICT: 'Trong lúc đó, nó đã thay đổi. Tải lại và thử lại.',
61
59
  FORBIDDEN: 'Bạn không được phép làm điều này.',
@@ -100,26 +98,26 @@ const viVN = {
100
98
  agents: {
101
99
  unavailableNow: 'Hiện không khả dụng',
102
100
  title: 'Tác nhân',
103
- description: 'Thêm tác nhân từ các mô hình do trình chạy báo cáo. Lead Agent giao từng bước của nhiệm vụ cho tác nhân có mô tả phù hợp.',
104
- fromRunners: 'Đại lý từ trình chạy',
101
+ description: 'Thêm Agent từ các mô hình mà môi trường chạy báo cáo. Lead Agent giao từng bước của nhiệm vụ cho Agent có mô tả phù hợp.',
102
+ fromRunners: 'Đại lý từ môi trường chạy',
105
103
  display: {
106
104
  search: 'Tìm kiếm người mẫu hoặc nhà cung cấp',
107
105
  select: 'Chọn {{name}}',
108
106
  showDisabled: 'Hiện đã tắt',
109
107
  hideDisabled: 'Ẩn đã tắt',
110
108
  },
111
- filterLabel: 'Hiển thị đại lý',
109
+ filterLabel: 'Hiển thị Agents',
112
110
  filters: {
113
111
  all: 'Tất cả {{count}}',
114
112
  enabled: 'Đã bật {{count}}',
115
- unreported: 'Không có trình chạy {{count}}',
113
+ unreported: 'Không có môi trường chạy {{count}}',
116
114
  },
117
- loadFailed: 'Không thể tải các đại lý',
115
+ loadFailed: 'Không thể tải các Agents',
118
116
  loadMore: 'Tải thêm',
119
- emptyTitle: 'Chưa có đại lý',
120
- emptyDescription: 'Kết nối trình chạy có công cụ lập trình đã đăng nhập, rồi thêm tác nhân từ “Các mô hình khả dụng”.',
121
- noneInFilter: 'Không có đại lý ở đây.',
122
- howToAdd: 'Để thêm tác nhân, hãy cài đặt công cụ lập trình trên trình chạy và đăng nhập để sử dụng mô hình khả dụng. Sau khi trình chạy báo cáo mô hình, hãy thêm tác nhân từ “Các mô hình khả dụng” và mô tả thế mạnh của tác nhân. Tác nhân được bật ngay khi thêm. Tác nhân chỉ có trên trình chạy cá nhân chỉ xử lý các nhiệm vụ do chủ sở hữu trình chạy đó bắt đầu.',
117
+ emptyTitle: 'Chưa có Agents',
118
+ emptyDescription: 'Kết nối môi trường chạy có công cụ lập trình đã đăng nhập, rồi thêm Agent từ “Các mô hình khả dụng”.',
119
+ noneInFilter: 'Không có Agent ở đây.',
120
+ howToAdd: 'Để thêm Agent, hãy cài công cụ lập trình trên một môi trường chạy và đăng nhập một mô hình bạn được dùng: khi môi trường chạy báo cáo nó, hãy thêm từ Mô hình khả dụng và ghi rõ nó giỏi việc gì. Agent chỉ có trên môi trường chạy cá nhân chỉ làm các nhiệm vụ do chủ sở hữu của chúng khởi động.',
123
121
  goodAtMissing: 'Chưa viết',
124
122
  columns: {
125
123
  agent: 'Tác nhân',
@@ -129,21 +127,21 @@ const viVN = {
129
127
  state: 'Trạng thái',
130
128
  },
131
129
  where: {
132
- none: 'Không có trình chạy',
133
- team_one: 'Á quân đội {{count}}',
134
- team_other: 'Vận động viên đội {{count}}',
135
- personal_one: 'Trình chạy cá nhân {{count}} trực tuyến',
136
- personal_other: 'Máy chạy bộ cá nhân {{count}} trực tuyến',
130
+ none: 'Không có môi trường chạy',
131
+ team_one: '{{count}} môi trường chạy của nhóm',
132
+ team_other: '{{count}} môi trường chạy của nhóm',
133
+ personal_one: '{{count}} môi trường chạy cá nhân đang trực tuyến',
134
+ personal_other: '{{count}} môi trường chạy cá nhân đang trực tuyến',
137
135
  both: 'Nhóm {{team}} · {{personal}} cá nhân',
138
136
  names: '{{names}}',
139
- noneOnline: 'Hiện tại không có trình chạy nào trực tuyến',
137
+ noneOnline: 'Hiện tại không có môi trường chạy nào trực tuyến',
140
138
  personalOnly: 'Chỉ dành cho vận động viên chạy bộ cá nhân',
141
139
  lastReported: '{{when}} được báo cáo lần cuối',
142
140
  },
143
141
  state: {
144
142
  enabled: 'Đã bật',
145
143
  disabled: 'Đã tắt',
146
- unreported: 'Không có trình chạy',
144
+ unreported: 'Không có môi trường chạy',
147
145
  },
148
146
  effort: {
149
147
  default: 'Mặc định của công cụ',
@@ -159,11 +157,11 @@ const viVN = {
159
157
  enable: {
160
158
  reportedBy_one: 'Á hậu {{count}} tường thuật trực tuyến: {{names}}.',
161
159
  reportedBy_other: 'Báo cáo của các vận động viên {{count}} trực tuyến: {{names}}.',
162
- noRunnerNow: 'Hiện tại không có trình chạy nào có nó trực tuyến.',
163
- goodAtHint: 'Lead Agent quyết định những gì sẽ giao cho người đại diện này bằng những lời này. Nói những gì nó phù hợp và những gì nó không.',
160
+ noRunnerNow: 'Hiện tại không có môi trường chạy nào có nó trực tuyến.',
161
+ goodAtHint: 'Lead Agent quyết định những gì sẽ giao cho Agent này bằng những lời này. Nói những gì nó phù hợp và những gì nó không.',
164
162
  goodAtRequired: 'Viết ra nó giỏi về cái gì trước khi kích hoạt nó.',
165
163
  effortHint: 'Lead Agent không thể thay đổi nó khi bàn giao công việc.',
166
- personalOnly: 'Chỉ những trình chạy bộ cá nhân mới có nó: Lead Agent giao nó chỉ giải quyết các vấn đề mà chủ sở hữu của họ bắt đầu.',
164
+ personalOnly: 'Chỉ môi trường chạy cá nhân có nó: Lead Agent chỉ giao cho nó các nhiệm vụ do chủ sở hữu của chúng khởi động.',
167
165
  },
168
166
  edit: {
169
167
  button: 'Chỉnh sửa',
@@ -215,32 +213,32 @@ const viVN = {
215
213
  },
216
214
  agentTypes: {
217
215
  label: 'Loại tác nhân',
218
- question: 'Đại lý kiểu gì thế?',
216
+ question: 'Agent kiểu gì thế?',
219
217
  online: 'Trực tuyến',
220
218
  runner: 'Trình chạy',
221
- onlineHint: 'Câu trả lời trong vài giây trên máy chủ thông qua dịch vụ mẫu. Không cần thời gian chạy; nó không thể chạm vào mã.',
222
- runnerHint: 'Điều khiển công cụ mã hóa trong thời gian chạy và hoạt động trong thư mục đang hoạt động: mã, tệp, lệnh.',
223
- immutable: 'Một đại lý giữ nguyên loại của nó; tạo một tác nhân khác cho loại khác.',
219
+ onlineHint: 'Câu trả lời trong vài giây trên máy chủ thông qua dịch vụ mẫu. Không cần môi trường chạy; nó không thể chạm vào mã.',
220
+ runnerHint: 'Điều khiển công cụ mã hóa trong môi trường chạy và hoạt động trong thư mục đang hoạt động: mã, tệp, lệnh.',
221
+ immutable: 'Một Agent giữ nguyên loại của nó; tạo một Agent khác cho loại khác.',
224
222
  onServer: 'Trên máy chủ',
225
223
  filterAll: 'Tất cả các loại',
226
- noneOfType: 'Không có đại lý thuộc loại này.',
224
+ noneOfType: 'Không có Agent thuộc loại này.',
227
225
  },
228
226
  agentSkills: {
229
227
  title: 'Kỹ năng',
230
- description: 'Hướng dẫn sử dụng mà tác nhân đọc khi một nhiệm vụ phù hợp với mô tả của họ. Được đặt trong thư mục làm việc của nó trước mỗi lần chạy.',
228
+ description: 'Hướng dẫn sử dụng mà Agent đọc khi một nhiệm vụ phù hợp với mô tả của họ. Được đặt trong thư mục làm việc của nó trước mỗi lần chạy.',
231
229
  manage: 'Quản lý kỹ năng',
232
230
  placeholder: 'Chọn kỹ năng',
233
231
  empty: 'Chưa có kỹ năng.',
234
232
  save: 'Lưu kỹ năng',
235
- descriptionOnline: 'Hướng dẫn tác nhân đọc khi tác vụ khớp với mô tả của họ, trong hộp cát chỉ đọc trên máy chủ.',
236
- onlineScripts: 'Các tập lệnh không được thực thi cho các tác nhân trực tuyến: tác nhân có thể đọc chúng chứ không thể chạy chúng.',
233
+ descriptionOnline: 'Hướng dẫn Agent đọc khi tác vụ khớp với mô tả của họ, trong hộp cát chỉ đọc trên máy chủ.',
234
+ onlineScripts: 'Các tập lệnh không được thực thi cho các Agents trực tuyến: Agent có thể đọc chúng chứ không thể chạy chúng.',
237
235
  skippedScripts: ': {{paths}}',
238
236
  pathSeparator: ', ',
239
237
  },
240
238
  brief: {
241
239
  preview: 'Xem trước lời nhắc đầy đủ',
242
240
  previewTitle: 'Xem trước lời nhắc đầy đủ',
243
- previewDescription: 'Thật là một hành động của đặc vụ này sẽ được gửi đi bây giờ, với một chủ đề bịa đặt. Không có gì được xếp hàng.',
241
+ previewDescription: 'Thật là một hành động của Agent này sẽ được gửi đi bây giờ, với một chủ đề bịa đặt. Không có gì được xếp hàng.',
244
242
  scenario: 'Kịch bản',
245
243
  sample: 'Về một chủ đề bịa đặt: {{subject}}. Các giá trị được đánh dấu [mẫu] được tạo thành.',
246
244
  previewFailed: 'Không thể hiển thị lời nhắc đầy đủ.',
@@ -249,13 +247,13 @@ const viVN = {
249
247
  rendered: 'Kết xuất',
250
248
  raw: 'Nguyên',
251
249
  platform: 'Các quy tắc và nhiệm vụ của nền tảng · về các ký tự {{size}} (tiếng Anh)',
252
- platformNote: 'Quy tắc nền tảng được gửi bằng tiếng Anh; đại lý vẫn trả lời bằng ngôn ngữ của bạn.',
250
+ platformNote: 'Quy tắc nền tảng được gửi bằng tiếng Anh; Agent vẫn trả lời bằng ngôn ngữ của bạn.',
253
251
  agentPrompt: 'Lời nhắc của đại lý (do bạn viết)',
254
- noAgentPrompt: 'Tác nhân này không có lời nhắc riêng.',
252
+ noAgentPrompt: 'Agent này không có lời nhắc riêng.',
255
253
  firstMessage: 'Tin nhắn đầu tiên',
256
254
  empty: 'Trống rỗng',
257
- previewPlaceholders: 'Các ghi chú trong ngoặc về thời gian chạy được điền vào bởi thời gian chạy chạy nó: các thư mục làm việc của nó và lời nhắc khởi tạo của các thư mục mà nó vừa chuẩn bị.',
258
- placeholders: 'Trình giữ chỗ {{runner.…}} được điền vào bởi thời gian chạy chạy nó: các thư mục làm việc của nó và lời nhắc khởi tạo của các thư mục mà nó vừa chuẩn bị.',
255
+ previewPlaceholders: 'Các ghi chú trong ngoặc về môi trường chạy được điền vào bởi môi trường chạy chạy nó: các thư mục làm việc của nó và lời nhắc khởi tạo của các thư mục mà nó vừa chuẩn bị.',
256
+ placeholders: 'Trình giữ chỗ {{runner.…}} được điền vào bởi môi trường chạy chạy nó: các thư mục làm việc của nó và lời nhắc khởi tạo của các thư mục mà nó vừa chuẩn bị.',
259
257
  layers: {
260
258
  system: 'Quy tắc',
261
259
  task: 'Tác vụ',
@@ -266,7 +264,7 @@ const viVN = {
266
264
  },
267
265
  envVars: {
268
266
  title: 'Biến môi trường',
269
- description: 'Được chuyển đến công cụ mã hóa trong mỗi lần chạy và được ẩn trong các bản ghi lần chạy; các giá trị không được hiển thị lại sau khi lưu. Bất kỳ ai có thể sử dụng tác nhân dùng chung đều có thể nhận các giá trị này trên máy tính của riêng họ; đánh dấu các bí mật có rủi ro cao "Chỉ thời gian chạy của nhóm".',
267
+ description: 'Được chuyển đến công cụ mã hóa trong mỗi lần chạy và được ẩn trong các bản ghi lần chạy; các giá trị không được hiển thị lại sau khi lưu. Bất kỳ ai có thể sử dụng Agent dùng chung đều có thể nhận các giá trị này trên máy tính của riêng họ; đánh dấu các bí mật có rủi ro cao "Chỉ môi trường chạy của nhóm".',
270
268
  add: 'Thêm biến',
271
269
  addTitle: 'Thêm biến môi trường',
272
270
  editTitle: 'Thay thế {{name}}',
@@ -276,13 +274,13 @@ const viVN = {
276
274
  value: 'Giá trị',
277
275
  valueTooLong: 'Giá trị lớn hơn 8 KB.',
278
276
  keepValueHint: 'Để trống để giữ giá trị hiện tại.',
279
- teamRunnersOnly: 'Chỉ thời gian chạy của nhóm',
280
- teamRunnersOnlyHint: 'Nếu không có nó, một lần chạy sẽ gửi giá trị đến thời gian chạy thực hiện nó, bao gồm cả thời gian chạy cá nhân của bất kỳ ai có thể sử dụng tác nhân. Với nó, chỉ có thời gian chạy nhóm mới thực hiện các lần chạy có biến này.',
281
- teamRunnersOnlyBadge: 'Chỉ thời gian chạy của nhóm',
282
- fromRunner: 'Lấy từ thời gian chạy',
283
- fromRunnerHint: 'Không có giá trị nào được giữ ở đây: thời gian chạy thực hiện một lần chạy cung cấp giá trị đó từ máy của chính nó, được đặt ở đó bằng {{command}} hoặc được truyền bằng `--pass-env`. Một thời gian chạy không cung cấp nó sẽ không chạy được trước khi bắt đầu.',
284
- fromRunnerBadge: 'Từ thời gian chạy',
285
- valueRequired: 'Nhập một giá trị hoặc tiếp tục lấy giá trị đó từ thời gian chạy.',
277
+ teamRunnersOnly: 'Chỉ môi trường chạy của nhóm',
278
+ teamRunnersOnlyHint: 'Nếu không có nó, một lần chạy sẽ gửi giá trị đến môi trường chạy thực hiện nó, bao gồm cả môi trường chạy cá nhân của bất kỳ ai có thể sử dụng Agent. Với nó, chỉ có môi trường chạy nhóm mới thực hiện các lần chạy có biến này.',
279
+ teamRunnersOnlyBadge: 'Chỉ môi trường chạy của nhóm',
280
+ fromRunner: 'Lấy từ môi trường chạy',
281
+ fromRunnerHint: 'Không có giá trị nào được giữ ở đây: môi trường chạy thực hiện một lần chạy cung cấp giá trị đó từ máy của chính nó, được đặt ở đó bằng {{command}} hoặc được truyền bằng `--pass-env`. Một môi trường chạy không cung cấp nó sẽ không chạy được trước khi bắt đầu.',
282
+ fromRunnerBadge: 'Từ môi trường chạy',
283
+ valueRequired: 'Nhập một giá trị hoặc tiếp tục lấy giá trị đó từ môi trường chạy.',
286
284
  empty: 'Không có biến môi trường.',
287
285
  scope: 'Phạm vi',
288
286
  updated: 'Đã cập nhật',
@@ -322,7 +320,7 @@ const viVN = {
322
320
  },
323
321
  scopeVariables: {
324
322
  title: 'Các biến và bí mật',
325
- description: 'Trao cho mọi đặc vụ làm việc ở đây. Các biến cụ thể hơn (của thư mục làm việc, sau đó của tác nhân) sẽ vượt qua được những biến này.',
323
+ description: 'Trao cho mọi Agent làm việc ở đây. Các biến cụ thể hơn (của thư mục làm việc, sau đó của Agent) sẽ vượt qua được những biến này.',
326
324
  },
327
325
  scopes: {
328
326
  workdir: 'Thư mục làm việc',
@@ -334,7 +332,7 @@ const viVN = {
334
332
  usage: {
335
333
  otherUse: {
336
334
  title: 'Sử dụng mô hình khác',
337
- description: 'Mô hình gọi các hoạt động tác nhân bên ngoài, chẳng hạn như lập chỉ mục và tìm kiếm cơ sở kiến thức.',
335
+ description: 'Mô hình gọi các hoạt động Agent bên ngoài, chẳng hạn như lập chỉ mục và tìm kiếm cơ sở kiến thức.',
338
336
  purpose: 'Sử dụng',
339
337
  source: 'Được hỏi bởi',
340
338
  model: 'Mô hình',
@@ -347,7 +345,7 @@ const viVN = {
347
345
  },
348
346
  },
349
347
  title: 'Mức sử dụng',
350
- description: 'Đại lý nào đang chạy đã được sử dụng và giá của chúng ở mức giá mẫu hiện tại.',
348
+ description: 'Agent nào đang chạy đã được sử dụng và giá của chúng ở mức giá mẫu hiện tại.',
351
349
  loadFailed: 'Không thể tải việc sử dụng',
352
350
  groupBy: 'Nhóm theo',
353
351
  groupByValue: 'Nhóm bởi {{group}}',
@@ -369,7 +367,7 @@ const viVN = {
369
367
  filters: {
370
368
  allGroups: 'Tất cả: {{group}}',
371
369
  agent: 'Tác nhân',
372
- allAgents: 'Tất cả đại lý',
370
+ allAgents: 'Tất cả Agents',
373
371
  person: 'Bị đánh thức bởi',
374
372
  allPeople: 'Mọi người',
375
373
  range: 'Phạm vi ngày',
@@ -404,7 +402,7 @@ const viVN = {
404
402
  },
405
403
  defaultSkills: {
406
404
  title: 'Kỹ năng mặc định',
407
- description: 'Mọi đặc vụ làm việc ở đây đều có những kỹ năng này.',
405
+ description: 'Mọi Agent làm việc ở đây đều có những kỹ năng này.',
408
406
  save: 'Lưu kỹ năng',
409
407
  saved: 'Đã lưu các kỹ năng mặc định.',
410
408
  },
@@ -421,7 +419,7 @@ const viVN = {
421
419
  filters: {
422
420
  agent: 'Tác nhân',
423
421
  status: 'Trạng thái',
424
- allAgents: 'Tất cả đại lý',
422
+ allAgents: 'Tất cả Agents',
425
423
  allStatuses: 'Tất cả trạng thái',
426
424
  },
427
425
  noMatch: 'Không có lượt chạy nào phù hợp với các bộ lọc này.',
@@ -434,7 +432,7 @@ const viVN = {
434
432
  retried: 'Lượt chạy được đưa vào hàng đợi trở lại',
435
433
  viewBrief: 'Xem toàn bộ lời nhắc',
436
434
  briefTitle: 'Lời nhắc đầy đủ',
437
- briefDescription: 'Những gì đại lý đã được thông báo khi lần chạy này được yêu cầu lần cuối.',
435
+ briefDescription: 'Những gì Agent đã được thông báo khi lần chạy này được yêu cầu lần cuối.',
438
436
  briefOf: 'Thử {{attempt}}, đã xác nhận {{time}}',
439
437
  briefUnavailable: 'Không có lời nhắc đầy đủ cho lần chạy này.',
440
438
  processDataCleared: 'Dữ liệu quá trình chạy đã bị xóa theo chính sách lưu giữ.',
@@ -442,7 +440,7 @@ const viVN = {
442
440
  workspaceReset: {
443
441
  button: 'Làm sạch thư mục làm việc',
444
442
  title: 'Làm sạch thư mục làm việc?',
445
- description: 'Lần chạy tiếp theo bắt đầu từ lần thanh toán mới và được đưa ra lời nhắc khởi tạo lại. Những thay đổi không được đẩy sẽ bị mất trong thời gian chạy đó. Một thư mục được sử dụng tại chỗ sẽ không bao giờ bị xóa.',
443
+ description: 'Lần chạy tiếp theo bắt đầu từ lần thanh toán mới và được đưa ra lời nhắc khởi tạo lại. Những thay đổi không được đẩy sẽ bị mất trong môi trường chạy đó. Một thư mục được sử dụng tại chỗ sẽ không bao giờ bị xóa.',
446
444
  confirm: 'Sạch sẽ',
447
445
  done: 'Lần chạy tiếp theo bắt đầu từ lần thanh toán mới.',
448
446
  },
@@ -478,7 +476,7 @@ const viVN = {
478
476
  transcript: {
479
477
  title: 'Bản ghi lượt chạy',
480
478
  notFound: 'Hoạt động này không tồn tại.',
481
- waiting: 'Đang chờ đại lý bắt đầu…',
479
+ waiting: 'Đang chờ Agent bắt đầu…',
482
480
  empty: 'Lần chạy này không ghi nhận sự kiện nào.',
483
481
  fetchFailed: 'Không thể tìm nạp sự kiện mới. Đang thử lại…',
484
482
  expand: 'Hiển thị tất cả',
@@ -486,10 +484,10 @@ const viVN = {
486
484
  summary_one: 'Đã tạo sự kiện {{created}} · {{count}}',
487
485
  summary_other: 'Đã tạo sự kiện {{created}} · {{count}}',
488
486
  took: 'lấy {{duration}}',
489
- pendingInputs_one: '{{count}} bình luận chờ đại lý',
490
- pendingInputs_other: '{{count}} bình luận chờ đại lý',
491
- inputDelivered_one: 'Giao cho đại lý',
492
- inputDelivered_other: 'Đầu vào {{count}} được gửi tới đại lý',
487
+ pendingInputs_one: '{{count}} bình luận chờ Agent',
488
+ pendingInputs_other: '{{count}} bình luận chờ Agent',
489
+ inputDelivered_one: 'Giao cho Agent',
490
+ inputDelivered_other: 'Đầu vào {{count}} được gửi tới Agent',
493
491
  tokens: 'Đầu vào mã thông báo {{input}}, đầu ra {{output}}',
494
492
  kinds: {
495
493
  text: 'Tác nhân',
@@ -513,29 +511,30 @@ const viVN = {
513
511
  leaseExpired: 'Thời gian chạy đã ngừng báo cáo.',
514
512
  startTimeout: 'Thời gian chạy không bắt đầu chạy đúng lúc.',
515
513
  cancelled: 'Đã hủy.',
516
- idleTimeout: 'Đại lý ngừng tiến triển.',
514
+ idleTimeout: 'Agent ngừng tiến triển.',
517
515
  setupFailed: 'Không thể chuẩn bị được cuộc chạy.',
518
516
  cliUnavailable: 'Thời gian chạy không thể cài đặt ứng dụng CLI.',
519
517
  workspaceBusy: 'Thư mục làm việc đang bận; chờ đợi một nỗ lực khác.',
520
518
  checkoutFailed: 'Việc kiểm tra kho lưu trữ không thành công.',
521
- toolAuth: 'Công cụ mã hóa không được đăng nhập trong thời gian chạy.',
519
+ toolAuth: 'Công cụ mã hóa không được đăng nhập trong môi trường chạy.',
522
520
  toolQuota: 'Công cụ mã hóa đã hết hạn ngạch.',
521
+ sessionUnavailable: 'Không thể tiếp tục phiên ban đầu của công cụ lập trình.',
523
522
  toolRateLimit: 'Công cụ mã hóa bị giới hạn tốc độ.',
524
523
  toolNetwork: 'Công cụ mã hóa không thể tiếp cận dịch vụ của nó.',
525
524
  toolProcess: 'Công cụ mã hóa thoát bất ngờ.',
526
525
  contextOverflow: 'Cuộc trò chuyện kéo dài quá lâu đối với người mẫu.',
527
526
  delegatedQueueTimeout: 'Hết thời gian xếp hàng đại biểu; rút tiền',
528
- queuedExpired: 'Không có thời gian chạy nào được thực hiện kịp thời.',
529
- modelUnavailable: 'Không có mô hình của đại lý.',
530
- stepLimit: 'Nhân viên gọi tool quá nhiều lần mà không trả lời.',
531
- policyRefused: 'Không có chính sách nào của thời gian chạy cho phép nó thực hiện công việc này.',
527
+ queuedExpired: 'Không có môi trường chạy nào được thực hiện kịp thời.',
528
+ modelUnavailable: 'Không có mô hình của Agent.',
529
+ stepLimit: 'Agent gọi tool quá nhiều lần mà không trả lời.',
530
+ policyRefused: 'Không có chính sách nào của môi trường chạy cho phép nó thực hiện công việc này.',
532
531
  prepareNetwork: 'Thời gian chạy không thể tiếp cận máy chủ lưu trữ trong khi chuẩn bị chạy.',
533
- repoAccessUnavailable: 'Chứng chỉ của kho lưu trữ không thể được cấp ngay bây giờ; việc chạy sẽ được thử lại.',
532
+ repoAccessUnavailable: 'Tạm thời không thể truy cập kho mã.',
534
533
  repoAccessDenied: 'Ứng dụng sẽ không cấp thông tin xác thực cho một trong các kho lưu trữ của lần chạy.',
535
534
  unknown: 'Việc chạy không thành công.',
536
535
  },
537
536
  runtimes: {
538
- pathHint: runtimesEnUS.runtimes.pathHint,
537
+ pathHint: 'Runner tìm công cụ lập trình bằng PATH của chính nó. Trong terminal mà which codex / which claude hoạt động, hãy chạy lại nocobase-runner service install và khởi động lại dịch vụ (hoặc chạy lại nocobase-runner start) để nó nhận đúng PATH.',
539
538
  quota: {
540
539
  workspaceStatus: {
541
540
  active: 'Công việc vẫn tiếp tục',
@@ -561,13 +560,13 @@ const viVN = {
561
560
  since: 'kể từ {{time}}',
562
561
  marks_one: 'Dấu hạn ngạch {{count}}',
563
562
  marks_other: 'Dấu hạn ngạch {{count}}',
564
- queueHint: 'Một đại lý đạt hạn ngạch vẫn có thể được chọn. Công việc sẽ xếp hàng với thời hạn chờ đợi hiện có.',
563
+ queueHint: 'Một Agent đạt hạn ngạch vẫn có thể được chọn. Công việc sẽ xếp hàng với thời hạn chờ đợi hiện có.',
565
564
  partial: 'Chạy trên {{available}} · {{blocked}} theo hạn ngạch',
566
565
  workspaceSize: 'Kích thước không gian làm việc: {{value}}',
567
566
  providers_one: 'Nhà cung cấp {{count}} đạt hạn ngạch',
568
567
  providers_other: 'Nhà cung cấp {{count}} theo hạn ngạch',
569
568
  runColumns: {
570
- issue: 'Vấn đề/cuộc trò chuyện',
569
+ issue: 'Nhiệm vụ / cuộc trò chuyện',
571
570
  agent: 'Tác nhân',
572
571
  status: 'Trạng thái',
573
572
  started: 'Đã bắt đầu',
@@ -602,12 +601,13 @@ const viVN = {
602
601
  resets: 'Đặt lại {{time}}',
603
602
  near: 'Gần đến giới hạn',
604
603
  clear: 'Xóa',
605
- clearMark: 'Đánh dấu rõ ràng',
606
- confirm: 'Xóa dấu này? {{target}} hoạt động trở lại.',
604
+ clearMark: 'Xóa dấu',
605
+ confirmTitle: 'Xóa dấu hạn ngạch của {{target}}?',
606
+ confirm: 'Chỉ xóa sau khi xác nhận hạn ngạch đã được khôi phục. {{target}} nhận việc trở lại ngay; nếu hạn ngạch vẫn hết, lần chạy tiếp theo sẽ đánh dấu lại.',
607
607
  observed: '{{time}} được báo cáo lần cuối',
608
608
  usedPercent: '{{percent}}% đã sử dụng',
609
609
  ok: 'Được rồi',
610
- hint: 'Thời gian đặt lại đã biết sẽ tự động khôi phục tính đủ điều kiện. Đối với các lần đặt lại không xác định, hãy khôi phục hạn ngạch và xóa dấu. Chỉ chủ sở hữu thời gian chạy và quản trị viên mới có thể xóa điểm.',
610
+ hint: 'Dấu tự xóa vào thời điểm đặt lại đã biết, hoặc khi công cụ báo lại còn hạn ngạch. Chỉ xóa thủ công sau khi xác nhận hạn ngạch đã được khôi phục. Chỉ chủ sở hữu môi trường chạy và quản trị viên mới có thể xóa dấu.',
611
611
  },
612
612
  workspaces: {
613
613
  paused: 'Công việc mới bị tạm dừng cho đến khi dung lượng ổ đĩa được phục hồi. Các hoạt động hiện tại vẫn tiếp tục.',
@@ -638,7 +638,7 @@ const viVN = {
638
638
  settled: 'Công việc kết thúc; cần phải kiểm tra dọn dẹp cục bộ',
639
639
  active: 'Công việc vẫn tiếp tục',
640
640
  runNotFound: 'Không thể xác nhận: không tìm thấy chạy',
641
- ownershipUnknown: 'Không thể xác nhận: không thể xác minh quyền sở hữu của trình chạy',
641
+ ownershipUnknown: 'Không thể xác nhận: không thể xác minh quyền sở hữu của môi trường chạy',
642
642
  ambiguousSubject: 'Không thể xác nhận: khóa chủ đề không rõ ràng',
643
643
  bindingUnavailable: 'Không thể xác nhận: ứng dụng không có ràng buộc không gian làm việc',
644
644
  subjectUnknown: 'Không thể xác nhận: ứng dụng không thể giải quyết được chủ đề',
@@ -654,14 +654,14 @@ const viVN = {
654
654
  },
655
655
  },
656
656
  title: 'Môi trường chạy',
657
- description: 'Thời gian chạy chạy tác nhân và từng công cụ mã hóa được báo cáo.',
658
- add: 'Thêm thời gian chạy',
659
- loadFailed: 'Không thể tải thời gian chạy',
660
- emptyTitle: 'Chưa có thời gian chạy nào được kết nối',
661
- emptyDescription: 'Sau khi thời gian chạy được kết nối, các tác nhân chạy sẽ đảm nhận công việc ở đó bằng các công cụ mã hóa của nó.',
662
- noneConnected: 'Không có thời gian chạy nào được kết nối.',
663
- revokedList_one: '{{count}} đã thu hồi thời gian chạy',
664
- revokedList_other: '{{count}} đã thu hồi thời gian chạy',
657
+ description: 'Thời gian chạy chạy Agents và từng công cụ mã hóa được báo cáo.',
658
+ add: 'Thêm môi trường chạy',
659
+ loadFailed: 'Không thể tải môi trường chạy',
660
+ emptyTitle: 'Chưa có môi trường chạy nào được kết nối',
661
+ emptyDescription: 'Sau khi môi trường chạy được kết nối, các Agents chạy sẽ đảm nhận công việc ở đó bằng các công cụ mã hóa của nó.',
662
+ noneConnected: 'Không có môi trường chạy nào được kết nối.',
663
+ revokedList_one: '{{count}} đã thu hồi môi trường chạy',
664
+ revokedList_other: '{{count}} đã thu hồi môi trường chạy',
665
665
  lastSeen: 'Nhìn thấy lần cuối {{time}}',
666
666
  activity: {
667
667
  online: 'Trực tuyến {{active}}/{{slots}}',
@@ -692,7 +692,7 @@ const viVN = {
692
692
  },
693
693
  policy: {
694
694
  title: 'Chính sách địa phương',
695
- description: 'Chủ sở hữu thời gian chạy cho phép nó lấy những gì, như đã báo cáo. Nó được thay đổi trên máy chứ không phải ở đây.',
695
+ description: 'Chủ sở hữu môi trường chạy cho phép nó lấy những gì, như đã báo cáo. Nó được thay đổi trên máy chứ không phải ở đây.',
696
696
  none: 'Không có chính sách địa phương: thực hiện bất kỳ công việc nào được đăng ký.',
697
697
  any: 'Bất kỳ',
698
698
  nothing: 'Không có',
@@ -702,14 +702,14 @@ const viVN = {
702
702
  },
703
703
  variables: {
704
704
  title: 'Biến từ máy này',
705
- description: 'Các biến mà nó cung cấp để chạy lấy chúng từ thời gian chạy, theo tên; các giá trị vẫn còn trên máy. Đặt một cái ở đó với `nocobase-runner env set NAME` hoặc chuyển nó bằng `--pass-env NAME`.',
706
- none: 'Không: một lần chạy lấy một biến từ thời gian chạy không thành công ở đây trước khi nó bắt đầu.',
707
- unknown: 'Không được báo cáo: nhân vật chạy của nó cũ hơn tính năng này. Cập nhật trình chạy để xem chúng.',
705
+ description: 'Các biến mà nó cung cấp để chạy lấy chúng từ môi trường chạy, theo tên; các giá trị vẫn còn trên máy. Đặt một cái ở đó với `nocobase-runner env set NAME` hoặc chuyển nó bằng `--pass-env NAME`.',
706
+ none: 'Không: một lần chạy lấy một biến từ môi trường chạy không thành công ở đây trước khi nó bắt đầu.',
707
+ unknown: 'Không được báo cáo: nhân vật chạy của nó cũ hơn tính năng này. Cập nhật môi trường chạy để xem chúng.',
708
708
  },
709
709
  jobs: {
710
710
  allow: 'Cho phép xây dựng công việc',
711
- hint: 'Bản dựng và các bước khác mà ứng dụng này định cấu hình, chạy mà không cần mô hình. Báo cáo thời gian chạy này: {{kinds}}.',
712
- unsupported: 'Trình chạy của thời gian chạy này không nhận công việc. Cập nhật trình chạy để bật tính năng này.',
711
+ hint: 'Bản dựng và các bước khác mà ứng dụng này định cấu hình, chạy mà không cần mô hình. Báo cáo môi trường chạy này: {{kinds}}.',
712
+ unsupported: 'Trình chạy của môi trường chạy này không nhận công việc. Cập nhật môi trường chạy để bật tính năng này.',
713
713
  },
714
714
  noTools: 'Không tìm thấy công cụ mã hóa',
715
715
  actionsFor: 'Hành động dành cho {{name}}',
@@ -748,11 +748,11 @@ const viVN = {
748
748
  },
749
749
  upgradeRequired: {
750
750
  title: 'Thời gian chạy này cần nâng cấp',
751
- older: 'Trình chạy {{version}} của nó nói giao thức tác nhân {{protocol}}; ứng dụng này cần giao thức {{required}}. Nó vẫn được kết nối nhưng không chạy gì cho đến khi được cập nhật.',
752
- newer: 'Trình chạy {{version}} của nó nói giao thức tác nhân {{protocol}}, mới hơn ứng dụng này (giao thức {{required}}). Nó vẫn được kết nối nhưng không chạy gì cho đến khi chạy một trình chạy mà ứng dụng này phục vụ.',
751
+ older: 'Trình chạy {{version}} của nó nói giao thức Agent {{protocol}}; ứng dụng này cần giao thức {{required}}. Nó vẫn được kết nối nhưng không chạy gì cho đến khi được cập nhật.',
752
+ newer: 'Trình chạy {{version}} của nó nói giao thức Agent {{protocol}}, mới hơn ứng dụng này (giao thức {{required}}). Nó vẫn được kết nối nhưng không chạy gì cho đến khi chạy một môi trường chạy mà ứng dụng này phục vụ.',
753
753
  latest: 'Ứng dụng này phục vụ Á hậu {{latest}}. Chạy cái này trên máy chủ của nó để cập nhật nó:',
754
- noLatest: 'Cài đặt trình chạy nói giao thức {{required}} hoặc chạy trình chạy này trên máy chủ của nó để cập nhật:',
755
- reinstall: 'Trình chạy của nó không nói nó được cài đặt như thế nào. Cài đặt lại nó trên máy chủ của nó bằng lệnh từ Thêm thời gian chạy.',
754
+ noLatest: 'Cài đặt môi trường chạy nói giao thức {{required}} hoặc chạy môi trường chạy này trên máy chủ của nó để cập nhật:',
755
+ reinstall: 'Trình chạy của nó không nói nó được cài đặt như thế nào. Cài đặt lại nó trên máy chủ của nó bằng lệnh từ Thêm môi trường chạy.',
756
756
  },
757
757
  tool: {
758
758
  checking: 'Đang chờ phát hiện',
@@ -763,22 +763,22 @@ const viVN = {
763
763
  signedOut: 'Chưa đăng nhập',
764
764
  notInstalled: 'Chưa được cài đặt',
765
765
  off: 'Tắt',
766
- offHint: 'Tắt: công việc cho công cụ này không được gửi tới thời gian chạy này.',
766
+ offHint: 'Tắt: công việc cho công cụ này không được gửi tới môi trường chạy này.',
767
767
  enableLabel: 'Chạy {{tool}} trên {{name}}',
768
768
  version: 'Phiên bản {{version}}',
769
769
  },
770
770
  trust: {
771
- isolationHint: runtimesEnUS.runtimes.trust.isolationHint,
771
+ isolationHint: 'Với cả môi trường chạy cá nhân lẫn dùng chung, hãy chạy runner trong máy ảo hoặc môi trường cô lập: Agent có toàn quyền truy cập và runner không phải hộp cát.',
772
772
  label: 'Nó phù hợp với ai',
773
773
  team: 'Đội',
774
774
  teamHint: 'Mọi người trong nhóm đều bắt đầu công việc, với các biến số và bí mật của họ. Dành cho máy chủ và máy ảo dùng chung.',
775
775
  ownerOnly: 'Cá nhân',
776
- ownerOnlyHint: 'Chỉ chạy công việc bạn bắt đầu. Giá trị mặc định cho thời gian chạy mà bạn thêm vào.',
776
+ ownerOnlyHint: 'Chỉ chạy công việc bạn bắt đầu. Giá trị mặc định cho môi trường chạy mà bạn thêm vào.',
777
777
  personalOnly: 'Thời gian chạy này sẽ mang tính cá nhân: nó chỉ chạy công việc bạn bắt đầu. Bạn có thể chia sẻ nó với nhóm sau.',
778
778
  },
779
779
  share: {
780
780
  title: 'Chia sẻ {{name}} với nhóm?',
781
- description: 'Các lần chạy của người khác sẽ chạy trong thời gian chạy này, với các biến và bí mật của họ, đồng thời có thể đọc nội dung trên đó. Chỉ chia sẻ nó nếu điều đó tốt.',
781
+ description: 'Các lần chạy của người khác sẽ chạy trong môi trường chạy này, với các biến và bí mật của họ, đồng thời có thể đọc nội dung trên đó. Chỉ chia sẻ nó nếu điều đó tốt.',
782
782
  confirm: 'Chia sẻ với nhóm',
783
783
  },
784
784
  edit: {
@@ -796,11 +796,11 @@ const viVN = {
796
796
  badge: 'Có thể nâng cấp',
797
797
  title: 'Á hậu mới hơn cho {{name}}',
798
798
  description: 'Đã cài đặt {{version}}, ứng dụng này phục vụ {{latest}}.',
799
- hint: 'Nó tự cập nhật khi không có tác nhân nào đang chạy. Để cập nhật nó ngay bây giờ, hãy chạy cái này trên máy chủ của nó.',
799
+ hint: 'Nó tự cập nhật khi không có Agent nào đang chạy. Để cập nhật nó ngay bây giờ, hãy chạy cái này trên máy chủ của nó.',
800
800
  },
801
801
  revoke: {
802
802
  title: 'Thu hồi thông tin xác thực của {{name}}?',
803
- description: 'Á hậu của nó dừng lại ở yêu cầu tiếp theo và các lần chạy của nó quay trở lại hàng đợi. Để kết nối lại, hãy thêm lại thời gian chạy.',
803
+ description: 'Á hậu của nó dừng lại ở yêu cầu tiếp theo và các lần chạy của nó quay trở lại hàng đợi. Để kết nối lại, hãy thêm lại môi trường chạy.',
804
804
  confirm: 'Thu hồi',
805
805
  done: 'Đã thu hồi thông tin xác thực của {{name}}',
806
806
  },
@@ -812,16 +812,26 @@ const viVN = {
812
812
  },
813
813
  },
814
814
  connect: {
815
- ...runtimesEnUS.connect,
816
- title: 'Thêm thời gian chạy',
817
- description: 'Chạy lệnh bên dưới trên máy chủ đã cài đặt công cụ mã hóa: máy chủ, VM hoặc thiết bị của riêng bạn. Các tác nhân chạy ở đó với toàn quyền truy cập, với tư cách là người dùng chạy trình chạy, đồng thời có thể đọc và thay đổi bất kỳ thứ gì mà người dùng có thể, bao gồm cả khóa SSH và các thông tin xác thực khác. Trình chạy không phải là ranh giới bảo mật: chạy nó với tư cách là người dùng chuyên dụng, trong vùng chứa hoặc trong máy ảo.',
815
+ manual: 'Hoặc tự cài đặt',
816
+ promptTitle: 'Để Agent thiết lập',
817
+ promptCopy: 'Sao chép lời nhắc cho Agent',
818
+ promptShow: 'Xem lời nhắc',
819
+ promptHide: 'Ẩn lời nhắc',
820
+ promptHint: 'Sao chép lời nhắc này cho một Agent (Claude Code, Codex, v.v.) trên máy đích, Agent sẽ thực hiện các bước bên dưới thay bạn. Lời nhắc chứa thông tin xác thực dùng một lần: chỉ đưa cho Agent đó.',
821
+ windowsPowerShell: '1. Cài đặt WSL: chạy trong PowerShell, rồi khởi động lại Windows:',
822
+ windowsUbuntu: '2. Mở Ubuntu và chạy lệnh Linux bên dưới. Cài Node.js và các công cụ lập trình bên trong WSL Ubuntu.',
823
+ windowsNetwork: 'Nếu WSL không truy cập được internet, hãy bật chế độ mạng phản chiếu trong WSL.',
824
+ promptWindows: 'TRƯỚC TIÊN, hãy xác định bạn có đang chạy bên trong WSL Ubuntu không. Nếu KHÔNG ở trong WSL Ubuntu, hãy DỪNG LẠI: không chạy bất kỳ lệnh cài đặt hay đăng ký nào. Hãy bảo người dùng chạy wsl --install trong PowerShell, khởi động lại Windows, rồi mở Agent bên trong WSL Ubuntu và chạy lại lời nhắc này. CHỈ tiếp tục các bước bên dưới bên trong WSL Ubuntu. Cài cả Node.js và các công cụ lập trình bên trong WSL. Nếu WSL không truy cập được internet, hãy bật chế độ mạng phản chiếu.\n\n',
825
+ promptBody: 'Thiết lập máy này làm môi trường chạy NocoBase. Hãy dùng máy ảo hoặc môi trường cô lập: Agent có toàn quyền truy cập và runner không phải hộp cát.\n\nKiểm tra có Node.js 24 trở lên và các công cụ lập trình sau đã được cài đặt và đăng nhập: {{tools}}. Dùng cách cài đặt chính thức của chúng, không dùng gói snap.\n\nChạy lệnh đăng ký dùng một lần này để cài runner và CLI của ứng dụng, đăng ký và cài dịch vụ nền của nó:\n{{command}}\n\nKhắc phục các sự cố thiết lập thường gặp: đảm bảo PATH của dịch vụ chứa các công cụ lập trình (kiểm tra which codex / which claude trong terminal cài đặt, rồi chạy lại nocobase-runner service install và khởi động lại dịch vụ); cấu hình proxy cần thiết cho việc tải xuống và cho dịch vụ; xử lý quyền cài đặt npm toàn cục bằng prefix thuộc người dùng hoặc trình quản lý phiên bản Node, không dùng sudo npm install.\n\nKết thúc bằng nocobase-runner status và xác nhận kết nối cùng các công cụ lập trình. Báo cho tôi các bước đăng nhập hoặc mạng còn lại cần tôi hoàn tất. Coi thông tin xác thực đăng ký là bí mật và không đưa vào báo cáo.',
826
+ title: 'Thêm môi trường chạy',
827
+ description: 'Chạy lệnh bên dưới trên máy chủ đã cài đặt công cụ mã hóa: máy chủ, VM hoặc thiết bị của riêng bạn. Các tác nhân chạy ở đó với toàn quyền truy cập, với tư cách là người dùng chạy môi trường chạy, đồng thời có thể đọc và thay đổi bất kỳ thứ gì mà người dùng có thể, bao gồm cả khóa SSH và các thông tin xác thực khác. Trình chạy không phải là ranh giới bảo mật: chạy nó với tư cách là người dùng chuyên dụng, trong vùng chứa hoặc trong máy ảo.',
818
828
  createCredential: 'Tạo lệnh cài đặt',
819
829
  advanced: 'Nâng cao: giới hạn cho mỗi công cụ mã hóa',
820
- run: 'Chạy cái này trên máy chủ đó. Nó tải xuống trình chạy (nocobase-runner) và CLI của ứng dụng này từ ứng dụng này, đăng ký trình chạy và khởi động nó khi đăng nhập:',
830
+ run: 'Chạy cái này trên máy chủ đó. Nó tải xuống môi trường chạy (nocobase-runner) và CLI của ứng dụng này từ ứng dụng này, đăng ký môi trường chạy và khởi động nó khi đăng nhập:',
821
831
  nodeRequired: 'Máy chủ cần Node.js 24 trở lên (kiểm tra bằng nút --version). Lệnh dừng và cho biết cách cài đặt khi thiếu.',
822
832
  installed: 'Đã cài đặt nocobase-runner chưa? Đăng ký nó thay thế:',
823
- tokenOnce: 'Lệnh mang thông tin xác thực một lần cho thời gian chạy "{{trust}}". Nó hoạt động một lần, cho đến {{time}}.',
824
- after: 'Trong vài giây, thời gian chạy xuất hiện trong danh sách, với mỗi công cụ mã hóa được tìm thấy…',
833
+ tokenOnce: 'Lệnh mang thông tin xác thực một lần cho môi trường chạy "{{trust}}". Nó hoạt động một lần, cho đến {{time}}.',
834
+ after: 'Trong vài giây, môi trường chạy xuất hiện trong danh sách, với mỗi công cụ mã hóa được tìm thấy…',
825
835
  tokenTools: 'Công cụ mã hóa: {{tools}}.',
826
836
  tools: 'Công cụ mã hóa',
827
837
  toolsHint: 'Thời gian chạy này chỉ được cung cấp cho các công cụ đã được kiểm tra. Bạn có thể thay đổi nó trên trang Runtimes bất cứ lúc nào.',
@@ -840,8 +850,23 @@ const viVN = {
840
850
  },
841
851
  chat: {
842
852
  // Keep new guidance available in English until this locale is translated.
843
- executionFailed: chatEnUS.chat.executionFailed,
844
- fileInputFailures: chatEnUS.chat.fileInputFailures,
853
+ executionFailed: 'Thực thi thất bại. Hãy xem lại cuộc trò chuyện đã lưu trước khi thử lại.',
854
+ fileInputFailures: {
855
+ imageCapability: 'Mô hình này chưa được cấu hình nhận hình ảnh. Hãy chuyển sang mô hình đã xác minh hỗ trợ hình ảnh.',
856
+ unsupportedFormat: 'Mô hình đã chọn chưa được cấu hình nhận định dạng tệp đính kèm này và không có trình trích xuất văn bản cục bộ nào hỗ trợ. Hãy dùng định dạng tài liệu được hỗ trợ hoặc mô hình đã xác minh hỗ trợ tệp.',
857
+ formatMismatch: 'Tên tệp đính kèm và loại nội dung chỉ ra hai định dạng tài liệu khác nhau. Hãy kiểm tra định dạng tệp rồi tải lên lại.',
858
+ invalidInline: 'Dữ liệu tệp đính kèm không hợp lệ hoặc quá lớn. Hãy tải tệp lên lại hoặc dùng tệp nhỏ hơn.',
859
+ fileTooLarge: 'Một tệp đính kèm vượt quá giới hạn dung lượng. Hãy dùng tệp nhỏ hơn.',
860
+ inputTooLarge: 'Các tệp đính kèm của cuộc trò chuyện vượt quá giới hạn đầu vào. Hãy dùng tệp nhỏ hơn hoặc bắt đầu cuộc trò chuyện mới.',
861
+ documentTooLarge: 'Tệp đính kèm vượt quá giới hạn văn bản trích xuất. Hãy dùng tệp nhỏ hơn.',
862
+ contextTooLarge: 'Các tệp đính kèm của cuộc trò chuyện vượt quá giới hạn văn bản trích xuất. Hãy dùng tệp nhỏ hơn hoặc bắt đầu cuộc trò chuyện mới.',
863
+ fileCount: 'Cuộc trò chuyện vượt quá giới hạn 100 tệp đầu vào. Hãy bắt đầu cuộc trò chuyện mới.',
864
+ nativeFileCount: 'Cuộc trò chuyện vượt quá giới hạn tệp gốc đã cấu hình. Hãy dùng ít tệp đính kèm hơn hoặc chuyển chúng sang tài liệu văn bản được hỗ trợ.',
865
+ unreadable: 'Tệp đính kèm không có văn bản đọc được. Tài liệu quét cần OCR.',
866
+ extractionFailed: 'Không thể trích xuất văn bản của tệp đính kèm. Hãy kiểm tra tài liệu có đọc được không rồi tải lên lại.',
867
+ extractionTimeout: 'Trích xuất văn bản tệp đính kèm đã hết thời gian. Hãy dùng tệp nhỏ hơn hoặc thử lại.',
868
+ preparationFailed: 'Không thể chuẩn bị tệp đính kèm. Hãy kiểm tra quyền truy cập và định dạng tệp rồi thử lại.',
869
+ },
845
870
  untitled: 'Cuộc trò chuyện không tên',
846
871
  renamed: 'Đổi tên',
847
872
  archivedNamed: 'Đã lưu trữ “{{title}}”',
@@ -854,27 +879,27 @@ const viVN = {
854
879
  agentArchived: 'Không được kích hoạt',
855
880
  forbidden: 'Không có sẵn cho bạn',
856
881
  noModel: 'Cấu hình mô hình trò chuyện trước',
857
- noRunner: 'Không có trình chạy trực tuyến, không thể chọn',
882
+ noRunner: 'Không có môi trường chạy trực tuyến, không thể chọn',
858
883
  othersPersonal: 'Chỉ có vận động viên chạy bộ cá nhân của người khác mới có',
859
884
  modelUnavailable: 'Mẫu không có sẵn',
860
885
  },
861
886
  offline: {
862
- fallbackDone: 'Cuộc trò chuyện này hiện sử dụng một tác nhân khác',
887
+ fallbackDone: 'Cuộc trò chuyện này hiện sử dụng một Agent khác',
863
888
  restoreDone: 'Đã chuyển trở lại',
864
- newSession: 'Nhân viên bắt đầu phiên mới và đọc cuộc trò chuyện này.',
889
+ newSession: 'Agent bắt đầu phiên mới và đọc cuộc trò chuyện này.',
865
890
  },
866
891
  notice: {
867
892
  switchedToDefault: 'Đã chuyển sang {{name}}, mặc định của hệ thống, cho đến khi {{own}} hoạt động trở lại.',
868
- switchedToOnline: '{{own}} hiện không có trình chạy nào dành cho bạn, vì vậy {{name}} sẽ trả lời cho đến khi {{own}} quay trở lại.',
869
- onlineFallbackUnavailable: 'Tác nhân dự phòng trực tuyến không thể trả lời ({{reason}}). Cuộc trò chuyện này vẫn ở lại với {{own}} trong khi chờ trình chạy.',
893
+ switchedToOnline: '{{own}} hiện không có môi trường chạy nào dành cho bạn, vì vậy {{name}} sẽ trả lời cho đến khi {{own}} quay trở lại.',
894
+ onlineFallbackUnavailable: 'Agent dự phòng trực tuyến không thể trả lời ({{reason}}). Cuộc trò chuyện này vẫn ở lại với {{own}} trong khi chờ môi trường chạy.',
870
895
  switchedAgent: 'Đã chuyển sang {{name}}, giữ nguyên lịch sử cuộc trò chuyện.',
871
896
  switchedBack: 'Quay lại với {{name}}.',
872
- runFailed: 'Người đại diện dừng lại trước khi trả lời.',
873
- runFailedReason: 'Nhân viên dừng lại trước khi trả lời: {{reason}}',
897
+ runFailed: 'Agent dừng lại trước khi trả lời.',
898
+ runFailedReason: 'Agent dừng lại trước khi trả lời: {{reason}}',
874
899
  runCancelled: 'Yêu cầu hủy bỏ.',
875
900
  },
876
901
  consultation: {
877
- unavailableTitle: 'Đại lý được tư vấn không có sẵn',
902
+ unavailableTitle: 'Agent được tư vấn không có sẵn',
878
903
  snapshotTitle: 'Đã yêu cầu {{name}} vào thời điểm đó',
879
904
  title: 'Đã tư vấn {{name}}',
880
905
  },
@@ -885,31 +910,31 @@ const viVN = {
885
910
  },
886
911
  agents: {
887
912
  personalOnly: 'Chỉ dành cho vận động viên chạy bộ cá nhân',
888
- hint: 'Liệt kê các tác nhân được kích hoạt và cho biết lý do tại sao hiện tại người ta không thể trả lời bạn. Các câu trả lời chạy theo trình tự: câu trả lời đầu tiên đợi một người nhận, thường là vài giây.',
889
- chooseFor: 'Chọn đại lý',
890
- empty: 'Không có đại lý nào bạn có thể chọn',
891
- none: 'Không có đại lý',
892
- unknown: 'Đặc vụ vô danh',
893
- placeholder: 'Chọn đại lý',
913
+ hint: 'Liệt kê các Agents được kích hoạt và cho biết lý do tại sao hiện tại người ta không thể trả lời bạn. Các câu trả lời chạy theo trình tự: câu trả lời đầu tiên đợi một người nhận, thường là vài giây.',
914
+ chooseFor: 'Chọn Agent',
915
+ empty: 'Không có Agent nào bạn có thể chọn',
916
+ none: 'Không có Agent',
917
+ unknown: 'Agent vô danh',
918
+ placeholder: 'Chọn Agent',
894
919
  myDefault: 'Mặc định của tôi',
895
920
  systemDefault: 'Mặc định hệ thống',
896
921
  },
897
922
  },
898
923
  chatProfile: {
899
- loadFailed: 'Không thể tải cài đặt đại lý của bạn',
900
- defaultAgent: 'Tác nhân trò chuyện mặc định của tôi',
924
+ loadFailed: 'Không thể tải cài đặt Agent của bạn',
925
+ defaultAgent: 'Agent trò chuyện mặc định của tôi',
901
926
  systemDefault: 'Mặc định hệ thống',
902
927
  systemDefaultNamed: 'Mặc định hệ thống ({{name}})',
903
928
  noDefault: 'Không có mặc định hệ thống nào được đặt.',
904
- saved: 'Đã lưu tác nhân trò chuyện mặc định',
929
+ saved: 'Đã lưu Agent trò chuyện mặc định',
905
930
  },
906
931
  models: {
907
932
  title: 'Mô hình',
908
- description: 'Các dịch vụ mô hình gọi đại lý trực tuyến và các mô hình mà mỗi dịch vụ cung cấp: mô hình trò chuyện cho các đại lý, mô hình nhúng và xếp hạng lại để tìm kiếm.',
933
+ description: 'Các dịch vụ mô hình gọi Agents trực tuyến và các mô hình mà mỗi dịch vụ cung cấp: mô hình trò chuyện cho các Agents, mô hình nhúng và xếp hạng lại để tìm kiếm.',
909
934
  },
910
935
  defaultModel: {
911
936
  title: 'Mô hình trò chuyện mặc định',
912
- description: 'Các đại lý trực tuyến không có mô hình trả lời riêng của họ với nó, chẳng hạn như một đại lý mới hoặc một đại lý đi kèm với ứng dụng.',
937
+ description: 'Các Agents trực tuyến không có mô hình trả lời riêng của họ với nó, chẳng hạn như một Agent mới hoặc một Agent đi kèm với ứng dụng.',
913
938
  none: 'Chưa có mô hình trò chuyện nào được bật. Thêm dịch vụ mô hình và bật mô hình trò chuyện: mô hình đầu tiên trở thành mặc định.',
914
939
  saved: 'Mô hình trò chuyện mặc định hiện là {{model}}.',
915
940
  },
@@ -923,7 +948,7 @@ const viVN = {
923
948
  loadFailed: 'Không thể tải các dịch vụ mô hình',
924
949
  empty: {
925
950
  title: 'Chưa có dịch vụ mẫu',
926
- description: 'Sau khi bạn thêm dịch vụ mẫu, các đại lý trực tuyến có thể trả lời thông qua dịch vụ đó.',
951
+ description: 'Sau khi bạn thêm dịch vụ mẫu, các Agents trực tuyến có thể trả lời thông qua dịch vụ đó.',
927
952
  readOnly: 'Yêu cầu quản trị viên thêm dịch vụ mẫu.',
928
953
  },
929
954
  add: {
@@ -948,7 +973,7 @@ const viVN = {
948
973
  turnedOff: '{{title}} tắt.',
949
974
  name: 'Tên',
950
975
  enabled: 'Đã bật',
951
- enabledHint: 'Các đại lý trực tuyến chỉ có thể sử dụng các mô hình của nó khi nó đang bật.',
976
+ enabledHint: 'Các Agents trực tuyến chỉ có thể sử dụng các mô hình của nó khi nó đang bật.',
952
977
  saved: '{{title}} đã được lưu.',
953
978
  delete: 'Xóa',
954
979
  deleteTitle: 'Xóa {{title}}?',
@@ -971,7 +996,7 @@ const viVN = {
971
996
  },
972
997
  models: {
973
998
  title: 'Mô hình',
974
- description: 'Kiểm tra các mô hình mà dịch vụ này cung cấp và cho biết mỗi mô hình dùng để làm gì: mô hình trò chuyện trả lời tác nhân, mô hình nhúng văn bản chỉ mục cho tìm kiếm, sắp xếp lại mô hình theo thứ tự kết quả tìm kiếm. Một mô hình nhúng có thể yêu cầu các vectơ có kích thước.',
999
+ description: 'Kiểm tra các mô hình mà dịch vụ này cung cấp và cho biết mỗi mô hình dùng để làm gì: mô hình trò chuyện trả lời Agents, mô hình nhúng văn bản chỉ mục cho tìm kiếm, sắp xếp lại mô hình theo thứ tự kết quả tìm kiếm. Một mô hình nhúng có thể yêu cầu các vectơ có kích thước.',
975
1000
  fetching: 'Đang tìm nạp mô hình của nhà cung cấp…',
976
1001
  fetchFailed: 'Nhà cung cấp sẽ không liệt kê các model của mình: {{message}}',
977
1002
  fetch: 'Tìm nạp mô hình',
@@ -1069,10 +1094,10 @@ const viVN = {
1069
1094
  loadFailed: 'Không thể tải kỹ năng',
1070
1095
  backToList: 'Trở lại kỹ năng',
1071
1096
  emptyTitle: 'Chưa có kỹ năng',
1072
- emptyDescription: 'Sau khi bạn thêm một kỹ năng, các đặc vụ sẽ đọc SKILL.md của nó bất cứ khi nào có nhiệm vụ yêu cầu.',
1097
+ emptyDescription: 'Sau khi bạn thêm một kỹ năng, các Agents sẽ đọc SKILL.md của nó bất cứ khi nào có nhiệm vụ yêu cầu.',
1073
1098
  emptyReadOnly: 'Yêu cầu quản trị viên thêm một kỹ năng.',
1074
1099
  content: 'SKILL.md',
1075
- contentHint: 'Tên của vấn đề phía trước là tên thư mục của kỹ năng: thay đổi nó sẽ đổi tên kỹ năng. Mô tả cho các đại lý biết khi nào nên đọc nó.',
1100
+ contentHint: 'Tên của vấn đề phía trước là tên thư mục của kỹ năng: thay đổi nó sẽ đổi tên kỹ năng. Mô tả cho các Agents biết khi nào nên đọc nó.',
1076
1101
  contentTooLarge: 'SKILL.md lớn hơn {{max}}.',
1077
1102
  emptyContent: 'Kỹ năng này chưa có nội dung.',
1078
1103
  created: 'Tạo ra kỹ năng "{{name}}"',
@@ -1085,14 +1110,14 @@ const viVN = {
1085
1110
  edit: 'Chỉnh sửa',
1086
1111
  delete: 'Xóa kỹ năng',
1087
1112
  deleteTitle: 'Xóa kỹ năng "{{name}}"?',
1088
- deleteDescription: 'Mọi đặc vụ và mọi nơi sử dụng kỹ năng này làm mặc định đều sẽ mất nó.',
1113
+ deleteDescription: 'Mọi Agent và mọi nơi sử dụng kỹ năng này làm mặc định đều sẽ mất nó.',
1089
1114
  readOnly: 'Chỉ người tạo kỹ năng và quản trị viên không gian làm việc mới có thể thay đổi kỹ năng này.',
1090
1115
  conflict: 'Người khác vừa thay đổi kỹ năng này. Phiên bản mới nhất đã được tải; thử lại.',
1091
1116
  conflictTitle: 'Có người khác vừa thay đổi kỹ năng này',
1092
1117
  conflictDraft: 'Ai đó đã lưu phiên bản mới sau khi bạn bắt đầu chỉnh sửa nên những thay đổi của bạn không được lưu. Sao chép những gì bạn muốn giữ lại, sau đó tải phiên bản mới nhất và chỉnh sửa lại.',
1093
1118
  loadLatest: 'Tải phiên bản mới nhất',
1094
- mountedAgents: 'Đại lý kèm theo',
1095
- noAgents: 'Chưa gắn bó với bất kỳ đại lý nào.',
1119
+ mountedAgents: 'Agents kèm theo',
1120
+ noAgents: 'Chưa gắn bó với bất kỳ Agent nào.',
1096
1121
  defaults: 'Kỹ năng mặc định của: {{places}}.',
1097
1122
  defaultsSeparator: ', ',
1098
1123
  files: 'Tệp',
@@ -1105,7 +1130,7 @@ const viVN = {
1105
1130
  binaryFile: 'Tệp nhị phân, {{size}}. Nó không thể được chỉnh sửa ở đây.',
1106
1131
  executable: 'Có thể thực thi được',
1107
1132
  scriptBadge: 'Kịch bản',
1108
- scriptsNote: 'Có tập lệnh: đại lý trực tuyến có thể đọc chúng nhưng không bao giờ chạy chúng',
1133
+ scriptsNote: 'Có tập lệnh: Agents trực tuyến có thể đọc chúng nhưng không bao giờ chạy chúng',
1109
1134
  compatibility: 'Khả năng tương thích: {{value}}',
1110
1135
  fileContent: 'Nội dung của {{path}}',
1111
1136
  export: 'Xuất khẩu',
@@ -1136,8 +1161,8 @@ const viVN = {
1136
1161
  name: 'Tên',
1137
1162
  renameTitle: 'Đổi tên "{{name}}"',
1138
1163
  conventional: {
1139
- scripts: 'Đại lý mã có thể chạy. Đại lý trực tuyến chỉ đọc nó.',
1140
- references: 'Đại lý tài liệu đọc khi họ cần.',
1164
+ scripts: 'Agents mã có thể chạy. Agents trực tuyến chỉ đọc nó.',
1165
+ references: 'Agents tài liệu đọc khi họ cần.',
1141
1166
  assets: 'Mẫu, hình ảnh và các tài nguyên khác.',
1142
1167
  },
1143
1168
  problems: {
@@ -1172,7 +1197,7 @@ const viVN = {
1172
1197
  },
1173
1198
  },
1174
1199
  template: {
1175
- description: 'Kỹ năng này có tác dụng gì và khi nào đặc vụ nên sử dụng nó.',
1200
+ description: 'Kỹ năng này có tác dụng gì và khi nào Agent nên sử dụng nó.',
1176
1201
  title: 'Kỹ năng mới',
1177
1202
  whenToUse: 'Khi nào nên sử dụng',
1178
1203
  whenToUseHint: 'Mô tả các nhiệm vụ đòi hỏi kỹ năng này.',
@@ -1199,7 +1224,7 @@ const viVN = {
1199
1224
  unchanged: 'không thay đổi',
1200
1225
  restore: 'Khôi phục',
1201
1226
  restoreTitle: 'Khôi phục phiên bản {{version}}?',
1202
- restoreDescription: 'Nó được lưu lại dưới dạng phiên bản mới nhất; các đại lý có được nó trong lần chạy tiếp theo của họ. Không có gì bị mất: phiên bản hiện tại vẫn còn trong lịch sử.',
1227
+ restoreDescription: 'Nó được lưu lại dưới dạng phiên bản mới nhất; các Agents có được nó trong lần chạy tiếp theo của họ. Không có gì bị mất: phiên bản hiện tại vẫn còn trong lịch sử.',
1203
1228
  restored: 'Đã khôi phục phiên bản {{version}} thành phiên bản {{current}}.',
1204
1229
  },
1205
1230
  },
@@ -1210,23 +1235,23 @@ const viVN = {
1210
1235
  pruning: 'Á hậu dọn dẹp cửa hàng chung; công việc mới bị tạm dừng',
1211
1236
  toolNotInstalled: 'Không có Á hậu kết nối nào được cài đặt công cụ này',
1212
1237
  incompatible: 'Trình chạy được kết nối không hỗ trợ khối lượng công việc này; yêu cầu nâng cấp',
1213
- restricted: 'Chính sách của trình chạy, thư mục hoặc hạn chế biến',
1238
+ restricted: 'Chính sách của môi trường chạy, thư mục hoặc hạn chế biến',
1214
1239
  unknown: 'Tính đủ điều kiện của khối lượng công việc chưa được thiết lập',
1215
- agentArchived: 'Đại lý được lưu trữ',
1240
+ agentArchived: 'Agent được lưu trữ',
1216
1241
  delayed: 'Đã lên lịch cho {{until}}',
1217
- noRunnerOnline: 'Không có thời gian chạy trực tuyến',
1242
+ noRunnerOnline: 'Không có môi trường chạy trực tuyến',
1218
1243
  runnersOffline: 'Thời gian chạy của nó đang ngoại tuyến',
1219
1244
  toolQuota: 'Đã hết hạn mức công cụ; thời gian đặt lại: {{until}}',
1220
1245
  toolUnavailable: 'Công cụ chưa đăng nhập, bị vô hiệu hóa hoặc mô hình được yêu cầu không có sẵn ({{tool}})',
1221
1246
  noSharedRunner: 'Chỉ có vận động viên cá nhân của người khác mới trực tuyến',
1222
- missingFeatures: 'Không có thời gian chạy hỗ trợ {{features}}',
1223
- secretsNotAllowed: 'Cần thời gian chạy nhóm: {{variables}} chỉ dành cho thời gian chạy nhóm',
1247
+ missingFeatures: 'Không có môi trường chạy hỗ trợ {{features}}',
1248
+ secretsNotAllowed: 'Cần môi trường chạy nhóm: {{variables}} chỉ dành cho môi trường chạy nhóm',
1224
1249
  sameWorkActive: 'Sau khi chạy xong rồi',
1225
1250
  concurrencyFull: 'Đồng thời đầy đủ ({{active}}/{{limit}})',
1226
1251
  runnersBusy: 'Các vận động viên tương thích đã đầy',
1227
1252
  toolSlotsFull: 'Khe cắm {{tool}} đã đầy ({{used}}/{{limit}})',
1228
1253
  setupRetrying: 'Việc chuẩn bị thất bại; đang thử lại: {{detail}}',
1229
- next: 'Tiếp theo để có thời gian chạy miễn phí',
1254
+ next: 'Tiếp theo để có môi trường chạy miễn phí',
1230
1255
  },
1231
1256
  unknown: 'Đã xếp hàng đợi ({{reason}})',
1232
1257
  quotaResetUnknown: 'chưa rõ',
@@ -1241,12 +1266,12 @@ const viVN = {
1241
1266
  description: 'Các đặc vụ của đội và kỹ năng họ sử dụng.',
1242
1267
  actions: {
1243
1268
  edit: {
1244
- title: 'Thay đổi tác nhân và kỹ năng',
1245
- description: 'Thay đổi cài đặt, kỹ năng và biến của tác nhân, lưu trữ, khôi phục và xóa nó cũng như chỉnh sửa kỹ năng. Một đại diện không được cấp khả năng nào ngoài khả năng của người biên tập',
1246
- related: 'Thay đổi tác nhân và kỹ năng (tác nhân họ sở hữu và kỹ năng họ tạo ra)',
1269
+ title: 'Thay đổi Agents và kỹ năng',
1270
+ description: 'Thay đổi cài đặt, kỹ năng và biến của Agent, lưu trữ, khôi phục và xóa nó cũng như chỉnh sửa kỹ năng. Một Agent không được cấp khả năng nào ngoài khả năng của người biên tập',
1271
+ related: 'Thay đổi Agents và kỹ năng (Agents họ sở hữu và kỹ năng họ tạo ra)',
1247
1272
  relatedLabel: 'Đại lý tôi sở hữu và kỹ năng tôi tạo',
1248
1273
  relatedHint: 'Đại lý mà tôi là chủ sở hữu và các kỹ năng tôi đã tạo',
1249
- all: 'Thay đổi tác nhân và kỹ năng (tất cả)',
1274
+ all: 'Thay đổi Agents và kỹ năng (tất cả)',
1250
1275
  },
1251
1276
  },
1252
1277
  },
@@ -1266,11 +1291,11 @@ const viVN = {
1266
1291
  keyScopes: {
1267
1292
  agents: {
1268
1293
  title: 'Tác nhân',
1269
- description: 'Xem các đại lý, kỹ năng và cách chạy; thay đổi tác nhân và kỹ năng, hủy và thử lại.',
1294
+ description: 'Xem các Agents, kỹ năng và cách chạy; thay đổi Agents và kỹ năng, hủy và thử lại.',
1270
1295
  },
1271
1296
  runners: {
1272
1297
  title: 'Môi trường chạy',
1273
- description: 'Xem trình chạy và mã thông báo đăng ký; quản lý trình chạy.',
1298
+ description: 'Xem môi trường chạy và mã thông báo đăng ký; quản lý môi trường chạy.',
1274
1299
  },
1275
1300
  prices: {
1276
1301
  title: 'Giá mẫu',