claude-ws 0.3.97 → 0.3.99

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 (86) hide show
  1. package/locales/de.json +374 -12
  2. package/locales/en.json +374 -12
  3. package/locales/es.json +398 -11
  4. package/locales/fr.json +398 -11
  5. package/locales/ja.json +398 -11
  6. package/locales/ko.json +398 -11
  7. package/locales/vi.json +374 -12
  8. package/locales/zh.json +398 -11
  9. package/package.json +1 -1
  10. package/server.ts +283 -6
  11. package/src/app/[locale]/not-found.tsx +6 -3
  12. package/src/app/[locale]/page.tsx +14 -4
  13. package/src/app/api/attempts/[id]/workflow/route.ts +76 -0
  14. package/src/app/api/questions/answer/route.ts +58 -0
  15. package/src/app/api/questions/route.ts +68 -0
  16. package/src/app/api/tasks/[id]/compact/route.ts +62 -0
  17. package/src/components/access-anywhere/api-access-key-setup-modal.tsx +2 -2
  18. package/src/components/access-anywhere/tunnel-settings-dialog.tsx +6 -6
  19. package/src/components/access-anywhere/wizard-step-ctunnel.tsx +8 -8
  20. package/src/components/agent-factory/dependency-tree.tsx +5 -3
  21. package/src/components/agent-factory/discovery-dialog.tsx +26 -22
  22. package/src/components/agent-factory/plugin-detail-dialog.tsx +41 -38
  23. package/src/components/agent-factory/plugin-form-dialog.tsx +23 -20
  24. package/src/components/agent-factory/plugin-list.tsx +20 -17
  25. package/src/components/agent-factory/upload-dialog.tsx +17 -14
  26. package/src/components/auth/agent-provider-dialog.tsx +67 -65
  27. package/src/components/auth/api-key-dialog.tsx +14 -11
  28. package/src/components/auth/auth-error-message.tsx +6 -3
  29. package/src/components/editor/code-editor-with-inline-edit.tsx +4 -2
  30. package/src/components/editor/file-diff-resolver-modal.tsx +31 -26
  31. package/src/components/editor/inline-edit-dialog.tsx +9 -6
  32. package/src/components/editor/selection-mention-popup.tsx +3 -1
  33. package/src/components/header/project-selector.tsx +7 -4
  34. package/src/components/header.tsx +70 -4
  35. package/src/components/kanban/column.tsx +11 -0
  36. package/src/components/kanban/task-card.tsx +70 -4
  37. package/src/components/project-settings/component-selector.tsx +3 -1
  38. package/src/components/project-settings/plugin-upload-dialog.tsx +7 -5
  39. package/src/components/project-settings/project-settings-dialog.tsx +5 -3
  40. package/src/components/questions/questions-panel.tsx +136 -0
  41. package/src/components/settings/folder-browser-dialog.tsx +29 -25
  42. package/src/components/settings/settings-page.tsx +64 -18
  43. package/src/components/settings/setup-dialog.tsx +26 -23
  44. package/src/components/setup/unified-setup-wizard.tsx +12 -9
  45. package/src/components/sidebar/file-browser/file-create-buttons.tsx +7 -3
  46. package/src/components/sidebar/file-browser/file-tab-content.tsx +19 -15
  47. package/src/components/sidebar/file-browser/file-tabs-panel.tsx +7 -4
  48. package/src/components/sidebar/file-browser/file-tree.tsx +3 -1
  49. package/src/components/sidebar/git-changes/branch-checkout-modal.tsx +6 -4
  50. package/src/components/sidebar/git-changes/commit-details-modal.tsx +5 -3
  51. package/src/components/sidebar/git-changes/diff-tabs-panel.tsx +3 -1
  52. package/src/components/sidebar/git-changes/git-file-item.tsx +8 -6
  53. package/src/components/sidebar/git-changes/git-graph.tsx +8 -5
  54. package/src/components/sidebar/git-changes/git-panel.tsx +28 -27
  55. package/src/components/sidebar/git-changes/git-section.tsx +5 -3
  56. package/src/components/sidebar/shells/shell-panel.tsx +3 -1
  57. package/src/components/task/attachment-bar.tsx +4 -1
  58. package/src/components/task/attempt-item.tsx +7 -5
  59. package/src/components/task/conversation-view.tsx +21 -13
  60. package/src/components/task/floating-chat-window.tsx +14 -5
  61. package/src/components/task/interactive-command/checkpoint-list.tsx +5 -3
  62. package/src/components/task/interactive-command/confirm-dialog.tsx +9 -4
  63. package/src/components/task/interactive-command/interactive-command-overlay.tsx +23 -9
  64. package/src/components/task/interactive-command/question-prompt.tsx +12 -8
  65. package/src/components/task/pending-question-indicator.tsx +5 -3
  66. package/src/components/task/prompt-input.tsx +1 -1
  67. package/src/components/task/shell-log-view.tsx +3 -1
  68. package/src/components/task/status-line.tsx +84 -23
  69. package/src/components/task/task-detail-panel.tsx +27 -27
  70. package/src/components/task/task-shell-indicator.tsx +10 -6
  71. package/src/components/terminal/terminal-context-menu.tsx +6 -4
  72. package/src/components/terminal/terminal-instance.tsx +11 -3
  73. package/src/components/terminal/terminal-panel.tsx +6 -3
  74. package/src/components/terminal/terminal-shortcut-bar.tsx +3 -1
  75. package/src/components/terminal/terminal-tab-bar.tsx +5 -3
  76. package/src/components/workflow/workflow-panel.tsx +181 -0
  77. package/src/hooks/use-attempt-stream.ts +96 -3
  78. package/src/lib/agent-manager.ts +89 -3
  79. package/src/lib/db/index.ts +18 -0
  80. package/src/lib/db/schema.ts +29 -0
  81. package/src/lib/process-manager.ts +28 -7
  82. package/src/lib/session-manager.ts +60 -0
  83. package/src/lib/usage-tracker.ts +19 -19
  84. package/src/lib/workflow-tracker.ts +118 -20
  85. package/src/stores/questions-store.ts +76 -0
  86. package/src/stores/workflow-store.ts +71 -0
package/locales/vi.json CHANGED
@@ -37,7 +37,38 @@
37
37
  "newTask": "Nhiệm vụ mới",
38
38
  "agentFactory": "Agent Factory",
39
39
  "agentProvider": "Agent Provider",
40
- "accessAnywhere": "Truy cập Mọi nơi"
40
+ "accessAnywhere": "Truy cập Mọi nơi",
41
+ "configured": "Đã cấu hình",
42
+ "default": "Mặc định",
43
+ "noProjectsConfigured": "Chưa có dự án nào được cấu hình",
44
+ "setUpProject": "Thiết lập dự án",
45
+ "loadingApp": "Đang tải Claude.WS",
46
+ "unsavedChangesConfirm": "\"{fileName}\" có thay đổi chưa lưu. Vẫn đóng?",
47
+ "allProjects": "Tất cả dự án",
48
+ "noProjectsYet": "Chưa có dự án nào",
49
+ "selectProject": "Chọn dự án",
50
+ "clearSearch": "Xóa tìm kiếm",
51
+ "no": "Không",
52
+ "yes": "Có",
53
+ "browse": "Duyệt",
54
+ "creating": "Đang tạo...",
55
+ "opening": "Đang mở...",
56
+ "saving": "Đang lưu...",
57
+ "verifying": "Đang xác minh...",
58
+ "generating": "Đang tạo...",
59
+ "scanning": "Đang quét...",
60
+ "importing": "Đang nhập...",
61
+ "checking": "Đang kiểm tra...",
62
+ "renaming": "Đang đổi tên...",
63
+ "rename": "Đổi tên",
64
+ "paste": "Dán",
65
+ "clearTerminal": "Xóa terminal",
66
+ "new": "Mới",
67
+ "refresh": "Làm mới",
68
+ "discover": "Khám phá",
69
+ "upload": "Tải lên",
70
+ "create": "Tạo",
71
+ "editTitle": "Sửa tiêu đề"
41
72
  },
42
73
  "header": {
43
74
  "projects": "Dự án",
@@ -76,7 +107,9 @@
76
107
  "messageRequired": "Tin nhắn là bắt buộc",
77
108
  "pleaseSelectProject": "Vui lòng chọn dự án",
78
109
  "waitFileUpload": "Vui lòng đợi tập tin tải lên xong",
79
- "failedToCreate": "Không thể tạo nhiệm vụ"
110
+ "failedToCreate": "Không thể tạo nhiệm vụ",
111
+ "dragToReorder": "Kéo để sắp xếp lại",
112
+ "deleteTask": "Xóa nhiệm vụ"
80
113
  },
81
114
  "task": {
82
115
  "title": "Tiêu đề",
@@ -95,7 +128,35 @@
95
128
  "runAgain": "Chạy lại",
96
129
  "viewDiff": "Xem diff",
97
130
  "checkpoint": "Điểm kiểm tra",
98
- "restore": "Khôi phục"
131
+ "restore": "Khôi phục",
132
+ "noAttemptRunning": "Không có lần thử nào đang chạy. Gửi tin nhắn để bắt đầu.",
133
+ "waitingForTracking": "Đang chờ dữ liệu theo dõi...",
134
+ "tokens": "token",
135
+ "turn": "lượt",
136
+ "turns": "lượt",
137
+ "file": "tập tin",
138
+ "files": "tập tin",
139
+ "questionsPending": "{count} câu hỏi đang chờ",
140
+ "moreQuestions": "+{count} câu hỏi khác",
141
+ "open": "Mở",
142
+ "stopShell": "Dừng shell (K)",
143
+ "runningBackgroundTasks": "{count} nhiệm vụ nền đang chạy",
144
+ "navigateHint": "điều hướng",
145
+ "viewLogsHint": "xem nhật ký",
146
+ "killHint": "dừng",
147
+ "closeHint": "đóng",
148
+ "loadingQuestion": "Đang tải câu hỏi...",
149
+ "statusRunning": "Đang chạy",
150
+ "statusCompleted": "Hoàn thành",
151
+ "statusFailed": "Thất bại",
152
+ "statusCancelled": "Đã hủy",
153
+ "deleteTaskConfirm": "Xóa nhiệm vụ \"{title}\"?",
154
+ "dragToReorder": "Kéo để sắp xếp lại",
155
+ "submitAnswers": "Gửi câu trả lời",
156
+ "reviewAnswers": "Xem lại câu trả lời",
157
+ "notAllAnswered": "Bạn chưa trả lời tất cả câu hỏi",
158
+ "readyToSubmit": "Sẵn sàng gửi câu trả lời?",
159
+ "typeSomething": "Nhập gì đó."
99
160
  },
100
161
  "editor": {
101
162
  "openFile": "Mở tập tin",
@@ -105,7 +166,55 @@
105
166
  "find": "Tìm",
106
167
  "replace": "Thay thế",
107
168
  "format": "Định dạng",
108
- "toggleWordWrap": "Bật/tắt ngắt dòng"
169
+ "toggleWordWrap": "Bật/tắt ngắt dòng",
170
+ "fileChangedExternally": "Tập tin bị thay đổi bên ngoài",
171
+ "hasBeenModified": "đã bị thay đổi trên đĩa. Nhấp",
172
+ "toInsertRemoteLines": "để chèn các dòng từ xa vào phiên bản của bạn.",
173
+ "differences": "Khác biệt:",
174
+ "newInRemote": "mới từ xa",
175
+ "onlyInLocal": "chỉ có ở bản địa",
176
+ "filesIdentical": "Các tập tin giống nhau",
177
+ "modifiedFromOriginal": "Đã sửa đổi từ bản gốc",
178
+ "local": "Bản địa",
179
+ "modified": "(đã sửa đổi)",
180
+ "copyLocalContent": "Sao chép nội dung bản địa",
181
+ "remoteDisk": "Từ xa (Đĩa)",
182
+ "copyRemoteContent": "Sao chép nội dung từ xa",
183
+ "keepLocalOnly": "Chỉ giữ bản địa",
184
+ "acceptRemoteOnly": "Chỉ chấp nhận từ xa",
185
+ "applyMerged": "Áp dụng đã hợp nhất",
186
+ "lineInserted": "Đã chèn dòng với dấu đánh dấu",
187
+ "linesInserted": "{count} dòng đã chèn với dấu đánh dấu",
188
+ "deletionMarkersInserted": "Đã chèn dấu đánh dấu xóa",
189
+ "deletionMarkerInserted": "Đã chèn dấu đánh dấu xóa",
190
+ "keptLocalChanges": "Đã giữ thay đổi bản địa",
191
+ "acceptedRemoteChanges": "Đã chấp nhận thay đổi từ xa",
192
+ "appliedMergedChanges": "Đã áp dụng thay đổi đã hợp nhất",
193
+ "copiedToClipboard": "Đã sao chép {label} vào clipboard",
194
+ "linesInRemote": "{count} dòng từ xa",
195
+ "insertAllLines": "Chèn tất cả {count} dòng",
196
+ "linesDeletedInRemote": "{count} dòng đã xóa từ xa",
197
+ "markAsDeleted": "Đánh dấu là đã xóa",
198
+ "insertLineIntoLocal": "Chèn dòng này vào bản địa",
199
+ "selectTaskFirst": "Chọn nhiệm vụ trước để thêm ngữ cảnh",
200
+ "accept": "Chấp nhận",
201
+ "reject": "Từ chối",
202
+ "describeChange": "Mô tả thay đổi bạn muốn...",
203
+ "error": "Lỗi",
204
+ "addLinesToChat": "Thêm dòng L{startLine}-{endLine} vào trò chuyện",
205
+ "addFileToChat": "Thêm tập tin vào trò chuyện",
206
+ "searchPlaceholder": "Tìm kiếm...",
207
+ "previousMatch": "Trước",
208
+ "nextMatch": "Tiếp",
209
+ "undo": "Hoàn tác",
210
+ "redo": "Làm lại",
211
+ "showSourceCode": "Hiển thị mã nguồn",
212
+ "showPreview": "Hiển thị xem trước",
213
+ "export": "Xuất",
214
+ "checkingForChanges": "Đang kiểm tra thay đổi...",
215
+ "externalChangesDetected": "Phát hiện thay đổi bên ngoài - nhấp để giải quyết",
216
+ "closeAllTabs": "Đóng tất cả tab",
217
+ "addMoreFiles": "Thêm tập tin"
109
218
  },
110
219
  "sidebar": {
111
220
  "files": "Tập tin",
@@ -205,7 +314,40 @@
205
314
  "noChangesToCommit": "Không có thay đổi để gửi",
206
315
  "noChanges": "Không có thay đổi",
207
316
  "enterCommitMessage": "Nhập thông điệp gửi",
208
- "staged": "Đã chuẩn bị"
317
+ "staged": "Đã chuẩn bị",
318
+ "discardChangesConfirm": "Hủy thay đổi đối với {filePath}?",
319
+ "discardAllConfirm": "Hủy TẤT CẢ thay đổi? Không thể hoàn tác!",
320
+ "failedToAddGitignore": "Không thể thêm vào .gitignore",
321
+ "failedToCommit": "Gửi thất bại",
322
+ "failedToGenerateCommit": "Không thể tạo thông điệp gửi",
323
+ "failedToPush": "Không thể đẩy thay đổi",
324
+ "failedToFetchBranches": "Không thể lấy danh sách nhánh",
325
+ "clickToSwitchBranches": "Nhấp để chuyển nhánh",
326
+ "noBranch": "Không có nhánh",
327
+ "changes": "Thay đổi",
328
+ "discardAllChanges": "Hủy tất cả thay đổi",
329
+ "stageAllChanges": "Stage tất cả thay đổi",
330
+ "unstageAllChanges": "Unstage tất cả thay đổi",
331
+ "commitTitle": "Tiêu đề gửi",
332
+ "descriptionOptional": "Mô tả (tùy chọn)",
333
+ "syncChanges": "Đồng bộ thay đổi",
334
+ "commitChanges": "Gửi thay đổi",
335
+ "noChangesToGenerate": "Không có thay đổi để tạo thông điệp gửi",
336
+ "generateCommitMessage": "Tạo thông điệp gửi bằng AI",
337
+ "workingTreeClean": "Cây làm việc sạch",
338
+ "addToGitignore": "Thêm vào .gitignore",
339
+ "unstageChanges": "Unstage thay đổi",
340
+ "discardChanges": "Hủy thay đổi",
341
+ "stageChanges": "Stage thay đổi",
342
+ "showAllBranches": "Hiển thị tất cả nhánh",
343
+ "showCurrentBranchOnly": "Chỉ hiển thị nhánh hiện tại",
344
+ "fetch": "Tải về",
345
+ "searchBranches": "Tìm kiếm nhánh...",
346
+ "copyFullHash": "Sao chép mã hash đầy đủ",
347
+ "checkoutCommit": "Checkout commit này (trạng thái HEAD tách rời)",
348
+ "createBranchFromCommit": "Tạo nhánh mới từ commit này",
349
+ "closeAllTabs": "Đóng tất cả tab",
350
+ "newFile": "Mới"
209
351
  },
210
352
  "settings": {
211
353
  "title": "Cài đặt",
@@ -222,14 +364,73 @@
222
364
  "agentFactory": "Agent Factory",
223
365
  "plugins": "Plugin",
224
366
  "installPlugin": "Cài đặt plugin",
225
- "managePlugins": "Quản lý plugin"
367
+ "managePlugins": "Quản lý plugin",
368
+ "manageSettings": "Quản lý cài đặt và tùy chọn dự án của bạn.",
369
+ "currentProject": "Dự án hiện tại",
370
+ "claudeApiConfig": "Cấu hình API Claude",
371
+ "providerConfigured": "Đã cấu hình nhà cung cấp",
372
+ "noProviderConfigured": "Chưa cấu hình nhà cung cấp",
373
+ "configure": "Cấu hình",
374
+ "apiAccessKey": "Khóa truy cập API",
375
+ "remoteAccessAuth": "Xác thực truy cập từ xa",
376
+ "apiKeyConfigured": "Đã cấu hình khóa truy cập API",
377
+ "noApiKeyConfigured": "Chưa cấu hình khóa truy cập API",
378
+ "setUpProject": "Thiết lập dự án",
379
+ "selectExistingDescription": "Chọn thư mục dự án hiện có để mở.",
380
+ "configureNewDescription": "Cấu hình thư mục dự án để sử dụng với Claude Code.",
381
+ "openExisting": "Mở dự án hiện có",
382
+ "createNew": "Tạo mới",
383
+ "projectFolder": "Thư mục dự án",
384
+ "openProject": "Mở dự án",
385
+ "rootFolder": "Thư mục gốc",
386
+ "createProject": "Tạo dự án",
387
+ "projectNameRequired": "Tên dự án là bắt buộc",
388
+ "rootFolderRequired": "Thư mục gốc là bắt buộc",
389
+ "projectNameAlphanumeric": "Tên dự án phải chứa ít nhất một ký tự chữ hoặc số",
390
+ "projectPathRequired": "Đường dẫn dự án là bắt buộc",
391
+ "enterAbsolutePath": "Vui lòng nhập đường dẫn tuyệt đối",
392
+ "autoDetected": "(tự động phát hiện)",
393
+ "folderNameHint": "Đây sẽ là tên thư mục dự án",
394
+ "selectParentFolder": "Chọn thư mục cha nơi dự án sẽ được tạo",
395
+ "projectCreatedAt": "Dự án sẽ được tạo tại:",
396
+ "selectFolder": "Chọn thư mục",
397
+ "navigateAndSelect": "Điều hướng đến và chọn thư mục dự án",
398
+ "up": "Lên",
399
+ "home": "Trang chủ",
400
+ "noSubdirectories": "Không có thư mục con",
401
+ "renameFolderTitle": "Đổi tên thư mục",
402
+ "selectThisFolder": "Chọn thư mục này",
403
+ "createNewFolder": "Tạo thư mục mới",
404
+ "enterFolderNameIn": "Nhập tên cho thư mục mới trong",
405
+ "folderName": "Tên thư mục",
406
+ "renameFolder": "Đổi tên thư mục",
407
+ "enterNewNameFor": "Nhập tên mới cho",
408
+ "newName": "Tên mới",
409
+ "folderCreated": "Đã tạo thư mục",
410
+ "createFailed": "Tạo thất bại",
411
+ "folderRenamed": "Đã đổi tên thư mục",
412
+ "renameFailed": "Đổi tên thất bại",
413
+ "setUpWorkspace": "Thiết lập không gian làm việc",
414
+ "setUpWorkspaceDescription": "Cấu hình các cài đặt thiết yếu cho không gian làm việc. Bạn luôn có thể thay đổi sau trong Cài đặt.",
415
+ "configureAuthDescription": "Cấu hình cách xác thực với API Claude",
416
+ "setUpRemoteAccess": "Thiết lập xác thực cho truy cập từ xa",
417
+ "projectSettings": "Cài đặt dự án",
418
+ "noProjectsAvailable": "Không có dự án nào khả dụng"
226
419
  },
227
420
  "auth": {
228
421
  "apiKeyRequired": "Cần API Key",
229
422
  "enterApiKey": "Nhập API key của bạn để tiếp tục",
230
423
  "apiKey": "API Key",
231
424
  "verify": "Xác minh",
232
- "invalidApiKey": "API Key không hợp lệ"
425
+ "invalidApiKey": "API Key không hợp lệ",
426
+ "apiKeyIsRequired": "Khóa API là bắt buộc",
427
+ "failedToVerifyApiKey": "Xác minh khóa API thất bại",
428
+ "serverRequiresApiKey": "Máy chủ này yêu cầu khóa API để truy cập. Nhập khóa của bạn để tiếp tục.",
429
+ "enterYourApiKey": "Nhập khóa API của bạn",
430
+ "apiKeyStoredLocally": "Khóa API sẽ được lưu cục bộ trong trình duyệt",
431
+ "pressEnterOrSubmit": "Nhấn Enter hoặc nhấp Gửi để xác minh",
432
+ "authenticationError": "Lỗi xác thực",
433
+ "configAgentProvider": "Cấu hình nhà cung cấp Agent"
233
434
  },
234
435
  "agentFactory": {
235
436
  "title": "Nhà máy tác nhân",
@@ -242,7 +443,88 @@
242
443
  "viewFiles": "Xem tập tin",
243
444
  "compare": "So sánh",
244
445
  "import": "Nhập",
245
- "export": "Xuất"
446
+ "export": "Xuất",
447
+ "description": "Đây là kho plugin của bạn. Để cài đặt plugin cho dự án cụ thể, vào Cài đặt dự án và chọn plugin để cài đặt.",
448
+ "searchPlugins": "Tìm kiếm plugin...",
449
+ "loadingPlugins": "Đang tải plugin...",
450
+ "noDescription": "Không có mô tả",
451
+ "noPluginsFound": "Không tìm thấy plugin",
452
+ "adjustFilters": "Thử điều chỉnh bộ lọc hoặc từ khóa tìm kiếm",
453
+ "getStartedDiscover": "Bắt đầu bằng cách khám phá plugin hiện có hoặc tạo mới",
454
+ "deletePluginConfirm": "Bạn có chắc muốn xóa plugin này?",
455
+ "skills": "Kỹ năng",
456
+ "commands": "Lệnh",
457
+ "agents": "Tác nhân",
458
+ "agentSets": "Bộ tác nhân",
459
+ "all": "Tất cả",
460
+ "discoverPlugins": "Khám phá plugin",
461
+ "scanDescription": "Quét hệ thống tập tin để tìm plugin Claude hiện có và nhập vào Agent Factory.",
462
+ "clickScanToSearch": "Nhấp nút Quét để tìm kiếm plugin",
463
+ "scan": "Quét",
464
+ "scanningForPlugins": "Đang quét plugin...",
465
+ "noPluginsFoundScan": "Không tìm thấy plugin trong /skills, /commands hoặc /agents",
466
+ "rescan": "Quét lại",
467
+ "pluginsFound": "plugin đã tìm thấy",
468
+ "newStatus": "mới",
469
+ "updates": "cập nhật",
470
+ "current": "hiện tại",
471
+ "importAll": "Nhập tất cả",
472
+ "importSelected": "Nhập {count} đã chọn",
473
+ "editPlugin": "Sửa plugin",
474
+ "createNewPlugin": "Tạo plugin mới",
475
+ "updatePluginDescription": "Cập nhật chi tiết plugin bên dưới.",
476
+ "addPluginDescription": "Thêm plugin mới vào sổ đăng ký Agent Factory.",
477
+ "type": "Loại",
478
+ "skill": "Kỹ năng",
479
+ "command": "Lệnh",
480
+ "agent": "Tác nhân",
481
+ "name": "Tên",
482
+ "pluginName": "Tên plugin",
483
+ "pluginDescription": "Mô tả ngắn về plugin",
484
+ "sourcePath": "Đường dẫn nguồn",
485
+ "pathAutoGenerated": "Đường dẫn sẽ được tự động tạo dựa trên loại và tên plugin",
486
+ "storageType": "Loại lưu trữ",
487
+ "local": "Cục bộ",
488
+ "imported": "Đã nhập",
489
+ "external": "Bên ngoài",
490
+ "update": "Cập nhật",
491
+ "details": "Chi tiết",
492
+ "files": "Tập tin",
493
+ "noFilesFound": "Không tìm thấy tập tin",
494
+ "reResolve": "Giải quyết lại",
495
+ "reResolving": "Đang giải quyết lại...",
496
+ "noDependenciesFound": "Không tìm thấy phụ thuộc",
497
+ "libraryDependencies": "Phụ thuộc thư viện",
498
+ "noExternalLibraries": "Không tìm thấy thư viện bên ngoài",
499
+ "installScripts": "Script cài đặt",
500
+ "pluginDependencies": "Phụ thuộc plugin",
501
+ "noPluginDependencies": "Không tìm thấy phụ thuộc plugin",
502
+ "circularDependencies": "Phát hiện phụ thuộc vòng",
503
+ "discovered": "Đã khám phá",
504
+ "pluginDetails": "Chi tiết và tập tin plugin",
505
+ "discoveredPluginDetails": "Chi tiết và tập tin plugin đã khám phá",
506
+ "metadata": "Siêu dữ liệu",
507
+ "storage": "Lưu trữ:",
508
+ "failedToLoadFiles": "Không thể tải tập tin",
509
+ "failedToLoadFile": "Không thể tải tập tin",
510
+ "failedToLoadDependencies": "Không thể tải phụ thuộc",
511
+ "failedToReResolveDependencies": "Không thể giải quyết lại phụ thuộc",
512
+ "failedToAnalyzeDependencies": "Không thể phân tích phụ thuộc",
513
+ "failedToUninstallComponent": "Không thể gỡ cài đặt thành phần",
514
+ "cycle": "Vòng lặp",
515
+ "missing": "Thiếu",
516
+ "maxDepth": "Độ sâu tối đa",
517
+ "confirmImport": "Xác nhận nhập",
518
+ "importFromArchive": "Nhập plugin từ tập tin nén",
519
+ "analyzingArchive": "Đang phân tích tập tin nén...",
520
+ "clickToUploadOrDrag": "Nhấp để tải lên hoặc kéo thả",
521
+ "supportedFormats": "Tập tin .zip, .tar, .gz, .gzip hoặc .tgz",
522
+ "invalidFileType": "Loại tập tin không hợp lệ. Vui lòng tải lên tập tin .zip, .tar, .gz, .gzip hoặc .tgz.",
523
+ "automaticOrganization": "Tổ chức tự động:",
524
+ "itemsToImport": "Mục cần nhập",
525
+ "archiveAnalyzed": "Phân tích tập tin nén thành công. Nhấp Nhập để thêm các plugin này vào Agent Factory.",
526
+ "importingPlugins": "Đang nhập plugin...",
527
+ "importGlobally": "Nhập toàn cục"
246
528
  },
247
529
  "shells": {
248
530
  "newShell": "Shell mới",
@@ -250,7 +532,17 @@
250
532
  "exited": "Đã thoát",
251
533
  "restart": "Khởi động lại",
252
534
  "kill": "Dừng",
253
- "clearOutput": "Xóa đầu ra"
535
+ "clearOutput": "Xóa đầu ra",
536
+ "creatingTerminal": "Đang tạo terminal...",
537
+ "failedToCreateTerminal": "Không thể tạo terminal",
538
+ "copiedToClipboard": "Đã sao chép vào clipboard",
539
+ "failedToCopy": "Sao chép thất bại",
540
+ "stopShell": "Dừng shell",
541
+ "selectionMode": "Chế độ chọn",
542
+ "newTerminal": "Terminal mới",
543
+ "sendCtrlC": "Gửi Ctrl+C (SIGINT)",
544
+ "closePanel": "Đóng bảng",
545
+ "clipboardDenied": "Quyền truy cập clipboard bị từ chối — sử dụng nút Dán trên thanh phím tắt trên di động"
254
546
  },
255
547
  "chat": {
256
548
  "taskCompleted": "Đã hoàn thành nhiệm vụ!",
@@ -289,7 +581,19 @@
289
581
  "commandsHint": "lệnh",
290
582
  "filesHint": "tập tin",
291
583
  "pasteImageHint": "dán hình ảnh",
292
- "cancelled": "Đã hủy"
584
+ "cancelled": "Đã hủy",
585
+ "detachToFloating": "Tách thành cửa sổ nổi",
586
+ "maximizeToPanel": "Phóng to thành bảng",
587
+ "clearConversation": "Xóa cuộc trò chuyện",
588
+ "clearConversationConfirm": "Bạn có chắc muốn xóa tất cả tin nhắn? Hành động này không thể hoàn tác.",
589
+ "compactConversation": "Nén cuộc trò chuyện",
590
+ "compactConversationConfirm": "Điều này sẽ tóm tắt cuộc trò chuyện để tiết kiệm không gian ngữ cảnh. Tiếp tục?",
591
+ "compact": "Nén",
592
+ "typeYourAnswer": "Nhập câu trả lời...",
593
+ "rewoundToCheckpoint": "Đã tua lại cuộc trò chuyện và tập tin về điểm kiểm tra",
594
+ "rewoundConversationOnly": "Chỉ tua lại cuộc trò chuyện",
595
+ "rewoundConversation": "Đã tua lại cuộc trò chuyện về điểm kiểm tra",
596
+ "waitForUpload": "Vui lòng đợi tập tin tải lên xong"
293
597
  },
294
598
  "agentProvider": {
295
599
  "configureTitle": "Cấu hình Nhà cung cấp Agent",
@@ -299,7 +603,49 @@
299
603
  "currentConfiguration": "Cấu hình Hiện tại",
300
604
  "loading": "Đang tải...",
301
605
  "activeProcessEnv": "Giá trị process.env đang hoạt động:",
302
- "noProviderConfig": "Không tìm thấy cấu hình nhà cung cấp"
606
+ "noProviderConfig": "Không tìm thấy cấu hình nhà cung cấp",
607
+ "loginWithClaude": "Đăng nhập bằng tài khoản Claude",
608
+ "forClaudeSubscribers": "Dành cho người đăng ký Claude Pro, Max, Team hoặc Enterprise",
609
+ "anthropicConsole": "Tài khoản Anthropic Console",
610
+ "payAsYouGo": "Thanh toán API theo mức sử dụng",
611
+ "claudeCodeSettings": "Cài đặt Claude Code",
612
+ "useSettingsJson": "Sử dụng cấu hình settings.json",
613
+ "customApiKey": "Khóa API tùy chỉnh",
614
+ "useOwnApiKey": "Sử dụng khóa API Anthropic của bạn",
615
+ "howToLoginOAuth": "Cách đăng nhập bằng OAuth:",
616
+ "ensureSubscription": "Đảm bảo bạn có đăng ký Claude Pro, Max, Team hoặc Enterprise",
617
+ "openTerminal": "Mở terminal trên máy chủ",
618
+ "runClaudeLogin": "Chạy:",
619
+ "chooseOAuthOption": "1. Tài khoản Claude có đăng ký · Pro, Max, Team hoặc Enterprise",
620
+ "followAuthFlow": "Làm theo quy trình xác thực trên trình duyệt",
621
+ "restartAfterLogin": "Khởi động lại ứng dụng sau khi đăng nhập",
622
+ "loggedInReload": "Tôi đã đăng nhập - Tải lại",
623
+ "howToUseConsole": "Cách sử dụng tài khoản Anthropic Console:",
624
+ "chooseConsoleOption": "2. Tài khoản Anthropic Console · Thanh toán API",
625
+ "usingClaudeCodeSettings": "Sử dụng cài đặt Claude Code",
626
+ "settingsFileDescription": "Phương thức này sử dụng cấu hình từ tập tin cài đặt Claude Code:",
627
+ "linuxMacOs": "Linux/macOS:",
628
+ "windows": "Windows:",
629
+ "envVarsDescription": "Các biến môi trường sau được đọc từ phần env:",
630
+ "required": "bắt buộc",
631
+ "settingsConfigured": "Settings.json đã được cấu hình và sẽ được sử dụng để xác thực.",
632
+ "settingsNotConfigured": "Settings.json không chứa ANTHROPIC_AUTH_TOKEN. Thêm vào để sử dụng phương thức này.",
633
+ "reloadToApply": "Tải lại để áp dụng",
634
+ "leaveEmptyToKeep": "Để trống để giữ khóa hiện có",
635
+ "existingKeyHint": "Đã cấu hình khóa API. Để trống để giữ nguyên, hoặc nhập khóa mới để thay thế.",
636
+ "fillDefaultValues": "Điền giá trị mặc định",
637
+ "baseUrl": "URL gốc",
638
+ "defaultModel": "Mô hình mặc định",
639
+ "haikuModel": "Mô hình Haiku",
640
+ "sonnetModel": "Mô hình Sonnet",
641
+ "opusModel": "Mô hình Opus",
642
+ "apiTimeout": "Thời gian chờ API (ms)",
643
+ "configSavedToEnv": "Cấu hình sẽ được lưu vào tập tin .env trong thư mục ứng dụng. Các trường trống sẽ dùng giá trị mặc định.",
644
+ "dismissProvider": "Bỏ qua nhà cung cấp này",
645
+ "areYouSure": "Bạn có chắc không?",
646
+ "yesDismiss": "Có, bỏ qua",
647
+ "saveConfiguration": "Lưu cấu hình",
648
+ "afterLoginHint": "Sau khi đăng nhập trên claude.ai, chạy \"claude login\" trong terminal để xác thực."
303
649
  },
304
650
  "accessAnywhere": {
305
651
  "title": "Truy cập Mọi nơi",
@@ -395,6 +741,22 @@
395
741
  "apiKeyRequired": "API key là bắt buộc",
396
742
  "cancel": "Hủy",
397
743
  "saving": "Đang lưu...",
398
- "saveAndContinue": "Lưu & Tiếp tục"
744
+ "saveAndContinue": "Lưu & Tiếp tục",
745
+ "failedToSaveApiKey": "Không thể lưu khóa API",
746
+ "noTunnelConfig": "Không tìm thấy cấu hình tunnel. Vui lòng thiết lập Truy cập Mọi nơi trước.",
747
+ "failedToStartTunnel": "Không thể khởi động tunnel",
748
+ "failedToRegisterSubdomain": "Không thể đăng ký tên miền phụ",
749
+ "failedToConfirmSubdomain": "Không thể xác nhận tên miền phụ",
750
+ "confirmationCodeIsRequired": "Mã xác nhận là bắt buộc"
751
+ },
752
+ "notFound": {
753
+ "title": "404 - Không tìm thấy trang",
754
+ "description": "Trang bạn đang tìm không tồn tại.",
755
+ "goHome": "Quay về trang chủ"
756
+ },
757
+ "globalError": {
758
+ "title": "Đã xảy ra lỗi!",
759
+ "fallbackMessage": "Đã xảy ra lỗi không mong đợi",
760
+ "tryAgain": "Thử lại"
399
761
  }
400
762
  }