@deepwhale/coding-agent 1.0.10 → 1.0.12

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 (151) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +1 -1
  3. package/dist/agent/agent-compaction.d.ts +0 -74
  4. package/dist/agent/agent-compaction.d.ts.map +0 -1
  5. package/dist/agent/agent-compaction.js +0 -145
  6. package/dist/agent/agent-compaction.js.map +0 -1
  7. package/dist/agent/index.d.ts +0 -16
  8. package/dist/agent/index.d.ts.map +0 -1
  9. package/dist/agent/index.js +0 -17
  10. package/dist/agent/index.js.map +0 -1
  11. package/dist/agent/session-adapter.d.ts +0 -177
  12. package/dist/agent/session-adapter.d.ts.map +0 -1
  13. package/dist/agent/session-adapter.js +0 -365
  14. package/dist/agent/session-adapter.js.map +0 -1
  15. package/dist/agent/tool-loop.d.ts +0 -123
  16. package/dist/agent/tool-loop.d.ts.map +0 -1
  17. package/dist/agent/tool-loop.js +0 -436
  18. package/dist/agent/tool-loop.js.map +0 -1
  19. package/dist/env/load-project-env.d.ts +0 -40
  20. package/dist/env/load-project-env.d.ts.map +0 -1
  21. package/dist/env/load-project-env.js +0 -80
  22. package/dist/env/load-project-env.js.map +0 -1
  23. package/dist/index.d.ts +0 -31
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js +0 -30
  26. package/dist/index.js.map +0 -1
  27. package/dist/llm-factory.d.ts +0 -50
  28. package/dist/llm-factory.d.ts.map +0 -1
  29. package/dist/llm-factory.js +0 -110
  30. package/dist/llm-factory.js.map +0 -1
  31. package/dist/modes/index.d.ts +0 -14
  32. package/dist/modes/index.d.ts.map +0 -1
  33. package/dist/modes/index.js +0 -14
  34. package/dist/modes/index.js.map +0 -1
  35. package/dist/modes/print.d.ts +0 -50
  36. package/dist/modes/print.d.ts.map +0 -1
  37. package/dist/modes/print.js +0 -236
  38. package/dist/modes/print.js.map +0 -1
  39. package/dist/modes/rpc.d.ts +0 -52
  40. package/dist/modes/rpc.d.ts.map +0 -1
  41. package/dist/modes/rpc.js +0 -316
  42. package/dist/modes/rpc.js.map +0 -1
  43. package/dist/modes/tui.d.ts +0 -112
  44. package/dist/modes/tui.d.ts.map +0 -1
  45. package/dist/modes/tui.js +0 -733
  46. package/dist/modes/tui.js.map +0 -1
  47. package/dist/policy/args-digest.d.ts +0 -13
  48. package/dist/policy/args-digest.d.ts.map +0 -1
  49. package/dist/policy/args-digest.js +0 -29
  50. package/dist/policy/args-digest.js.map +0 -1
  51. package/dist/policy/chain.d.ts +0 -19
  52. package/dist/policy/chain.d.ts.map +0 -1
  53. package/dist/policy/chain.js +0 -24
  54. package/dist/policy/chain.js.map +0 -1
  55. package/dist/policy/index.d.ts +0 -17
  56. package/dist/policy/index.d.ts.map +0 -1
  57. package/dist/policy/index.js +0 -16
  58. package/dist/policy/index.js.map +0 -1
  59. package/dist/policy/sanitize-reason.d.ts +0 -11
  60. package/dist/policy/sanitize-reason.d.ts.map +0 -1
  61. package/dist/policy/sanitize-reason.js +0 -24
  62. package/dist/policy/sanitize-reason.js.map +0 -1
  63. package/dist/policy/static-rules.d.ts +0 -32
  64. package/dist/policy/static-rules.d.ts.map +0 -1
  65. package/dist/policy/static-rules.js +0 -106
  66. package/dist/policy/static-rules.js.map +0 -1
  67. package/dist/policy/types.d.ts +0 -56
  68. package/dist/policy/types.d.ts.map +0 -1
  69. package/dist/policy/types.js +0 -13
  70. package/dist/policy/types.js.map +0 -1
  71. package/dist/repl/repl-confirm.d.ts +0 -49
  72. package/dist/repl/repl-confirm.d.ts.map +0 -1
  73. package/dist/repl/repl-confirm.js +0 -88
  74. package/dist/repl/repl-confirm.js.map +0 -1
  75. package/dist/repl.d.ts +0 -154
  76. package/dist/repl.d.ts.map +0 -1
  77. package/dist/repl.js +0 -780
  78. package/dist/repl.js.map +0 -1
  79. package/dist/sandbox/docker-runner.d.ts +0 -147
  80. package/dist/sandbox/docker-runner.d.ts.map +0 -1
  81. package/dist/sandbox/docker-runner.js +0 -426
  82. package/dist/sandbox/docker-runner.js.map +0 -1
  83. package/dist/sandbox/env-gate.d.ts +0 -28
  84. package/dist/sandbox/env-gate.d.ts.map +0 -1
  85. package/dist/sandbox/env-gate.js +0 -65
  86. package/dist/sandbox/env-gate.js.map +0 -1
  87. package/dist/sandbox/local-runner.d.ts +0 -29
  88. package/dist/sandbox/local-runner.d.ts.map +0 -1
  89. package/dist/sandbox/local-runner.js +0 -79
  90. package/dist/sandbox/local-runner.js.map +0 -1
  91. package/dist/sandbox/types.d.ts +0 -80
  92. package/dist/sandbox/types.d.ts.map +0 -1
  93. package/dist/sandbox/types.js +0 -25
  94. package/dist/sandbox/types.js.map +0 -1
  95. package/dist/tools/bash.d.ts +0 -35
  96. package/dist/tools/bash.d.ts.map +0 -1
  97. package/dist/tools/bash.js +0 -233
  98. package/dist/tools/bash.js.map +0 -1
  99. package/dist/tools/edit-file.d.ts +0 -22
  100. package/dist/tools/edit-file.d.ts.map +0 -1
  101. package/dist/tools/edit-file.js +0 -79
  102. package/dist/tools/edit-file.js.map +0 -1
  103. package/dist/tools/find.d.ts +0 -21
  104. package/dist/tools/find.d.ts.map +0 -1
  105. package/dist/tools/find.js +0 -168
  106. package/dist/tools/find.js.map +0 -1
  107. package/dist/tools/grep.d.ts +0 -19
  108. package/dist/tools/grep.d.ts.map +0 -1
  109. package/dist/tools/grep.js +0 -170
  110. package/dist/tools/grep.js.map +0 -1
  111. package/dist/tools/index.d.ts +0 -10
  112. package/dist/tools/index.d.ts.map +0 -1
  113. package/dist/tools/index.js +0 -10
  114. package/dist/tools/index.js.map +0 -1
  115. package/dist/tools/read-file.d.ts +0 -18
  116. package/dist/tools/read-file.d.ts.map +0 -1
  117. package/dist/tools/read-file.js +0 -52
  118. package/dist/tools/read-file.js.map +0 -1
  119. package/dist/tools/registry.d.ts +0 -39
  120. package/dist/tools/registry.d.ts.map +0 -1
  121. package/dist/tools/registry.js +0 -67
  122. package/dist/tools/registry.js.map +0 -1
  123. package/dist/tools/write-file.d.ts +0 -18
  124. package/dist/tools/write-file.d.ts.map +0 -1
  125. package/dist/tools/write-file.js +0 -47
  126. package/dist/tools/write-file.js.map +0 -1
  127. package/dist/tui-ink-bundle.js +0 -38587
  128. package/dist/types.d.ts +0 -89
  129. package/dist/types.d.ts.map +0 -1
  130. package/dist/types.js +0 -5
  131. package/dist/types.js.map +0 -1
  132. package/dist/util/index.d.ts +0 -16
  133. package/dist/util/index.d.ts.map +0 -1
  134. package/dist/util/index.js +0 -16
  135. package/dist/util/index.js.map +0 -1
  136. package/dist/util/tui-history.d.ts +0 -37
  137. package/dist/util/tui-history.d.ts.map +0 -1
  138. package/dist/util/tui-history.js +0 -93
  139. package/dist/util/tui-history.js.map +0 -1
  140. package/dist/verify/format-report.d.ts +0 -57
  141. package/dist/verify/format-report.d.ts.map +0 -1
  142. package/dist/verify/format-report.js +0 -128
  143. package/dist/verify/format-report.js.map +0 -1
  144. package/dist/verify/index.d.ts +0 -8
  145. package/dist/verify/index.d.ts.map +0 -1
  146. package/dist/verify/index.js +0 -8
  147. package/dist/verify/index.js.map +0 -1
  148. package/dist/verify/verify-runner.d.ts +0 -186
  149. package/dist/verify/verify-runner.d.ts.map +0 -1
  150. package/dist/verify/verify-runner.js +0 -707
  151. package/dist/verify/verify-runner.js.map +0 -1
package/dist/repl.d.ts DELETED
@@ -1,154 +0,0 @@
1
- /**
2
- * deepwhale REPL — Sprint 1a 接入 tool loop + session
3
- *
4
- * Sprint 0.3 范围:单轮 chat + 内建命令。
5
- * Sprint 1a 扩展:
6
- * - 接 Session JSONL:启动时 load(可选路径),退出时 close(flush)
7
- * - 接 runToolLoop:每轮 user → tool loop → 持久化 steps
8
- * - 流式:onChunk 实时打印 final.content(assistant 增量)
9
- * - 命令:保留 /help / /exit / exit / quit
10
- *
11
- * Sprint 1a 简化:
12
- * - 不做 plan mode、recovery、自动压缩
13
- * - 不做 multi-session 切换
14
- * - 错误用 i18n + 不污染 messages
15
- *
16
- * 文件职责:
17
- * - runOneTurn: 仍保留为低层单轮 API(不持久化,无 tool loop)
18
- * - startRepl: 接 tool loop + session 的入口
19
- */
20
- import { SessionWriter } from '@deepwhale/core';
21
- import { ChatMessage, LLMClient, type Usage } from '@deepwhale/llm';
22
- import { type AgentCompactionConfig } from './agent/index.js';
23
- import { type Provider } from './llm-factory.js';
24
- export { createReplConfirm } from './repl/repl-confirm.js';
25
- import type { ToolPolicy } from './policy/types.js';
26
- import type { SandboxRunner } from './sandbox/types.js';
27
- export interface ReplOptions {
28
- /** 注入 LLM 客户端(默认 createDefaultClient env 推断, Sprint 1b.5 Step 2 C3 拍板)。单测用。 */
29
- client?: LLMClient;
30
- /**
31
- * Sprint 1c-revive-3-D-13 (2026-06-05): --yes 标志.
32
- * yes=true bypass require_confirmation (write_file / edit_file / 危险 bash),
33
- * 不 bypass deny. 拍板: REPL = 交互模式 (isInteractive=true), policy=staticToolPolicy.
34
- */
35
- yes?: boolean;
36
- /**
37
- * Sprint 1b.5 Step 2 (2.5 拍板, C3 拍板 2026-06-03): 显式 provider. 跟 env 推断冲突时优先.
38
- * 跟 options.client 互斥 — 传 client 时 provider 忽略 (单测路径).
39
- */
40
- provider?: Provider;
41
- /** Sprint 1b.5 Step 2: 显式 model. 不传则用 provider 默认 (deepseek → deepseek-v4-flash, anthropic → claude-sonnet-4-5). */
42
- model?: string;
43
- /** 注入输入流(默认 stdin)。单测用。 */
44
- input?: NodeJS.ReadableStream;
45
- /** 注入输出流(默认 stdout)。单测用。 */
46
- output?: NodeJS.WritableStream;
47
- /** 注入错误流(默认 stderr)。单测用。 */
48
- errorOutput?: NodeJS.WritableStream;
49
- /** 注入退出函数(默认 process.exit)。单测用。 */
50
- exit?: (code?: number) => never;
51
- /**
52
- * Session JSONL 路径。提供则启动时 load + 退出时 append + close。
53
- * 不提供则不持久化(Sprint 0.3 行为)。
54
- */
55
- sessionPath?: string;
56
- /** 是否启用 tool loop(默认 true)。false = 退化为 Sprint 0.3 单轮 chat。 */
57
- enableToolLoop?: boolean;
58
- /**
59
- * Session compaction 集成 (Sprint 1c-revive-2-D-6, review P1 修复 2026-06-04).
60
- *
61
- * 传 = 走 runToolLoopWithCompaction, turn 入口测 token 触发则 compact + 写
62
- * 'compaction' event 到 SessionWriter. 不传 = 走裸 runToolLoop (向后兼容,
63
- * 现有 baseline 244 测试不变).
64
- *
65
- * 拍板: 提供 AgentCompactionConfig 即可, CompactionState 内部持有 (startRepl
66
- * 闭包). writer 字段 REPL 自动注入 (跟 startRepl 内部 sessionPath writer
67
- * 同 instance, 让 compaction 事件写到同一 JSONL).
68
- *
69
- * 拍板 contextWindow=0 = 关闭 (跟 core compact() 行为契约一致). 默认
70
- * (不传此参数) = 不接 compaction.
71
- */
72
- compactionConfig?: Omit<AgentCompactionConfig, 'writer' | 'state'> | null;
73
- /**
74
- * Sprint 1c-revive-2-D-11-4 (2026-06-04): verify 自定义 check.
75
- * 不传 = 走 runVerify() 默认 4 步 (corepack pnpm build/lint/typecheck/test).
76
- * 单测用: 传 4 个简单 pass check, 避免 30-60s 真跑 build.
77
- */
78
- verifyChecks?: import('./verify/index.js').VerifyCheck[];
79
- }
80
- /**
81
- * 单轮 chat 工具函数:把 user 输入 → LLM chat → 输出 assistant 文本。
82
- * 不修改 messages;不调工具;不持久化。
83
- *
84
- * Sprint 1a 保留作为低层 API。Sprint 1a 之后 REPL 入口推荐用 startRepl +
85
- * enableToolLoop=true 走完整 agent loop。
86
- */
87
- export declare function runOneTurn(client: LLMClient, line: string, messages: ChatMessage[], options?: {
88
- signal?: AbortSignal;
89
- }): Promise<{
90
- kind: 'chat';
91
- assistant: string;
92
- } | {
93
- kind: 'error';
94
- error: string;
95
- } | {
96
- kind: 'empty';
97
- }>;
98
- /**
99
- * 启动 REPL。返回 Promise,resolve 时为退出码。
100
- */
101
- export declare function startRepl(options?: ReplOptions): Promise<number>;
102
- /**
103
- * 跑一轮 agent turn:append user → runToolLoop → 持久化 → 打印 final content。
104
- *
105
- * workingMessages 由 caller 持有(startRepl 闭包),turn 跑完后 caller 用新 messages 覆盖。
106
- *
107
- * Sprint 1a 修 P1:user 必须进 LLM。Sprint 1a 修 P2-A:流式不再重复打印 final content。
108
- * Sprint 1c-revive-2-D-6 (review P1 修复, 2026-06-04): 可选 compactionConfig — 传
109
- * 时调 runToolLoopWithCompaction (入口测 token, 触发则 compact + 写 event),
110
- * 不传 = 走裸 runToolLoop (向后兼容, 单测 baseline 244 不变). summaryFn 内部
111
- * 用 client + 固定 prompt 模板生成, 跟 test 1c-revive-2-D-5 cluster 拍板一致.
112
- * 单测通过 export 暴露,直接注入 mock LLMClient + WritableStream 验证行为。
113
- */
114
- export declare function runAgentTurn(client: LLMClient, userInput: string, workingMessages: ChatMessage[], writer: SessionWriter | null, out: NodeJS.WritableStream, err: NodeJS.WritableStream, signal: AbortSignal, compactionConfig?: AgentCompactionConfig | null, sandboxRunner?: SandboxRunner, yes?: boolean, policy?: ToolPolicy, emaState?: UsageEmaState): Promise<void>;
115
- /**
116
- * Sprint 1b: 把 usage 翻译成人类可读的一行 status, 写到 stderr (不污染 stdout 流式输出)。
117
- *
118
- * 显示规则 (Hermes footer 教训应用 — 多字段同值时去冗余):
119
- * - 满 usage (有 cached_tokens) → 完整 4 字段: cache: 90% | ¥0.05/turn | prompt 1.2k (1.1k cached)
120
- * - 无 cached_tokens → 简化为: usage: 1.2k prompt / 200 completion
121
- * (不打 cache% / cost, 避免没数据时显示 0% 误导)
122
- * - 无 usage → 完全不打印 (LLM 没返 usage 时不污染 stderr)
123
- *
124
- * Sprint 1c 抽 pricing 到 config.toml, 此函数签名不变。
125
- *
126
- * Sprint 1c-revive-2-D-21.1 (2026-06-06, 修 cache 96%↔85% 跳变 footer 焦虑):
127
- * 增 emaState 形参. 形参 hitRateEMA 是过去 5-turn 滚动平均 (α=0.5 平滑).
128
- * 输出: `cache: 90% (avg 85%)` — per-turn 数字 + 趋势均值并列. user 视角:
129
- * 1) 知道当 turn 真值, 2) 知道趋势 (avg 不会跟着单 turn 抖动).
130
- * 边界:
131
- * - sampleCount < 3: 不显示 (avg) 段 (样本太少, 趋势没意义, 不污染)
132
- * - sampleCount >= 3: 显示 (avg NN%)
133
- * - ema 永远存在 (闭包外, startRepl 持有), 跨 turn 累积
134
- * 行为兼容: 旧 caller 不传 emaState 用默认 { hitRateEMA: undefined, sampleCount: 0 }
135
- * → 行为跟改前一致 (不显示 avg 段). 现有单测 (formatUsageStatus) 不破.
136
- */
137
- export interface UsageEmaState {
138
- hitRateEMA?: number;
139
- sampleCount: number;
140
- }
141
- export declare function formatUsageStatus(usage: Usage | undefined, emaState?: UsageEmaState): string | null;
142
- /**
143
- * Sprint 1c-revive-2-D-21.1 (2026-06-06): emaState 接受 mutable 引用 (闭包),
144
- * 在 sampleCount < 5 用 cold-start EMA (直接赋值), 之后 α=0.5 平滑:
145
- * newEMA = α * current + (1 - α) * oldEMA = 0.5 * current + 0.5 * oldEMA
146
- * α=0.5 是 "等权平滑" (5-turn 半衰期 ≈ 1 turn, 快速响应 + 适度平滑).
147
- * 数学: sampleCount=5 时, 5 turn 前的数据权重 = 0.5^5 = 3.1% (基本忘掉),
148
- * 跟 5-turn rolling window 趋势一致, 但 EMA 实现更轻.
149
- *
150
- * export 出来供单测 (test/unit/usage-ema.test.ts) 验证 state machine.
151
- * 之前是 local function, D-21.1 改成 export — 单测需要直接调它验 in-place update.
152
- */
153
- export declare function appendUsageStatus(usage: Usage | undefined, err: NodeJS.WritableStream, emaState: UsageEmaState): void;
154
- //# sourceMappingURL=repl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}