@serjm/deepseek-code 0.3.1 → 0.3.2

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 (43) hide show
  1. package/dist/api/index.d.ts +4 -4
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +17 -5
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/commands/index.js +58 -58
  6. package/dist/commands/index.js.map +1 -1
  7. package/dist/config/defaults.d.ts +2 -1
  8. package/dist/config/defaults.d.ts.map +1 -1
  9. package/dist/config/defaults.js +4 -2
  10. package/dist/config/defaults.js.map +1 -1
  11. package/dist/core/agent-loop.d.ts +1 -0
  12. package/dist/core/agent-loop.d.ts.map +1 -1
  13. package/dist/core/agent-loop.js +8 -6
  14. package/dist/core/agent-loop.js.map +1 -1
  15. package/dist/core/i18n.js +9 -9
  16. package/dist/core/i18n.js.map +1 -1
  17. package/dist/core/metrics.d.ts +10 -0
  18. package/dist/core/metrics.d.ts.map +1 -1
  19. package/dist/core/metrics.js +39 -4
  20. package/dist/core/metrics.js.map +1 -1
  21. package/dist/ui/activity-cards.js +9 -9
  22. package/dist/ui/activity-cards.js.map +1 -1
  23. package/dist/ui/app.js +14 -14
  24. package/dist/ui/app.js.map +1 -1
  25. package/dist/ui/chat-view.js +2 -2
  26. package/dist/ui/chat-view.js.map +1 -1
  27. package/dist/ui/markdown-view.d.ts +9 -0
  28. package/dist/ui/markdown-view.d.ts.map +1 -1
  29. package/dist/ui/markdown-view.js +70 -34
  30. package/dist/ui/markdown-view.js.map +1 -1
  31. package/dist/ui/reasoning-view.js +1 -1
  32. package/dist/ui/reasoning-view.js.map +1 -1
  33. package/dist/ui/results-panel.js +1 -1
  34. package/dist/ui/results-panel.js.map +1 -1
  35. package/dist/ui/setup-wizard.js +5 -5
  36. package/dist/ui/setup-wizard.js.map +1 -1
  37. package/dist/ui/status-bar.js +1 -1
  38. package/dist/ui/status-bar.js.map +1 -1
  39. package/dist/ui/tool-activity-card.js +9 -9
  40. package/dist/ui/tool-activity-card.js.map +1 -1
  41. package/dist/ui/tool-call-view.js +7 -7
  42. package/dist/ui/tool-call-view.js.map +1 -1
  43. package/package.json +1 -1
@@ -32,7 +32,10 @@ export interface StreamChunk {
32
32
  toolCallId?: string;
33
33
  usage?: {
34
34
  input: number;
35
+ cacheHitInput: number;
36
+ cacheMissInput: number;
35
37
  output: number;
38
+ reasoningOutput: number;
36
39
  total: number;
37
40
  };
38
41
  }
@@ -59,10 +62,7 @@ export declare class DeepSeekAPI {
59
62
  chat(messages: ChatMessage[], tools?: OpenAITool[]): Promise<{
60
63
  content: string;
61
64
  toolCalls?: ToolCallMessage['tool_calls'];
62
- usage?: {
63
- input: number;
64
- output: number;
65
- };
65
+ usage?: StreamChunk['usage'];
66
66
  }>;
67
67
  /** Validate API key by making a minimal models list request */
68
68
  validateKey(): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;CACpD;AA8BD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAQ;gBAEf,MAAM,EAAE,cAAc;IAS3B,UAAU,CAChB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,CAAC,EAAE,UAAU,EAAE,GACnB,cAAc,CAAC,WAAW,CAAC;IAmI9B;;;OAGG;IACG,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,CAAC,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAsCrH,+DAA+D;IACzD,WAAW,IAAK,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBjE;;OAEG;IACG,YAAY,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAOrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;CACpD;AA8BD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAQ;gBAEf,MAAM,EAAE,cAAc;IAS3B,UAAU,CAChB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,CAAC,EAAE,UAAU,EAAE,GACnB,cAAc,CAAC,WAAW,CAAC;IA2I9B;;;OAGG;IACG,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,CAAC,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAmDxG,+DAA+D;IACzD,WAAW,IAAK,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBjE;;OAEG;IACG,YAAY,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAOrD"}
package/dist/api/index.js CHANGED
@@ -69,13 +69,17 @@ export class DeepSeekAPI {
69
69
  resetChunkTimer();
70
70
  // Usage chunk (last chunk with stream_options.include_usage)
71
71
  if (chunk.usage) {
72
+ const usage = chunk.usage;
72
73
  yield {
73
74
  type: 'usage',
74
75
  content: '',
75
76
  usage: {
76
- input: chunk.usage.prompt_tokens ?? 0,
77
- output: chunk.usage.completion_tokens ?? 0,
78
- total: chunk.usage.total_tokens ?? 0,
77
+ input: usage.prompt_tokens ?? 0,
78
+ cacheHitInput: usage.prompt_cache_hit_tokens ?? 0,
79
+ cacheMissInput: usage.prompt_cache_miss_tokens ?? 0,
80
+ output: usage.completion_tokens ?? 0,
81
+ reasoningOutput: usage.completion_tokens_details?.reasoning_tokens ?? 0,
82
+ total: usage.total_tokens ?? 0,
79
83
  },
80
84
  };
81
85
  continue;
@@ -179,10 +183,18 @@ export class DeepSeekAPI {
179
183
  })),
180
184
  };
181
185
  }
186
+ const usage = response.usage;
182
187
  return {
183
188
  content: message?.content ?? '',
184
- usage: response.usage
185
- ? { input: response.usage.prompt_tokens ?? 0, output: response.usage.completion_tokens ?? 0 }
189
+ usage: usage
190
+ ? {
191
+ input: usage.prompt_tokens ?? 0,
192
+ cacheHitInput: usage.prompt_cache_hit_tokens ?? 0,
193
+ cacheMissInput: usage.prompt_cache_miss_tokens ?? 0,
194
+ output: usage.completion_tokens ?? 0,
195
+ reasoningOutput: usage.completion_tokens_details?.reasoning_tokens ?? 0,
196
+ total: usage.total_tokens ?? 0,
197
+ }
186
198
  : undefined,
187
199
  };
188
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -90,7 +90,7 @@ async function cmdRemember(ctx, input) {
90
90
  });
91
91
  ctx.setMessages(prev => [...prev, {
92
92
  role: 'assistant',
93
- content: `✓ Saved to memory: "${text.slice(0, 100)}${text.length > 100 ? '...' : ''}"`,
93
+ content: `[ok] Saved to memory: "${text.slice(0, 100)}${text.length > 100 ? '...' : ''}"`,
94
94
  }]);
95
95
  return true;
96
96
  }
@@ -116,7 +116,7 @@ async function cmdForget(ctx, input) {
116
116
  }
117
117
  ctx.setMessages(prev => [...prev, {
118
118
  role: 'assistant',
119
- content: `✓ Deleted ${results.length} memory/memories matching: "${query}"`,
119
+ content: `[ok] Deleted ${results.length} memory/memories matching: "${query}"`,
120
120
  }]);
121
121
  return true;
122
122
  }
@@ -132,7 +132,7 @@ async function cmdMemory(ctx) {
132
132
  const memoryList = memories.map((m, i) => `${i + 1}. **${m.name}** — ${m.description}`).join('\n');
133
133
  ctx.setMessages(prev => [...prev, {
134
134
  role: 'assistant',
135
- content: `📝 **Memories** (${memories.length}):\n\n${memoryList}`,
135
+ content: `**Memories** (${memories.length}):\n\n${memoryList}`,
136
136
  }]);
137
137
  return true;
138
138
  }
@@ -157,7 +157,7 @@ async function cmdCompress(ctx) {
157
157
  const systemMsg = ctx.messages.find(m => m.role === 'system');
158
158
  ctx.setMessages([
159
159
  ...(systemMsg ? [systemMsg] : []),
160
- { role: 'assistant', content: `📦 **Context Compressed**\n\nOriginal: ${msgCount} messages (~${(totalLen / 1024).toFixed(1)}KB)\n\n**Summary:**\n${summary}` },
160
+ { role: 'assistant', content: `**Context Compressed**\n\nOriginal: ${msgCount} messages (~${(totalLen / 1024).toFixed(1)}KB)\n\n**Summary:**\n${summary}` },
161
161
  ]);
162
162
  }
163
163
  catch {
@@ -188,7 +188,7 @@ async function cmdCheckpoint(ctx, input) {
188
188
  }
189
189
  ctx.setMessages(prev => [...prev, {
190
190
  role: 'assistant',
191
- content: `✓ Checkpoint created: **${cp.id}**\nFiles: ${cp.files.length > 0 ? cp.files.join(', ') : '(no changes)'}`,
191
+ content: `[ok] Checkpoint created: **${cp.id}**\nFiles: ${cp.files.length > 0 ? cp.files.join(', ') : '(no changes)'}`,
192
192
  }]);
193
193
  return true;
194
194
  }
@@ -206,7 +206,7 @@ async function cmdRestore(ctx, input) {
206
206
  const list = checkpoints.slice(0, 10).map((cp, i) => `${i + 1}. **${cp.id}** — ${cp.message} (${new Date(cp.timestamp).toLocaleString()})`).join('\n');
207
207
  ctx.setMessages(prev => [...prev, {
208
208
  role: 'assistant',
209
- content: `📋 **Checkpoints:**\n${list}\n\nUse \`/restore <id>\` to restore.`,
209
+ content: `**Checkpoints:**\n${list}\n\nUse \`/restore <id>\` to restore.`,
210
210
  }]);
211
211
  return true;
212
212
  }
@@ -216,14 +216,14 @@ async function cmdRestore(ctx, input) {
216
216
  ctx.setMessages(prev => [...prev, {
217
217
  role: 'assistant',
218
218
  content: restoredMessages
219
- ? `✓ Restored checkpoint: ${arg}`
220
- : `✗ Could not restore checkpoint: ${arg}`,
219
+ ? `[ok] Restored checkpoint: ${arg}`
220
+ : `[err] Could not restore checkpoint: ${arg}`,
221
221
  }]);
222
222
  }
223
223
  catch (err) {
224
224
  ctx.setMessages(prev => [...prev, {
225
225
  role: 'assistant',
226
- content: `❌ Restore failed: ${err.message}`,
226
+ content: `[err] Restore failed: ${err.message}`,
227
227
  }]);
228
228
  }
229
229
  ctx.setStatusText('Ready');
@@ -261,13 +261,13 @@ async function cmdMcp(ctx, input) {
261
261
  await server.connect();
262
262
  ctx.setMessages(prev => [...prev, {
263
263
  role: 'assistant',
264
- content: `✓ Connected to MCP server: ${name} (${server.tools.length} tools)`,
264
+ content: `[ok] Connected to MCP server: ${name} (${server.tools.length} tools)`,
265
265
  }]);
266
266
  }
267
267
  catch (err) {
268
268
  ctx.setMessages(prev => [...prev, {
269
269
  role: 'assistant',
270
- content: `❌ MCP connection failed: ${err.message}`,
270
+ content: `[err] MCP connection failed: ${err.message}`,
271
271
  }]);
272
272
  }
273
273
  }
@@ -292,7 +292,7 @@ async function cmdSkills(ctx, input) {
292
292
  }
293
293
  ctx.setMessages(prev => [...prev, {
294
294
  role: 'assistant',
295
- content: `📖 **Skill: ${skill.name}**\n\n${skill.description || ''}`,
295
+ content: `**Skill: ${skill.name}**\n\n${skill.description || ''}`,
296
296
  }]);
297
297
  }
298
298
  else {
@@ -302,7 +302,7 @@ async function cmdSkills(ctx, input) {
302
302
  : skills.map(s => `- **${s.name}**: ${s.description}`).join('\n');
303
303
  ctx.setMessages(prev => [...prev, {
304
304
  role: 'assistant',
305
- content: `📖 **Available Skills**\n\n${list}`,
305
+ content: `**Available Skills**\n\n${list}`,
306
306
  }]);
307
307
  }
308
308
  return true;
@@ -337,13 +337,13 @@ async function cmdReview(ctx, input) {
337
337
  options.autoFix = true;
338
338
  }
339
339
  ctx.setStatusText('Reviewing code...');
340
- ctx.setMessages(prev => [...prev, { role: 'assistant', content: '🔍 Running code review...' }]);
340
+ ctx.setMessages(prev => [...prev, { role: 'assistant', content: 'Running code review...' }]);
341
341
  try {
342
342
  const result = await reviewCode(ctx.config, options);
343
343
  const report = formatReviewReport(result);
344
344
  ctx.setMessages(prev => [...prev, {
345
345
  role: 'assistant',
346
- content: `**Code Review Results**\n\nScore: **${result.score}/100**\nIssues: ${result.issues.length}\nDuration: ${(result.durationMs / 1000).toFixed(1)}s\n\n${report || ' No issues found.'}\n\n${result.summary}`,
346
+ content: `**Code Review Results**\n\nScore: **${result.score}/100**\nIssues: ${result.issues.length}\nDuration: ${(result.durationMs / 1000).toFixed(1)}s\n\n${report || '[ok] No issues found.'}\n\n${result.summary}`,
347
347
  }]);
348
348
  }
349
349
  catch (err) {
@@ -390,8 +390,8 @@ async function cmdSandbox(ctx, input) {
390
390
  ctx.setMessages(prev => [...prev, {
391
391
  role: 'assistant',
392
392
  content: result.exitCode === 0
393
- ? `✅ **Sandbox Result** (${(result.durationMs / 1000).toFixed(1)}s, exit: ${result.exitCode})\n\n${result.stdout.slice(0, 2000)}${result.stderr ? `\n\n**Stderr:**\n${result.stderr.slice(0, 1000)}` : ''}`
394
- : `❌ **Sandbox Error** (exit: ${result.exitCode})\n\n${result.stderr.slice(0, 2000)}`,
393
+ ? `[ok] **Sandbox Result** (${(result.durationMs / 1000).toFixed(1)}s, exit: ${result.exitCode})\n\n${result.stdout.slice(0, 2000)}${result.stderr ? `\n\n**Stderr:**\n${result.stderr.slice(0, 1000)}` : ''}`
394
+ : `[err] **Sandbox Error** (exit: ${result.exitCode})\n\n${result.stderr.slice(0, 2000)}`,
395
395
  }]);
396
396
  }
397
397
  catch (err) {
@@ -417,14 +417,14 @@ async function cmdGit(ctx, input) {
417
417
  ctx.setMessages(prev => [...prev, {
418
418
  role: 'assistant',
419
419
  content: result.success
420
- ? `✓ Committed: \`${msg}\` (${result.hash?.slice(0, 7)})`
421
- : `✗ Commit failed: ${result.error}`,
420
+ ? `[ok] Committed: \`${msg}\` (${result.hash?.slice(0, 7)})`
421
+ : `[err] Commit failed: ${result.error}`,
422
422
  }]);
423
423
  }
424
424
  catch (err) {
425
425
  ctx.setMessages(prev => [...prev, {
426
426
  role: 'assistant',
427
- content: `❌ Commit failed: ${err.message}`,
427
+ content: `[err] Commit failed: ${err.message}`,
428
428
  }]);
429
429
  }
430
430
  ctx.setStatusText('Ready');
@@ -444,14 +444,14 @@ async function cmdGit(ctx, input) {
444
444
  ctx.setMessages(prev => [...prev, {
445
445
  role: 'assistant',
446
446
  content: result.success
447
- ? `🌿 Switched to branch: ${name}`
448
- : `✗ ${result.error}`,
447
+ ? `Switched to branch: ${name}`
448
+ : `[err] ${result.error}`,
449
449
  }]);
450
450
  }
451
451
  catch (err) {
452
452
  ctx.setMessages(prev => [...prev, {
453
453
  role: 'assistant',
454
- content: `❌ Branch failed: ${err.message}`,
454
+ content: `[err] Branch failed: ${err.message}`,
455
455
  }]);
456
456
  }
457
457
  return true;
@@ -467,7 +467,7 @@ async function cmdGit(ctx, input) {
467
467
  catch (err) {
468
468
  ctx.setMessages(prev => [...prev, {
469
469
  role: 'assistant',
470
- content: `❌ Diff failed: ${err.message}`,
470
+ content: `[err] Diff failed: ${err.message}`,
471
471
  }]);
472
472
  }
473
473
  return true;
@@ -484,7 +484,7 @@ async function cmdGit(ctx, input) {
484
484
  catch (err) {
485
485
  ctx.setMessages(prev => [...prev, {
486
486
  role: 'assistant',
487
- content: `❌ Status failed: ${err.message}`,
487
+ content: `[err] Status failed: ${err.message}`,
488
488
  }]);
489
489
  }
490
490
  return true;
@@ -519,7 +519,7 @@ async function cmdLoop(ctx, input) {
519
519
  scheduler.clearAll();
520
520
  ctx.setMessages(prev => [...prev, {
521
521
  role: 'assistant',
522
- content: ' All tasks cleared.',
522
+ content: '[ok] All tasks cleared.',
523
523
  }]);
524
524
  }
525
525
  else if (sub) {
@@ -537,7 +537,7 @@ async function cmdLoop(ctx, input) {
537
537
  const task = scheduler.addTask(prompt, intervalMs);
538
538
  ctx.setMessages(prev => [...prev, {
539
539
  role: 'assistant',
540
- content: `✓ Task scheduled: "${prompt}" every ${intervalStr} (ID: ${task.id})`,
540
+ content: `[ok] Task scheduled: "${prompt}" every ${intervalStr} (ID: ${task.id})`,
541
541
  }]);
542
542
  }
543
543
  else {
@@ -559,7 +559,7 @@ async function cmdStats(ctx) {
559
559
  const cost = metrics ? metrics.estimatedCostUSD(ctx.config.model) : 0;
560
560
  let content = `**Session Statistics:**\n- Messages: ${ctx.messages.length}\n- MCP Tools: ${mcpTools}\n- Skills: ${skills}\n- Subagents: ${agents}\n- Scheduled Tasks: ${tasks}\n- Extensions: ${exts}\n- Theme: ${themeManager.theme.name}\n- Language: ${i18n.getLocale()}\n- Approval Mode: ${ctx.approvalMode}`;
561
561
  if (usage && usage.total > 0) {
562
- content += `\n\n**Token Usage:**\n- Input: ${usage.input.toLocaleString()} tokens\n- Output: ${usage.output.toLocaleString()} tokens\n- Total: ${usage.total.toLocaleString()} tokens\n- Est. Cost: $${cost.toFixed(4)}`;
562
+ content += `\n\n**Token Usage:**\n- Input: ${usage.input.toLocaleString()} tokens\n- Cache hit input: ${usage.cacheHitInput.toLocaleString()} tokens\n- Cache miss input: ${usage.cacheMissInput.toLocaleString()} tokens\n- Output: ${usage.output.toLocaleString()} tokens\n- Reasoning output: ${usage.reasoningOutput.toLocaleString()} tokens\n- Total: ${usage.total.toLocaleString()} tokens\n- Est. Cost: $${cost.toFixed(4)}`;
563
563
  }
564
564
  ctx.setMessages(prev => [...prev, { role: 'assistant', content }]);
565
565
  return true;
@@ -582,11 +582,11 @@ async function cmdTheme(ctx, input) {
582
582
  }
583
583
  const success = themeManager.setTheme(themeName);
584
584
  if (success) {
585
- ctx.addServiceNotice?.(`🎨 Тема изменена: ${themeName}`);
585
+ ctx.addServiceNotice?.(`[theme] Тема изменена: ${themeName}`);
586
586
  ctx.setStatusText(`Тема: ${themeName}`);
587
587
  }
588
588
  else {
589
- ctx.addServiceNotice?.(`❌ Тема "${themeName}" не найдена`);
589
+ ctx.addServiceNotice?.(`[err] Тема "${themeName}" не найдена`);
590
590
  }
591
591
  return true;
592
592
  }
@@ -597,7 +597,7 @@ async function cmdModel(ctx, input) {
597
597
  ctx.onModelPicker();
598
598
  }
599
599
  else {
600
- const list = DEEPSEEK_MODELS.map(m => `- **${m.label}** (\`${m.id}\`): ${m.description}${m.id === ctx.config.model ? ' current' : ''}`).join('\n');
600
+ const list = DEEPSEEK_MODELS.map(m => `- **${m.label}** (\`${m.id}\`): ${m.description}${m.id === ctx.config.model ? ' [current]' : ''}`).join('\n');
601
601
  ctx.setMessages(prev => [...prev, {
602
602
  role: 'assistant',
603
603
  content: `**Available Models:**\n${list}\n\nCurrent: **${ctx.config.model}**\nUse \`/model <id>\` to switch.`,
@@ -611,7 +611,7 @@ async function cmdModel(ctx, input) {
611
611
  const { saveConfig } = await import('../config/loader.js');
612
612
  await saveConfig({ ...ctx.config, model: targetId });
613
613
  const label = found?.label ?? targetId;
614
- ctx.addServiceNotice?.(`🤖 Модель: ${label} (${targetId})`);
614
+ ctx.addServiceNotice?.(`[model] Модель: ${label} (${targetId})`);
615
615
  return true;
616
616
  }
617
617
  async function cmdLang(ctx, input) {
@@ -625,7 +625,7 @@ async function cmdLang(ctx, input) {
625
625
  }
626
626
  i18n.setLocale(code);
627
627
  await saveConfig({ ...ctx.config, language: code });
628
- ctx.addServiceNotice?.(`🌐 Язык изменён: ${code}`);
628
+ ctx.addServiceNotice?.(`[lang] Язык изменён: ${code}`);
629
629
  return true;
630
630
  }
631
631
  async function cmdExtensions(ctx) {
@@ -651,7 +651,7 @@ async function cmdFollowup(ctx) {
651
651
  const suggestions = generateFollowups(lastContent);
652
652
  ctx.setMessages(prev => [...prev, {
653
653
  role: 'assistant',
654
- content: `💡 **Follow-up suggestions:**\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\n')}`,
654
+ content: `**Follow-up suggestions:**\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\n')}`,
655
655
  }]);
656
656
  return true;
657
657
  }
@@ -673,7 +673,7 @@ async function cmdLogs(ctx) {
673
673
  const fileList = files.map((f, i) => `${i + 1}. ${f}`).join('\n');
674
674
  ctx.setMessages(prev => [...prev, {
675
675
  role: 'assistant',
676
- content: `📋 **Recent Logs** (${files.length} files):\n\n${fileList}\n\n**Tail of ${files[0]}:**\n\`\`\`\n${latestLog}\n\`\`\``,
676
+ content: `**Recent Logs** (${files.length} files):\n\n${fileList}\n\n**Tail of ${files[0]}:**\n\`\`\`\n${latestLog}\n\`\`\``,
677
677
  }]);
678
678
  }
679
679
  catch {
@@ -697,7 +697,7 @@ async function cmdTools(ctx) {
697
697
  const modeToolNames = new Set(modeTools.map(t => t.tool.name));
698
698
  const toolLines = allTools.map(def => {
699
699
  const t = def.tool;
700
- const inMode = modeToolNames.has(t.name) ? '' : '';
700
+ const inMode = modeToolNames.has(t.name) ? '[on]' : '[off]';
701
701
  let approvalLabel;
702
702
  if (def.approval === 'never') {
703
703
  approvalLabel = 'read-only';
@@ -716,7 +716,7 @@ async function cmdTools(ctx) {
716
716
  '',
717
717
  `**Текущий режим:** \`${ctx.approvalMode}\``,
718
718
  ...(ctx.approvalMode === 'plan'
719
- ? ['> ⚠️ В PLAN mode доступны только read-only инструменты. Для записи используйте `/setup` и смените режим на default/auto-edit/turbo.']
719
+ ? ['> [warn] В PLAN mode доступны только read-only инструменты. Для записи используйте `/setup` и смените режим на default/auto-edit/turbo.']
720
720
  : []),
721
721
  ].filter(Boolean).join('\n');
722
722
  ctx.setMessages(prev => [...prev, {
@@ -739,7 +739,7 @@ async function cmdBrowserTest(ctx, input) {
739
739
  else {
740
740
  headless = false; // default: headed (видимое окно)
741
741
  }
742
- ctx.setStatusText('🧪 Запуск browser test...');
742
+ ctx.setStatusText('Запуск browser test...');
743
743
  // Сохраняем текущий режим Chrome, чтобы восстановить после теста
744
744
  const prevState = chromeManager.getState();
745
745
  const prevHeadless = prevState.headless;
@@ -753,7 +753,7 @@ async function cmdBrowserTest(ctx, input) {
753
753
  catch (err) {
754
754
  ctx.setMessages(prev => [...prev, {
755
755
  role: 'assistant',
756
- content: `## Browser Test Error\n\n\`\`\`\n${String(err)}\n\`\`\``,
756
+ content: `## Browser Test Error\n\n\`\`\`\n${String(err)}\n\`\`\``,
757
757
  }]);
758
758
  }
759
759
  finally {
@@ -771,21 +771,21 @@ async function cmdBrowserRealTest(ctx, input) {
771
771
  const headless = parts.includes('--headless');
772
772
  const siteArgs = parts.filter(p => !p.startsWith('--'));
773
773
  const sites = siteArgs.length > 0 ? siteArgs : undefined;
774
- ctx.setStatusText('🌐 Real site smoke-test...');
774
+ ctx.setStatusText('Real site smoke-test...');
775
775
  const prevState = chromeManager.getState();
776
776
  try {
777
777
  const report = await browserRealTest({ sites, headless });
778
778
  if (saveReport) {
779
779
  const { writeFile } = await import('node:fs/promises');
780
780
  await writeFile('BROWSER_REAL_TEST_REPORT.md', report, 'utf8');
781
- ctx.addServiceNotice?.('📄 Report saved: BROWSER_REAL_TEST_REPORT.md');
781
+ ctx.addServiceNotice?.('Report saved: BROWSER_REAL_TEST_REPORT.md');
782
782
  }
783
783
  ctx.setMessages(prev => [...prev, { role: 'assistant', content: report }]);
784
784
  }
785
785
  catch (err) {
786
786
  ctx.setMessages(prev => [...prev, {
787
787
  role: 'assistant',
788
- content: `## browser-real-test error\n\`\`\`\n${String(err)}\n\`\`\``,
788
+ content: `## browser-real-test error\n\`\`\`\n${String(err)}\n\`\`\``,
789
789
  }]);
790
790
  }
791
791
  finally {
@@ -805,7 +805,7 @@ async function cmdChrome(ctx, input) {
805
805
  const modeStr = state.connected
806
806
  ? (state.headless ? 'headless (фоновый)' : 'headed (видимое окно)')
807
807
  : 'не запущен';
808
- ctx.addServiceNotice?.(`🌐 Chrome: ${modeStr}${state.connected ? ` | PID: ${state.managedProcessPid ?? '—'} | Порт: ${state.debugPort}` : ''}`);
808
+ ctx.addServiceNotice?.(`Chrome: ${modeStr}${state.connected ? ` | PID: ${state.managedProcessPid ?? '—'} | Порт: ${state.debugPort}` : ''}`);
809
809
  return true;
810
810
  }
811
811
  // Determine desired mode
@@ -817,7 +817,7 @@ async function cmdChrome(ctx, input) {
817
817
  desiredHeadless = false;
818
818
  }
819
819
  else {
820
- ctx.addServiceNotice?.(' /chrome: используйте --headed, --headless или без флага для статуса');
820
+ ctx.addServiceNotice?.('[err] /chrome: используйте --headed, --headless или без флага для статуса');
821
821
  return true;
822
822
  }
823
823
  try {
@@ -827,10 +827,10 @@ async function cmdChrome(ctx, input) {
827
827
  // Save to config
828
828
  ctx.config.chromeHeadless = state.headless;
829
829
  saveConfig({ chromeHeadless: state.headless }).catch(() => { });
830
- ctx.addServiceNotice?.(`🌐 Chrome: ${modeStr} | PID: ${state.managedProcessPid ?? '—'} | Порт: ${state.debugPort}`);
830
+ ctx.addServiceNotice?.(`Chrome: ${modeStr} | PID: ${state.managedProcessPid ?? '—'} | Порт: ${state.debugPort}`);
831
831
  }
832
832
  catch (err) {
833
- ctx.addServiceNotice?.(`❌ Chrome: ${String(err)}`);
833
+ ctx.addServiceNotice?.(`[err] Chrome: ${String(err)}`);
834
834
  }
835
835
  return true;
836
836
  }
@@ -839,12 +839,12 @@ async function cmdLastBrowserTest(ctx) {
839
839
  if (!result) {
840
840
  ctx.setMessages(prev => [...prev, {
841
841
  role: 'assistant',
842
- content: '## 📋 Последний browser test\n\nНет сохранённого отчёта последнего теста. Запустите `/browser-test` сначала.',
842
+ content: '## Последний browser test\n\nНет сохранённого отчёта последнего теста. Запустите `/browser-test` сначала.',
843
843
  }]);
844
844
  return true;
845
845
  }
846
846
  const lines = [
847
- '## 📋 Последний browser test',
847
+ '## Последний browser test',
848
848
  '',
849
849
  `> **Timestamp:** ${result.timestamp}`,
850
850
  '> **Источник:** сохранённый structured result (не LLM-реконструкция)',
@@ -853,7 +853,7 @@ async function cmdLastBrowserTest(ctx) {
853
853
  '|-----|--------|-------------|',
854
854
  ];
855
855
  for (const step of result.steps) {
856
- const icon = step.status === 'passed' ? '' : step.status === 'failed' ? '' : '⏭️';
856
+ const icon = step.status === 'passed' ? '[ok]' : step.status === 'failed' ? '[err]' : '[skip]';
857
857
  const dur = step.durationMs > 0 ? `${step.durationMs}ms` : '—';
858
858
  lines.push(`| ${icon} ${step.name} | ${step.status} | ${dur} |`);
859
859
  }
@@ -878,26 +878,26 @@ async function cmdCapabilities(ctx) {
878
878
  `**Режим:** \`${ctx.approvalMode}\``,
879
879
  '',
880
880
  '### Чтение и поиск',
881
- ...modeReadTools.map(t => ` - \`${t.tool.name}\` — ${t.tool.description}`),
881
+ ...modeReadTools.map(t => ` - [on] \`${t.tool.name}\` — ${t.tool.description}`),
882
882
  ...readTools
883
883
  .filter(t => !modeReadTools.some(mt => mt.tool.name === t.tool.name))
884
- .map(t => ` - \`${t.tool.name}\` — заблокирован в PLAN mode`),
884
+ .map(t => ` - [off] \`${t.tool.name}\` — заблокирован в PLAN mode`),
885
885
  '',
886
886
  '### Запись и исполнение',
887
- ...modeWriteTools.map(t => ` - \`${t.tool.name}\` — ${t.tool.description} (${t.approval === 'auto' ? 'авто-подтверждение' : 'требует подтверждения'})`),
887
+ ...modeWriteTools.map(t => ` - [on] \`${t.tool.name}\` — ${t.tool.description} (${t.approval === 'auto' ? 'авто-подтверждение' : 'требует подтверждения'})`),
888
888
  ...writeTools
889
889
  .filter(t => !modeWriteTools.some(mt => mt.tool.name === t.tool.name))
890
- .map(t => ` - \`${t.tool.name}\` — заблокирован в PLAN mode`),
890
+ .map(t => ` - [off] \`${t.tool.name}\` — заблокирован в PLAN mode`),
891
891
  '',
892
892
  ];
893
893
  if (ctx.approvalMode === 'plan') {
894
- lines.push('> ⚠️ **Вы в PLAN mode.**', '> У меня есть инструменты write_file и edit, но в этом режиме они отключены.', '> Я могу предложить изменения, но не могу применить их напрямую.', '> Используйте `/setup` и выберите другой режим (default, auto-edit, turbo) для включения записи.', '');
894
+ lines.push('> [warn] **Вы в PLAN mode.**', '> У меня есть инструменты write_file и edit, но в этом режиме они отключены.', '> Я могу предложить изменения, но не могу применить их напрямую.', '> Используйте `/setup` и выберите другой режим (default, auto-edit, turbo) для включения записи.', '');
895
895
  }
896
896
  lines.push('### Дополнительно');
897
- lines.push(' - 🌐 **MCP серверы** — подключаемые внешние инструменты');
898
- lines.push(' - 🧩 **Расширения** — плагины, добавляющие функциональность');
899
- lines.push(' - 🧠 **Навыки (Skills)** — предустановленные сценарии работы');
900
- lines.push(' - 🤖 **Под-агенты** — дочерние агенты для параллельных задач');
897
+ lines.push(' - **MCP серверы** — подключаемые внешние инструменты');
898
+ lines.push(' - **Расширения** — плагины, добавляющие функциональность');
899
+ lines.push(' - **Навыки (Skills)** — предустановленные сценарии работы');
900
+ lines.push(' - **Под-агенты** — дочерние агенты для параллельных задач');
901
901
  ctx.setMessages(prev => [...prev, {
902
902
  role: 'assistant',
903
903
  content: lines.join('\n'),