snow-ai 0.3.36 → 0.4.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 (97) hide show
  1. package/dist/agents/codebaseIndexAgent.js +1 -0
  2. package/dist/agents/codebaseReviewAgent.d.ts +61 -0
  3. package/dist/agents/codebaseReviewAgent.js +301 -0
  4. package/dist/agents/promptOptimizeAgent.d.ts +54 -0
  5. package/dist/agents/promptOptimizeAgent.js +268 -0
  6. package/dist/api/anthropic.js +1 -0
  7. package/dist/api/chat.js +1 -0
  8. package/dist/api/embedding.js +1 -0
  9. package/dist/api/gemini.js +2 -1
  10. package/dist/api/responses.js +1 -0
  11. package/dist/api/systemPrompt.d.ts +1 -5
  12. package/dist/api/systemPrompt.js +168 -100
  13. package/dist/app.js +14 -6
  14. package/dist/cli.js +1 -1
  15. package/dist/hooks/useCommandPanel.js +48 -46
  16. package/dist/hooks/useConversation.d.ts +2 -1
  17. package/dist/hooks/useConversation.js +116 -30
  18. package/dist/hooks/useGlobalExit.js +4 -2
  19. package/dist/hooks/useStreamingState.d.ts +9 -0
  20. package/dist/hooks/useStreamingState.js +3 -0
  21. package/dist/i18n/I18nContext.d.ts +14 -0
  22. package/dist/i18n/I18nContext.js +24 -0
  23. package/dist/i18n/index.d.ts +3 -0
  24. package/dist/i18n/index.js +2 -0
  25. package/dist/i18n/lang/en.d.ts +2 -0
  26. package/dist/i18n/lang/en.js +483 -0
  27. package/dist/i18n/lang/es.d.ts +2 -0
  28. package/dist/i18n/lang/es.js +483 -0
  29. package/dist/i18n/lang/ja.d.ts +2 -0
  30. package/dist/i18n/lang/ja.js +483 -0
  31. package/dist/i18n/lang/ko.d.ts +2 -0
  32. package/dist/i18n/lang/ko.js +483 -0
  33. package/dist/i18n/lang/zh-TW.d.ts +2 -0
  34. package/dist/i18n/lang/zh-TW.js +483 -0
  35. package/dist/i18n/lang/zh.d.ts +2 -0
  36. package/dist/i18n/lang/zh.js +483 -0
  37. package/dist/i18n/translations.d.ts +2 -0
  38. package/dist/i18n/translations.js +14 -0
  39. package/dist/i18n/types.d.ts +459 -0
  40. package/dist/i18n/types.js +1 -0
  41. package/dist/mcp/aceCodeSearch.d.ts +17 -48
  42. package/dist/mcp/aceCodeSearch.js +24 -56
  43. package/dist/mcp/bash.js +8 -1
  44. package/dist/mcp/codebaseSearch.d.ts +1 -1
  45. package/dist/mcp/codebaseSearch.js +159 -30
  46. package/dist/mcp/filesystem.d.ts +3 -80
  47. package/dist/mcp/filesystem.js +23 -103
  48. package/dist/mcp/subagent.d.ts +2 -1
  49. package/dist/mcp/subagent.js +54 -5
  50. package/dist/ui/components/ChatInput.js +22 -25
  51. package/dist/ui/components/CommandPanel.d.ts +1 -1
  52. package/dist/ui/components/CommandPanel.js +20 -13
  53. package/dist/ui/components/DiffViewer.d.ts +1 -1
  54. package/dist/ui/components/DiffViewer.js +101 -91
  55. package/dist/ui/components/FileList.js +22 -11
  56. package/dist/ui/components/HelpPanel.js +47 -21
  57. package/dist/ui/components/Menu.js +6 -2
  58. package/dist/ui/components/MessageList.d.ts +6 -0
  59. package/dist/ui/components/MessageList.js +1 -1
  60. package/dist/ui/components/ToolConfirmation.d.ts +4 -1
  61. package/dist/ui/components/ToolConfirmation.js +28 -2
  62. package/dist/ui/components/ToolResultPreview.d.ts +2 -1
  63. package/dist/ui/components/ToolResultPreview.js +41 -25
  64. package/dist/ui/pages/ChatScreen.js +177 -56
  65. package/dist/ui/pages/CodeBaseConfigScreen.js +54 -30
  66. package/dist/ui/pages/ConfigScreen.js +138 -98
  67. package/dist/ui/pages/CustomHeadersScreen.js +75 -69
  68. package/dist/ui/pages/LanguageSettingsScreen.d.ts +7 -0
  69. package/dist/ui/pages/LanguageSettingsScreen.js +89 -0
  70. package/dist/ui/pages/ProxyConfigScreen.js +27 -23
  71. package/dist/ui/pages/SensitiveCommandConfigScreen.js +32 -25
  72. package/dist/ui/pages/SubAgentConfigScreen.js +88 -75
  73. package/dist/ui/pages/SystemPromptConfigScreen.js +31 -26
  74. package/dist/ui/pages/WelcomeScreen.js +40 -26
  75. package/dist/utils/apiConfig.d.ts +2 -0
  76. package/dist/utils/codebaseConfig.d.ts +1 -5
  77. package/dist/utils/codebaseConfig.js +2 -10
  78. package/dist/utils/codebaseSearchEvents.d.ts +16 -0
  79. package/dist/utils/codebaseSearchEvents.js +13 -0
  80. package/dist/utils/commands/agent.js +2 -2
  81. package/dist/utils/commands/init.js +1 -1
  82. package/dist/utils/configManager.js +26 -5
  83. package/dist/utils/contextCompressor.js +1 -1
  84. package/dist/utils/languageConfig.d.ts +21 -0
  85. package/dist/utils/languageConfig.js +61 -0
  86. package/dist/utils/mcpToolsManager.js +0 -9
  87. package/dist/utils/notebookManager.js +11 -4
  88. package/dist/utils/sessionConverter.js +13 -3
  89. package/dist/utils/sessionManager.d.ts +1 -0
  90. package/dist/utils/subAgentConfig.d.ts +10 -5
  91. package/dist/utils/subAgentConfig.js +112 -19
  92. package/dist/utils/subAgentExecutor.d.ts +9 -1
  93. package/dist/utils/subAgentExecutor.js +122 -9
  94. package/dist/utils/toolExecutor.d.ts +2 -1
  95. package/dist/utils/toolExecutor.js +1 -2
  96. package/dist/utils/usageLogger.js +18 -3
  97. package/package.json +2 -1
@@ -0,0 +1,483 @@
1
+ export const ko = {
2
+ welcome: {
3
+ title: '❆ SNOW AI CLI',
4
+ subtitle: '지능형 커맨드라인 어시스턴트',
5
+ startChat: '시작',
6
+ startChatInfo: '새 채팅 대화 시작',
7
+ apiSettings: 'API 및 모델 설정',
8
+ apiSettingsInfo: 'API 설정, AI 모델 구성 및 프로필 관리',
9
+ proxySettings: '프록시 및 브라우저 설정',
10
+ proxySettingsInfo: '웹 검색 및 가져오기를 위한 시스템 프록시 및 브라우저 구성',
11
+ codebaseSettings: '코드베이스 설정',
12
+ codebaseSettingsInfo: '임베딩 모델을 사용하여 코드베이스 인덱싱 구성',
13
+ systemPromptSettings: '시스템 프롬프트 설정',
14
+ systemPromptSettingsInfo: '사용자 정의 시스템 프롬프트 구성(기본값 재정의)',
15
+ customHeadersSettings: '사용자 정의 헤더 설정',
16
+ customHeadersSettingsInfo: 'API 요청을 위한 사용자 정의 HTTP 헤더 구성',
17
+ mcpSettings: 'MCP 설정',
18
+ mcpSettingsInfo: '모델 컨텍스트 프로토콜 서버 구성',
19
+ subAgentSettings: '하위 에이전트 설정',
20
+ subAgentSettingsInfo: '사용자 정의 도구 권한이 있는 하위 에이전트 구성',
21
+ sensitiveCommands: '민감한 명령',
22
+ sensitiveCommandsInfo: 'YOLO 모드에서도 확인이 필요한 명령 구성',
23
+ languageSettings: '언어 설정',
24
+ languageSettingsInfo: '애플리케이션 언어 전환',
25
+ exit: '종료',
26
+ exitInfo: '애플리케이션 종료',
27
+ },
28
+ menu: {
29
+ navigate: '↑↓ 키로 이동, Enter 키로 선택:',
30
+ },
31
+ proxyConfig: {
32
+ title: '프록시 구성',
33
+ subtitle: '웹 검색 및 가져오기를 위한 시스템 프록시 구성',
34
+ enableProxy: '프록시 활성화:',
35
+ enabled: '[✓] 활성화됨',
36
+ disabled: '[ ] 비활성화됨',
37
+ toggleHint: '(Enter 키로 토글)',
38
+ proxyPort: '프록시 포트:',
39
+ notSet: '설정 안됨',
40
+ browserPath: '브라우저 경로(선택사항):',
41
+ autoDetect: '자동 감지',
42
+ errors: '오류:',
43
+ editingHint: '편집 모드: Enter 키로 저장 후 편집 종료(변경 완료 후 Enter)',
44
+ navigationHint: '↑↓로 필드 간 이동, Enter로 편집/토글, Ctrl+S 또는 Esc로 저장 후 돌아가기',
45
+ browserExamplesTitle: '브라우저 경로 예시:',
46
+ browserExamplesFooter: '비워두면 시스템 브라우저 자동 감지 (Edge/Chrome)',
47
+ portValidationError: '포트는 1에서 65535 사이의 숫자여야 합니다',
48
+ portPlaceholder: '7890',
49
+ browserPathPlaceholder: '비워두면 자동 감지',
50
+ windowsExample: '• Windows: C:\\Program Files(x86)\\Microsoft\\Edge\\Application\\msedge.exe',
51
+ macosExample: '• macOS: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
52
+ linuxExample: '• Linux: /usr/bin/chromium-browser',
53
+ },
54
+ codebaseConfig: {
55
+ title: '코드베이스 구성',
56
+ subtitle: '코드베이스 인덱싱 및 검색 설정 구성',
57
+ settingsPosition: '설정',
58
+ scrollHint: '· ↑↓ 스크롤',
59
+ codebaseEnabled: '코드베이스 활성화:',
60
+ agentReview: '에이전트 검토:',
61
+ enabled: '[✓] 활성화됨',
62
+ disabled: '[ ] 비활성화됨',
63
+ toggleHint: '(Enter 키로 토글)',
64
+ embeddingModelName: '임베딩 모델 이름:',
65
+ embeddingBaseUrl: '임베딩 Base URL:',
66
+ embeddingApiKey: '임베딩 API 키:',
67
+ embeddingApiKeyOptional: '임베딩 API 키(로컬 배포는 선택사항):',
68
+ embeddingDimensions: '임베딩 차원:',
69
+ batchMaxLines: '배치 최대 라인 수:',
70
+ batchConcurrency: '배치 동시성:',
71
+ notSet: '설정 안됨',
72
+ masked: '••••••••',
73
+ errors: '오류:',
74
+ editingHint: '편집 모드: 입력하여 편집, Enter로 저장, Esc로 취소',
75
+ navigationHint: '↑↓로 이동, Enter로 편집/토글, Ctrl+S 또는 Esc로 저장',
76
+ validationModelNameRequired: '활성화 시 임베딩 모델 이름 필요',
77
+ validationBaseUrlRequired: '활성화 시 임베딩 Base URL 필요',
78
+ validationDimensionsPositive: '임베딩 차원은 0보다 커야 합니다',
79
+ validationMaxLinesPositive: '배치 최대 라인 수는 0보다 커야 합니다',
80
+ validationConcurrencyPositive: '배치 동시성은 0보다 커야 합니다',
81
+ saveError: '구성 저장 실패',
82
+ },
83
+ systemPromptConfig: {
84
+ title: '시스템 프롬프트 관리',
85
+ subtitle: '여러 시스템 프롬프트를 관리하고 전환',
86
+ activePrompt: '활성 프롬프트:',
87
+ none: '없음',
88
+ noPromptsConfigured: '시스템 프롬프트가 구성되지 않았습니다. Enter로 추가.',
89
+ availablePrompts: '사용 가능한 프롬프트:',
90
+ actions: '작업:',
91
+ activate: '활성화',
92
+ deactivate: '비활성화',
93
+ edit: '편집',
94
+ delete: '삭제',
95
+ addNew: '새 프롬프트 추가',
96
+ escBack: '[ESC] 뒤로',
97
+ navigationHint: '↑↓로 프롬프트 선택, ←→로 작업 선택, Enter로 확인',
98
+ addNewTitle: '새 시스템 프롬프트 추가',
99
+ editTitle: '시스템 프롬프트 편집',
100
+ nameLabel: '이름:',
101
+ contentLabel: '내용:',
102
+ enterPromptName: '프롬프트 이름 입력',
103
+ enterPromptContent: '프롬프트 내용 입력',
104
+ notSet: '설정 안됨',
105
+ editingHint: '↑↓: 필드 이동 | Enter: 편집 | Ctrl+S: 저장 | ESC: 취소',
106
+ confirmDelete: '삭제 확인',
107
+ deleteConfirmMessage: '삭제하시겠습니까',
108
+ confirmHint: 'Y로 확인, N 또는 ESC로 취소',
109
+ saveError: '저장 실패',
110
+ },
111
+ configScreen: {
112
+ title: 'API 및 모델 구성',
113
+ subtitle: 'API 설정 및 AI 모델 구성',
114
+ activeProfile: '현재 구성:',
115
+ settingsPosition: '설정',
116
+ scrollHint: '· ↑↓ 스크롤',
117
+ profile: '프로필:',
118
+ baseUrl: 'Base URL:',
119
+ apiKey: 'API 키:',
120
+ requestMethod: '요청 방식:',
121
+ anthropicBeta: 'Anthropic Beta:',
122
+ enablePromptOptimization: 'Enable Prompt Optimization:',
123
+ enableAutoCompress: 'Enable Auto Compression:',
124
+ thinkingEnabled: 'Thinking Enabled:',
125
+ thinkingBudgetTokens: '사고 예산 토큰 수:',
126
+ geminiThinkingEnabled: 'Gemini 사고 활성화:',
127
+ geminiThinkingBudget: 'Gemini 사고 예산:',
128
+ responsesReasoningEnabled: 'Responses 추론 활성화:',
129
+ responsesReasoningEffort: 'Responses 추론 강도:',
130
+ advancedModel: '고급 모델:',
131
+ basicModel: '기본 모델:',
132
+ compactModel: '컴팩트 모델:',
133
+ maxContextTokens: '최대 컨텍스트 토큰:',
134
+ maxTokens: '최대 토큰 수:',
135
+ notSet: '설정 안됨',
136
+ enabled: '[✓] 활성화됨',
137
+ disabled: '[ ] 비활성화됨',
138
+ toggleHint: '(Enter 키로 토글)',
139
+ enterValue: '값 입력:',
140
+ low: '낮음',
141
+ medium: '중간',
142
+ high: '높음',
143
+ createNewProfile: '새 프로필 생성',
144
+ enterProfileName: '새 프로필 이름 입력',
145
+ profileNamePlaceholder: '예: work, personal, test',
146
+ createHint: 'Enter로 생성, Esc로 취소',
147
+ deleteProfile: '프로필 삭제',
148
+ confirmDelete: '프로필 삭제 확인',
149
+ deleteWarning: '이 작업은 취소할 수 없습니다. 기본 프로필로 전환됩니다.',
150
+ confirmHint: 'Y로 확인, N 또는 Esc로 취소',
151
+ loadingModels: 'API 및 모델 구성',
152
+ loadingMessage: '사용 가능한 모델 로드 중...',
153
+ loadingCancelHint: 'Esc로 취소 후 구성으로 돌아가기',
154
+ manualInputTitle: '모델 수동 입력',
155
+ manualInputSubtitle: '모델 이름 수동 입력',
156
+ manualInputHint: 'Enter로 확인, Esc로 취소',
157
+ loadingError: '⚠ API에서 모델을 로드할 수 없습니다',
158
+ requestMethodChat: 'Chat Completions - 최신 채팅 API (GPT-4, GPT-3.5-turbo)',
159
+ requestMethodResponses: 'Responses - 새로운 Responses API (2025, 내장 도구)',
160
+ requestMethodGemini: 'Gemini - Google Gemini API',
161
+ requestMethodAnthropic: 'Anthropic - Claude API',
162
+ manualInputOption: '수동 입력(모델 이름 입력)',
163
+ errors: '오류:',
164
+ cannotDeleteDefault: '기본 프로필은 삭제할 수 없습니다',
165
+ profileNameEmpty: '프로필 이름은 비워둘 수 없습니다',
166
+ navigationHint: '↑↓로 이동, Enter로 편집, M으로 수동 입력, Ctrl+S 또는 Esc로 저장',
167
+ editingHintNumeric: '숫자 입력하여 편집, Enter로 저장',
168
+ editingHintGeneral: 'Enter로 저장 후 편집 종료',
169
+ modelFilterHint: '입력하여 필터, ↑↓로 선택, Enter로 확인, Esc로 취소',
170
+ effortSelectHint: '↑↓로 선택, Enter로 확인, Esc로 취소',
171
+ profileSelectHint: '↑↓로 프로필 선택, N으로 새로 생성, D로 삭제, Enter로 확인, Esc로 취소',
172
+ requestMethodSelectHint: '↑↓로 선택, Enter로 확인, Esc로 취소',
173
+ newProfile: '+ 새로 만들기',
174
+ deleteProfileShort: '🆇 삭제',
175
+ fetchingModels: 'API에서 모델 가져오는 중...',
176
+ fetchingHint: '네트워크 연결에 따라 몇 초가 걸릴 수 있습니다',
177
+ },
178
+ customHeaders: {
179
+ title: '사용자 정의 헤더 관리',
180
+ subtitle: '여러 헤더 스키마를 관리하고 전환',
181
+ activeScheme: '활성 스키마:',
182
+ none: '없음',
183
+ noSchemesConfigured: '헤더 스키마가 구성되지 않았습니다. Enter로 추가.',
184
+ availableSchemes: '사용 가능한 스키마:',
185
+ actions: '작업:',
186
+ activate: '활성화',
187
+ deactivate: '비활성화',
188
+ edit: '편집',
189
+ delete: '삭제',
190
+ addNew: '새 스키마 추가',
191
+ escBack: '[ESC] 뒤로',
192
+ navigationHint: '↑↓로 스키마 선택, ←→로 작업 선택, Enter로 확인',
193
+ addNewTitle: '새 헤더 스키마 추가',
194
+ editTitle: '헤더 스키마 편집',
195
+ nameLabel: '이름:',
196
+ headersLabel: '헤더',
197
+ headersConfigured: '구성됨',
198
+ enterSchemeName: '스키마 이름 입력',
199
+ notSet: '설정 안됨',
200
+ pressEnterToEdit: 'Enter로 헤더 편집 →',
201
+ editingHint: '↑↓: 필드 이동 | Enter: 편집 | Ctrl+S: 저장 | ESC: 취소',
202
+ confirmDelete: '삭제 확인',
203
+ deleteConfirmMessage: '삭제하시겠습니까',
204
+ confirmHint: 'Y로 확인, N 또는 ESC로 취소',
205
+ saveError: '저장 실패',
206
+ editHeadersTitle: '헤더 편집',
207
+ headerList: '헤더 목록:',
208
+ noHeadersConfigured: '헤더가 구성되지 않았습니다. Enter로 추가.',
209
+ addNewHeader: '[+] 새 헤더 추가',
210
+ headerNavigationHint: '↑↓: 이동 | Enter: 편집/추가 | D: 삭제 | ESC: 완료',
211
+ keyLabel: '키:',
212
+ valueLabel: '값:',
213
+ headerKeyPlaceholder: '헤더 키 (예: X-API-Key)',
214
+ headerValuePlaceholder: '헤더 값',
215
+ headerEditingHint: '↑↓: 필드 이동 | Enter: 편집 | Ctrl+S: 저장 | ESC: 취소',
216
+ },
217
+ subAgentConfig: {
218
+ title: '하위 에이전트 구성',
219
+ titleEdit: '편집',
220
+ titleNew: '새로 만들기',
221
+ subtitle: '사용자 정의 도구 권한이 있는 하위 에이전트 구성',
222
+ agentName: '에이전트 이름:',
223
+ description: '설명:',
224
+ role: '역할:',
225
+ roleOptional: '역할(선택사항):',
226
+ toolSelection: '도구 선택:',
227
+ agentNamePlaceholder: '에이전트 이름 입력...',
228
+ descriptionPlaceholder: '에이전트 설명 입력...',
229
+ rolePlaceholder: '에이전트 역할을 지정하여 출력 및 초점 안내...',
230
+ selectedTools: '선택됨:',
231
+ toolsCount: '개 도구',
232
+ loadingMCP: 'MCP 서비스 로드 중...',
233
+ mcpLoadError: '⚠',
234
+ categoryCount: '({selected}/{total})',
235
+ categoryMCP: '(MCP)',
236
+ navigationHint: '↑↓: 이동 | ←→: 카테고리 전환 | 스페이스: 토글 | A: 전체 선택/해제 | Enter: 저장 | Esc: 뒤로',
237
+ saveSuccess: '하위 에이전트 저장 성공!',
238
+ saveSuccessEdit: '업데이트됨',
239
+ saveSuccessCreate: '생성됨',
240
+ saveError: '하위 에이전트 저장 실패',
241
+ validationFailed: '검증 실패',
242
+ filesystemTools: '파일시스템 도구',
243
+ aceTools: 'ACE 코드 검색 도구',
244
+ codebaseTools: '코드베이스 검색 도구',
245
+ terminalTools: '터미널 도구',
246
+ todoTools: 'TODO 관리 도구',
247
+ webSearchTools: '웹 검색 도구',
248
+ ideTools: 'IDE 진단 도구',
249
+ },
250
+ sensitiveCommandConfig: {
251
+ title: '민감한 명령 보호',
252
+ subtitle: 'YOLO/자동 승인 모드에서도 확인이 필요한 명령 구성',
253
+ noCommands: '명령이 구성되지 않음',
254
+ custom: '사용자 정의',
255
+ enabled: '활성화됨',
256
+ disabled: '비활성화됨',
257
+ customLabel: '사용자 정의',
258
+ // Add view
259
+ addTitle: '사용자 정의 민감한 명령 추가',
260
+ patternLabel: '명령 패턴(와일드카드 지원, 예: "rm*"):',
261
+ patternPlaceholder: '예: rm -rf, sudo 등',
262
+ descriptionLabel: '설명:',
263
+ addEditingHint: 'Tab: 토글 • Enter: 제출 • Esc: 취소',
264
+ // List view actions
265
+ addedMessage: '추가됨: {pattern}',
266
+ enabledMessage: '활성화됨: {pattern}',
267
+ disabledMessage: '비활성화됨: {pattern}',
268
+ deletedMessage: '삭제됨: {pattern}',
269
+ resetMessage: '기본 명령으로 재설정됨',
270
+ // Confirmation messages
271
+ confirmDeleteMessage: '⚠️ D를 다시 눌러 "{pattern}" 삭제 확인',
272
+ confirmResetMessage: '⚠️ R을 다시 눌러 기본 명령으로 재설정 확인',
273
+ confirmHint: '동일한 키를 다시 눌러 확인 • Esc: 취소',
274
+ // Navigation hints
275
+ listNavigationHint: '↑↓: 이동 • 스페이스: 토글 • A: 추가 • D: 삭제 • R: 재설정 • Esc: 뒤로',
276
+ },
277
+ helpPanel: {
278
+ title: '🔰 키보드 단축키 및 도움말',
279
+ textEditingTitle: '📝 텍스트 편집:',
280
+ deleteToStart: 'Ctrl+L - 커서에서 시작까지 삭제',
281
+ deleteToEnd: 'Ctrl+R - 커서에서 끝까지 삭제',
282
+ pasteImages: '{pasteKey} - 클립보드에서 이미지 붙여넣기',
283
+ quickAccessTitle: '🔍 빠른 접근:',
284
+ insertFiles: '@ - 프로젝트에서 파일 삽입',
285
+ searchContent: '@@ - 파일 내용 검색',
286
+ showCommands: '/ - 사용 가능한 명령 표시',
287
+ navigationTitle: '📋 탐색:',
288
+ navigateHistory: '↑/↓ - 명령/메시지 기록 탐색',
289
+ selectItem: 'Tab/Enter - 선택기에서 항목 선택',
290
+ cancelClose: 'ESC - 선택기 취소/닫기 또는 AI 응답 중단',
291
+ toggleYolo: 'Shift+Tab - YOLO 모드 토글(자동 도구 승인)',
292
+ tipsTitle: '💡 팁:',
293
+ tipUseHelp: '언제든지 /help로 이 정보 보기',
294
+ tipShowCommands: '/ 입력하여 모든 사용 가능한 명령 보기',
295
+ tipInterrupt: 'AI 응답 중 ESC로 중단',
296
+ closeHint: 'ESC로 이 도움말 패널 닫기',
297
+ },
298
+ commandPanel: {
299
+ title: '명령 패널',
300
+ availableCommands: '사용 가능한 명령',
301
+ processingMessage: '대화 완료 후 명령 사용하세요',
302
+ scrollHint: '↑↓ 스크롤',
303
+ moreHidden: '{count}개 숨김',
304
+ commands: {
305
+ help: '단축키 및 도움말 정보 표시',
306
+ clear: '채팅 컨텍스트 및 대화 기록 지우기',
307
+ resume: '대화 재개',
308
+ mcp: '모델 컨텍스트 프로토콜 서비스 및 도구 표시',
309
+ yolo: '무인 모드 토글(모든 도구 자동 승인)',
310
+ init: '프로젝트 분석 및 SNOW.md 문서 생성/업데이트',
311
+ ide: 'VSCode 편집기에 연결하고 컨텍스트 동기화',
312
+ compact: '컴팩트 모델을 사용하여 대화 기록 압축',
313
+ home: '환영 화면으로 돌아가서 설정 수정',
314
+ review: 'git 변경 사항 검토 및 잠재적 문제 식별. 지원: /review [선택적 메모]',
315
+ role: 'ROLE.md 파일을 열거나 생성하여 AI 어시스턴트 역할 사용자 정의',
316
+ usage: '대화형 차트가 있는 토큰 사용 통계 보기',
317
+ export: '채팅 대화를 저장 대화상자가 있는 텍스트 파일로 내보내기',
318
+ agent: '하위 에이전트를 선택하고 특정 작업 처리',
319
+ todo: '프로젝트 파일에서 TODO 주석 검색 및 선택',
320
+ },
321
+ },
322
+ hooks: {
323
+ pressCtrlCAgain: 'Ctrl+C를 다시 눌러 종료',
324
+ },
325
+ chatScreen: {
326
+ // Header
327
+ headerTitle: '프로그래밍 효율성 x10!',
328
+ headerSubtitle: '❆ SNOW AI CLI',
329
+ headerExplanations: '코드 설명 및 디버그 도움 요청',
330
+ headerInterrupt: '응답 중 ESC로 중단',
331
+ headerYolo: 'Shift+Tab 누르기: YOLO 토글',
332
+ headerShortcuts: "단축키: Ctrl+L (시작까지 삭제) • Ctrl+R (끝까지 삭제) • {pasteKey} (이미지 붙여넣기) • '@' (파일) • '@@' (내용 검색) • '/' (명령)",
333
+ headerWorkingDirectory: '작업 디렉토리: {directory}',
334
+ // Status messages
335
+ statusThinking: '생각 중...',
336
+ statusDeepThinking: '깊은 생각 중...',
337
+ statusWriting: '출력 중...',
338
+ statusStreaming: '스트리밍 중',
339
+ statusWorking: '작업 중',
340
+ statusIndexing: '코드베이스 인덱싱 중...',
341
+ statusWatcherActive: '파일 감시자 활성화됨 - 코드 변경 모니터링',
342
+ statusFileUpdated: '업데이트됨: {file}',
343
+ statusCreating: '생성 중...',
344
+ statusSaving: '저장 중...',
345
+ statusCompressing: '압축 중...',
346
+ statusConnecting: 'IDE에 연결 중...',
347
+ statusConnected: 'IDE 연결됨',
348
+ statusConnectionFailed: '연결 실패 - IDE에 Snow CLI 플러그인이 설치 및 활성화되어 있는지 확인하세요',
349
+ // Tool execution
350
+ toolCall: '도구 호출',
351
+ toolThinking: '생각',
352
+ toolReading: '읽기',
353
+ toolWriting: '쓰기',
354
+ toolSearching: '검색',
355
+ toolExecuting: '실행',
356
+ toolSuccess: '✓ 성공',
357
+ toolFailed: '✗ 실패',
358
+ toolRejected: '✗ 거부됨',
359
+ // Parallel execution
360
+ parallelStart: '┌─ 병렬 실행',
361
+ parallelEnd: '└─ 병렬 실행 종료',
362
+ // Messages
363
+ userMessage: '당신',
364
+ assistantMessage: '어시스턴트',
365
+ commandMessage: '명령',
366
+ discontinuedMessage: '└─ 사용자에 의해 중단됨',
367
+ // File operations
368
+ fileCreated: '생성됨',
369
+ fileModified: '수정됨',
370
+ fileRead: '읽음',
371
+ fileDeleted: '삭제됨',
372
+ fileCount: '{count}개 파일',
373
+ fileNotFound: '파일을 찾을 수 없음',
374
+ fileLine: '줄',
375
+ fileLines: '줄',
376
+ // Images
377
+ imageAttached: '[이미지 #{index}]',
378
+ // Token usage
379
+ tokenTotal: '총 토큰 수',
380
+ tokenInput: '입력 토큰',
381
+ tokenOutput: '출력 토큰',
382
+ tokenCached: '캐시된 토큰',
383
+ tokenCacheCreation: '캐시 생성',
384
+ tokenCacheRead: '캐시 읽기',
385
+ // Time
386
+ timeElapsed: '경과 시간',
387
+ timeSeconds: '{count}초',
388
+ timeMinutes: '{count}분',
389
+ timeHours: '{count}시간',
390
+ // Errors
391
+ errorGeneric: '오류: {message}',
392
+ errorApi: 'API 오류: {message}',
393
+ errorNetwork: '네트워크 오류: {message}',
394
+ errorConfig: '구성 오류: {message}',
395
+ errorCompression: '압축 오류: {message}',
396
+ errorCompressionFailed: '자동 압축 실패',
397
+ errorLoadSession: '세션 로드 실패',
398
+ errorRollback: '롤백 실패',
399
+ // Warnings
400
+ terminalTooSmall: '⚠ 터미널이 너무 작습니다',
401
+ terminalResizePrompt: '터미널 높이가 {current}줄이지만 최소 {required}줄이 필요합니다.',
402
+ terminalMinHeight: '계속하려면 터미널 창 크기를 조정하세요.',
403
+ // Compression
404
+ compressionAuto: '✵ 토큰 제한으로 인해 컨텍스트를 자동으로 압축 중...',
405
+ compressionInProgress: '대화 기록 압축 중...',
406
+ compressionSuccess: '압축 완료',
407
+ compressionFailed: '✗ 압축 실패: {error}',
408
+ // Retry
409
+ retryAttempt: '재시도 {current}/{max}',
410
+ retryIn: '{seconds}초 후...',
411
+ retryResending: '⟳ 재전송 중... (시도 {current}/{max})',
412
+ retryError: '✗ 오류: {message}',
413
+ // Codebase
414
+ codebaseIndexing: '코드베이스 인덱싱 중... {processed}/{total}개 파일',
415
+ codebaseProgress: '{chunks}개 청크',
416
+ codebaseChunks: '개 청크',
417
+ codebaseSearching: '⏏ 코드베이스 검색 (시도 {current}/{max})',
418
+ codebaseSearchAttempt: '시도 {current}/{max}',
419
+ codebaseSearchComplete: '코드베이스 검색 완료',
420
+ // IDE
421
+ ideConnecting: 'IDE에 연결 중...',
422
+ ideConnected: 'IDE 연결됨',
423
+ ideDisconnected: 'IDE 연결 끊김',
424
+ ideError: '연결 실패 - IDE에 Snow CLI 플러그인이 설치 및 활성화되어 있는지 확인하세요',
425
+ ideActiveFile: '| {file}',
426
+ ideSelectedText: '| {count}자 선택됨',
427
+ // Input
428
+ inputPlaceholder: '프로그래밍에 관한 질문을 해보세요...',
429
+ inputProcessing: '처리 중...',
430
+ inputDisabled: '입력 비활성화됨',
431
+ // Shortcuts
432
+ shortcutPasteImage: '이미지 붙여넣기',
433
+ shortcutFileReference: '파일 참조',
434
+ shortcutSearchContent: '내용 검색',
435
+ shortcutCommands: '명령',
436
+ shortcutDeleteToStart: '시작까지 삭제',
437
+ shortcutDeleteToEnd: '끝까지 삭제',
438
+ shortcutCancel: '취소 (ESC)',
439
+ shortcutRegenerate: '재생성 (Ctrl+R)',
440
+ shortcutToggleYolo: 'YOLO 토글 (Shift+Tab)',
441
+ // Rollback
442
+ rollbackConfirm: '롤백 확인',
443
+ rollbackFiles: '파일 롤백',
444
+ rollbackConversation: '대화만 롤백',
445
+ rollbackWarning: '{count}개 파일에 영향을 미칩니다',
446
+ // Session
447
+ sessionCreating: '첫 번째 대화 기록 파일 생성 중...',
448
+ sessionLoading: '세션 로드 중...',
449
+ sessionSaving: '세션 저장 중...',
450
+ sessionDeleting: '세션 삭제 중...',
451
+ // Rejection
452
+ rejectionReason: '거부 이유:',
453
+ rejectionNoReason: '이유가 제공되지 않음',
454
+ // Batch operations
455
+ batchFile: '파일 {index}: {path}',
456
+ batchEditResults: '배치 편집 결과',
457
+ // Pending
458
+ pendingMessageWaiting: '대기 중인 메시지 대기 중...',
459
+ pendingToolConfirmation: '도구 확인 필요',
460
+ // Press keys hints
461
+ pressEscToClose: 'ESC로 닫기',
462
+ pressEnterToToggle: 'Enter로 토글',
463
+ pressCtrlC: 'Ctrl+C로 취소',
464
+ pressCtrlR: 'Ctrl+R로 재생성',
465
+ pressCtrlS: 'Ctrl+S로 저장',
466
+ // Context
467
+ contextUsage: '컨텍스트 사용: {percentage}%',
468
+ contextPercentage: '{percentage}%',
469
+ contextLimit: '토큰 제한에 도달',
470
+ // ChatInput
471
+ waitingForResponse: '응답 대기 중...',
472
+ moreAbove: '↑ 위에 {count}개 더...',
473
+ moreBelow: '↓ 아래에 {count}개 더...',
474
+ historyNavigateHint: '↑↓ 이동 · Enter 선택 · ESC 닫기',
475
+ typeToFilterCommands: '입력하여 명령 필터',
476
+ contentSearchHint: '내용 검색 • Tab/Enter 선택 • ESC 취소',
477
+ fileSearchHint: '입력하여 파일 필터 • Tab/Enter 선택 • ESC 취소',
478
+ yoloModeActive: '❁ YOLO 모드 활성화됨 - 모든 도구가 확인 없이 자동 승인됩니다',
479
+ tokens: '토큰',
480
+ cached: '캐시됨',
481
+ newCache: '새 캐시',
482
+ },
483
+ };
@@ -0,0 +1,2 @@
1
+ import type { TranslationKeys } from '../types.js';
2
+ export declare const zhTW: TranslationKeys;