@theia/core 1.76.0-next.6 → 1.76.0

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 (179) hide show
  1. package/README.md +8 -8
  2. package/i18n/nls.cs.json +187 -49
  3. package/i18n/nls.de.json +187 -49
  4. package/i18n/nls.es.json +187 -49
  5. package/i18n/nls.fr.json +187 -49
  6. package/i18n/nls.hu.json +187 -49
  7. package/i18n/nls.it.json +187 -49
  8. package/i18n/nls.ja.json +187 -49
  9. package/i18n/nls.json +187 -49
  10. package/i18n/nls.ko.json +187 -49
  11. package/i18n/nls.pl.json +187 -49
  12. package/i18n/nls.pt-br.json +187 -49
  13. package/i18n/nls.ru.json +187 -49
  14. package/i18n/nls.tr.json +187 -49
  15. package/i18n/nls.zh-cn.json +187 -49
  16. package/i18n/nls.zh-tw.json +187 -49
  17. package/lib/browser/catalog.json +175 -95
  18. package/lib/browser/dialogs.d.ts +2 -0
  19. package/lib/browser/dialogs.d.ts.map +1 -1
  20. package/lib/browser/dialogs.js +9 -5
  21. package/lib/browser/dialogs.js.map +1 -1
  22. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  23. package/lib/browser/frontend-application-module.js +3 -0
  24. package/lib/browser/frontend-application-module.js.map +1 -1
  25. package/lib/browser/index.d.ts +1 -0
  26. package/lib/browser/index.d.ts.map +1 -1
  27. package/lib/browser/index.js +1 -0
  28. package/lib/browser/index.js.map +1 -1
  29. package/lib/browser/resource-context-key.d.ts +25 -0
  30. package/lib/browser/resource-context-key.d.ts.map +1 -1
  31. package/lib/browser/resource-context-key.js +41 -16
  32. package/lib/browser/resource-context-key.js.map +1 -1
  33. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +7 -5
  34. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
  35. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +13 -12
  36. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
  37. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +11 -1
  38. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
  39. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +38 -3
  40. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  41. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +2 -1
  42. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
  43. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +4 -2
  44. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  45. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js +123 -2
  46. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -1
  47. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +12 -4
  48. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -1
  49. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js +2 -2
  50. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js.map +1 -1
  51. package/lib/browser/tree/tree-widget.d.ts +20 -2
  52. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  53. package/lib/browser/tree/tree-widget.js +31 -13
  54. package/lib/browser/tree/tree-widget.js.map +1 -1
  55. package/lib/browser/tree/tree-widget.spec.d.ts +2 -0
  56. package/lib/browser/tree/tree-widget.spec.d.ts.map +1 -0
  57. package/lib/browser/tree/tree-widget.spec.js +192 -0
  58. package/lib/browser/tree/tree-widget.spec.js.map +1 -0
  59. package/lib/browser/view-container.d.ts.map +1 -1
  60. package/lib/browser/view-container.js +2 -2
  61. package/lib/browser/view-container.js.map +1 -1
  62. package/lib/browser/widget-context-key-contribution.d.ts +17 -0
  63. package/lib/browser/widget-context-key-contribution.d.ts.map +1 -0
  64. package/lib/browser/widget-context-key-contribution.js +20 -0
  65. package/lib/browser/widget-context-key-contribution.js.map +1 -0
  66. package/lib/browser/window/browser-window-module.d.ts.map +1 -1
  67. package/lib/browser/window/browser-window-module.js +3 -0
  68. package/lib/browser/window/browser-window-module.js.map +1 -1
  69. package/lib/browser/window/window-launch-args.d.ts +29 -0
  70. package/lib/browser/window/window-launch-args.d.ts.map +1 -0
  71. package/lib/browser/window/window-launch-args.js +39 -0
  72. package/lib/browser/window/window-launch-args.js.map +1 -0
  73. package/lib/browser-only/frontend-only-application-module.d.ts.map +1 -1
  74. package/lib/browser-only/frontend-only-application-module.js +5 -2
  75. package/lib/browser-only/frontend-only-application-module.js.map +1 -1
  76. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts +3 -1
  77. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts.map +1 -1
  78. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +8 -7
  79. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -1
  80. package/lib/common/index.d.ts +2 -0
  81. package/lib/common/index.d.ts.map +1 -1
  82. package/lib/common/index.js +2 -0
  83. package/lib/common/index.js.map +1 -1
  84. package/lib/common/launch-arguments.d.ts +32 -0
  85. package/lib/common/launch-arguments.d.ts.map +1 -0
  86. package/lib/common/launch-arguments.js +44 -0
  87. package/lib/common/launch-arguments.js.map +1 -0
  88. package/lib/common/remote-cli-args-contribution.d.ts +22 -0
  89. package/lib/common/remote-cli-args-contribution.d.ts.map +1 -0
  90. package/lib/common/remote-cli-args-contribution.js +20 -0
  91. package/lib/common/remote-cli-args-contribution.js.map +1 -0
  92. package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts +6 -3
  93. package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts.map +1 -1
  94. package/lib/electron-browser/messaging/electron-ipc-connection-source.js +4 -3
  95. package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -1
  96. package/lib/electron-browser/preload.d.ts.map +1 -1
  97. package/lib/electron-browser/preload.js +3 -1
  98. package/lib/electron-browser/preload.js.map +1 -1
  99. package/lib/electron-browser/window/electron-window-launch-args.d.ts +14 -0
  100. package/lib/electron-browser/window/electron-window-launch-args.d.ts.map +1 -0
  101. package/lib/electron-browser/window/electron-window-launch-args.js +41 -0
  102. package/lib/electron-browser/window/electron-window-launch-args.js.map +1 -0
  103. package/lib/electron-browser/window/electron-window-launch-args.spec.d.ts +2 -0
  104. package/lib/electron-browser/window/electron-window-launch-args.spec.d.ts.map +1 -0
  105. package/lib/electron-browser/window/electron-window-launch-args.spec.js +43 -0
  106. package/lib/electron-browser/window/electron-window-launch-args.spec.js.map +1 -0
  107. package/lib/electron-browser/window/electron-window-module.d.ts.map +1 -1
  108. package/lib/electron-browser/window/electron-window-module.js +7 -0
  109. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  110. package/lib/electron-common/electron-api.d.ts +10 -0
  111. package/lib/electron-common/electron-api.d.ts.map +1 -1
  112. package/lib/electron-common/electron-api.js.map +1 -1
  113. package/lib/electron-main/electron-api-main.d.ts.map +1 -1
  114. package/lib/electron-main/electron-api-main.js +7 -1
  115. package/lib/electron-main/electron-api-main.js.map +1 -1
  116. package/lib/electron-main/electron-main-application-module.d.ts.map +1 -1
  117. package/lib/electron-main/electron-main-application-module.js +2 -0
  118. package/lib/electron-main/electron-main-application-module.js.map +1 -1
  119. package/lib/electron-main/electron-main-application.d.ts +57 -2
  120. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  121. package/lib/electron-main/electron-main-application.js +68 -8
  122. package/lib/electron-main/electron-main-application.js.map +1 -1
  123. package/lib/electron-main/launch-args-store.d.ts +45 -0
  124. package/lib/electron-main/launch-args-store.d.ts.map +1 -0
  125. package/lib/electron-main/launch-args-store.js +76 -0
  126. package/lib/electron-main/launch-args-store.js.map +1 -0
  127. package/lib/electron-main/launch-args-store.spec.d.ts +2 -0
  128. package/lib/electron-main/launch-args-store.spec.d.ts.map +1 -0
  129. package/lib/electron-main/launch-args-store.spec.js +53 -0
  130. package/lib/electron-main/launch-args-store.spec.js.map +1 -0
  131. package/lib/electron-main/launch-argv-parser.d.ts +19 -0
  132. package/lib/electron-main/launch-argv-parser.d.ts.map +1 -0
  133. package/lib/electron-main/launch-argv-parser.js +71 -0
  134. package/lib/electron-main/launch-argv-parser.js.map +1 -0
  135. package/lib/electron-main/launch-argv-parser.spec.d.ts +2 -0
  136. package/lib/electron-main/launch-argv-parser.spec.d.ts.map +1 -0
  137. package/lib/electron-main/launch-argv-parser.spec.js +62 -0
  138. package/lib/electron-main/launch-argv-parser.spec.js.map +1 -0
  139. package/lib/electron-main/theia-electron-window.d.ts +2 -0
  140. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  141. package/lib/electron-main/theia-electron-window.js +12 -0
  142. package/lib/electron-main/theia-electron-window.js.map +1 -1
  143. package/package.json +11 -11
  144. package/src/browser/dialogs.ts +10 -5
  145. package/src/browser/frontend-application-module.ts +5 -1
  146. package/src/browser/index.ts +1 -0
  147. package/src/browser/resource-context-key.ts +61 -16
  148. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +13 -12
  149. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +36 -4
  150. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +150 -3
  151. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +6 -3
  152. package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +13 -5
  153. package/src/browser/style/tree.css +7 -0
  154. package/src/browser/tree/tree-widget.spec.tsx +245 -0
  155. package/src/browser/tree/tree-widget.tsx +36 -12
  156. package/src/browser/view-container.ts +3 -3
  157. package/src/browser/widget-context-key-contribution.ts +34 -0
  158. package/src/browser/window/browser-window-module.ts +3 -0
  159. package/src/browser/window/window-launch-args.ts +53 -0
  160. package/src/browser-only/frontend-only-application-module.ts +5 -2
  161. package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +3 -1
  162. package/src/common/i18n/nls.metadata.json +5246 -1106
  163. package/src/common/index.ts +2 -0
  164. package/src/common/launch-arguments.ts +61 -0
  165. package/src/common/remote-cli-args-contribution.ts +39 -0
  166. package/src/electron-browser/messaging/electron-ipc-connection-source.ts +6 -3
  167. package/src/electron-browser/preload.ts +3 -1
  168. package/src/electron-browser/window/electron-window-launch-args.spec.ts +45 -0
  169. package/src/electron-browser/window/electron-window-launch-args.ts +38 -0
  170. package/src/electron-browser/window/electron-window-module.ts +7 -0
  171. package/src/electron-common/electron-api.ts +10 -0
  172. package/src/electron-main/electron-api-main.ts +7 -1
  173. package/src/electron-main/electron-main-application-module.ts +2 -0
  174. package/src/electron-main/electron-main-application.ts +101 -8
  175. package/src/electron-main/launch-args-store.spec.ts +59 -0
  176. package/src/electron-main/launch-args-store.ts +73 -0
  177. package/src/electron-main/launch-argv-parser.spec.ts +70 -0
  178. package/src/electron-main/launch-argv-parser.ts +66 -0
  179. package/src/electron-main/theia-electron-window.ts +9 -0
package/i18n/nls.ko.json CHANGED
@@ -72,6 +72,9 @@
72
72
  "title": "에이전트 설정"
73
73
  },
74
74
  "anthropic": {
75
+ "allowEnvApiKey": {
76
+ "description": "Theia가 환경에서 발견된 Anthropic API 키(`ANTHROPIC_API_KEY`)를 사용하도록 허용합니다. 키가 사용되기 전에 한 번 확인을 요청받게 되며, 동의를 철회하려면 이 값을 `false`로 다시 설정하십시오."
77
+ },
75
78
  "apiKey": {
76
79
  "description": "공식 Anthropic 계정의 API 키를 입력하세요. **참고:** 이 설정을 사용하면 Anthropic API 키가 Theia가 실행되는 머신에 평문으로 저장됩니다. 키를 안전하게 설정하려면 환경 변수 `ANTHROPIC_API_KEY`를 사용하세요."
77
80
  },
@@ -91,13 +94,16 @@
91
94
  "enableStreaming": {
92
95
  "title": "스트리밍 API 사용 여부를 나타냅니다. 기본값은 `true`입니다."
93
96
  },
97
+ "headers": {
98
+ "title": "엔드포인트로 전송되는 모든 요청에 함께 전송되는 추가 HTTP 헤더"
99
+ },
94
100
  "id": {
95
101
  "title": "UI에서 사용자 정의 모델을 식별하는 데 사용되는 고유 식별자"
96
102
  },
97
103
  "maxRetries": {
98
104
  "title": "요청 실패 시 최대 재시도 횟수. 기본값은 3입니다."
99
105
  },
100
- "mdDescription": "Anthropic API와 호환되는 사용자 정의 모델을 통합합니다. 필수 속성은 `model`과 `url`입니다. \n 선택적으로 다음을 수행할 수 있습니다. \n - UI에서 사용자 정의 모델을 식별할 고유한 `id`를 지정합니다. 지정하지 않으면 `model`이 `id`로 사용됩니다. \n - 지정된 URL에서 제공되는 API에 액세스하기 위해 `apiKey`를 제공하십시오. 전역 Anthropic API 키를 사용하려면 `true`를 사용하십시오. \n - 스트리밍을 사용하지 않으려면 `enableStreaming: false`를 지정하십시오. \n - 프롬프트 캐싱을 사용하지 않으려면 `useCaching: false`를 지정합니다. \n - 요청이 실패할 때 재시도할 최대 횟수를 지정하려면 `maxRetries: <number>`를 사용합니다. 기본값은 3입니다. \n 추론 기능 및 최대 출력 토큰 제한은 엔드포인트의 `/v1/models` 응답에서 파생됩니다.",
106
+ "mdDescription": "Anthropic API와 호환되는 사용자 정의 모델을 통합합니다. 필수 속성은 `model`과 `url`입니다. \n 선택적으로 다음을 수행할 수 있습니다. \n - UI에서 사용자 정의 모델을 식별할 고유한 `id`를 지정할 수 있습니다. 지정하지 않으면 `model`이 `id`로 사용됩니다. \n - 지정된 URL에서 제공되는 API에 액세스하기 위해 `apiKey`를 제공하십시오. 전역 Anthropic API 키를 사용하려면 `true`를 사용하십시오. \n - 스트리밍을 사용하지 않으려면 `enableStreaming: false`를 지정하십시오. \n - 프롬프트 캐싱을 사용하지 않으려면 `useCaching: false`를 지정하세요. \n - 요청이 실패했을 때 재시도할 최대 횟수를 지정하려면 `maxRetries: <number>`를 사용하세요. 기본값은 3입니다. \n - `headers`를 지정하여 엔드포인트로 보내는 모든 요청에 추가 HTTP 헤더를 전송할 수 있습니다(예: API 앞단의 게이트웨이에서 요구하는 헤더). \n 추론 기능 및 최대 출력 토큰 제한은 엔드포인트의 `/v1/models` 응답에서 파생됩니다.",
101
107
  "modelId": {
102
108
  "title": "모델 ID"
103
109
  },
@@ -111,8 +117,16 @@
111
117
  "customProvider": {
112
118
  "label": "{0} (사용자 정의)"
113
119
  },
114
- "models": {
115
- "description": "사용할 공식 Anthropic 모델"
120
+ "discovery": {
121
+ "cached": "캐시된 모델 표시 중; 마지막 새로고침에 실패했습니다: {0}",
122
+ "consentPrompt": "환경에서 Anthropic API 키(ANTHROPIC_API_KEY)가 발견되었습니다. Theia가 이 키를 사용하여 Anthropic 모델을 검색하고 호출하도록 허용하시겠습니까?",
123
+ "consentRequired": "환경에서 Anthropic API 키가 발견되었습니다. 모델 검색에 사용되는지 확인하십시오.",
124
+ "noKey": "Anthropic API 키가 설정되어 있지 않습니다. 모델을 검색하려면 키를 추가하십시오.",
125
+ "overridden": "모델 목록은 수동으로 구성됩니다. 모델 재정의 설정을 지우면 공급자로부터 모델을 다시 검색할 수 있습니다.",
126
+ "useEnvKey": "키 사용"
127
+ },
128
+ "modelOverrides": {
129
+ "description": "Anthropic에서 검색된 모델을 재정의합니다. 빈 값(기본값)인 경우, 사용 가능한 모델은 제공업체에서 검색됩니다. 사용하려는 모델의 ID를 명시적으로 설정하면 해당 모델만 정확히 사용되며, 이 경우 모델 검색 기능은 전혀 사용되지 않습니다."
116
130
  }
117
131
  },
118
132
  "chat": {
@@ -306,7 +320,8 @@
306
320
  "status": {
307
321
  "canceled": "취소됨",
308
322
  "generating": "생성 중...",
309
- "starting": "시작 중..."
323
+ "starting": "시작 중...",
324
+ "waitingForInput": "입력 대기 중"
310
325
  }
311
326
  },
312
327
  "deleteChangeSet": "변경 세트 삭제",
@@ -320,11 +335,14 @@
320
335
  "failedToLoadChats": "채팅 세션 로드 실패",
321
336
  "failedToRestoreSession": "채팅 세션 복원에 실패했습니다",
322
337
  "failedToRetry": "재시도 실패 메시지",
338
+ "find": "채팅에서 찾기",
339
+ "findHide": "채팅에서 찾기 숨기기",
323
340
  "focusInput": "초점 채팅 입력",
324
341
  "focusResponse": "포커스 채팅 응답",
325
342
  "functions": "기능",
326
343
  "functionsDescription": "{0} 확장 프로그램에서 제공하는 내장 기능",
327
344
  "genericCapabilities": "일반 기능",
345
+ "manageModels": "모델 관리…",
328
346
  "mcpFunctionsDescription": "연결된 서버의 모델 컨텍스트 프로토콜(MCP) 기능",
329
347
  "mermaid-rendering": {
330
348
  "copySource": "소스 복사",
@@ -340,7 +358,6 @@
340
358
  "modelUnavailable": "사용 불가",
341
359
  "noChatAgentsAvailable": "사용 가능한 채팅 에이전트가 없습니다.",
342
360
  "noMatchingCapabilities": "일치하는 기능 없음",
343
- "openDiff": "차이점 열기",
344
361
  "openImage": "이미지 열기",
345
362
  "openOriginalFile": "원본 파일 열기",
346
363
  "performThisTask": "이 작업을 수행하십시오.",
@@ -476,7 +493,6 @@
476
493
  "findMatchingFiles": "현재 디렉터리에서 \"{0}\" 글로브 패턴에 일치하는 파일을 찾습니다.",
477
494
  "findMatchingFilesWithPath": "{1} 내에서 \"{0}\" 글로브 패턴에 일치하는 파일을 찾습니다.",
478
495
  "finding": "찾기",
479
- "from": "From",
480
496
  "globPattern": "glob 패턴",
481
497
  "grepOptions": {
482
498
  "caseInsensitive": "대소문자 구분 없음",
@@ -533,7 +549,6 @@
533
549
  "startingLine": "시작 라인",
534
550
  "timeout": "타임아웃",
535
551
  "timeoutInMs": "타임아웃: {0} ms",
536
- "to": "To",
537
552
  "todoList": "Todo List",
538
553
  "todoPriority": {
539
554
  "high": "높음",
@@ -646,23 +661,32 @@
646
661
  "signIn": "GitHub Copilot에 로그인하세요",
647
662
  "signOut": "GitHub Copilot에서 로그아웃"
648
663
  },
664
+ "discovery": {
665
+ "disabled": "GitHub Copilot 제공자가 비활성화되어 있습니다. 모델을 검색하려면 이 기능을 활성화하세요.",
666
+ "overridden": "모델 목록은 수동으로 구성됩니다. 모델 재정의 설정을 지우면 GitHub Copilot에서 모델을 다시 검색할 수 있습니다.",
667
+ "signedOut": "GitHub Copilot에 로그인되어 있지 않습니다. 로그인하여 제공되는 모델을 확인해 보세요."
668
+ },
649
669
  "enabled": {
650
- "mdDescription": "GitHub Copilot 제공자를 활성화하세요. 활성화되면 인증을 위한 상태 표시줄 항목이 나타나며, Copilot 구독에서 사용 가능한 모델이 검색됩니다."
670
+ "mdDescription": "GitHub Copilot 제공자를 활성화하세요. 활성화되면 인증을 위한 상태 표시줄 항목이 나타나며, Copilot 구독에서 사용 가능한 모델이 탐지됩니다.\n\n요청은 백엔드를 호스팅하는 컴퓨터에서 백그라운드 프로세스로 실행되는 공식 GitHub Copilot CLI를 통해 전달됩니다. 이 CLI에는 사용자의 Copilot 로그인 자격 증명만 제공되며 그 외의 정보는 제공되지 않으므로, 환경에 있는 토큰이나 GitHub CLI의 기존 로그인 정보는 사용되지 않습니다."
651
671
  },
652
672
  "enterpriseUrl": {
653
- "mdDescription": "Copilot API용 GitHub Enterprise 도메인(예: `github.mycompany.com`). GitHub.com을 사용할 경우 비워둡니다."
673
+ "mdDescription": "인증 및 요청 전송에 사용할 GitHub Enterprise 도메인(예: `github.mycompany.com`). GitHub.com을 사용할 경우 비워 둡니다."
674
+ },
675
+ "enterpriseUrlChanged": "GitHub Copilot 도메인이 변경되었습니다. 변경 사항을 적용하려면 다시 로그인하십시오.",
676
+ "executablePath": {
677
+ "mdDescription": "백엔드를 호스팅하는 컴퓨터에서 GitHub Copilot CLI 실행 파일의 위치입니다. 비어 있는 경우(기본값), 애플리케이션 설치 경로, `PATH` 및 전역 `npm` 디렉터리에서 CLI를 검색합니다. CLI가 다른 위치에 설치된 경우 이 값을 설정하십시오.\n\nCLI는 애플리케이션에 포함되어 있지 않으므로, `npm install -g @github/copilot` 명령어를 사용하여 설치하십시오."
654
678
  },
655
679
  "modelOverrides": {
656
680
  "mdDescription": "자동으로 검색된 GitHub Copilot 모델을 재정의합니다. 비워두면(기본값), 사용 가능한 모델은 Copilot 구독에서 검색됩니다. 자동 검색을 재정의하려면 모델 ID를 명시적으로 설정하십시오."
657
681
  },
682
+ "signInAgain": "GitHub Copilot은 이제 GitHub Copilot CLI를 통해 로그인합니다. 이전 로그인 정보는 이관되지 않아 삭제되었으므로, Copilot 모델을 사용하려면 다시 로그인해 주십시오.",
658
683
  "signOut": {
659
684
  "confirmMessage": "GitHub Copilot에서 로그아웃하시겠습니까?"
660
685
  },
661
686
  "statusBar": {
662
687
  "signedIn": "{0}로 GitHub Copilot에 로그인했습니다. 로그아웃하려면 클릭하세요.",
663
688
  "signedOut": "GitHub Copilot에 로그인하지 않았습니다. 클릭하여 로그인하세요."
664
- },
665
- "tokenMigration": "GitHub Copilot 세션에서 오래된 인증 방법이 사용되어 세션이 종료되었습니다. 사용 가능한 모든 모델에 액세스하려면 다시 로그인해 주세요."
689
+ }
666
690
  },
667
691
  "core": {
668
692
  "agentConfiguration": {
@@ -760,12 +784,19 @@
760
784
  "discardCustomPrompt": {
761
785
  "tooltip": "사용자 지정 내용 삭제"
762
786
  },
787
+ "favoriteModels": {
788
+ "mdDescription": "AI 채팅 입력의 모델 선택기에 각 제공업체의 최신 모델 외에도 표시되는 모델들을 완전한 ID 형식(예: `anthropic/claude-opus-5`)으로 나타냅니다. 이는 구버전이나 특정 릴리스에 고정된 모델을 손쉽게 사용할 수 있도록 하기 위한 것입니다. AI 구성 보기에서 해당 제공업체의 페이지에 있는 모델을 선택하여 추가할 수 있습니다.",
789
+ "title": "선호하는 모델"
790
+ },
763
791
  "fileVariable": {
764
792
  "description": "파일의 내용을 해결합니다",
765
793
  "uri": {
766
794
  "description": "요청된 파일의 URI."
767
795
  }
768
796
  },
797
+ "hiddenModels": {
798
+ "mdDescription": "AI 채팅 입력의 모델 선택기에서 기본적으로 표시되지만, 여기에는 완전히 정규화된 ID(예: `google/gemini-flash-lite-latest`) 형태로만 모델이 표시됩니다. 즐겨찾기로 등록되지 않은 모델, 즉 제공업체의 최신 모델만 여기에 표시됩니다. AI 구성 화면에서 해당 제공업체 페이지의 모델 선택란에서 체크를 해제하면 모델이 추가됩니다."
799
+ },
769
800
  "languageModelRenderer": {
770
801
  "alias": "[별칭] {0}",
771
802
  "purposeTitle": "목적: {0}",
@@ -911,7 +942,6 @@
911
942
  "dotRelativePath": "현재 열려 있는 파일의 작업 공간 상대 경로('currentRelativeFilePath')에 대한 간략한 참조."
912
943
  },
913
944
  "variantSet": {
914
- "templateLabel": "템플릿",
915
945
  "unavailableVariant": "{0} (사용 불가)",
916
946
  "variantCount": "{0} 변형",
917
947
  "variantCountSingular": "1번 버전"
@@ -931,14 +961,25 @@
931
961
  }
932
962
  },
933
963
  "google": {
964
+ "allowEnvApiKey": {
965
+ "description": "Theia가 환경에서 발견된 Google AI(Gemini) API 키(`GOOGLE_API_KEY` / `GEMINI_API_KEY`)를 사용할 수 있도록 허용합니다. 키가 사용되기 전에 한 번 확인을 요청받게 되며, 동의를 철회하려면 이 값을 `false`로 다시 설정하십시오."
966
+ },
934
967
  "apiKey": {
935
968
  "description": "공식 Google AI(Gemini) 계정의 API 키를 입력하세요. **참고:** 이 설정을 사용하면 GOOGLE AI API 키가 Theia가 실행되는 머신에 평문으로 저장됩니다. 키를 안전하게 설정하려면 환경 변수 `GOOGLE_API_KEY`를 사용하세요."
936
969
  },
970
+ "discovery": {
971
+ "cached": "캐시된 모델을 표시 중입니다. 마지막 새로고침에 실패했습니다: {0}",
972
+ "consentPrompt": "환경에서 Google AI API 키(GOOGLE_API_KEY / GEMINI_API_KEY)가 발견되었습니다. Theia가 이 키를 사용하여 Gemini 모델을 검색하고 호출하도록 허용하시겠습니까?",
973
+ "consentRequired": "환경에서 Google AI API 키가 발견되었습니다. 모델 검색에 사용되는지 확인해 주세요.",
974
+ "noKey": "Google AI API 키가 설정되어 있지 않습니다. 모델을 검색하려면 키를 추가하십시오.",
975
+ "overridden": "모델 목록은 수동으로 구성됩니다. 모델 재정의 항목을 지우면 공급자로부터 모델을 다시 검색할 수 있습니다.",
976
+ "useEnvKey": "키 사용"
977
+ },
937
978
  "maxRetriesOnErrors": {
938
979
  "description": "오류 발생 시 최대 재시도 횟수. 1보다 작을 경우 재시도 로직이 비활성화됩니다."
939
980
  },
940
- "models": {
941
- "description": "사용할 공식 Google Gemini 모델"
981
+ "modelOverrides": {
982
+ "description": "Google Gemini에서 검색된 모델을 재정의합니다. 빈 값(기본값)인 경우, 사용 가능한 모델은 제공업체에서 검색됩니다. 대신 정확히 해당 모델을 사용하려면 모델 ID를 명시적으로 설정하십시오. 이 경우 검색 기능은 전혀 사용되지 않습니다."
942
983
  },
943
984
  "retryDelayOnOtherErrors": {
944
985
  "description": "기타 오류 발생 시 재시도 간격(초) 설정(Google GenAI가 모델에서 반환된 불완전한 JSON 구문이나 500 내부 서버 오류 등의 오류를 보고하는 경우). 이 값을 -1로 설정하면 해당 오류 발생 시 재시도가 차단됩니다. 그렇지 않으면 재시도가 즉시(0으로 설정 시) 또는 이 지연 시간(초) 후(양수 설정 시) 발생합니다."
@@ -1053,6 +1094,7 @@
1053
1094
  "pageTypeLabel": "페이지"
1054
1095
  },
1055
1096
  "allowAllMode": {
1097
+ "hideForThisSession": "이번 세션 동안 숨기기",
1056
1098
  "stripTooltip": "이 세션에서는 AI 도구 호출이 확인 절차 없이 실행됩니다. 신뢰할 수 있는 환경에서만 활성화하십시오.",
1057
1099
  "stripTooltipFooter": "--session-preference 옵션을 통해 설정합니다. 저장된 설정을 복원하려면 해당 플래그를 지정하지 않고 다시 시작하십시오.",
1058
1100
  "title": "Theia AI 허용 모드"
@@ -1111,7 +1153,6 @@
1111
1153
  "startNewChat": "대화는 짧고 핵심만 전달하세요. 새 작업에 대해서는 [새 대화 시작]({0})하거나, [이 대화 내용을 요약한 새 대화 시작]({1})하세요."
1112
1154
  }
1113
1155
  },
1114
- "collapseSession": "{0} 접기",
1115
1156
  "commandAgent": {
1116
1157
  "commandCallback": {
1117
1158
  "confirmAction": "알겠습니다",
@@ -1131,19 +1172,16 @@
1131
1172
  }
1132
1173
  },
1133
1174
  "configurationState": "구성 문제",
1134
- "configureAgent": {
1135
- "header": "기본 에이전트 구성"
1136
- },
1137
1175
  "continueAnyway": "어쨌든 계속",
1138
1176
  "createSkillAgent": {
1139
1177
  "mode": {
1140
1178
  "edit": "기본 모드"
1141
1179
  }
1142
1180
  },
1181
+ "defaultChatAgentSet": "기본 채팅 에이전트는 이제 {0}입니다.",
1143
1182
  "enableAI": {
1144
1183
  "mdDescription": "이 설정을 통해 최신 AI 기능에 접근할 수 있습니다. \n 특히, 이 기능들은 사용자가 접근 권한을 부여한 언어 모델(LLM)에 지속적인 요청을 발생시킬 수 있다는 점을 인지해야 합니다. 이로 인해 비용이 발생할 수 있으므로 주의 깊게 모니터링해야 합니다. 이 옵션을 활성화함으로써 귀하는 이러한 위험을 인지한 것으로 간주됩니다. \n **주의! 본 섹션의 아래 설정은 메인 기능 설정이 활성화된 후에만 적용됩니다. 기능 활성화 후 아래에서 최소 한 개의 LLM 공급자를 구성해야 합니다. [관련 문서](https://theia-ide.org/docs/user_ai/)도 참조하십시오.**"
1145
1184
  },
1146
- "expandSession": "{0} 확장",
1147
1185
  "exploreAgent": {
1148
1186
  "description": "코드베이스에서 정보를 추출하고 요약해 주는 코드베이스 탐색 도우미입니다. 존재하는 요소에 대한 정보를 보고하고, 코드 발췌문을 제공하며, 관찰된 패턴을 설명합니다."
1149
1187
  },
@@ -1201,16 +1239,36 @@
1201
1239
  },
1202
1240
  "model-selection-description": "[AI 구성 보기]({0})에서 각 AI 에이전트가 사용할 대규모 언어 모델(LLM)을 선택하세요.",
1203
1241
  "modelsConfiguration": {
1242
+ "awaitingConsent": "동의 대기 중",
1243
+ "defaultModel": "이 제공업체의 최신 모델 중 하나로, 여기에서 숨겨져 있지 않은 한 AI 채팅 입력의 모델 선택기에 표시됩니다.",
1204
1244
  "description": "언어 모델 제공자와 에이전트가 사용할 수 있는 모델을 구성합니다.",
1245
+ "discovery": "모델 탐색",
1246
+ "fetching": "로딩 중…",
1247
+ "filterModels": "모델 필터링",
1248
+ "hideModel": "AI 채팅 입력의 모델 선택기에서 이 모델을 숨기기",
1249
+ "modelNotReady": "준비되지 않음",
1205
1250
  "modelSettings": "모델 설정",
1251
+ "noKey": "API 키 없음",
1252
+ "noModels": "아직 발견된 모델이 없습니다.",
1206
1253
  "noProviders": "언어 모델 제공자가 설치되어 있지 않습니다.",
1207
- "providers": "제공업체"
1208
- },
1209
- "moreAgentsAvailable": {
1210
- "header": "추가 에이전트 사용 가능"
1254
+ "providers": "제공업체",
1255
+ "ready": "준비됨",
1256
+ "refresh": "모델 목록 새로 고침",
1257
+ "refreshUnavailable": "프로바이더가 자격 증명을 확보할 때까지는 새로 고칠 내용이 없습니다.",
1258
+ "released": "{0} 버전 출시",
1259
+ "resetShown": "기본값으로 재설정",
1260
+ "resetShownUnavailable": "이미 기본값으로 설정되어 있습니다",
1261
+ "showAllModels": "검출된 모든 모델 표시",
1262
+ "showCheckedModels": "AI 채팅 입력창의 모델 선택기에 표시되는 모델만 표시",
1263
+ "showModel": "AI 채팅 입력창의 모델 선택기에서 이 모델을 표시하세요.",
1264
+ "shownExplanation": "{0} AI 채팅 입력창의 모델 선택기에 표시된 {1}",
1265
+ "updated": "{0} 업데이트됨"
1266
+ },
1267
+ "noDefaultAgent": {
1268
+ "header": "기본 에이전트 없음"
1211
1269
  },
1212
- "noRecommendedAgents": "권장 에이전트가 없습니다.",
1213
1270
  "openAiConfiguration": "OpenAI 구성",
1271
+ "openGettingStartedWalkthrough": "AI 시작하기",
1214
1272
  "orchestrator": {
1215
1273
  "error": {
1216
1274
  "noAgents": "요청을 처리할 채팅 에이전트가 없습니다. 활성화된 에이전트가 있는지 설정을 확인해 주세요."
@@ -1234,8 +1292,7 @@
1234
1292
  "name": "GH PR 정보"
1235
1293
  },
1236
1294
  "localCheckout": {
1237
- "description": "풀 리퀘스트를 로컬에 체크아웃하고 기존 작업 트리의 변경 사항을 보호합니다.",
1238
- "name": "체크아웃"
1295
+ "description": "풀 리퀘스트를 로컬에 체크아웃하고 기존 작업 트리의 변경 사항을 보호합니다."
1239
1296
  },
1240
1297
  "localValidation": {
1241
1298
  "description": "풀 리퀘스트에 대해 로컬 설치, 빌드, 린트, 테스트 또는 이와 유사한 검증 작업을 실행합니다.",
@@ -1292,6 +1349,7 @@
1292
1349
  "toolConfirmation": "도구별 확인 메시지 재정의: {0}",
1293
1350
  "toolConfirmationGeneric": "도구별 확인 설정 재정의"
1294
1351
  },
1352
+ "setDefaultChatAgent": "기본 채팅 에이전트 설정",
1295
1353
  "shellExecutionCapability": {
1296
1354
  "description": "에이전트가 호스트 시스템에서 임의의 셸 명령을 실행할 수 있도록 합니다. 이를 통해 에이전트는 작업으로 제공되지 않는 스크립트 실행 위임, 시스템 정보 조회, 전용 도구가 없는 작업 수행이 가능합니다.",
1297
1355
  "name": "셸 실행"
@@ -1315,9 +1373,6 @@
1315
1373
  "slashCommandsGroupDescription": "채팅창에서 /name을 입력하여 호출하는 프롬프트 조각으로, 하나 이상의 에이전트가 사용할 수 있습니다.",
1316
1374
  "slashCommandsSectionHeader": "슬래시 명령어"
1317
1375
  },
1318
- "toolConfirmationInfo": {
1319
- "header": "도구 확인"
1320
- },
1321
1376
  "toolConfirmationOverrides": {
1322
1377
  "stripTooltip": "명령줄 플래그를 통해 이 세션에 하나 이상의 AI 도구가 자동으로 승인됩니다.",
1323
1378
  "title": "AI 도구 확인 설정 재정의"
@@ -1380,7 +1435,6 @@
1380
1435
  "filterPlaceholder": "이름이나 설명을 기준으로 변수를 필터링합니다.",
1381
1436
  "noMatches": "\"{0}\"와 일치하는 변수가 없습니다.",
1382
1437
  "noVariables": "사용 가능한 변수는 없습니다.",
1383
- "openAgent": "Open Agent {0}",
1384
1438
  "optional": "선택 사항",
1385
1439
  "pageSubtitle": "프롬프트에서 `{0}` 이름을 사용하여 참조할 수 있는 값들입니다. 이 값들은 요청 시점에 해결되어 삽입됩니다.",
1386
1440
  "plainGroup": "일반 변수",
@@ -1388,7 +1442,40 @@
1388
1442
  "required": "필수",
1389
1443
  "usedByAgents": "에이전트 사용"
1390
1444
  },
1391
- "waitingForInput": "사용자의 입력을 기다리고 있습니다"
1445
+ "waitingForInput": "사용자의 입력을 기다리고 있습니다",
1446
+ "walkthrough": {
1447
+ "aiSupport": {
1448
+ "description": "\n{0}\nAI 지원 기능이 포함되어 있습니다: 프로젝트에 대해 전문 상담원과 채팅하고, 상담원이 코드를 수정하고 작업을 실행하도록 허용하며, 입력하는 대로 코드를 자동 완성하고 터미널에서 도움을 받을 수 있습니다.\n\n이러한 기능은 기본적으로 비활성화되어 있으므로, 사용자의 재량에 따라 활성화할 수 있습니다.\n\n기능을 활성화하면, 접근 권한을 부여한 언어 모델에 대한 요청이 지속적으로 발생할 수 있습니다. 이로 인해 비용이 발생할 수 있으므로 주의 깊게 모니터링해야 합니다.\n\n[문서 읽기]({1}\n).\n\n여러분의 피드백, 기여 및 후원을 환영합니다! [GitHub 프로젝트]({2}\n)를 방문하여 지속적인 개발을 지원해 주세요. 커뮤니티의 일원이 되어 주셔서 감사합니다!\n\n이 모든 기능은 AI 기반 도구 및 IDE를 위한 프레임워크인 Theia AI를 기반으로 구축되었으며, 현재 안정 버전이 공개되어 있습니다. [프레임워크 문서]({3}\n)를 확인해 주세요.\n",
1449
+ "title": "{0}의 AI 지원"
1450
+ },
1451
+ "chooseAgent": {
1452
+ "intro": "모든 채팅 요청은 에이전트에게 전달되며, 사용자가 특정 에이전트를 지정하지 않을 경우 에이전트 중 한 명이 응답합니다.\n\n**기본 에이전트 설정:**\n",
1453
+ "outro": "또한 설정에서 [기본 에이전트를 선택할 수 있으며]({0}\n), *@AgentName*으로 시작하여 단일 메시지에 대해 다른 에이전트를 지정할 수도 있습니다.\n[에이전트]({1}\n) 페이지에 모든 에이전트가 나열되어 있습니다.\n",
1454
+ "title": "기본 에이전트 선택"
1455
+ },
1456
+ "connectModel": {
1457
+ "description": "호스팅된 제공업체에 대한 API 키 추가:\n\n- [OpenAI]({0}\n)\n- [Anthropic]({1}\n)\n- [Google]({2}\n)\n\n로컬에서 사용하거나 다른 서비스를 이용하고 싶으신가요? Ollama, llamafile 및 OpenAI와 호환되는 모든 엔드포인트는 [모델]({3}\n) 페이지에서 설정할 수 있습니다.\n\nClaude Code와 같이 자체 모델을 제공하는 일부 에이전트는 별도의 제공자 없이도 작동합니다.\n",
1458
+ "title": "언어 모델 연결"
1459
+ },
1460
+ "description": "{0}의 AI 기능을 설정하고 이를 활용하는 방법을 알아보세요.",
1461
+ "enableAi": {
1462
+ "description": "AI 기능을 켜기 전까지는 어떤 정보도 외부로 전송되지 않으며, 언제든지 다시 끌 수 있습니다.\n\n[AI 설정 열기]({0}\n)에서 해당 기능을 활성화하십시오.\n",
1463
+ "title": "AI 기능 켜기"
1464
+ },
1465
+ "firstQuestion": {
1466
+ "description": "[AI 채팅 열기]({0}\n)를 클릭하고 프로젝트에 대해 질문해 보세요.\n\n다음 두 가지를 활용하면 훨씬 더 나은 답변을 얻을 수 있습니다:\n\n- *@AgentName*은 이 메시지에 대한 에이전트를 지정합니다(예: *@Coder*).\n- *#*는 컨텍스트를 첨부합니다(예: *#file* 또는 *#selectedText*). 입력란 옆의 클립 모양 버튼도 같은 기능을 합니다.\n\n채팅은 세션을 기억하므로, 나중에 대화를 다시 이어갈 수 있습니다.\n",
1467
+ "title": "첫 번째 질문을 남겨주세요"
1468
+ },
1469
+ "goFurther": {
1470
+ "description": "채팅은 시작에 불과합니다. AI는 사용자가 입력하는 동안 코드를 자동 완성해 주며, *Ctrl+I*를 통해 터미널 작업도 지원합니다.\n\n- [프롬프트 및 스킬]({0}\n): 에이전트가 사용하는 지침을 읽고 적용하세요.\n- [MCP 서버]({1}\n): {3}\n에 기본으로 포함된 도구 외에도 추가 도구를 활용하세요.\n- [토큰 사용량]({2}\n): 요청 시 소비되는 토큰을 확인하세요.\n- [관점 전환]({5}\n) (실험적 기능): *AI First* 레이아웃을 사용하면 채팅창이 메인 영역으로 이동하고, 탐색기 및 소스 제어 기능이 오른쪽에 배치됩니다.\n\nAI 기록 보기는(사용 가능한 경우) 모델에 실제로 전송된 내용을 보여줍니다.\n\n자세한 내용은 [문서]({4}\n)에서 확인하실 수 있으며, 여러분의 피드백은 언제나 환영합니다.\n",
1471
+ "title": "더 알아보기"
1472
+ },
1473
+ "title": "AI 시작하기",
1474
+ "toolConfirmation": {
1475
+ "description": "에이전트는 도구를 통해 작업 공간에서 작업을 수행합니다. 즉, 파일을 읽거나, 터미널 명령을 실행하거나, 코드를 편집합니다.\n\n모든 도구 호출 시 먼저 사용자의 확인을 요청합니다. [도구]({0}\n) 페이지에서 이 기본 설정을 변경하거나 신뢰하는 도구에 대해 사전 승인을 설정할 수 있습니다.\n\n워크스페이스가 신뢰되지 않는 동안에는 AI 기능이 완전히 비활성화됩니다. [워크스페이스 신뢰 관리]({1}\n)를 통해 프로젝트별로 결정할 수 있습니다.\n",
1476
+ "title": "에이전트의 동작을 철저히 통제하세요"
1477
+ }
1478
+ }
1392
1479
  },
1393
1480
  "llamaFile": {
1394
1481
  "prefs": {
@@ -1434,6 +1521,7 @@
1434
1521
  "label": "MCP: MCP OAuth 리디렉션 URL 가져오기"
1435
1522
  },
1436
1523
  "info": {
1524
+ "noToolsAvailable": "사용 가능한 도구가 없습니다.",
1437
1525
  "oauthRedirectUrl": "MCP OAuth 리디렉션 URL: {0}",
1438
1526
  "serverSignedIn": "MCP 서버 \"{0}\"에 로그인했습니다.",
1439
1527
  "serverSignedOut": "MCP 서버 \"{0}\"에서 로그아웃되었습니다.",
@@ -1609,6 +1697,7 @@
1609
1697
  "serverUrlPlaceholder": "예: https://mcp.example.com",
1610
1698
  "serverUrlRequired": "원격 서버에는 서버 URL이 필요합니다."
1611
1699
  },
1700
+ "noServersConfigured": "구성된 MCP 서버가 없습니다",
1612
1701
  "oauth": "OAuth",
1613
1702
  "oauthAuthorizationServer": "인증 서버",
1614
1703
  "oauthClientId": "OAuth 클라이언트 ID",
@@ -1636,6 +1725,9 @@
1636
1725
  "typeRemoteOAuth": "원격(OAuth)"
1637
1726
  },
1638
1727
  "openai": {
1728
+ "allowEnvApiKey": {
1729
+ "description": "Theia가 환경에서 발견된 OpenAI API 키(`OPENAI_API_KEY`)를 사용하도록 허용합니다. 키가 사용되기 전에 한 번 확인을 요청받게 되며, 동의를 철회하려면 이 값을 `false`로 다시 설정하십시오."
1730
+ },
1639
1731
  "apiKey": {
1640
1732
  "mdDescription": "공식 OpenAI 계정의 API 키를 입력하세요. **참고:** 이 설정을 사용하면 OpenAI API 키가 Theia가 실행되는 머신에 평문으로 저장됩니다. 키를 안전하게 설정하려면 환경 변수 `OPENAI_API_KEY`를 사용하세요."
1641
1733
  },
@@ -1664,10 +1756,13 @@
1664
1756
  "enableStreaming": {
1665
1757
  "title": "스트리밍 API 사용 여부를 나타냅니다. 기본값은 `true`입니다."
1666
1758
  },
1759
+ "headers": {
1760
+ "title": "엔드포인트로 전송되는 모든 요청에 함께 전송되는 추가 HTTP 헤더"
1761
+ },
1667
1762
  "id": {
1668
1763
  "title": "UI에서 사용자 정의 모델을 식별하는 데 사용되는 고유 식별자"
1669
1764
  },
1670
- "mdDescription": "`vllm` 등을 통해 OpenAI API와 호환되는 사용자 정의 모델을 통합합니다. 필수 속성은 `model`과 `url`입니다. \n 선택적으로 다음을 수행할 수 있습니다. \n - UI에서 사용자 정의 모델을 식별할 고유한 `id`를 지정합니다. 지정하지 않으면 `model`이 `id`로 사용됩니다. \n - 지정된 URL에서 제공되는 API에 액세스하기 위해 `apiKey`를 제공하십시오. 전역 OpenAI API 키 사용을 나타내려면 `true`를 사용하십시오. \n - Azure에서 지정된 URL에서 제공되는 API에 액세스하기 위해 `apiVersion`을 제공하십시오. 글로벌 OpenAI API 버전을 사용하려면 `true`를 지정하십시오. \n - Azure 배포에 대한 `deployment` 이름을 제공하십시오. \n - `developerMessageSettings`를 `user`, `system`, `developer`, `mergeWithFollowingUserMessage` 또는 `skip` 중 하나로 설정하여 개발자 메시지가 포함되는 방식을 제어하십시오 (여기서 `user`, `system`, `developer`는 역할로 사용되며, `mergeWithFollowingUserMessage`는 다음 사용자 메시지 앞에 시스템 메시지를 추가하거나, 다음 메시지가 사용자 메시지가 아닐 경우 시스템 메시지를 사용자 메시지로 변환합니다. `skip`은 시스템 메시지를 단순히 제거합니다). 기본값은 `developer`입니다. \n - `supportsStructuredOutput: false`를 지정하여 구조화된 출력을 사용하지 않도록 설정합니다. \n - `enableStreaming: false`를 지정하여 스트리밍을 사용하지 않도록 설정합니다. \n - `useResponseApi: true`를 지정하여 Chat Completion API 대신 최신 OpenAI Response API를 사용합니다(호환되는 엔드포인트 필요). \n - `reasoningSupport`를 지정하여 채팅 추론 선택기를 활성화할 수 있습니다. `supportedLevels`(예: `[\"off\", \"low\", \"medium\", \"high\", \"auto\"]`)와 선택 사항인 `defaultLevel`을 포함한 객체를 제공하십시오. \n 자세한 내용은 [문서](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm)를 참조하십시오.",
1765
+ "mdDescription": "예를 들어 `vllm`을 통해 OpenAI API와 호환되는 사용자 정의 모델을 통합할 수 있습니다. 필수 속성은 `model`과 `url`입니다. \n 선택적으로 다음을 수행할 수 있습니다. \n - UI에서 사용자 정의 모델을 식별할 고유한 `id`를 지정할 수 있습니다. 지정된 항목이 없는 경우 `model`이 `id`로 사용됩니다. \n - 지정된 URL에서 제공되는 API에 액세스하기 위해 `apiKey`를 제공하세요. 전역 OpenAI API 키를 사용하려면 `true`를 지정하세요. \n - 지정된 URL에서 Azure를 통해 제공되는 API에 액세스하기 위해 `apiVersion`을 지정합니다. 전역 OpenAI API 버전을 사용하려면 `true`를 지정하십시오. \n - Azure 배포에 대한 `deployment` 이름을 지정합니다. \n - `developerMessageSettings`를 `user`, `system`, `developer`, `mergeWithFollowingUserMessage` 또는 `skip` 중 하나로 설정하여 개발자 메시지가 어떻게 포함될지 제어합니다 (여기서 `user`, `system`, `developer`는 역할로 사용되며, `mergeWithFollowingUserMessage`는 다음 사용자 메시지 앞에 시스템 메시지를 추가하거나, 다음 메시지가 사용자 메시지가 아닐 경우 시스템 메시지를 사용자 메시지로 변환합니다. `skip`은 시스템 메시지를 단순히 제거합니다). 기본값은 `developer`입니다. \n - 구조화된 출력을 사용하지 않으려면 `supportsStructuredOutput: false`를 지정하십시오. \n - 스트리밍을 사용하지 않으려면 `enableStreaming: false`를 지정하십시오. \n - `useResponseApi: true`를 지정하면 Chat Completion API 대신 최신 OpenAI Response API를 사용합니다(호환되는 엔드포인트 필요). \n - `reasoningSupport`를 지정하여 채팅 추론 선택기를 활성화할 수 있습니다. `supportedLevels`(예: `[\"off\", \"low\", \"medium\", \"high\", \"auto\"]`)와 선택 사항인 `defaultLevel`이 포함된 객체를 제공하십시오. \n - `headers`를 지정하여 엔드포인트에 대한 모든 요청에 추가 HTTP 헤더를 전송할 수 있습니다(예: API 앞에 위치한 게이트웨이에서 요구하는 헤더). \n 자세한 내용은 [당사 문서](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm)를 참조하십시오.",
1671
1766
  "modelId": {
1672
1767
  "title": "모델 ID"
1673
1768
  },
@@ -1687,8 +1782,16 @@
1687
1782
  "customProvider": {
1688
1783
  "label": "{0} (사용자 정의)"
1689
1784
  },
1690
- "models": {
1691
- "description": "사용할 공식 OpenAI 모델"
1785
+ "discovery": {
1786
+ "cached": "캐시된 모델 표시 중; 마지막 새로고침에 실패했습니다: {0}",
1787
+ "consentPrompt": "환경 변수(OPENAI_API_KEY)에서 OpenAI API 키가 발견되었습니다. Theia가 이 키를 사용하여 OpenAI 모델을 검색하고 호출하도록 허용하시겠습니까?",
1788
+ "consentRequired": "환경에서 OpenAI API 키가 발견되었습니다. 모델 검색에 이 키를 사용할지 확인하십시오.",
1789
+ "noKey": "OpenAI API 키가 설정되어 있지 않습니다. 모델을 검색하려면 키를 추가하십시오.",
1790
+ "overridden": "모델 목록은 수동으로 구성됩니다. 모델 재정의 항목을 지우면 공급자로부터 모델을 다시 검색할 수 있습니다.",
1791
+ "useEnvKey": "키 사용"
1792
+ },
1793
+ "modelOverrides": {
1794
+ "description": "OpenAI에서 검색된 모델을 재정의합니다. 빈 값(기본값)인 경우, 사용 가능한 모델은 제공업체에서 검색됩니다. 사용하려는 모델의 ID를 명시적으로 설정하면 해당 모델만 사용되며, 이 경우 모델 검색 기능은 전혀 사용되지 않습니다."
1692
1795
  },
1693
1796
  "useResponseApi": {
1694
1797
  "mdDescription": "공식 OpenAI 모델의 경우, Chat Completion API 대신 최신 OpenAI Response API를 사용하십시오. 이 설정은 공식 OpenAI 모델에만 적용되며, 사용자 정의 제공자는 이를 개별적으로 구성해야 합니다."
@@ -1936,6 +2039,26 @@
1936
2039
  "codeReview": {
1937
2040
  "description": "각 구현 후 코드 검토 에이전트에 위임합니다. 검토가 통과될 때까지 다음 단계를 차단합니다."
1938
2041
  },
2042
+ "commit-message": {
2043
+ "agent-disabled-tooltip": "커밋 메시지 에이전트가 비활성화되어 있습니다. AI 구성 뷰에서 이를 활성화하십시오.",
2044
+ "cancel-tooltip": "커밋 메시지 생성을 취소합니다",
2045
+ "empty": "모델이 빈 커밋 메시지를 반환했습니다.",
2046
+ "failed": "커밋 메시지 생성에 실패했습니다: {0}",
2047
+ "generate-from-staged": "스테이징된 변경 사항에서 커밋 메시지 생성",
2048
+ "no-changes": "커밋 메시지를 생성할 수 있는 스테이징된 변경 사항이 없습니다.",
2049
+ "no-repository": "소스 제어 저장소가 선택되지 않았습니다.",
2050
+ "replace-prompt": "커밋 메시지 필드가 비어 있지 않습니다. 해당 내용을 생성된 메시지로 대체하시겠습니까?",
2051
+ "replace-title": "커밋 메시지 교체",
2052
+ "staged-tooltip": "스테이징된 변경 내용을 바탕으로 커밋 메시지 생성"
2053
+ },
2054
+ "commitMessageAgent": {
2055
+ "description": "작업 공간 저장소의 스테이징된 변경 내용을 기반으로 git 커밋 메시지를 생성합니다. SCM 커밋 메시지 입력란에서 AI 스파클 버튼을 통해 호출됩니다.",
2056
+ "vars": {
2057
+ "changes": {
2058
+ "description": "커밋 메시지가 생성된, 스테이징된 변경 사항에 대한 통합 git diff입니다."
2059
+ }
2060
+ }
2061
+ },
1939
2062
  "fixGhTicketCommand": {
1940
2063
  "argumentHint": "<티켓 번호>",
1941
2064
  "description": "GitHub 티켓을 분석하고 해결책을 구현하십시오."
@@ -2004,6 +2127,7 @@
2004
2127
  "updateTooltip": "{0}에서 {1}로 업데이트됨"
2005
2128
  },
2006
2129
  "autoUpdate": {
2130
+ "aiSettings": "AI 설정",
2007
2131
  "ask": "설치된 스킬, MCP 서버 또는 에이전트 플러그인에 대한 업데이트가 있을 때 알림을 제공합니다.",
2008
2132
  "changeLater": "나중에 {0}에서 이 설정을 변경할 수 있습니다.",
2009
2133
  "configureDefault": "{0}에서 기본값을 구성하십시오.",
@@ -2040,9 +2164,7 @@
2040
2164
  "oneSkipped": "\"{0}\" 구성 요소 건너뛰기: {1}"
2041
2165
  },
2042
2166
  "dialog": {
2043
- "contains": "포함 내용",
2044
2167
  "endorsedBy": "다음 기관의 승인을 받았습니다.",
2045
- "from": "출처:",
2046
2168
  "install": {
2047
2169
  "title": "에이전트 플러그인 “{0}” 설치"
2048
2170
  },
@@ -2104,10 +2226,6 @@
2104
2226
  "serverUnknownField": "서버 구성에서 “{0}” 필드가 선언되었으나, 해당 전송 유형에서는 허용되지 않습니다.",
2105
2227
  "serverUnknownType": "서버 구성에서 알 수 없는 전송 유형인 “{0}”이 선언되어 있습니다.",
2106
2228
  "serverUnsupportedTransport": "MCP 전송 방식인 “{0}”은 지원되지 않습니다.",
2107
- "stat": {
2108
- "oneServer": "1 MCP 서버",
2109
- "servers": "{0} MCP 서버"
2110
- },
2111
2229
  "uninstalled": "제거된 에이전트 플러그인 \"{0}\".",
2112
2230
  "unknownManifestField": "알 수 없는 \"plugin.json\" 필드인 \"{0}\"은 무시합니다.",
2113
2231
  "unlinked": "연결 해제된 에이전트 플러그인 “{0}”.",
@@ -2244,7 +2362,6 @@
2244
2362
  "collaborate": "협업",
2245
2363
  "collaboration": "협업",
2246
2364
  "collaborationWorkspace": "협업 작업 공간",
2247
- "connected": "연결됨",
2248
2365
  "connectedSession": "협업 세션에 연결됨",
2249
2366
  "copiedInvitation": "초대 코드가 클립보드에 복사되었습니다.",
2250
2367
  "copyAgain": "다시 복사",
@@ -2471,6 +2588,25 @@
2471
2588
  "userSettingsDetail": "모든 작업 공간에 적용",
2472
2589
  "workspaceSettingsDetail": "현재 작업 공간에만 적용"
2473
2590
  },
2591
+ "external-api": {
2592
+ "delivery": {
2593
+ "description": "외부 HTTP API가 제공되는지 여부와 제공 방식을 제어합니다.",
2594
+ "off": "외부 API를 제공하지 마십시오.",
2595
+ "samePort": "백엔드와 동일한 포트에서 외부 API를 제공하십시오.",
2596
+ "samePortLabel": "백엔드와 동일한 포트",
2597
+ "separatePort": "\"externalApi.port\"를 통해 구성된 전용 포트에서 외부 API를 제공합니다.",
2598
+ "separatePortLabel": "별도의 포트"
2599
+ },
2600
+ "hostname": {
2601
+ "description": "외부 HTTP API 서버가 바인딩되는 호스트 이름 또는 IP 주소입니다. 원격 연결을 허용하려면 \"0.0.0.0\"을 사용하십시오. \"localhost\"와 같은 이름은 이름 해결 시 바인딩되므로, 다른 루프백 주소를 사용하는 클라이언트는 서버에 접속하지 못할 수 있습니다. 특정 주소를 고정하려면 \"127.0.0.1\" 또는 \"::1\"을 사용하십시오. \"externalApi.delivery\"가 \"separatePort\"로 설정된 경우에만 사용됩니다."
2602
+ },
2603
+ "port": {
2604
+ "description": "외부 HTTP API가 제공되는 포트입니다. \"externalApi.delivery\"가 \"separatePort\"로 설정된 경우에만 사용됩니다."
2605
+ },
2606
+ "token": {
2607
+ "description": "보호된 외부 API 엔드포인트에 액세스하는 데 필요한 베어러 토큰(\"Authorization: Bearer <token>\"). 빈 값인 경우, 외부 API는 인증 없이 제공됩니다."
2608
+ }
2609
+ },
2474
2610
  "external-terminal": {
2475
2611
  "cwd": "새 외부 터미널을 위한 현재 작업 디렉터리 선택"
2476
2612
  },
@@ -2514,10 +2650,6 @@
2514
2650
  "uploadedOutOf": "업로드됨 {0} / {1}"
2515
2651
  },
2516
2652
  "getting-started": {
2517
- "ai": {
2518
- "header": "{0}에서 AI 지원 기능을 이용하실 수 있습니다!",
2519
- "openAIChatView": "지금 AI 채팅 뷰를 열어 시작하는 방법을 알아보세요!"
2520
- },
2521
2653
  "apiComparator": "{0} API 호환성",
2522
2654
  "markStepUndone": "취소 표시",
2523
2655
  "newExtension": "새 확장 프로그램 만들기",
@@ -2736,9 +2868,6 @@
2736
2868
  },
2737
2869
  "toolbar": "도구 모음"
2738
2870
  },
2739
- "preview": {
2740
- "openByDefault": "기본적으로 편집기 대신 미리보기를 엽니다."
2741
- },
2742
2871
  "property-view": {
2743
2872
  "lastModified": "마지막 수정일",
2744
2873
  "noProperties": "사용 가능한 속성이 없습니다.",
@@ -2749,6 +2878,16 @@
2749
2878
  "dev-container": {
2750
2879
  "attach": "실행 중인 컨테이너에 연결",
2751
2880
  "attachError": "컨테이너에 연결하지 못했습니다: {0}",
2881
+ "attachScreen": {
2882
+ "errorHeader": "컨테이너에 연결하지 못했습니다",
2883
+ "firstStartNote": "컨테이너를 처음 시작할 때는 1~2분 정도 걸릴 수 있습니다. 이후에는 훨씬 더 빠르게 시작됩니다.",
2884
+ "locating": "컨테이너 {0}를 찾고 있습니다...",
2885
+ "preparing": "연결 준비 중...",
2886
+ "preparingWorkspace": "작업 공간 준비 중...",
2887
+ "starting": "컨테이너 내에서 애플리케이션을 시작 중입니다...",
2888
+ "title": "컨테이너에 연결하기",
2889
+ "titleNamed": "{0}에 연결"
2890
+ },
2752
2891
  "attachWarning": "컨테이너에 연결하면 그 안의 코드가 실행됩니다. 출처를 신뢰할 수 있는 컨테이너에만 연결하십시오.",
2753
2892
  "attachWarningTitle": "컨테이너에 연결",
2754
2893
  "attaching": "컨테이너에 연결",
@@ -2799,7 +2938,6 @@
2799
2938
  "amendHeadCommit": "HEAD 커밋",
2800
2939
  "amendLastCommit": "마지막 커밋 수정",
2801
2940
  "changeRepository": "저장소 변경...",
2802
- "copyCommitHash": "커밋 해시 복사",
2803
2941
  "dirtyDiff": {
2804
2942
  "close": "닫기 변경 미리보기 보기"
2805
2943
  },