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/ko.json CHANGED
@@ -37,7 +37,38 @@
37
37
  "newTask": "새 작업",
38
38
  "agentFactory": "Agent Factory",
39
39
  "agentProvider": "Agent Provider",
40
- "accessAnywhere": "어디서나 접근"
40
+ "accessAnywhere": "어디서나 접근",
41
+ "unsavedChangesConfirm": "\"{fileName}\"에 저장되지 않은 변경 사항이 있습니다. 닫으시겠습니까?",
42
+ "paste": "붙여넣기",
43
+ "clearTerminal": "터미널 지우기",
44
+ "configured": "구성됨",
45
+ "default": "기본값",
46
+ "noProjectsConfigured": "구성된 프로젝트 없음",
47
+ "setUpProject": "프로젝트 설정",
48
+ "loadingApp": "Claude.WS 로드 중",
49
+ "allProjects": "모든 프로젝트",
50
+ "noProjectsYet": "아직 프로젝트 없음",
51
+ "selectProject": "프로젝트 선택",
52
+ "clearSearch": "검색 지우기",
53
+ "no": "아니요",
54
+ "yes": "예",
55
+ "browse": "찾아보기",
56
+ "creating": "만드는 중...",
57
+ "opening": "여는 중...",
58
+ "saving": "저장 중...",
59
+ "verifying": "확인 중...",
60
+ "generating": "생성 중...",
61
+ "scanning": "검색 중...",
62
+ "importing": "가져오는 중...",
63
+ "checking": "확인 중...",
64
+ "renaming": "이름 바꾸는 중...",
65
+ "rename": "이름 바꾸기",
66
+ "new": "새로 만들기",
67
+ "refresh": "새로고침",
68
+ "discover": "검색",
69
+ "upload": "업로드",
70
+ "create": "만들기",
71
+ "editTitle": "제목 편집"
41
72
  },
42
73
  "header": {
43
74
  "projects": "프로젝트",
@@ -76,7 +107,9 @@
76
107
  "messageRequired": "메시지는 필수 항목입니다",
77
108
  "pleaseSelectProject": "프로젝트를 선택하세요",
78
109
  "waitFileUpload": "파일 업로드가 완료될 때까지 기다려주세요",
79
- "failedToCreate": "작업 만들기 실패"
110
+ "failedToCreate": "작업 만들기 실패",
111
+ "dragToReorder": "드래그하여 재정렬",
112
+ "deleteTask": "작업 삭제"
80
113
  },
81
114
  "task": {
82
115
  "title": "제목",
@@ -95,7 +128,35 @@
95
128
  "runAgain": "다시 실행",
96
129
  "viewDiff": "차이점 보기",
97
130
  "checkpoint": "체크포인트",
98
- "restore": "복원"
131
+ "restore": "복원",
132
+ "noAttemptRunning": "실행 중인 시도가 없습니다. 메시지를 보내 시작하세요.",
133
+ "waitingForTracking": "추적 데이터를 기다리는 중...",
134
+ "tokens": "토큰",
135
+ "turn": "턴",
136
+ "turns": "턴",
137
+ "file": "파일",
138
+ "files": "파일",
139
+ "questionsPending": "{count}개의 질문 대기 중",
140
+ "moreQuestions": "+{count}개의 추가 질문",
141
+ "open": "열기",
142
+ "stopShell": "셸 중지 (K)",
143
+ "runningBackgroundTasks": "{count}개의 백그라운드 작업 실행 중",
144
+ "navigateHint": "탐색",
145
+ "viewLogsHint": "로그 보기",
146
+ "killHint": "종료",
147
+ "closeHint": "닫기",
148
+ "loadingQuestion": "질문 로드 중...",
149
+ "statusRunning": "실행 중",
150
+ "statusCompleted": "완료됨",
151
+ "statusFailed": "실패",
152
+ "statusCancelled": "취소됨",
153
+ "deleteTaskConfirm": "작업 \"{title}\"을(를) 삭제하시겠습니까?",
154
+ "dragToReorder": "드래그하여 재정렬",
155
+ "submitAnswers": "답변 제출",
156
+ "reviewAnswers": "답변 검토",
157
+ "notAllAnswered": "모든 질문에 답변하지 않았습니다",
158
+ "readyToSubmit": "답변을 제출할 준비가 되셨습니까?",
159
+ "typeSomething": "무언가를 입력하세요."
99
160
  },
100
161
  "editor": {
101
162
  "openFile": "파일 열기",
@@ -105,7 +166,55 @@
105
166
  "find": "찾기",
106
167
  "replace": "바꾸기",
107
168
  "format": "서식",
108
- "toggleWordWrap": "자동 줄바꿈 토글"
169
+ "toggleWordWrap": "자동 줄바꿈 토글",
170
+ "closeAllTabs": "모든 탭 닫기",
171
+ "searchPlaceholder": "검색...",
172
+ "previousMatch": "이전",
173
+ "nextMatch": "다음",
174
+ "undo": "실행 취소",
175
+ "redo": "다시 실행",
176
+ "showSourceCode": "소스 코드 보기",
177
+ "showPreview": "미리보기",
178
+ "export": "내보내기",
179
+ "checkingForChanges": "변경 사항 확인 중...",
180
+ "externalChangesDetected": "외부 변경 감지됨 - 클릭하여 해결",
181
+ "addLinesToChat": "L{startLine}-{endLine}행을 채팅에 추가",
182
+ "addFileToChat": "파일을 채팅에 추가",
183
+ "fileChangedExternally": "외부에서 파일 변경됨",
184
+ "hasBeenModified": "디스크에서 수정되었습니다. 클릭하여",
185
+ "toInsertRemoteLines": "원격 줄을 현재 버전에 삽입합니다.",
186
+ "differences": "차이점:",
187
+ "newInRemote": "원격에만 있음",
188
+ "onlyInLocal": "로컬에만 있음",
189
+ "filesIdentical": "파일이 동일함",
190
+ "modifiedFromOriginal": "원본에서 수정됨",
191
+ "local": "로컬",
192
+ "modified": "(수정됨)",
193
+ "copyLocalContent": "로컬 내용 복사",
194
+ "remoteDisk": "원격 (디스크)",
195
+ "copyRemoteContent": "원격 내용 복사",
196
+ "keepLocalOnly": "로컬만 유지",
197
+ "acceptRemoteOnly": "원격만 수락",
198
+ "applyMerged": "병합 적용",
199
+ "lineInserted": "마커와 함께 줄이 삽입됨",
200
+ "linesInserted": "마커와 함께 {count}개 줄이 삽입됨",
201
+ "deletionMarkersInserted": "삭제 마커가 삽입됨",
202
+ "deletionMarkerInserted": "삭제 마커가 삽입됨",
203
+ "keptLocalChanges": "로컬 변경 사항 유지됨",
204
+ "acceptedRemoteChanges": "원격 변경 사항 수락됨",
205
+ "appliedMergedChanges": "병합된 변경 사항 적용됨",
206
+ "copiedToClipboard": "{label}이(가) 클립보드에 복사됨",
207
+ "linesInRemote": "원격에 {count}개 줄",
208
+ "insertAllLines": "모든 {count}개 줄 삽입",
209
+ "linesDeletedInRemote": "원격에서 {count}개 줄 삭제됨",
210
+ "markAsDeleted": "삭제된 것으로 표시",
211
+ "insertLineIntoLocal": "이 줄을 로컬에 삽입",
212
+ "selectTaskFirst": "컨텍스트를 추가하려면 먼저 작업을 선택하세요",
213
+ "accept": "수락",
214
+ "reject": "거부",
215
+ "describeChange": "원하는 변경 사항을 설명하세요...",
216
+ "error": "오류",
217
+ "addMoreFiles": "파일 더 추가"
109
218
  },
110
219
  "sidebar": {
111
220
  "files": "파일",
@@ -205,7 +314,40 @@
205
314
  "noChangesToCommit": "커밋할 변경사항 없음",
206
315
  "noChanges": "변경사항 없음",
207
316
  "enterCommitMessage": "커밋 메시지 입력",
208
- "staged": "스테이징됨"
317
+ "staged": "스테이징됨",
318
+ "discardChangesConfirm": "{filePath}의 변경 사항을 버리시겠습니까?",
319
+ "discardAllConfirm": "모든 변경 사항을 버리시겠습니까? 이 작업은 취소할 수 없습니다!",
320
+ "failedToAddGitignore": ".gitignore에 추가하지 못했습니다",
321
+ "failedToCommit": "커밋 실패",
322
+ "failedToGenerateCommit": "커밋 메시지 생성 실패",
323
+ "failedToPush": "변경 사항 푸시 실패",
324
+ "failedToFetchBranches": "브랜치 가져오기 실패",
325
+ "clickToSwitchBranches": "클릭하여 브랜치 전환",
326
+ "noBranch": "브랜치 없음",
327
+ "changes": "변경사항",
328
+ "discardAllChanges": "모든 변경 사항 버리기",
329
+ "stageAllChanges": "모든 변경 사항 스테이지",
330
+ "unstageAllChanges": "모든 변경 사항 스테이지 해제",
331
+ "commitTitle": "커밋 제목",
332
+ "descriptionOptional": "설명 (선택 사항)",
333
+ "syncChanges": "변경 사항 동기화",
334
+ "commitChanges": "변경 사항 커밋",
335
+ "noChangesToGenerate": "커밋 메시지를 생성할 변경 사항이 없습니다",
336
+ "generateCommitMessage": "AI로 커밋 메시지 생성",
337
+ "workingTreeClean": "작업 트리가 깨끗합니다",
338
+ "addToGitignore": ".gitignore에 추가",
339
+ "unstageChanges": "변경 사항 스테이지 해제",
340
+ "discardChanges": "변경 사항 버리기",
341
+ "stageChanges": "변경 사항 스테이지",
342
+ "showAllBranches": "모든 브랜치 표시",
343
+ "showCurrentBranchOnly": "현재 브랜치만 표시",
344
+ "fetch": "가져오기",
345
+ "searchBranches": "브랜치 검색...",
346
+ "copyFullHash": "전체 해시 복사",
347
+ "checkoutCommit": "이 커밋 체크아웃 (분리된 HEAD 상태)",
348
+ "createBranchFromCommit": "이 커밋에서 새 브랜치 만들기",
349
+ "closeAllTabs": "모든 탭 닫기",
350
+ "newFile": "새로 만들기"
209
351
  },
210
352
  "settings": {
211
353
  "title": "설정",
@@ -222,14 +364,73 @@
222
364
  "agentFactory": "Agent Factory",
223
365
  "plugins": "플러그인",
224
366
  "installPlugin": "플러그인 설치",
225
- "managePlugins": "플러그인 관리"
367
+ "managePlugins": "플러그인 관리",
368
+ "createFailed": "생성 실패",
369
+ "manageSettings": "프로젝트 설정 및 기본 설정을 관리하세요.",
370
+ "currentProject": "현재 프로젝트",
371
+ "claudeApiConfig": "Claude API 구성",
372
+ "providerConfigured": "프로바이더가 구성됨",
373
+ "noProviderConfigured": "구성된 프로바이더 없음",
374
+ "configure": "구성",
375
+ "apiAccessKey": "API 액세스 키",
376
+ "remoteAccessAuth": "원격 접근 인증",
377
+ "apiKeyConfigured": "API 액세스 키가 구성됨",
378
+ "noApiKeyConfigured": "구성된 API 액세스 키 없음",
379
+ "setUpProject": "프로젝트 설정",
380
+ "selectExistingDescription": "열 기존 프로젝트 폴더를 선택하세요.",
381
+ "configureNewDescription": "Claude Code와 함께 사용할 프로젝트 폴더를 구성하세요.",
382
+ "openExisting": "기존 열기",
383
+ "createNew": "새로 만들기",
384
+ "projectFolder": "프로젝트 폴더",
385
+ "openProject": "프로젝트 열기",
386
+ "rootFolder": "루트 폴더",
387
+ "createProject": "프로젝트 만들기",
388
+ "projectNameRequired": "프로젝트 이름은 필수 항목입니다",
389
+ "rootFolderRequired": "루트 폴더는 필수 항목입니다",
390
+ "projectNameAlphanumeric": "프로젝트 이름에 영숫자가 하나 이상 포함되어야 합니다",
391
+ "projectPathRequired": "프로젝트 경로는 필수 항목입니다",
392
+ "enterAbsolutePath": "절대 경로를 입력하세요",
393
+ "autoDetected": "(자동 감지됨)",
394
+ "folderNameHint": "이것이 프로젝트 폴더 이름이 됩니다",
395
+ "selectParentFolder": "프로젝트가 만들어질 상위 폴더를 선택하세요",
396
+ "projectCreatedAt": "프로젝트 생성 위치:",
397
+ "selectFolder": "폴더 선택",
398
+ "navigateAndSelect": "프로젝트 폴더로 이동하여 선택하세요",
399
+ "up": "상위",
400
+ "home": "홈",
401
+ "noSubdirectories": "하위 디렉터리 없음",
402
+ "renameFolderTitle": "폴더 이름 바꾸기",
403
+ "selectThisFolder": "이 폴더 선택",
404
+ "createNewFolder": "새 폴더 만들기",
405
+ "enterFolderNameIn": "다음 위치에 새 폴더 이름 입력",
406
+ "folderName": "폴더 이름",
407
+ "renameFolder": "폴더 이름 바꾸기",
408
+ "enterNewNameFor": "다음의 새 이름 입력",
409
+ "newName": "새 이름",
410
+ "folderCreated": "폴더 만들어짐",
411
+ "folderRenamed": "폴더 이름 바뀜",
412
+ "renameFailed": "이름 바꾸기 실패",
413
+ "setUpWorkspace": "워크스페이스 설정",
414
+ "setUpWorkspaceDescription": "워크스페이스의 기본 설정을 구성하세요. 나중에 설정에서 언제든지 변경할 수 있습니다.",
415
+ "configureAuthDescription": "Claude API 인증 방법을 구성하세요",
416
+ "setUpRemoteAccess": "원격 접근 인증 설정",
417
+ "projectSettings": "프로젝트 설정",
418
+ "noProjectsAvailable": "사용 가능한 프로젝트 없음"
226
419
  },
227
420
  "auth": {
228
421
  "apiKeyRequired": "API 키 필요",
229
422
  "enterApiKey": "계속하려면 API 키를 입력하세요",
230
423
  "apiKey": "API 키",
231
424
  "verify": "확인",
232
- "invalidApiKey": "잘못된 API 키"
425
+ "invalidApiKey": "잘못된 API 키",
426
+ "apiKeyIsRequired": "API 키가 필요합니다",
427
+ "failedToVerifyApiKey": "API 키 확인 실패",
428
+ "serverRequiresApiKey": "이 서버는 접근하려면 API 키가 필요합니다. 계속하려면 키를 입력하세요.",
429
+ "enterYourApiKey": "API 키를 입력하세요",
430
+ "apiKeyStoredLocally": "API 키는 브라우저에 로컬로 저장됩니다",
431
+ "pressEnterOrSubmit": "Enter 키를 누르거나 제출을 클릭하여 확인",
432
+ "authenticationError": "인증 오류",
433
+ "configAgentProvider": "Agent Provider 구성"
233
434
  },
234
435
  "agentFactory": {
235
436
  "title": "에이전트 팩토리",
@@ -242,7 +443,88 @@
242
443
  "viewFiles": "파일 보기",
243
444
  "compare": "비교",
244
445
  "import": "가져오기",
245
- "export": "내보내기"
446
+ "export": "내보내기",
447
+ "description": "플러그인 풀입니다. 특정 프로젝트에 플러그인을 설치하려면 프로젝트 설정으로 이동하여 설치할 플러그인을 선택하세요.",
448
+ "searchPlugins": "플러그인 검색...",
449
+ "loadingPlugins": "플러그인 로드 중...",
450
+ "noDescription": "설명 없음",
451
+ "noPluginsFound": "플러그인을 찾을 수 없음",
452
+ "adjustFilters": "필터 또는 검색어를 조정해 보세요",
453
+ "getStartedDiscover": "기존 플러그인을 검색하거나 새 플러그인을 만들어 시작하세요",
454
+ "deletePluginConfirm": "이 플러그인을 삭제하시겠습니까?",
455
+ "skills": "스킬",
456
+ "commands": "명령어",
457
+ "agents": "에이전트",
458
+ "agentSets": "에이전트 세트",
459
+ "all": "전체",
460
+ "discoverPlugins": "플러그인 검색",
461
+ "scanDescription": "파일 시스템에서 기존 Claude 플러그인을 검색하여 Agent Factory로 가져옵니다.",
462
+ "clickScanToSearch": "검색 버튼을 클릭하여 플러그인 찾기",
463
+ "scan": "검색",
464
+ "scanningForPlugins": "플러그인 검색 중...",
465
+ "noPluginsFoundScan": "/skills, /commands 또는 /agents에서 플러그인을 찾을 수 없음",
466
+ "rescan": "다시 검색",
467
+ "pluginsFound": "개 플러그인 발견",
468
+ "newStatus": "신규",
469
+ "updates": "업데이트",
470
+ "current": "현재",
471
+ "importAll": "모두 가져오기",
472
+ "importSelected": "선택한 {count}개 가져오기",
473
+ "editPlugin": "플러그인 편집",
474
+ "createNewPlugin": "새 플러그인 만들기",
475
+ "updatePluginDescription": "아래 플러그인 세부 정보를 업데이트하세요.",
476
+ "addPluginDescription": "Agent Factory 레지스트리에 새 플러그인을 추가하세요.",
477
+ "type": "유형",
478
+ "skill": "스킬",
479
+ "command": "명령어",
480
+ "agent": "에이전트",
481
+ "name": "이름",
482
+ "pluginName": "플러그인 이름",
483
+ "pluginDescription": "플러그인에 대한 간단한 설명",
484
+ "sourcePath": "소스 경로",
485
+ "pathAutoGenerated": "경로는 플러그인 유형과 이름에 따라 자동 생성됩니다",
486
+ "storageType": "저장소 유형",
487
+ "local": "로컬",
488
+ "imported": "가져온 항목",
489
+ "external": "외부",
490
+ "update": "업데이트",
491
+ "details": "세부 정보",
492
+ "files": "파일",
493
+ "noFilesFound": "파일을 찾을 수 없음",
494
+ "reResolve": "다시 해결",
495
+ "reResolving": "다시 해결 중...",
496
+ "noDependenciesFound": "의존성을 찾을 수 없음",
497
+ "libraryDependencies": "라이브러리 의존성",
498
+ "noExternalLibraries": "외부 라이브러리를 찾을 수 없음",
499
+ "installScripts": "설치 스크립트",
500
+ "pluginDependencies": "플러그인 의존성",
501
+ "noPluginDependencies": "플러그인 의존성을 찾을 수 없음",
502
+ "circularDependencies": "순환 의존성이 감지됨",
503
+ "discovered": "검색됨",
504
+ "pluginDetails": "플러그인 세부 정보 및 파일",
505
+ "discoveredPluginDetails": "검색된 플러그인 세부 정보 및 파일",
506
+ "metadata": "메타데이터",
507
+ "storage": "저장소:",
508
+ "failedToLoadFiles": "파일 로드 실패",
509
+ "failedToLoadFile": "파일 로드 실패",
510
+ "failedToLoadDependencies": "의존성 로드 실패",
511
+ "failedToReResolveDependencies": "의존성 재해결 실패",
512
+ "failedToAnalyzeDependencies": "의존성 분석 실패",
513
+ "failedToUninstallComponent": "컴포넌트 제거 실패",
514
+ "cycle": "순환",
515
+ "missing": "누락",
516
+ "maxDepth": "최대 깊이",
517
+ "confirmImport": "가져오기 확인",
518
+ "importFromArchive": "아카이브에서 플러그인 가져오기",
519
+ "analyzingArchive": "아카이브 분석 중...",
520
+ "clickToUploadOrDrag": "클릭하여 업로드하거나 끌어다 놓기",
521
+ "supportedFormats": ".zip, .tar, .gz, .gzip 또는 .tgz 파일",
522
+ "invalidFileType": "잘못된 파일 형식입니다. .zip, .tar, .gz, .gzip 또는 .tgz 파일을 업로드하세요.",
523
+ "automaticOrganization": "자동 구성:",
524
+ "itemsToImport": "가져올 항목",
525
+ "archiveAnalyzed": "아카이브 분석 완료. 가져오기를 클릭하여 이 플러그인들을 Agent Factory에 추가하세요.",
526
+ "importingPlugins": "플러그인 가져오는 중...",
527
+ "importGlobally": "전역으로 가져오기"
246
528
  },
247
529
  "shells": {
248
530
  "newShell": "새 셸",
@@ -250,7 +532,17 @@
250
532
  "exited": "종료됨",
251
533
  "restart": "다시 시작",
252
534
  "kill": "종료",
253
- "clearOutput": "출력 지우기"
535
+ "clearOutput": "출력 지우기",
536
+ "creatingTerminal": "터미널 생성 중...",
537
+ "failedToCreateTerminal": "터미널 생성 실패",
538
+ "copiedToClipboard": "클립보드에 복사됨",
539
+ "failedToCopy": "복사 실패",
540
+ "stopShell": "셸 중지",
541
+ "selectionMode": "선택 모드",
542
+ "newTerminal": "새 터미널",
543
+ "sendCtrlC": "Ctrl+C (SIGINT) 보내기",
544
+ "closePanel": "패널 닫기",
545
+ "clipboardDenied": "클립보드 접근이 거부되었습니다 — 모바일에서는 단축키 바의 붙여넣기 버튼을 사용하세요"
254
546
  },
255
547
  "chat": {
256
548
  "taskCompleted": "작업 완료!",
@@ -289,7 +581,71 @@
289
581
  "commandsHint": "명령어",
290
582
  "filesHint": "파일",
291
583
  "pasteImageHint": "이미지 붙여넣기",
292
- "cancelled": "취소됨"
584
+ "cancelled": "취소됨",
585
+ "detachToFloating": "플로팅 창으로 분리",
586
+ "maximizeToPanel": "패널로 최대화",
587
+ "clearConversation": "대화 지우기",
588
+ "clearConversationConfirm": "모든 메시지를 지우시겠습니까? 이 작업은 취소할 수 없습니다.",
589
+ "compactConversation": "대화 압축",
590
+ "compactConversationConfirm": "컨텍스트 공간을 절약하기 위해 대화를 요약합니다. 계속하시겠습니까?",
591
+ "compact": "압축",
592
+ "typeYourAnswer": "답변을 입력하세요...",
593
+ "rewoundToCheckpoint": "대화 및 파일을 체크포인트로 되감았습니다",
594
+ "rewoundConversationOnly": "대화만 되감았습니다",
595
+ "rewoundConversation": "대화를 체크포인트로 되감았습니다",
596
+ "waitForUpload": "파일 업로드가 완료될 때까지 기다려주세요"
597
+ },
598
+ "agentProvider": {
599
+ "configureTitle": "에이전트 프로바이더 구성",
600
+ "configureDescription": "Claude API 인증 방법을 선택하세요:",
601
+ "reloadShowConfig": "새로고침 및 표시",
602
+ "hideConfig": "숨기기",
603
+ "currentConfiguration": "현재 구성",
604
+ "loading": "로드 중...",
605
+ "activeProcessEnv": "활성 process.env 값:",
606
+ "noProviderConfig": "프로바이더 구성이 로드되지 않았습니다",
607
+ "loginWithClaude": "Claude 계정으로 로그인",
608
+ "forClaudeSubscribers": "Claude Pro, Max, Team 또는 Enterprise 구독자용",
609
+ "anthropicConsole": "Anthropic Console 계정",
610
+ "payAsYouGo": "API 사용량 종량제 청구",
611
+ "claudeCodeSettings": "Claude Code 설정",
612
+ "useSettingsJson": "settings.json 구성 사용",
613
+ "customApiKey": "사용자 정의 API 키",
614
+ "useOwnApiKey": "자신의 Anthropic API 키 사용",
615
+ "howToLoginOAuth": "OAuth로 로그인하는 방법:",
616
+ "ensureSubscription": "Claude Pro, Max, Team 또는 Enterprise 구독이 있는지 확인하세요",
617
+ "openTerminal": "서버에서 터미널 열기",
618
+ "runClaudeLogin": "실행:",
619
+ "chooseOAuthOption": "1. 구독이 있는 Claude 계정 · Pro, Max, Team 또는 Enterprise",
620
+ "followAuthFlow": "브라우저 인증 흐름을 따르세요",
621
+ "restartAfterLogin": "로그인 후 애플리케이션 재시작",
622
+ "loggedInReload": "로그인 완료 - 새로고침",
623
+ "howToUseConsole": "Anthropic Console 계정 사용 방법:",
624
+ "chooseConsoleOption": "2. Anthropic Console 계정 · API 사용량 청구",
625
+ "usingClaudeCodeSettings": "Claude Code 설정 사용 중",
626
+ "settingsFileDescription": "이 방법은 Claude Code 설정 파일의 구성을 사용합니다:",
627
+ "linuxMacOs": "Linux/macOS:",
628
+ "windows": "Windows:",
629
+ "envVarsDescription": "다음 환경 변수는 env 섹션에서 읽습니다:",
630
+ "required": "필수",
631
+ "settingsConfigured": "Settings.json이 구성되어 있으며 인증에 사용됩니다.",
632
+ "settingsNotConfigured": "Settings.json에 ANTHROPIC_AUTH_TOKEN이 없습니다. 이 방법을 사용하려면 추가하세요.",
633
+ "reloadToApply": "적용하려면 새로고침",
634
+ "leaveEmptyToKeep": "기존 키를 유지하려면 비워두세요",
635
+ "existingKeyHint": "API 키가 이미 구성되어 있습니다. 유지하려면 비워두거나, 교체하려면 새 키를 입력하세요.",
636
+ "fillDefaultValues": "기본값 채우기",
637
+ "baseUrl": "기본 URL",
638
+ "defaultModel": "기본 모델",
639
+ "haikuModel": "Haiku 모델",
640
+ "sonnetModel": "Sonnet 모델",
641
+ "opusModel": "Opus 모델",
642
+ "apiTimeout": "API 타임아웃 (ms)",
643
+ "configSavedToEnv": "구성은 앱 디렉터리의 .env 파일에 저장됩니다. 빈 필드는 기본값을 사용합니다.",
644
+ "dismissProvider": "이 프로바이더 닫기",
645
+ "areYouSure": "확실하십니까?",
646
+ "yesDismiss": "예, 닫기",
647
+ "saveConfiguration": "구성 저장",
648
+ "afterLoginHint": "claude.ai에서 로그인한 후 터미널에서 \"claude login\"을 실행하여 인증하세요."
293
649
  },
294
650
  "accessAnywhere": {
295
651
  "title": "어디서나 접근",
@@ -370,6 +726,37 @@
370
726
  "configureTunnel": "터널 구성",
371
727
  "addDnsRecord": "DNS 레코드 추가",
372
728
  "runTunnel": "터널 실행",
373
- "orInstallAsService": "또는 서비스로 설치:"
729
+ "orInstallAsService": "또는 서비스로 설치:",
730
+ "apiAccessKeyRequired": "API 액세스 키 필요",
731
+ "apiAccessKeyDescription": "어디서나 접근을 활성화하려면 API 액세스 키를 설정해야 합니다. 이 키는 인터넷에 노출된 워크스페이스를 무단 접근으로부터 보호합니다.",
732
+ "apiAccessKeyWarning": "이 키를 안전하게 보관하세요! 원격으로 워크스페이스에 접근하는 데 필요합니다. 키는 .env 파일에 저장됩니다.",
733
+ "generatedApiKey": "API 액세스 키",
734
+ "enterCustomKey": "사용자 정의 키 입력...",
735
+ "copyKey": "키 복사",
736
+ "copied": "복사됨!",
737
+ "regenerateKey": "새 키 생성",
738
+ "useCustomKey": "나만의 사용자 정의 키 사용",
739
+ "apiKeyStorageNote": "이 키는 .env 파일에 API_ACCESS_KEY로 저장됩니다. 변경 사항을 완전히 적용하려면 서버를 다시 시작해야 할 수 있습니다.",
740
+ "apiKeyMinLength": "API 키는 최소 16자 이상이어야 합니다",
741
+ "apiKeyRequired": "API 키가 필요합니다",
742
+ "cancel": "취소",
743
+ "saving": "저장 중...",
744
+ "saveAndContinue": "저장 후 계속",
745
+ "failedToSaveApiKey": "API 키 저장 실패",
746
+ "noTunnelConfig": "터널 구성을 찾을 수 없습니다. 먼저 어디서나 접근을 설정하세요.",
747
+ "failedToStartTunnel": "터널 시작 실패",
748
+ "failedToRegisterSubdomain": "서브도메인 등록 실패",
749
+ "failedToConfirmSubdomain": "서브도메인 확인 실패",
750
+ "confirmationCodeIsRequired": "확인 코드가 필요합니다"
751
+ },
752
+ "notFound": {
753
+ "title": "404 - 페이지를 찾을 수 없음",
754
+ "description": "찾고 있는 페이지가 존재하지 않습니다.",
755
+ "goHome": "홈으로 돌아가기"
756
+ },
757
+ "globalError": {
758
+ "title": "문제가 발생했습니다!",
759
+ "fallbackMessage": "예기치 않은 오류가 발생했습니다",
760
+ "tryAgain": "다시 시도"
374
761
  }
375
762
  }