@deepwhale/coding-agent 1.0.11 → 1.0.13

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.
package/dist/repl.js CHANGED
@@ -22,15 +22,18 @@ import { stdin, stdout, stderr } from 'node:process';
22
22
  import { t } from '@deepwhale/core';
23
23
  import { SessionReader, SessionWriter } from '@deepwhale/core';
24
24
  import { APIKeyMissingError, isLLMError, LLMAuthError, LLMNetworkError, LLMRateLimitError, LLMStreamError, LLMUnknownError, } from '@deepwhale/llm';
25
- import { isToolLoopError, loadSession, persistToolLoopSteps, runToolLoop, runToolLoopWithCompaction, appendVerificationEvent, ToolLoopLimitError, } from './agent/index.js';
25
+ import { isToolLoopError, loadSession, persistToolLoopSteps, runToolLoop, runToolLoopWithCompaction, ToolLoopLimitError, } from './agent/index.js';
26
26
  import { CompactionState } from '@deepwhale/core';
27
27
  import { createDefaultRegistry } from './tools/registry.js';
28
28
  import { createDefaultClient } from './llm-factory.js';
29
- import { buildSummaryAndNext, formatReport, runVerify } from './verify/index.js';
30
29
  import { resolveSandboxRunnerFromEnv } from './sandbox/env-gate.js';
31
30
  import { staticToolPolicy } from './policy/static-rules.js';
32
31
  import { createReplConfirm } from './repl/repl-confirm.js'; // D-15: REPL y/N confirm 工厂
33
32
  export { createReplConfirm } from './repl/repl-confirm.js'; // Sprint 1c-revive-2-D-24.2: re-export for tui-ink
33
+ import { createSignalCoordinator } from './repl/repl-signal-coordinator.js'; // D-29.1.1: SIGINT + turn AbortController 抽
34
+ import { appendUsageStatus } from './repl/repl-session.js'; // D-29.1.2: EMA state + usage status 抽
35
+ export { formatUsageStatus, appendUsageStatus } from './repl/repl-session.js'; // D-29.1.2: re-export 保公共 API 1:1
36
+ import { dispatchSlashBuiltin } from './repl/repl-command-router.js'; // D-29.1.3: slash builtin 派发抽 (1ceef94 + D-19.6.1 guard)
34
37
  const VERSION = '0.1.0';
35
38
  /**
36
39
  * 单轮 chat 工具函数:把 user 输入 → LLM chat → 输出 assistant 文本。
@@ -206,7 +209,10 @@ export async function startRepl(options = {}) {
206
209
  clearTimeout(exitTimer);
207
210
  exitTimer = null;
208
211
  }
209
- process.off('SIGINT', onSigint);
212
+ // === Sprint 1c-revive-3-D-29.1.1 (2026-06-07): SIGINT 清理走 coordinator dispose() ===
213
+ // 红线 (D-19.5): off 必须在 rl.close() 之前, 否则 close 派发 'close' event 期间
214
+ // Ctrl+C 还能触达 onSigint 闭包. coordinator.dispose() 内部按此顺序处理, 幂等.
215
+ signalCoordinator.dispose();
210
216
  rl.close();
211
217
  if (writer) {
212
218
  try {
@@ -242,39 +248,19 @@ export async function startRepl(options = {}) {
242
248
  // 没有 in-flight turn 时直接 finish, 不需要兜底.
243
249
  let exitTimer = null;
244
250
  const lineQueue = [];
245
- // === Sprint 1c-revive-3-D-19 (2026-06-05): P2-Ctrl+C 修法 — turn AbortController ===
246
- // 拍板 (D-19): turnAbortController 闭包共享, SIGINT handler 能 abort 它,
247
- // 透传到 runToolLoop executeToolCall policy.confirm signal 参数.
248
- // 注意: plan R-1 实测 terminal:false rl 不自动派发 SIGINT 事件, 必须挂 process.
249
- // 单测用 mock process, 通过 rl.input (PassThrough) 触发不了 SIGINT; 测 Ctrl+C
250
- // 行为走 turnAbortController.abort() 直接调 (见 repl-shared-stdin / tool-loop-policy test).
251
- //
252
- // turn 生命周期: 每次 chat 入口 new 一个新 controller, 旧的引用还在闭包里
253
- // (供 SIGINT handler 用). 拍板 (D-19): AbortController 单次 abort 语义, 一次
254
- // turn SIGINT 之后, 下一个 turn 用新 controller + 重新挂 SIGINT (drain old handler).
255
- let turnAbortController = new AbortController();
256
- const onSigint = () => {
257
- // Ctrl+C: dismiss in-flight confirm first (落 user_denied), 然后 abort turn.
258
- // 拍板 (D-19): 进程不退出, 用户可继续. finish() 仍由 /exit 或 EOF 触发.
259
- if (confirmController.hasPending()) {
260
- confirmController.dismiss();
261
- }
262
- if (!turnAbortController.signal.aborted) {
263
- turnAbortController.abort();
264
- }
265
- };
266
- process.on('SIGINT', onSigint);
251
+ // === Sprint 1c-revive-3-D-29.1.1 (2026-06-07): SIGINT + turn AbortController ===
252
+ // 拍板 (D-29.1.1): signal-coordinator 持有 turnAbortController 闭包 + SIGINT listener
253
+ // 生命周期, repl.ts 通过 getSignal() / refresh() / abortIfActive() / dispose() 4 方法
254
+ // 跟它交互. 行为 1:1 等价 D-19 P1/P2 拍板: dismiss in-flight confirm (落 user_denied
255
+ // 审计), abort turn; 进程不退出, 用户可继续. dispose() 幂等, finish() 入口调
256
+ // (D-19.5 顺序红线: off 必须在 rl.close() 之前, coordinator 内部按此顺序处理).
257
+ const signalCoordinator = createSignalCoordinator({
258
+ confirmController,
259
+ });
267
260
  rl.on('line', async (rawLine) => {
268
261
  const line = rawLine.trim();
269
- // === Sprint 1c-revive-3-D-19 (2026-06-05): P1 修法 串行化 confirm 期间 line 消费 ===
270
- // 拍板 (D-19): rl stdin 唯一消费者. 确认期间收到的 line 必须喂给 confirm
271
- // resolver, 不能入 chat. 修 D-15 P1 (同流双 readline 抢同一行 → y 被当新 chat turn).
272
- // === Sprint 1c-revive-3-D-19.5 (2026-06-05): 补 — confirm 期间 /exit 不入 chat, dismiss 兜底 ===
273
- // 拍板 (D-19.5, user review 2026-06-05 P1): 旧逻辑 confirm 期间 /exit 走到下面
274
- // /exit 分支直接 await finish(0), 但 confirm 还在 pending → finish 里 rl.close
275
- // 后 confirm Promise 永远悬空 (跟 P2-dismiss 同源). 修法: confirm 期间 /exit 先
276
- // dismiss confirm 再标记 pendingExit, finally 兜底 finish. 顺序: dismiss 先
277
- // (让 runToolLoop 走 user_denied 审计), 再标 pendingExit.
262
+ // 拍板 (D-19 + D-19.5): rl stdin 唯一消费者, 确认期间 line confirm resolver.
263
+ // D-19.5 P2-dismiss 修: confirm 期间 /exit dismiss confirm 再 pendingExit, finally 兜底.
278
264
  if (confirmController.hasPending()) {
279
265
  if (line === 'exit' || line === 'quit' || line === '/exit' || line === '/quit') {
280
266
  confirmController.dismiss();
@@ -289,30 +275,10 @@ export async function startRepl(options = {}) {
289
275
  return;
290
276
  }
291
277
  }
292
- // === Sprint 1c-revive-3-D-19.6 (2026-06-05): P2 turn guard deny /exit builtin ===
293
- // === Sprint 1c-revive-3-D-19.6.1 (2026-06-05): line.startsWith('/') 限制, 不拦普通 chat line ===
294
- // 拍板 (D-19.6, user review 2026-06-05 P2): 老逻辑 L373 注释"内建命令全部
295
- // fast-path, 不走 turnInFlight"在 turn 正在跑时仍然跑 builtin, e.g. /verify
296
- // 调 runVerify + 写 verification event, /help 写 out + prompt, /unknown
297
- // 写 out + prompt, 都跟 in-flight chat turn 输出/session 交错, 违背
298
- // "turn running 时下一行不进入 builtin/chat" 的 review 语义.
299
- // === Sprint 1c-revive-3-D-19.6.1 (2026-06-05): Q2 修法 — 加 line.startsWith('/') 限制 ===
300
- // 拍板 (D-19.6.1, user review 2026-06-05 P1.2): D-19.6 守卫条件缺 slash
301
- // 限制, 普通 chat line 也会被 deny, 跟 D-19.5 lineQueue "只排 chat line"
302
- // 红线冲突, 永远到不了 lineQueue. 修法: 加 `line.startsWith('/')` 限制, 只
303
- // deny slash builtin. 普通 chat line 继续走 L408 lineQueue 排队 (D-19.5 拍板
304
- // 不变). 守卫名改成"slash builtin guard"以反映新语义.
305
- //
306
- // 修复: turnInFlight 时, 除 /exit /quit /exit /quit /'' 之外的 **slash builtin**
307
- // (/verify /help /unknown slash) 走 deny, 输出 i18n 提示
308
- // (cli.turn_in_flight_deny) + prompt + return, 不入 lineQueue.
309
- // 选择 deny 而非 defer, 因为 lineQueue 在 D-19.5 已有红线 (L407):
310
- // "lineQueue 只排 chat line", defer 会让 finally drain 还要判 builtin vs chat.
311
- //
312
- // 位置红线: 必须 confirm 守卫 (L341-358) 之后, 内建命令 dispatcher (L373 起始)
313
- // 之前. confirm 期间 /exit 走 dismiss+pendingExit (D-19.5 P1), 不应被本守卫拦.
314
- // /exit /quit /exit /quit 走 fast-path (L378), 也不应被拦. 空行 L374 调
315
- // prompt() 也不应被拦 (空行 ≠ 内建命令).
278
+ // 拍板 (D-19.6.1 + 6afccc8): slash builtin guard. turnInFlight 时除 /exit /quit
279
+ // 之外的 slash builtin (/verify /help /unknown) deny, 不入 lineQueue.
280
+ // lineQueue 只排 chat line (D-19.5 红线), defer 会让 finally drain 还要判
281
+ // builtin vs chat. 位置: confirm 守卫后, 内建 dispatcher 前.
316
282
  if (turnInFlight &&
317
283
  line.startsWith('/') &&
318
284
  line !== '/exit' &&
@@ -335,51 +301,21 @@ export async function startRepl(options = {}) {
335
301
  await finish(0);
336
302
  return;
337
303
  }
338
- if (line === '/help') {
339
- out.write(`${t('cli.builtin_help')}\n`);
340
- prompt();
341
- return;
342
- }
343
- if (line === '/verify') {
344
- // Sprint 1c-revive-2-D-11-4 (2026-06-04): REPL `/verify` 内建命令.
345
- // 跟 CLI `deepwhale --verify` 走同一 runVerify() — 不走 LLM / tool loop.
346
- // 拍板 (D-11-4 review, 2026-06-04): REPL 里 /verify 走**异步** runVerify,
347
- // 跑完打 formatReport 到 out (跟其它内建命令风格一致), 然后**写 verification
348
- // event 到 session JSONL** (因为用户在 REPL 里跑了 verify, session 走 audit
349
- // 轨迹, 跟 CLI 不写 session 形成差异).
350
- // 退出: REPL 不退, 跑完回到 prompt 继续.
351
- try {
352
- const report = await runVerify(options.verifyChecks !== undefined ? { checks: options.verifyChecks } : {});
353
- const filled = buildSummaryAndNext(report);
354
- const text = formatReport({
355
- ...report,
356
- summary: filled.summary,
357
- nextSuggestedAction: filled.nextSuggestedAction,
358
- });
359
- out.write(`${text}\n`);
360
- if (writer) {
361
- // 写 verification event 到 session (跟 CLI 不同: REPL 用户有 session, 应该审计)
362
- const failedCount = report.checks.filter((c) => c.status !== 'passed').length;
363
- await appendVerificationEvent(writer, {
364
- status: report.overallStatus,
365
- durationMs: report.durationMs,
366
- commandCount: report.checks.length,
367
- failedCount,
368
- summary: filled.summary,
369
- });
370
- }
371
- }
372
- catch (e) {
373
- err.write(`error: verify failed to start: ${e instanceof Error ? e.message : String(e)}\n\n`);
374
- }
375
- prompt();
376
- return;
377
- }
378
- if (line.startsWith('/')) {
379
- out.write(`${t('cli.builtin_unknown', line)}\n`);
380
- prompt();
304
+ // === Sprint 1c-revive-3-D-29.1.3 (2026-06-07): slash builtin 派发抽到 dispatchSlashBuiltin ===
305
+ // 拍板 (D-29.1.3): router 派发顺序保 1:1 (跟原 L434-481): /help → /verify → /unknown slash.
306
+ // 5 红线 0 改: turnInFlight guard (D-19.6.1 + 6afccc8) 仍在本函数 L409-418,
307
+ // /verify try/finally (1ceef94) 走 router 内部 try/catch 等价.
308
+ // confirm 期间 /exit dismiss (D-19.5 P2-dismiss) 仍在本函数 L370-373.
309
+ // /exit fast-path (D-19.5 P1) 走 L412 exclude, 不入 router.
310
+ const slashCtx = {
311
+ out,
312
+ err,
313
+ writer,
314
+ verifyChecks: options.verifyChecks,
315
+ prompt,
316
+ };
317
+ if ((await dispatchSlashBuiltin(line, slashCtx)).handled)
381
318
  return;
382
- }
383
319
  // === Sprint 1c-revive-3-D-19.5 (2026-06-05): P1 turn guard — 排队 turnInFlight 期间 line ===
384
320
  // 拍板 (D-19.5, user review 2026-06-05 P1): 旧逻辑紧跟 chat turn 的下一行 (紧贴
385
321
  // y\n 或 turn 还没跑完时 stdin 排队的行) 立刻进 chat 分支, 用旧 workingMessages
@@ -392,14 +328,9 @@ export async function startRepl(options = {}) {
392
328
  return;
393
329
  }
394
330
  turnInFlight = true;
395
- // chat — Sprint 1c-revive-2-D-11-4 review P1 修复: client lazy 化后, chat
396
- // 路径首次调 tryCreateClient() 真创. 创失败 (无 key) i18n stderr 提示 + 跳
397
- // 过本次 turn (不退出 REPL, 用户可继续 /verify 或 /exit).
398
- // Sprint 1c-revive-3-D-19 (2026-06-05): 续命 turnAbortController. 上一个 turn 已被
399
- // SIGINT abort, 复用同一个 controller 第二次 abort 无效, new 一个新的. onSigint
400
- // 闭包持有的是变量名 (let), 新 controller 一被赋值, 下次 SIGINT 自动 abort 新的,
401
- // 不需要重建 handler. 红线: 不要 add 多份 SIGINT listener 重复触发.
402
- turnAbortController = new AbortController();
331
+ // chat — client lazy 化 (D-11-4), refresh AbortController signalCoordinator (D-29.1.1).
332
+ // 红线: 不要 add 多份 SIGINT listener (coordinator 内部 process.on 一次).
333
+ signalCoordinator.refresh();
403
334
  const c = clientFromOptions ? { client: clientFromOptions, error: null } : tryCreateClient();
404
335
  if (c.client === null) {
405
336
  err.write(`${t('error.api_key_missing')}\n\n`);
@@ -410,11 +341,11 @@ export async function startRepl(options = {}) {
410
341
  const liveClient = c.client;
411
342
  try {
412
343
  if (enableToolLoop) {
413
- await runAgentTurn(liveClient, line, workingMessages, writer, out, err, turnAbortController.signal, compactionConfig, sandboxRunner, policyYes, replPolicy, // D-15: 注入 y/N confirm; 默认 staticToolPolicy 向后兼容
344
+ await runAgentTurn(liveClient, line, workingMessages, writer, out, err, signalCoordinator.getSignal(), compactionConfig, sandboxRunner, policyYes, replPolicy, // D-15: 注入 y/N confirm; 默认 staticToolPolicy 向后兼容
414
345
  emaState);
415
346
  }
416
347
  else {
417
- const turn = await runOneTurn(liveClient, line, [], { signal: turnAbortController.signal });
348
+ const turn = await runOneTurn(liveClient, line, [], { signal: signalCoordinator.getSignal() });
418
349
  if (turn.kind === 'error') {
419
350
  err.write(`${turn.error}\n\n`);
420
351
  }
@@ -424,11 +355,9 @@ export async function startRepl(options = {}) {
424
355
  }
425
356
  }
426
357
  finally {
427
- // === Sprint 1c-revive-3-D-19.5 (2026-06-05): drain lineQueue / pendingExit ===
428
- // 拍板 (D-19.5): turn 跑完 1) pendingExit=true finish (丢弃排队);
429
- // 2) 否则 drain 下一条 line (setImmediate 避免同步递归爆栈);
430
- // 3) 都 false → prompt 继续. 顺序: pendingExit 优先, 不然用户 /exit 后还跑排队行.
431
- // 红线: finally 不能 return (no-unsafe-finally), 用 if/else if/else 链.
358
+ // 拍板 (D-19.5): pendingExit 优先 (finish, 丢弃排队) → drain 下一条
359
+ // (setImmediate 防同步递归爆栈) → prompt 继续. finally 不能 return
360
+ // (no-unsafe-finally), if/else if/else 链.
432
361
  turnInFlight = false;
433
362
  if (pendingExit) {
434
363
  pendingExit = false;
@@ -444,28 +373,14 @@ export async function startRepl(options = {}) {
444
373
  }
445
374
  });
446
375
  rl.on('close', () => {
447
- // stdin EOF(管道/Ctrl-D)→ 优雅退出
448
- // === Sprint 1c-revive-3-D-19.5 (2026-06-05): P2-dismiss 修法 close 期间清理 pending confirm + abort turn ===
449
- // 拍板 (D-19.5, user review 2026-06-05 P2): 旧逻辑只调 finish(0), 忽略两种悬空:
450
- // 1) confirm 还在 pending → policy.confirm() Promise 永远不 resolve, turn 不会
451
- // 走 finally, session 不会落 user_denied 审计.
452
- // 2) turn 还在跑 → LLM stream / tool exec 还在 await, 进程表面已关但内部链未断.
453
- // 修法: close 时先 dismiss pending confirm (resolve null → tool 走 user_denied 落审计),
454
- // 再 abort turnAbortController 让 runAgentTurn 走 finally 收束. 顺序: dismiss 先于
455
- // abort, 因为 confirm resolve 后 runToolLoop 才检查 signal, 调换会丢 audit 路径.
456
- // === Sprint 1c-revive-3-D-19.6 (2026-06-05): P1 close-during-turn 收束 — 不再直接 finish() ===
457
- // 拍板 (D-19.6, user review 2026-06-05 P1): dismiss + abort 之后, 老 finish() 立即
458
- // 关 writer, 后续 turn 内部 writer.append (user_denied / 其它 audit event) 撞
459
- // 'file closed' (stderr "Unexpected error: Error: file closed").
460
- // 修复: 设 pendingExit=true 让 finally 块 (L490 附近) 兜底调 finish. 如果 in-flight
461
- // turn 30s 内没 finally, exitTimer 触发 stderr warning (i18n) + 强制 finish.
462
- // 红线: dismiss 先于 abort (D-19.5 P2-dismiss); finally 块 if/else if/else 链
463
- // pendingExit 优先 (D-19.5 P1); exitTimer 仅 turnInFlight 时启动 (Q3=b).
376
+ // stdin EOF (管道/Ctrl-D) → 优雅退出.
377
+ // 红线 (D-19.5 P2-dismiss + D-19.6 P1): dismiss 先于 abort (audit 顺序),
378
+ // pendingExit finally 兜底 finish, exitTimer 30s 兜底卡死 turn.
464
379
  if (confirmController.hasPending()) {
465
380
  confirmController.dismiss();
466
381
  }
467
- if (turnInFlight && !turnAbortController.signal.aborted) {
468
- turnAbortController.abort();
382
+ if (turnInFlight && !signalCoordinator.getSignal().aborted) {
383
+ signalCoordinator.abortIfActive();
469
384
  }
470
385
  pendingExit = true;
471
386
  if (turnInFlight) {
@@ -518,7 +433,7 @@ yes,
518
433
  // staticToolPolicy 走 baseline). undefined = 默认 staticToolPolicy (向后兼容).
519
434
  policy,
520
435
  // Sprint 1c-revive-2-D-21.1 (2026-06-06, 修 cache 96%↔85% 跳变 footer 焦虑):
521
- // EMA state 透传 (闭包持有). 旧 caller 不传 = 默认 EMPTY_EMA, 行为兼容
436
+ // EMA state 透传 (闭包持有). 旧 caller 不传 = 默认 { sampleCount: 0 }, 行为兼容
522
437
  // (不显示 avg 段). REPL 路径必传, 跨 turn 累积.
523
438
  emaState) {
524
439
  // 1) 持久化 user 输入
@@ -628,7 +543,9 @@ emaState) {
628
543
  // Sprint 1c-revive-2-D-21.1 (2026-06-06, 修 cache 96%↔85% 跳变 footer 焦虑):
629
544
  // 加 EMA 滚动平均 5-turn 平滑, 显示 "cache: 90% (avg 85%)". per-turn 数字
630
545
  // 仍是真实值, avg 是过去 5 turn 平滑趋势. user 不会被单 turn 抖动骗.
631
- appendUsageStatus(result.final.usage, err, emaState ?? EMPTY_EMA);
546
+ // === Sprint 1c-revive-3-D-29.1.2 (2026-06-07): EMPTY_EMA 内联, repl-session.ts 内私有 ===
547
+ // 行为 1:1: 旧 EMPTY_EMA = { sampleCount: 0 }, 旧 caller 兜底 = 内联值保持.
548
+ appendUsageStatus(result.final.usage, err, emaState ?? { sampleCount: 0 });
632
549
  }
633
550
  function appendStepSummary(step, out, err) {
634
551
  if (step.kind === 'tool') {
@@ -640,81 +557,10 @@ function appendStepSummary(step, out, err) {
640
557
  }
641
558
  // 'assistant' / 'limit' / 'error' 的 summary 留 Sprint 1b(不污染 Sprint 1a 验收面)
642
559
  }
643
- const EMPTY_EMA = { sampleCount: 0 };
644
- export function formatUsageStatus(usage, emaState = EMPTY_EMA) {
645
- if (usage === undefined)
646
- return null;
647
- const { prompt_tokens, completion_tokens } = usage;
648
- // 无 cached_tokens: 简版
649
- if (usage.cached_tokens === undefined) {
650
- return `usage: ${formatTokens(prompt_tokens)} prompt / ${formatTokens(completion_tokens)} completion`;
651
- }
652
- // 满 usage: 完整 status
653
- const hitRatePct = ((usage.cache_hit_rate ?? 0) * 100).toFixed(0);
654
- const uncached = formatTokens(usage.tokens_uncached ?? prompt_tokens);
655
- // Sprint 1c-revive-2-D-21.1: EMA 平滑尾部段. sampleCount >= 3 才显示 avg
656
- // (样本太少趋势不稳). 不更新 caller state, 只读 (state update 在
657
- // appendUsageStatus, 这是纯函数好测).
658
- const avgSegment = emaState.sampleCount >= 3 && emaState.hitRateEMA !== undefined
659
- ? ` (avg ${(emaState.hitRateEMA * 100).toFixed(0)}%)`
660
- : '';
661
- // Sprint 1b.5 Step 2.5 (F5 拍板, review 2026-06-03 找到): cost_turn/cost_currency 都 absent
662
- // (R7 中间路径 / F4 保守) → 安静少显示字段, **不**显示 'cost ?'. 跟 1b 拍板 "absent 安静"
663
- // 一致. user 视角看 'cost ?/turn' 是 'UI 不知道' 不是 '这次没算', 显示 '?' 反而误导.
664
- if (usage.cost_turn === undefined || usage.cost_currency === undefined) {
665
- return `cache: ${hitRatePct}%${avgSegment} | prompt ${formatTokens(prompt_tokens)} (${uncached} new)`;
666
- }
667
- // cost 字段齐: 读 cost_currency 决 symbol
668
- const symbol = formatCostSymbol(usage.cost_currency);
669
- const cost = usage.cost_turn; // narrowed by 上面 if guard (cost_turn !== undefined)
670
- const costStr = cost < 0.01 ? `${symbol}${cost.toFixed(4)}` : `${symbol}${cost.toFixed(3)}`;
671
- return `cache: ${hitRatePct}%${avgSegment} | ${costStr}/turn | prompt ${formatTokens(prompt_tokens)} (${uncached} new)`;
672
- }
673
- /** cost_currency → 显示 symbol. 不在 UI 层做汇率换算. */
674
- function formatCostSymbol(currency) {
675
- switch (currency) {
676
- case 'CNY':
677
- return '¥';
678
- case 'USD':
679
- return '$';
680
- case undefined:
681
- return '?';
682
- }
683
- }
684
- function formatTokens(n) {
685
- if (n >= 1000)
686
- return `${(n / 1000).toFixed(1)}k`;
687
- return String(n);
688
- }
689
- /**
690
- * Sprint 1c-revive-2-D-21.1 (2026-06-06): emaState 接受 mutable 引用 (闭包),
691
- * 在 sampleCount < 5 用 cold-start EMA (直接赋值), 之后 α=0.5 平滑:
692
- * newEMA = α * current + (1 - α) * oldEMA = 0.5 * current + 0.5 * oldEMA
693
- * α=0.5 是 "等权平滑" (5-turn 半衰期 ≈ 1 turn, 快速响应 + 适度平滑).
694
- * 数学: sampleCount=5 时, 5 turn 前的数据权重 = 0.5^5 = 3.1% (基本忘掉),
695
- * 跟 5-turn rolling window 趋势一致, 但 EMA 实现更轻.
696
- *
697
- * export 出来供单测 (test/unit/usage-ema.test.ts) 验证 state machine.
698
- * 之前是 local function, D-21.1 改成 export — 单测需要直接调它验 in-place update.
699
- */
700
- export function appendUsageStatus(usage, err, emaState) {
701
- // 同步更新 EMA state (in-place). 调 formatUsageStatus 之前先 update,
702
- // 防止 "刚 sample 1 个, display 当 turn 仍显示 sample 0 的 ema".
703
- if (usage !== undefined && usage.cached_tokens !== undefined) {
704
- const current = usage.cache_hit_rate ?? 0;
705
- if (emaState.hitRateEMA === undefined) {
706
- emaState.hitRateEMA = current;
707
- }
708
- else {
709
- emaState.hitRateEMA = 0.5 * current + 0.5 * emaState.hitRateEMA;
710
- }
711
- emaState.sampleCount += 1;
712
- }
713
- const line = formatUsageStatus(usage, emaState);
714
- if (line !== null) {
715
- err.write(` ${line}\n`);
716
- }
717
- }
560
+ // === Sprint 1c-revive-3-D-29.1.2 (2026-06-07): UsageEmaState / formatUsageStatus / appendUsageStatus 抽到 repl-session.ts ===
561
+ // 公共 API re-export L58-59 ( signal-coordinator re-export 形态对齐). 1:1 行为保:
562
+ // formatUsageStatus 输出字符串逐字保持, appendUsageStatus in-place update 顺序 (update ema
563
+ // format → write) 保持. EMPTY_EMA 在 repl-session.ts 内私有, 旧 caller 兜底 = 内联 { sampleCount: 0 }.
718
564
  function formatError(e) {
719
565
  if (e instanceof APIKeyMissingError)
720
566
  return t('error.api_key_missing');
package/dist/repl.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}