@deepwhale/coding-agent 1.0.12 → 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.
Files changed (162) hide show
  1. package/dist/agent/agent-compaction.d.ts +74 -0
  2. package/dist/agent/agent-compaction.d.ts.map +1 -0
  3. package/dist/agent/agent-compaction.js +145 -0
  4. package/dist/agent/agent-compaction.js.map +1 -0
  5. package/dist/agent/index.d.ts +16 -0
  6. package/dist/agent/index.d.ts.map +1 -0
  7. package/dist/agent/index.js +17 -0
  8. package/dist/agent/index.js.map +1 -0
  9. package/dist/agent/session-adapter.d.ts +177 -0
  10. package/dist/agent/session-adapter.d.ts.map +1 -0
  11. package/dist/agent/session-adapter.js +365 -0
  12. package/dist/agent/session-adapter.js.map +1 -0
  13. package/dist/agent/tool-loop.d.ts +123 -0
  14. package/dist/agent/tool-loop.d.ts.map +1 -0
  15. package/dist/agent/tool-loop.js +436 -0
  16. package/dist/agent/tool-loop.js.map +1 -0
  17. package/dist/env/load-project-env.d.ts +40 -0
  18. package/dist/env/load-project-env.d.ts.map +1 -0
  19. package/dist/env/load-project-env.js +80 -0
  20. package/dist/env/load-project-env.js.map +1 -0
  21. package/dist/index.d.ts +31 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +30 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/llm-factory.d.ts +50 -0
  26. package/dist/llm-factory.d.ts.map +1 -0
  27. package/dist/llm-factory.js +110 -0
  28. package/dist/llm-factory.js.map +1 -0
  29. package/dist/modes/index.d.ts +14 -0
  30. package/dist/modes/index.d.ts.map +1 -0
  31. package/dist/modes/index.js +14 -0
  32. package/dist/modes/index.js.map +1 -0
  33. package/dist/modes/print.d.ts +50 -0
  34. package/dist/modes/print.d.ts.map +1 -0
  35. package/dist/modes/print.js +236 -0
  36. package/dist/modes/print.js.map +1 -0
  37. package/dist/modes/rpc.d.ts +52 -0
  38. package/dist/modes/rpc.d.ts.map +1 -0
  39. package/dist/modes/rpc.js +316 -0
  40. package/dist/modes/rpc.js.map +1 -0
  41. package/dist/modes/tui.d.ts +107 -0
  42. package/dist/modes/tui.d.ts.map +1 -0
  43. package/dist/modes/tui.js +680 -0
  44. package/dist/modes/tui.js.map +1 -0
  45. package/dist/policy/args-digest.d.ts +13 -0
  46. package/dist/policy/args-digest.d.ts.map +1 -0
  47. package/dist/policy/args-digest.js +29 -0
  48. package/dist/policy/args-digest.js.map +1 -0
  49. package/dist/policy/chain.d.ts +19 -0
  50. package/dist/policy/chain.d.ts.map +1 -0
  51. package/dist/policy/chain.js +24 -0
  52. package/dist/policy/chain.js.map +1 -0
  53. package/dist/policy/index.d.ts +17 -0
  54. package/dist/policy/index.d.ts.map +1 -0
  55. package/dist/policy/index.js +16 -0
  56. package/dist/policy/index.js.map +1 -0
  57. package/dist/policy/sanitize-reason.d.ts +11 -0
  58. package/dist/policy/sanitize-reason.d.ts.map +1 -0
  59. package/dist/policy/sanitize-reason.js +24 -0
  60. package/dist/policy/sanitize-reason.js.map +1 -0
  61. package/dist/policy/static-rules.d.ts +32 -0
  62. package/dist/policy/static-rules.d.ts.map +1 -0
  63. package/dist/policy/static-rules.js +106 -0
  64. package/dist/policy/static-rules.js.map +1 -0
  65. package/dist/policy/types.d.ts +56 -0
  66. package/dist/policy/types.d.ts.map +1 -0
  67. package/dist/policy/types.js +13 -0
  68. package/dist/policy/types.js.map +1 -0
  69. package/dist/repl/repl-command-router.d.ts +78 -0
  70. package/dist/repl/repl-command-router.d.ts.map +1 -0
  71. package/dist/repl/repl-command-router.js +112 -0
  72. package/dist/repl/repl-command-router.js.map +1 -0
  73. package/dist/repl/repl-confirm.d.ts +49 -0
  74. package/dist/repl/repl-confirm.d.ts.map +1 -0
  75. package/dist/repl/repl-confirm.js +88 -0
  76. package/dist/repl/repl-confirm.js.map +1 -0
  77. package/dist/repl/repl-session.d.ts +79 -0
  78. package/dist/repl/repl-session.d.ts.map +1 -0
  79. package/dist/repl/repl-session.js +129 -0
  80. package/dist/repl/repl-session.js.map +1 -0
  81. package/dist/repl/repl-signal-coordinator.d.ts +74 -0
  82. package/dist/repl/repl-signal-coordinator.d.ts.map +1 -0
  83. package/dist/repl/repl-signal-coordinator.js +73 -0
  84. package/dist/repl/repl-signal-coordinator.js.map +1 -0
  85. package/dist/repl.d.ts +117 -0
  86. package/dist/repl.d.ts.map +1 -0
  87. package/dist/repl.js +626 -0
  88. package/dist/repl.js.map +1 -0
  89. package/dist/sandbox/docker-runner.d.ts +147 -0
  90. package/dist/sandbox/docker-runner.d.ts.map +1 -0
  91. package/dist/sandbox/docker-runner.js +426 -0
  92. package/dist/sandbox/docker-runner.js.map +1 -0
  93. package/dist/sandbox/env-gate.d.ts +28 -0
  94. package/dist/sandbox/env-gate.d.ts.map +1 -0
  95. package/dist/sandbox/env-gate.js +65 -0
  96. package/dist/sandbox/env-gate.js.map +1 -0
  97. package/dist/sandbox/local-runner.d.ts +29 -0
  98. package/dist/sandbox/local-runner.d.ts.map +1 -0
  99. package/dist/sandbox/local-runner.js +79 -0
  100. package/dist/sandbox/local-runner.js.map +1 -0
  101. package/dist/sandbox/types.d.ts +80 -0
  102. package/dist/sandbox/types.d.ts.map +1 -0
  103. package/dist/sandbox/types.js +25 -0
  104. package/dist/sandbox/types.js.map +1 -0
  105. package/dist/tools/bash.d.ts +35 -0
  106. package/dist/tools/bash.d.ts.map +1 -0
  107. package/dist/tools/bash.js +233 -0
  108. package/dist/tools/bash.js.map +1 -0
  109. package/dist/tools/edit-file.d.ts +22 -0
  110. package/dist/tools/edit-file.d.ts.map +1 -0
  111. package/dist/tools/edit-file.js +79 -0
  112. package/dist/tools/edit-file.js.map +1 -0
  113. package/dist/tools/find.d.ts +21 -0
  114. package/dist/tools/find.d.ts.map +1 -0
  115. package/dist/tools/find.js +168 -0
  116. package/dist/tools/find.js.map +1 -0
  117. package/dist/tools/grep.d.ts +19 -0
  118. package/dist/tools/grep.d.ts.map +1 -0
  119. package/dist/tools/grep.js +170 -0
  120. package/dist/tools/grep.js.map +1 -0
  121. package/dist/tools/index.d.ts +10 -0
  122. package/dist/tools/index.d.ts.map +1 -0
  123. package/dist/tools/index.js +10 -0
  124. package/dist/tools/index.js.map +1 -0
  125. package/dist/tools/read-file.d.ts +18 -0
  126. package/dist/tools/read-file.d.ts.map +1 -0
  127. package/dist/tools/read-file.js +52 -0
  128. package/dist/tools/read-file.js.map +1 -0
  129. package/dist/tools/registry.d.ts +39 -0
  130. package/dist/tools/registry.d.ts.map +1 -0
  131. package/dist/tools/registry.js +67 -0
  132. package/dist/tools/registry.js.map +1 -0
  133. package/dist/tools/write-file.d.ts +18 -0
  134. package/dist/tools/write-file.d.ts.map +1 -0
  135. package/dist/tools/write-file.js +47 -0
  136. package/dist/tools/write-file.js.map +1 -0
  137. package/dist/tui-ink-bundle.js +38587 -0
  138. package/dist/types.d.ts +89 -0
  139. package/dist/types.d.ts.map +1 -0
  140. package/dist/types.js +5 -0
  141. package/dist/types.js.map +1 -0
  142. package/dist/util/index.d.ts +16 -0
  143. package/dist/util/index.d.ts.map +1 -0
  144. package/dist/util/index.js +16 -0
  145. package/dist/util/index.js.map +1 -0
  146. package/dist/util/tui-history.d.ts +37 -0
  147. package/dist/util/tui-history.d.ts.map +1 -0
  148. package/dist/util/tui-history.js +93 -0
  149. package/dist/util/tui-history.js.map +1 -0
  150. package/dist/verify/format-report.d.ts +57 -0
  151. package/dist/verify/format-report.d.ts.map +1 -0
  152. package/dist/verify/format-report.js +128 -0
  153. package/dist/verify/format-report.js.map +1 -0
  154. package/dist/verify/index.d.ts +8 -0
  155. package/dist/verify/index.d.ts.map +1 -0
  156. package/dist/verify/index.js +8 -0
  157. package/dist/verify/index.js.map +1 -0
  158. package/dist/verify/verify-runner.d.ts +186 -0
  159. package/dist/verify/verify-runner.d.ts.map +1 -0
  160. package/dist/verify/verify-runner.js +707 -0
  161. package/dist/verify/verify-runner.js.map +1 -0
  162. package/package.json +1 -1
package/dist/repl.d.ts ADDED
@@ -0,0 +1,117 @@
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 } 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 UsageEmaState } from './repl/repl-session.js';
26
+ export { formatUsageStatus, appendUsageStatus, type UsageEmaState } from './repl/repl-session.js';
27
+ import type { ToolPolicy } from './policy/types.js';
28
+ import type { SandboxRunner } from './sandbox/types.js';
29
+ export interface ReplOptions {
30
+ /** 注入 LLM 客户端(默认 createDefaultClient env 推断, Sprint 1b.5 Step 2 C3 拍板)。单测用。 */
31
+ client?: LLMClient;
32
+ /**
33
+ * Sprint 1c-revive-3-D-13 (2026-06-05): --yes 标志.
34
+ * yes=true bypass require_confirmation (write_file / edit_file / 危险 bash),
35
+ * 不 bypass deny. 拍板: REPL = 交互模式 (isInteractive=true), policy=staticToolPolicy.
36
+ */
37
+ yes?: boolean;
38
+ /**
39
+ * Sprint 1b.5 Step 2 (2.5 拍板, C3 拍板 2026-06-03): 显式 provider. 跟 env 推断冲突时优先.
40
+ * 跟 options.client 互斥 — 传 client 时 provider 忽略 (单测路径).
41
+ */
42
+ provider?: Provider;
43
+ /** Sprint 1b.5 Step 2: 显式 model. 不传则用 provider 默认 (deepseek → deepseek-v4-flash, anthropic → claude-sonnet-4-5). */
44
+ model?: string;
45
+ /** 注入输入流(默认 stdin)。单测用。 */
46
+ input?: NodeJS.ReadableStream;
47
+ /** 注入输出流(默认 stdout)。单测用。 */
48
+ output?: NodeJS.WritableStream;
49
+ /** 注入错误流(默认 stderr)。单测用。 */
50
+ errorOutput?: NodeJS.WritableStream;
51
+ /** 注入退出函数(默认 process.exit)。单测用。 */
52
+ exit?: (code?: number) => never;
53
+ /**
54
+ * Session JSONL 路径。提供则启动时 load + 退出时 append + close。
55
+ * 不提供则不持久化(Sprint 0.3 行为)。
56
+ */
57
+ sessionPath?: string;
58
+ /** 是否启用 tool loop(默认 true)。false = 退化为 Sprint 0.3 单轮 chat。 */
59
+ enableToolLoop?: boolean;
60
+ /**
61
+ * Session compaction 集成 (Sprint 1c-revive-2-D-6, review P1 修复 2026-06-04).
62
+ *
63
+ * 传 = 走 runToolLoopWithCompaction, turn 入口测 token 触发则 compact + 写
64
+ * 'compaction' event 到 SessionWriter. 不传 = 走裸 runToolLoop (向后兼容,
65
+ * 现有 baseline 244 测试不变).
66
+ *
67
+ * 拍板: 提供 AgentCompactionConfig 即可, CompactionState 内部持有 (startRepl
68
+ * 闭包). writer 字段 REPL 自动注入 (跟 startRepl 内部 sessionPath writer
69
+ * 同 instance, 让 compaction 事件写到同一 JSONL).
70
+ *
71
+ * 拍板 contextWindow=0 = 关闭 (跟 core compact() 行为契约一致). 默认
72
+ * (不传此参数) = 不接 compaction.
73
+ */
74
+ compactionConfig?: Omit<AgentCompactionConfig, 'writer' | 'state'> | null;
75
+ /**
76
+ * Sprint 1c-revive-2-D-11-4 (2026-06-04): verify 自定义 check.
77
+ * 不传 = 走 runVerify() 默认 4 步 (corepack pnpm build/lint/typecheck/test).
78
+ * 单测用: 传 4 个简单 pass check, 避免 30-60s 真跑 build.
79
+ */
80
+ verifyChecks?: import('./verify/index.js').VerifyCheck[];
81
+ }
82
+ /**
83
+ * 单轮 chat 工具函数:把 user 输入 → LLM chat → 输出 assistant 文本。
84
+ * 不修改 messages;不调工具;不持久化。
85
+ *
86
+ * Sprint 1a 保留作为低层 API。Sprint 1a 之后 REPL 入口推荐用 startRepl +
87
+ * enableToolLoop=true 走完整 agent loop。
88
+ */
89
+ export declare function runOneTurn(client: LLMClient, line: string, messages: ChatMessage[], options?: {
90
+ signal?: AbortSignal;
91
+ }): Promise<{
92
+ kind: 'chat';
93
+ assistant: string;
94
+ } | {
95
+ kind: 'error';
96
+ error: string;
97
+ } | {
98
+ kind: 'empty';
99
+ }>;
100
+ /**
101
+ * 启动 REPL。返回 Promise,resolve 时为退出码。
102
+ */
103
+ export declare function startRepl(options?: ReplOptions): Promise<number>;
104
+ /**
105
+ * 跑一轮 agent turn:append user → runToolLoop → 持久化 → 打印 final content。
106
+ *
107
+ * workingMessages 由 caller 持有(startRepl 闭包),turn 跑完后 caller 用新 messages 覆盖。
108
+ *
109
+ * Sprint 1a 修 P1:user 必须进 LLM。Sprint 1a 修 P2-A:流式不再重复打印 final content。
110
+ * Sprint 1c-revive-2-D-6 (review P1 修复, 2026-06-04): 可选 compactionConfig — 传
111
+ * 时调 runToolLoopWithCompaction (入口测 token, 触发则 compact + 写 event),
112
+ * 不传 = 走裸 runToolLoop (向后兼容, 单测 baseline 244 不变). summaryFn 内部
113
+ * 用 client + 固定 prompt 模板生成, 跟 test 1c-revive-2-D-5 cluster 拍板一致.
114
+ * 单测通过 export 暴露,直接注入 mock LLMClient + WritableStream 验证行为。
115
+ */
116
+ 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>;
117
+ //# sourceMappingURL=repl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAiB,aAAa,EAAqB,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAEL,WAAW,EAGX,SAAS,EAMV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAOL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAItE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oHAAoH;IACpH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACpC,mCAAmC;IACnC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1E;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,EAAE,CAAC;CAC1D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACrC,OAAO,CACR;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAC3F,CAcA;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmX1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,WAAW,EAAE,EAC9B,MAAM,EAAE,aAAa,GAAG,IAAI,EAC5B,GAAG,EAAE,MAAM,CAAC,cAAc,EAC1B,GAAG,EAAE,MAAM,CAAC,cAAc,EAC1B,MAAM,EAAE,WAAW,EACnB,gBAAgB,GAAE,qBAAqB,GAAG,IAAW,EAGrD,aAAa,CAAC,EAAE,aAAa,EAE7B,GAAG,CAAC,EAAE,OAAO,EAGb,MAAM,CAAC,EAAE,UAAU,EAInB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,IAAI,CAAC,CAoHf"}