codexmate 0.1.9 → 0.1.12

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 (45) hide show
  1. package/README.md +0 -4
  2. package/README.vi.md +0 -4
  3. package/README.zh.md +0 -4
  4. package/cli/agents-files.js +27 -3
  5. package/cli/prompt-history.js +171 -0
  6. package/cli/system-prompt-files.js +20 -2
  7. package/cli.js +83 -2694
  8. package/package.json +1 -1
  9. package/web-ui/app.js +39 -56
  10. package/web-ui/index.html +0 -1
  11. package/web-ui/modules/app.computed.dashboard.mjs +0 -3
  12. package/web-ui/modules/app.computed.main-tabs.mjs +0 -474
  13. package/web-ui/modules/app.methods.agents.mjs +90 -0
  14. package/web-ui/modules/app.methods.index.mjs +1 -3
  15. package/web-ui/modules/app.methods.navigation.mjs +8 -3
  16. package/web-ui/modules/app.methods.session-actions.mjs +57 -25
  17. package/web-ui/modules/app.methods.system-prompt.mjs +81 -0
  18. package/web-ui/modules/app.methods.web-ui-preferences.mjs +26 -9
  19. package/web-ui/modules/i18n/locales/en.mjs +10 -265
  20. package/web-ui/modules/i18n/locales/ja.mjs +10 -265
  21. package/web-ui/modules/i18n/locales/vi.mjs +10 -266
  22. package/web-ui/modules/i18n/locales/zh-tw.mjs +10 -265
  23. package/web-ui/modules/i18n/locales/zh.mjs +10 -265
  24. package/web-ui/partials/index/layout-header.html +5 -48
  25. package/web-ui/partials/index/panel-config-claude.html +3 -3
  26. package/web-ui/partials/index/panel-config-codex.html +3 -3
  27. package/web-ui/partials/index/panel-config-kilocode.html +5 -5
  28. package/web-ui/partials/index/panel-config-openclaw.html +3 -3
  29. package/web-ui/partials/index/panel-config-opencode.html +5 -5
  30. package/web-ui/partials/index/panel-dashboard.html +0 -21
  31. package/web-ui/partials/index/panel-prompts.html +52 -0
  32. package/web-ui/partials/index/panel-sessions.html +12 -0
  33. package/web-ui/partials/index/panel-settings.html +35 -0
  34. package/web-ui/res/web-ui-render.precompiled.js +543 -1376
  35. package/web-ui/session-helpers.mjs +0 -16
  36. package/web-ui/styles/modals-core.css +86 -0
  37. package/web-ui/styles/sessions-preview.css +38 -0
  38. package/web-ui/styles/titles-cards.css +2 -2
  39. package/web-ui/styles.css +0 -1
  40. package/lib/automation.js +0 -404
  41. package/lib/task-orchestrator.js +0 -938
  42. package/lib/task-workspace-chat.js +0 -292
  43. package/web-ui/modules/app.methods.task-orchestration.mjs +0 -895
  44. package/web-ui/partials/index/panel-orchestration.html +0 -598
  45. package/web-ui/styles/task-orchestration.css +0 -2979
@@ -43,6 +43,8 @@ const vi = Object.freeze({
43
43
  'common.save': 'Lưu',
44
44
  'common.saveApply': 'Lưu & áp dụng',
45
45
  'common.close': 'Đóng',
46
+ 'common.history': 'Lịch sử',
47
+ 'common.restoreToEditor': 'Khôi phục vào trình soạn',
46
48
  'common.delete': 'Xóa',
47
49
  'common.clear': 'Xóa',
48
50
  'common.show': 'Hiện',
@@ -95,7 +97,6 @@ const vi = Object.freeze({
95
97
  'tab.config.opencode': 'OpenCode',
96
98
  'tab.sessions': 'Phiên',
97
99
  'tab.usage': 'Sử dụng',
98
- 'tab.orchestration': 'Tác vụ',
99
100
  'tab.market': 'Skills',
100
101
  'tab.plugins': 'Plugin',
101
102
  'tab.settings': 'Cài đặt',
@@ -111,7 +112,6 @@ const vi = Object.freeze({
111
112
  'side.prompts.meta': 'Tệp lời nhắc và preset',
112
113
  'side.plugins': 'Plugin',
113
114
  'side.system': 'Hệ thống',
114
- 'side.orchestration': 'Tác vụ',
115
115
  'side.skills': 'Skills',
116
116
  'side.collapse': 'Thu gọn thanh bên',
117
117
  'side.expand': 'Mở rộng thanh bên',
@@ -212,14 +212,12 @@ const vi = Object.freeze({
212
212
  'opencode.summary.sourceCodexMate': 'CodexMate store',
213
213
  'opencode.summary.sourceOpenCode': 'Active OpenCode',
214
214
  'side.usage.meta': 'Thống kê / Xu hướng',
215
- 'side.orchestration.meta': 'Kế hoạch / Hàng đợi / Runs',
216
215
 
217
216
  // Header titles
218
217
  'kicker.dashboard': 'Doctor',
219
218
  'kicker.config': 'Cấu hình',
220
219
  'kicker.sessions': 'Phiên',
221
220
  'kicker.usage': 'Sử dụng',
222
- 'kicker.orchestration': 'Tác vụ',
223
221
  'kicker.market': 'Skills',
224
222
  'kicker.plugins': 'Plugin',
225
223
  'kicker.docs': 'Tài liệu',
@@ -231,7 +229,6 @@ const vi = Object.freeze({
231
229
  'title.config': 'Bảng điều khiển cấu hình cục bộ',
232
230
  'title.sessions': 'Phiên & Xuất',
233
231
  'title.usage': 'Thống kê & Xu hướng',
234
- 'title.orchestration': 'Luồng tác vụ',
235
232
  'title.market': 'Cài đặt & Đồng bộ Skills',
236
233
  'title.plugins': 'Plugin & Mẫu',
237
234
  'title.docs': 'Cài CLI & Tài liệu',
@@ -242,7 +239,6 @@ const vi = Object.freeze({
242
239
  'subtitle.config': 'Quản lý cấu hình và mô hình cục bộ.',
243
240
  'subtitle.sessions': 'Duyệt và xuất các phiên.',
244
241
  'subtitle.usage': 'Xem sử dụng trong 7/30 ngày gần đây.',
245
- 'subtitle.orchestration': 'Lập kế hoạch, xếp hàng, chạy và xem lại tác vụ cục bộ.',
246
242
  'subtitle.market': 'Quản lý skills cục bộ.',
247
243
  'subtitle.plugins': 'Quản lý plugin và mẫu tái sử dụng.',
248
244
  'subtitle.docs': 'Lệnh cài CLI và hướng dẫn.',
@@ -250,7 +246,7 @@ const vi = Object.freeze({
250
246
  'subtitle.prompts': 'Chỉnh sửa AGENTS.md và CLAUDE.md.',
251
247
  'prompts.subTab.codex': 'AGENTS.md (Codex)',
252
248
  'prompts.subTab.project': 'CLAUDE.md',
253
- 'prompts.subTab.system': 'System Prompt',
249
+ 'prompts.subTab.system': 'System Prompt (Pi)',
254
250
  'prompts.subTab.presets': 'Kho preset',
255
251
  'prompts.presets.title': 'Preset',
256
252
  'prompts.presets.hint': 'Quản lý preset.',
@@ -283,7 +279,6 @@ const vi = Object.freeze({
283
279
  'prompts.project.detected': 'Đang chỉnh sửa CLAUDE.md trong: {path}',
284
280
 
285
281
 
286
- // Task orchestration readiness
287
282
  // Share command prefix
288
283
  'settings.sharePrefix.title': 'Tiền tố lệnh chia sẻ',
289
284
  'settings.sharePrefix.meta': 'Dùng làm tiền tố cho “Sao chép lệnh chia sẻ” trong Web UI',
@@ -325,41 +320,6 @@ const vi = Object.freeze({
325
320
  'modal.providerCache.errorDetails': 'Chi tiết lỗi',
326
321
  'modal.providerCache.loadFailed': 'Không tải được bản ghi cache',
327
322
 
328
- 'orchestration.readiness.target.label': 'Tin nhắn tác vụ',
329
- 'orchestration.readiness.target.done': 'Đã có tin nhắn tác vụ',
330
- 'orchestration.readiness.target.missing': 'Chưa có tin nhắn tác vụ',
331
- 'orchestration.readiness.sequence.label': 'Thứ tự',
332
- 'orchestration.readiness.sequence.missing': 'Gửi yêu cầu 1 trước',
333
- 'orchestration.readiness.sequence.single': 'Hiện chỉ có yêu cầu 1; gửi tiếp để tạo yêu cầu 2.',
334
- 'orchestration.readiness.sequence.multiple': '{count} yêu cầu sẽ chạy theo thứ tự: hoàn tất yêu cầu 1 rồi tiếp tục yêu cầu 2.',
335
- 'orchestration.readiness.engine.label': 'Chiến lược chạy',
336
- 'orchestration.readiness.engine.openaiChat': 'Dùng node tương thích OpenAI Chat',
337
- 'orchestration.readiness.workflow.done': 'Đã chọn {count} Workflow',
338
- 'orchestration.readiness.workflow.missing': 'Chưa chọn Workflow ID',
339
- 'orchestration.readiness.scope.label': 'Phạm vi',
340
- 'orchestration.readiness.scope.done': 'Đã bổ sung ghi chú',
341
- 'orchestration.readiness.scope.writeHint': 'Nên bổ sung ghi chú trước khi ghi',
342
- 'orchestration.readiness.scope.readonlyHint': 'Đang ở chế độ chỉ đọc, có thể thử ngay',
343
- 'orchestration.readiness.preview.label': 'Xem trước',
344
- 'orchestration.readiness.preview.missing': 'Chưa tạo kế hoạch',
345
- 'orchestration.readiness.preview.blocked': 'Có {count} mục chặn',
346
- 'orchestration.readiness.preview.ready': 'Kế hoạch sẵn sàng, {count} node',
347
- 'orchestration.readiness.empty.title': 'Nhập mục tiêu tác vụ',
348
- 'orchestration.readiness.empty.summary': 'Xác định mục tiêu, ràng buộc và tiêu chí nghiệm thu.',
349
- 'orchestration.readiness.workflow.title': 'Thiếu Workflow',
350
- 'orchestration.readiness.workflow.summary': 'Bạn đã chọn chế độ Workflow nhưng chưa chỉ định quy trình tái sử dụng.',
351
- 'orchestration.readiness.preview.title': 'Nên xem trước kế hoạch',
352
- 'orchestration.readiness.preview.summary': 'Mục tiêu đã có. Dùng /plan để kiểm tra node và phụ thuộc.',
353
- 'orchestration.readiness.preview.sequenceSummary': 'Bản nháp đã sẵn sàng với {count} yêu cầu theo thứ tự: hoàn tất yêu cầu 1 rồi tiếp tục yêu cầu 2.',
354
- 'orchestration.readiness.blocked.title': 'Bản xem trước có mục chặn',
355
- 'orchestration.readiness.blocked.summary': 'Kế hoạch hiện còn {count} mục chặn, hãy xử lý chúng trước.',
356
- 'orchestration.readiness.warn.title': 'Có thể chạy nhưng có cảnh báo',
357
- 'orchestration.readiness.warn.summary': 'Kế hoạch đã được tạo, nhưng còn {count} cảnh báo nên xem trước.',
358
- 'orchestration.readiness.dryRun.title': 'Phù hợp để chạy thử',
359
- 'orchestration.readiness.dryRun.summary': 'Bây giờ có thể chạy thử an toàn rồi xem kết quả trước khi chạy thật.',
360
- 'orchestration.readiness.ready.title': 'Sẵn sàng chạy',
361
- 'orchestration.readiness.ready.withFollowUps': '{count} yêu cầu theo thứ tự đã khóa: hoàn tất yêu cầu 1 rồi tiếp tục yêu cầu 2 với ngữ cảnh.',
362
- 'orchestration.readiness.ready.summary': 'Mục tiêu đã rõ. Có thể chạy hoặc đưa vào hàng đợi.',
363
323
 
364
324
  // Settings panel
365
325
  'settings.language.sideLabel': 'Ngôn ngữ: {language}',
@@ -452,6 +412,8 @@ const vi = Object.freeze({
452
412
  'toast.health.noFailedProviderSelection': 'Hãy chọn ít nhất một provider lỗi trước',
453
413
  'toast.health.deleteFailedProvidersDone': 'Đã xóa {count} provider lỗi',
454
414
  'toast.noChanges': 'Không phát hiện thay đổi',
415
+ 'toast.history.restored': 'Đã khôi phục vào trình soạn, lưu để xác nhận',
416
+ 'toast.history.empty': 'Chưa có lịch sử',
455
417
  'toast.template.loadFail': 'Tải mẫu thất bại',
456
418
  'toast.template.empty': 'Mẫu không được để trống',
457
419
  'toast.template.applied': 'Đã áp dụng mẫu',
@@ -507,6 +469,10 @@ const vi = Object.freeze({
507
469
  'settings.timeline.style.dots': 'Chấm',
508
470
  'settings.timeline.style.bar': 'Thanh',
509
471
  'settings.timeline.style.hint': 'Chấm để điều hướng nhanh, Thanh để hiển thị tiến trình trực quan',
472
+ 'settings.configTabs.title': 'Hiển thị bảng cấu hình',
473
+ 'settings.configTabs.meta': 'Kiểm soát các sub-tab cấu hình hiển thị trên thanh bên',
474
+ 'settings.configTabs.hint': 'Tab bị ẩn sẽ không hiển thị; cần giữ lại ít nhất một tab',
475
+ 'settings.configTabs.minRequired': 'Phải giữ lại ít nhất một tab cấu hình',
510
476
 
511
477
  // Diff / Agents hints
512
478
  'diff.hint.busy': 'Đang tạo diff hoặc áp dụng. Thao tác tạm thời bị vô hiệu hóa.',
@@ -607,15 +573,12 @@ const vi = Object.freeze({
607
573
  'dashboard.card.config': 'Cấu hình',
608
574
  'dashboard.card.sessions': 'Phiên làm việc',
609
575
  'dashboard.card.usage': 'Thống kê',
610
- 'dashboard.card.tasks': 'Tác vụ',
611
576
  'dashboard.card.skills': 'Skills',
612
577
  'dashboard.kv.model': 'Model',
613
578
  'dashboard.kv.issue': 'Vấn đề',
614
579
  'dashboard.kv.active': 'Hoạt động',
615
580
  'dashboard.kv.sessions': 'Phiên làm việc',
616
581
  'dashboard.kv.missingModel': 'Thiếu model',
617
- 'dashboard.kv.blockers': 'Vấn đề chặn',
618
- 'dashboard.kv.runs': 'Lần chạy',
619
582
  'dashboard.kv.target': 'Mục tiêu',
620
583
  'dashboard.kv.root': 'Thư mục gốc',
621
584
  'dashboard.status.health': 'Sức khỏe',
@@ -627,7 +590,6 @@ const vi = Object.freeze({
627
590
  'dashboard.busy.configApply': 'Áp dụng cấu hình',
628
591
  'dashboard.busy.agents': 'Đang lưu agents',
629
592
  'dashboard.busy.skills': 'Skills',
630
- 'dashboard.busy.tasks': 'Tác vụ',
631
593
  'dashboard.busy.idle': 'Rảnh',
632
594
  'dashboard.message.none': 'Không có tin nhắn',
633
595
  'dashboard.sessionSource.codex': 'Codex',
@@ -654,7 +616,6 @@ const vi = Object.freeze({
654
616
  'dashboard.none': 'Không có',
655
617
  'dashboard.sessions.count': '{count} phiên',
656
618
  'dashboard.usage.range': 'Phạm vi {value}',
657
- 'dashboard.tasks.queue': 'chạy {running} / hàng đợi {queued}',
658
619
  'dashboard.skills.count': 'đã cài {installed} / có thể nhập {importable}',
659
620
  'dashboard.providersHealth.title': 'Sức khỏe nhà cung cấp',
660
621
  'dashboard.providersHealth.current': '(hiện tại)',
@@ -910,6 +871,7 @@ const vi = Object.freeze({
910
871
  'sessions.preview.importNative.failedWithReason': 'Nhập vào native thất bại: {reason}',
911
872
  'sessions.preview.copyLink': 'Sao chép link',
912
873
  'sessions.preview.copyPath': 'Sao chép đường dẫn',
874
+ 'sessions.preview.copyMessage': 'Sao chép tin nhắn',
913
875
  'sessions.preview.loadingBody': 'Đang tải nội dung phiên...',
914
876
  'sessions.preview.emptyMsgs': 'Không có tin nhắn để hiển thị',
915
877
  'sessions.preview.rendering': 'Đang render nội dung phiên...',
@@ -1145,219 +1107,6 @@ const vi = Object.freeze({
1145
1107
  'sessions.source.all': 'Tất cả',
1146
1108
  'usage.range.7d.short': '7 ngày qua',
1147
1109
  'usage.range.30d.short': '30 ngày qua',
1148
- 'orchestration.queueStats': 'Hàng đợi: {running} đang chạy · {queued} đang chờ',
1149
- 'orchestration.rebuilding.status': 'Tạm dừng',
1150
- 'orchestration.rebuilding.title': 'Đang xây lại',
1151
- 'orchestration.rebuilding.body': 'Lối vào điều phối tác vụ chỉ hiển thị và hiện chưa thể bấm.',
1152
- 'orchestration.hero.kicker': 'Điều phối tác vụ',
1153
- 'orchestration.hero.title': 'Điều phối tác vụ',
1154
- 'orchestration.hero.subtitle': 'Lập kế hoạch, chạy và theo dõi tác vụ với ngữ cảnh workspace/thread.',
1155
- 'orchestration.quick.kicker': 'Nhập tác vụ',
1156
- 'orchestration.quick.title': 'Nhập mục tiêu tác vụ',
1157
- 'orchestration.quick.subtitle': 'Mô tả mục tiêu, ràng buộc và tiêu chí nghiệm thu. Dùng /plan để xem trước trước khi chạy.',
1158
- 'orchestration.quick.caption': 'Enter thêm yêu cầu; /plan xem trước; Bắt đầu chạy sẽ lập kế hoạch và chạy.',
1159
- 'orchestration.quick.templates.reviewFix.meta': 'Sửa góp ý review và kiểm thử hồi quy.',
1160
- 'orchestration.quick.templates.planOnly.meta': 'Chỉ điều tra và lập kế hoạch, không ghi file.',
1161
- 'orchestration.quick.templates.workflowBatch.meta': 'Dùng Workflow cục bộ cho kiểm tra lặp lại.',
1162
- 'orchestration.chat.input.label': 'Tin nhắn tác vụ',
1163
- 'orchestration.chat.input.placeholder': 'Mô tả mục tiêu, ràng buộc và tiêu chí nghiệm thu. Gõ /plan để xem trước.',
1164
- 'orchestration.chat.input.hint': 'Workspace, thread và chế độ chạy có thể chỉnh trong Nâng cao.',
1165
- 'orchestration.chat.context.aria': 'Ngữ cảnh tác vụ',
1166
- 'orchestration.chat.context.workspace.auto': 'Tự phát hiện workspace',
1167
- 'orchestration.chat.context.workspace.value': 'Workspace {value}',
1168
- 'orchestration.chat.context.thread.auto': 'Tự tạo thread',
1169
- 'orchestration.chat.context.thread.value': 'Thread {value}',
1170
- 'orchestration.chat.context.sequence.empty': 'Thứ tự: chờ yêu cầu 1',
1171
- 'orchestration.chat.context.sequence.value': 'Thứ tự: {count} yêu cầu',
1172
- 'orchestration.privacy.workspace.selected': 'Đã chọn workspace',
1173
- 'orchestration.privacy.thread.selected': 'Đã chọn thread',
1174
- 'orchestration.chat.thread.aria': 'Cuộc trò chuyện tác vụ',
1175
- 'orchestration.chat.input.send': 'Thêm yêu cầu',
1176
- 'orchestration.chat.input.discuss': 'Xem trước kế hoạch',
1177
- 'orchestration.chat.input.work': 'Bắt đầu chạy',
1178
- 'orchestration.chat.input.firstHint': 'Nội dung này sẽ thành yêu cầu 1.',
1179
- 'orchestration.chat.input.sequenceHint': 'Gửi bây giờ sẽ thành yêu cầu {count}.',
1180
- 'orchestration.chat.input.workHint': 'Nội dung hiện tại sẽ được đưa vào trước khi chạy.',
1181
- 'orchestration.chat.input.workCaption': 'Enter thêm yêu cầu; /plan chỉ xem trước; Bắt đầu chạy sẽ lập kế hoạch và chạy.',
1182
- 'orchestration.chat.assistant.contextLabel': 'Ngữ cảnh trước đó',
1183
- 'orchestration.chat.assistant.contextFallback': 'Đã chọn một tác vụ cũ. Khi tiếp tục, Codexmate sẽ kế thừa thread và workspace của tác vụ đó.',
1184
- 'orchestration.chat.assistant.resultLabel': 'Kết quả',
1185
- 'orchestration.chat.assistant.filesSummary': 'Thao tác file: {files}',
1186
- 'orchestration.chat.assistant.readyLabel': 'Codexmate',
1187
- 'orchestration.chat.assistant.empty': 'Gửi yêu cầu đầu tiên. Nếu còn yêu cầu thứ hai, hãy gửi tiếp; Codexmate sẽ giữ ngữ cảnh và xử lý theo thứ tự.',
1188
- 'orchestration.chat.assistant.planLabel': 'Xem trước kế hoạch',
1189
- 'orchestration.chat.assistant.planSummary': 'Đã tạo kế hoạch: {nodes} node trong {waves} lượt.',
1190
- 'orchestration.chat.assistant.sequenceReady': 'Đã nhận nhiều yêu cầu. Codexmate sẽ hoàn tất yêu cầu 1 trước, rồi tiếp tục với ngữ cảnh còn lại.',
1191
- 'orchestration.chat.assistant.singleReady': 'Đã nhận yêu cầu đầu tiên. Có thể thêm yêu cầu 2 hoặc xem trước và chạy ngay.',
1192
- 'orchestration.chat.user.step': 'Yêu cầu {count}',
1193
- 'orchestration.chat.meta.thread': 'Thread {value}',
1194
- 'orchestration.chat.meta.workspace': 'Workspace {value}',
1195
- 'orchestration.chat.meta.order': 'Chạy tuần tự · giữ ngữ cảnh',
1196
- 'orchestration.chat.meta.first': 'Hoàn tất mục này trước',
1197
- 'orchestration.chat.meta.afterPrevious': 'Tiếp tục sau khi yêu cầu trước hoàn tất',
1198
- 'orchestration.chat.meta.contextKept': 'Ngữ cảnh được giữ trong thread',
1199
- 'orchestration.chat.meta.previewNext': 'Tiếp theo: xem trước kế hoạch',
1200
- 'orchestration.quick.checklist.title': 'Kiểm tra sẵn sàng',
1201
- 'orchestration.quick.checklist.subtitle': 'Chỉ hiển thị blocker ảnh hưởng tới việc chạy.',
1202
- 'orchestration.quick.status.title': 'Bản nháp hiện tại',
1203
- 'orchestration.workspace.aria': 'Workspace và bản ghi',
1204
- 'orchestration.workspace.title': 'Workspace',
1205
- 'orchestration.workspace.subtitle': 'Chọn dự án và tiếp tục bản ghi.',
1206
- 'orchestration.workspace.selector': 'Bộ chọn workspace',
1207
- 'orchestration.workspace.counts': '{runs} runs · {queue} queue',
1208
- 'orchestration.workspace.newSession': '+ Mới',
1209
- 'orchestration.workspace.sessions.title': 'Bản ghi',
1210
- 'orchestration.workspace.sessions.empty.title': 'Chưa có bản ghi cho dự án này',
1211
- 'orchestration.workspace.sessions.empty.subtitle': 'Tạo bản ghi mới hoặc làm mới để tải lần chạy hiện có.',
1212
- 'orchestration.workspace.sessions.queueTitle': 'Mục hàng đợi',
1213
- 'orchestration.workspace.sessions.runTitle': 'Bản ghi chạy',
1214
- 'orchestration.workspace.sessions.detailsHidden': 'Đã ẩn chi tiết',
1215
- 'orchestration.workspace.pathHidden': 'Đã ẩn đường dẫn',
1216
- 'orchestration.agent.aria': 'Trạng thái điều phối tác vụ',
1217
- 'orchestration.agent.kicker': 'Điều phối tác vụ',
1218
- 'orchestration.agent.title': 'Console điều phối tác vụ',
1219
- 'orchestration.agent.subtitle': 'Chọn workspace và bản ghi, chạy tác vụ và xem chi tiết thực thi.',
1220
- 'orchestration.agent.state.ready': 'Ready',
1221
- 'orchestration.agent.state.planning': 'Planning',
1222
- 'orchestration.agent.state.running': 'Running',
1223
- 'orchestration.agent.surface.workspace': 'Workspace',
1224
- 'orchestration.agent.surface.session': 'Context',
1225
- 'orchestration.agent.surface.mode': 'Mode',
1226
- 'orchestration.agent.surface.trace': 'Trace',
1227
- 'orchestration.agent.surface.runs': 'runs',
1228
- 'orchestration.agent.surface.queue': 'queued',
1229
- 'orchestration.agent.trace.title': 'Live trace',
1230
- 'orchestration.agent.trace.plan': 'Plan nodes',
1231
- 'orchestration.agent.trace.queue': 'Queue',
1232
- 'orchestration.agent.trace.runs': 'Runs',
1233
- 'orchestration.agent.trace.nodes': 'Run nodes',
1234
- 'orchestration.draft.reset': 'Đặt lại bản nháp',
1235
- 'orchestration.summary.aria': 'Tóm tắt điều phối tác vụ',
1236
- 'orchestration.summary.running': 'Đang chạy',
1237
- 'orchestration.summary.queued': 'Đang chờ',
1238
- 'orchestration.summary.runs': 'Lần chạy',
1239
- 'orchestration.step1.title': 'Bắt đầu với kết quả',
1240
- 'orchestration.step1.subtitle': 'Chỉ bao gồm những gì ảnh hưởng đến thực thi.',
1241
- 'orchestration.templates.title': 'Ví dụ nhanh',
1242
- 'orchestration.templates.reviewFix.label': 'Sửa review + regression',
1243
- 'orchestration.templates.reviewFix.target': 'Xử lý comment review PR hiện tại và thêm test regression',
1244
- 'orchestration.templates.reviewFix.notes': 'Tránh refactor không liên quan; cung cấp kết quả xác minh',
1245
- 'orchestration.templates.reviewFix.followUps': 'Xử lý comment review mới\\nCập nhật tóm tắt PR',
1246
- 'orchestration.templates.planOnly.label': 'Chỉ lập kế hoạch',
1247
- 'orchestration.templates.planOnly.target': 'Điều tra nguyên nhân gốc rễ và đề xuất kế hoạch thực thi mà không thay đổi code',
1248
- 'orchestration.templates.planOnly.notes': 'Tập trung vào nguyên nhân gốc, phạm vi ảnh hưởng và vùng rủi ro',
1249
- 'orchestration.templates.workflowBatch.label': 'Batch workflow',
1250
- 'orchestration.templates.workflowBatch.target': 'Chạy một bộ kiểm tra cố định bằng workflow và tóm tắt kết quả',
1251
- 'orchestration.templates.workflowBatch.workflowIds': 'diagnose-config\\nsafe-provider-switch',
1252
- 'orchestration.templates.workflowBatch.notes': 'Đưa ra kết luận thống nhất; tránh diễn giải lặp lại',
1253
- 'orchestration.fields.target': 'Tin nhắn tác vụ',
1254
- 'orchestration.fields.target.placeholder': 'vd: sửa comment review PR hiện tại, thêm test regression và tránh module không liên quan',
1255
- 'orchestration.fields.target.hint': 'Một tin nhắn kiểu chat là đủ: kết quả, ràng buộc và tiêu chí chấp nhận.',
1256
- 'orchestration.engine.openaiChat': 'OpenAI Chat',
1257
- 'orchestration.engine.workflow': 'Workflow',
1258
- 'orchestration.runMode.write': 'Ghi',
1259
- 'orchestration.runMode.readOnly': 'Chỉ đọc',
1260
- 'orchestration.runMode.dryRun': 'Thử nghiệm',
1261
- 'orchestration.pills.sequenceCount': 'Yêu cầu tuần tự {count}',
1262
- 'orchestration.pills.hasTitle': 'Có tiêu đề',
1263
- 'orchestration.pills.workflowCount': 'Workflows {count}',
1264
- 'orchestration.pills.planNodes': 'Kế hoạch {count} nút',
1265
- 'orchestration.step2.title': 'Chọn cách chạy',
1266
- 'orchestration.step2.subtitle': 'Tùy chọn phổ biến hiển thị; phần còn lại trong Nâng cao.',
1267
- 'orchestration.fields.engine': 'Engine',
1268
- 'orchestration.fields.runMode': 'Chế độ chạy',
1269
- 'orchestration.advanced.title': 'Nâng cao',
1270
- 'orchestration.advanced.open': 'Cài đặt',
1271
- 'orchestration.fields.title': 'Tiêu đề',
1272
- 'orchestration.fields.title.placeholder': 'Tùy chọn. Mặc định là tiêu đề suy ra từ mục tiêu.',
1273
- 'orchestration.fields.notes': 'Ghi chú',
1274
- 'orchestration.fields.notes.placeholder': 'vd: Chỉ thay đổi tăng dần; không viết lại kiến trúc',
1275
- 'orchestration.fields.notes.hint': 'Thêm ranh giới, ràng buộc, quy tắc style hoặc yêu cầu xác minh.',
1276
- 'orchestration.fields.workspacePath': 'Workspace path',
1277
- 'orchestration.fields.workspacePath.placeholder': 'e.g. /home/me/project',
1278
- 'orchestration.fields.workspacePath.hint': 'Plan, run, and queue use this cwd; leave blank to use the server current directory.',
1279
- 'orchestration.fields.threadId': 'Task thread ID',
1280
- 'orchestration.fields.threadId.placeholder': 'Optional; generated automatically when empty',
1281
- 'orchestration.fields.threadId.hint': 'Use the same thread for follow-up requirements, retries, and queue tracking.',
1282
- 'orchestration.fields.followUps': 'Theo dõi (mỗi dòng một mục)',
1283
- 'orchestration.fields.followUps.placeholder': 'vd:\\nXử lý comment review mới\\nThêm test regression',
1284
- 'orchestration.fields.concurrency': 'Đồng thời',
1285
- 'orchestration.fields.concurrency.hint': 'Bắt đầu với 1–2 cho tác vụ phức tạp.',
1286
- 'orchestration.fields.autoFixRounds': 'Tự động sửa',
1287
- 'orchestration.fields.autoFixRounds.hint': 'Thử lại vài vòng sau khi thất bại.',
1288
- 'orchestration.fields.workflowIds': 'Workflow ID (mỗi dòng một ID)',
1289
- 'orchestration.fields.workflowIds.placeholder': 'vd:\\ndiagnose-config\\nsafe-provider-switch',
1290
- 'orchestration.fields.workflowIds.hint': 'Bắt buộc trong chế độ Workflow. {count} có sẵn cục bộ.',
1291
- 'orchestration.workflow.stepCount': '{count} bước',
1292
- 'orchestration.step3.title': 'Xem trước, rồi thực thi',
1293
- 'orchestration.step3.subtitle': 'Xác nhận kế hoạch, rồi quyết định chạy ngay hoặc xếp hàng.',
1294
- 'orchestration.actions.planning': 'Đang lập kế hoạch...',
1295
- 'orchestration.actions.previewOnly': 'Chỉ xem trước',
1296
- 'orchestration.actions.preparing': 'Đang chuẩn bị...',
1297
- 'orchestration.actions.generatePlan': 'Gửi /plan',
1298
- 'orchestration.actions.planAndRun': 'Xem /plan rồi chạy',
1299
- 'orchestration.actions.processing': 'Đang xử lý...',
1300
- 'orchestration.actions.queueAndStart': 'Xếp hàng & bắt đầu',
1301
- 'orchestration.actions.caption': 'Khi chạy, kế hoạch được làm mới nếu cần; dùng hàng đợi cho tác vụ hàng loạt.',
1302
- 'orchestration.stage.title': 'Giai đoạn tác vụ',
1303
- 'orchestration.stage.subtitle': 'Nhập mục tiêu, xem trước kế hoạch, rồi chạy.',
1304
- 'orchestration.stage.pill.target': 'Viết tin nhắn',
1305
- 'orchestration.stage.pill.preview': 'Xem trước',
1306
- 'orchestration.stage.pill.run': 'Chạy hoặc xếp hàng',
1307
- 'orchestration.plan.title': 'Xem trước kế hoạch',
1308
- 'orchestration.plan.subtitle': 'Xác nhận node, lượt chạy và phụ thuộc.',
1309
- 'orchestration.plan.summary.nodes': 'Nút',
1310
- 'orchestration.plan.summary.waves': 'Đợt',
1311
- 'orchestration.plan.summary.engine': 'Engine',
1312
- 'orchestration.plan.summary.threadId': 'Thread ID',
1313
- 'orchestration.plan.summary.cwd': 'Workspace',
1314
- 'orchestration.plan.node.write': 'ghi',
1315
- 'orchestration.plan.node.readOnly': 'chỉ đọc',
1316
- 'orchestration.labels.dependencies': 'Phụ thuộc: ',
1317
- 'orchestration.labels.error': 'Lỗi: ',
1318
- 'orchestration.workbench.title': 'Bàn làm việc',
1319
- 'orchestration.workbench.subtitle': 'Hiển thị hàng đợi, lịch sử chạy và chi tiết node.',
1320
- 'orchestration.queue.start': 'Bắt đầu hàng đợi',
1321
- 'orchestration.queue.starting': 'Đang bắt đầu...',
1322
- 'orchestration.workbench.tabs.aria': 'Chế độ xem bàn làm việc',
1323
- 'orchestration.workbench.tabs.queue': 'Hàng đợi {count}',
1324
- 'orchestration.workbench.tabs.runs': 'Lần chạy {count}',
1325
- 'orchestration.workbench.tabs.detail': 'Chi tiết lần chạy',
1326
- 'orchestration.workbench.queueCount': '{count} đang chờ',
1327
- 'orchestration.workbench.ready': 'Sẵn sàng',
1328
- 'orchestration.queue.empty.title': 'Không có tác vụ trong hàng đợi',
1329
- 'orchestration.queue.empty.subtitle': 'Xếp hàng tác vụ hàng loạt trước, rồi bắt đầu runner.',
1330
- 'orchestration.runs.empty.title': 'Chưa có lần chạy nào',
1331
- 'orchestration.runs.empty.subtitle': 'Các lần chạy gần đây sẽ xuất hiện sau khi thực thi.',
1332
- 'orchestration.detail.refresh': 'Làm mới chi tiết',
1333
- 'orchestration.detail.retry': 'Thử lại',
1334
- 'orchestration.detail.retrying': 'Đang thử lại...',
1335
- 'orchestration.detail.continueThread': 'Continue thread',
1336
- 'orchestration.detail.empty.title': 'Chọn một lần chạy để xem chi tiết',
1337
- 'orchestration.detail.empty.subtitle': 'Chế độ xem này hiển thị trạng thái nút, tóm tắt và log.',
1338
- 'orchestration.detail.summary.status': 'Trạng thái',
1339
- 'orchestration.detail.summary.duration': 'Thời gian',
1340
- 'orchestration.detail.summary.nodes': 'Nút',
1341
- 'orchestration.detail.summary.summary': 'Tóm tắt',
1342
- 'orchestration.detail.context.aria': 'Ngữ cảnh lượt chạy tác vụ',
1343
- 'orchestration.detail.context.run': 'Run ID',
1344
- 'orchestration.detail.node.meta': '{id} · thử {attempts} lần · tự sửa {autoFix}',
1345
- 'orchestration.openai.status.title': 'Cấu hình chạy OpenAI Chat',
1346
- 'orchestration.openai.status.subtitle': 'Node tác vụ dùng provider OpenClaw hiện tại; kiểm tra base URL, API key và model trước khi chạy.',
1347
- 'orchestration.openai.status.provider': 'Provider',
1348
- 'orchestration.openai.status.model': 'Model',
1349
- 'orchestration.openai.status.endpoint': 'Endpoint',
1350
- 'orchestration.openai.status.apiKey': 'API Key',
1351
- 'orchestration.openai.status.headers': 'Headers thêm',
1352
- 'orchestration.openai.status.configured': 'Đã cấu hình',
1353
- 'orchestration.openai.status.missing': 'Thiếu',
1354
- 'orchestration.openai.status.notSet': 'Chưa đặt',
1355
- 'orchestration.openai.status.notLoaded': 'Làm mới để tải trạng thái sẵn sàng OpenAI Chat.',
1356
- 'orchestration.openai.status.configure': 'Cấu hình OpenAI Chat',
1357
- 'orchestration.detail.node.output': 'AI output',
1358
- 'orchestration.detail.node.endpoint': 'Endpoint: ',
1359
- 'orchestration.detail.node.materializedFiles': 'File đã tạo:',
1360
- 'orchestration.detail.node.workspaceFiles': 'File workspace:',
1361
1110
  'skills.localLabel': '{target} / Skills cục bộ',
1362
1111
  'skills.counts': '{installed} đã cài · {importable} có thể nhập',
1363
1112
  'status.currentSource': 'Nguồn hiện tại',
@@ -1365,11 +1114,6 @@ const vi = Object.freeze({
1365
1114
  'status.range': 'Phạm vi',
1366
1115
  'status.totalSessions': 'Tổng phiên',
1367
1116
  'status.totalMessages': 'Tổng tin nhắn',
1368
- 'status.engine': 'Engine',
1369
- 'status.concurrency': 'Đồng thời',
1370
- 'status.running': 'Đang chạy',
1371
- 'status.queued': 'Đang chờ',
1372
- 'status.runs': 'Lần chạy',
1373
1117
  'status.currentTarget': 'Mục tiêu hiện tại',
1374
1118
  'status.localSkills': 'Skills cục bộ',
1375
1119
  'status.importable': 'Có thể nhập',