@gird/ccli 2.15.0 → 2.17.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 (75) hide show
  1. package/README.md +20 -6
  2. package/dist/agent/ai.js +11 -299
  3. package/dist/agent/ai.js.map +1 -1
  4. package/dist/agent/providers/anthropic.js +207 -0
  5. package/dist/agent/providers/anthropic.js.map +1 -0
  6. package/dist/agent/providers/gemini.js +97 -0
  7. package/dist/agent/providers/gemini.js.map +1 -0
  8. package/dist/agent/providers/openai.js +102 -0
  9. package/dist/agent/providers/openai.js.map +1 -0
  10. package/dist/cli/repl/index.js +60 -58
  11. package/dist/cli/repl/index.js.map +1 -1
  12. package/dist/cli/run/event-renderer.js +57 -0
  13. package/dist/cli/run/event-renderer.js.map +1 -0
  14. package/dist/cli/run/hooks.js +58 -19
  15. package/dist/cli/run/hooks.js.map +1 -1
  16. package/dist/cli/run/index.js +158 -9
  17. package/dist/cli/run/index.js.map +1 -1
  18. package/dist/cli/run/task.js +21 -1
  19. package/dist/cli/run/task.js.map +1 -1
  20. package/dist/cli/run/todo-panel.js +13 -0
  21. package/dist/cli/run/todo-panel.js.map +1 -1
  22. package/dist/cli/session/checkpoint.js +252 -0
  23. package/dist/cli/session/checkpoint.js.map +1 -0
  24. package/dist/cli/session/index.js +1 -1
  25. package/dist/cli/session/index.js.map +1 -1
  26. package/dist/cli/slash/index.js +12 -2
  27. package/dist/cli/slash/index.js.map +1 -1
  28. package/dist/cli/slash/session/load.js +3 -0
  29. package/dist/cli/slash/session/load.js.map +1 -1
  30. package/dist/cli/slash/session/save.js +1 -0
  31. package/dist/cli/slash/session/save.js.map +1 -1
  32. package/dist/cli/slash/system/agent.js +37 -104
  33. package/dist/cli/slash/system/agent.js.map +1 -1
  34. package/dist/cli/slash/system/compact.js +26 -5
  35. package/dist/cli/slash/system/compact.js.map +1 -1
  36. package/dist/cli/slash/system/goal.js +33 -34
  37. package/dist/cli/slash/system/goal.js.map +1 -1
  38. package/dist/cli/slash/system/help.js +2 -0
  39. package/dist/cli/slash/system/help.js.map +1 -1
  40. package/dist/cli/slash/system/plan.js +137 -0
  41. package/dist/cli/slash/system/plan.js.map +1 -0
  42. package/dist/cli/slash/system/revert.js +133 -0
  43. package/dist/cli/slash/system/revert.js.map +1 -0
  44. package/dist/config/config.js +46 -3
  45. package/dist/config/config.js.map +1 -1
  46. package/dist/config/skills.js +30 -5
  47. package/dist/config/skills.js.map +1 -1
  48. package/dist/harness/index.js +312 -0
  49. package/dist/harness/index.js.map +1 -0
  50. package/dist/index.js +33 -41
  51. package/dist/index.js.map +1 -1
  52. package/dist/tools/bash-background.js +2 -2
  53. package/dist/tools/bash-background.js.map +1 -1
  54. package/dist/tools/bash.js +3 -2
  55. package/dist/tools/bash.js.map +1 -1
  56. package/dist/tools/edit-file.js +8 -2
  57. package/dist/tools/edit-file.js.map +1 -1
  58. package/dist/tools/glob.js +4 -3
  59. package/dist/tools/glob.js.map +1 -1
  60. package/dist/tools/grep.js +4 -3
  61. package/dist/tools/grep.js.map +1 -1
  62. package/dist/tools/index.js +20 -0
  63. package/dist/tools/index.js.map +1 -1
  64. package/dist/tools/list-dir.js +3 -2
  65. package/dist/tools/list-dir.js.map +1 -1
  66. package/dist/tools/read-file.js +3 -2
  67. package/dist/tools/read-file.js.map +1 -1
  68. package/dist/tools/shared.js.map +1 -1
  69. package/dist/tools/todo.js +17 -5
  70. package/dist/tools/todo.js.map +1 -1
  71. package/dist/tools/web-fetch.js +95 -0
  72. package/dist/tools/web-fetch.js.map +1 -0
  73. package/dist/tools/write-file.js +8 -2
  74. package/dist/tools/write-file.js.map +1 -1
  75. package/package.json +1 -1
@@ -1,22 +1,32 @@
1
1
  /**
2
2
  * 生命周期钩子(hooks)运行器。
3
3
  *
4
- * 一期支持两个事件:
4
+ * 支持的事件:
5
5
  * - PreToolUse:工具执行前触发,可拦截(退出码 2)
6
- * - PostToolUse:工具成功后触发,只观察
7
- * - PostToolUseFailure:工具失败后触发,只观察
6
+ * - PostToolUse / PostToolUseFailure:工具成功 / 失败后触发,只观察
7
+ * - UserPromptSubmit:用户输入发送给模型前,可拦截;stdout 作为补充上下文注入
8
+ * - SessionStart / SessionEnd:会话开始 / 结束,只观察
9
+ * - Stop:代理回合结束(最终回答 / 轮数触顶),只观察
10
+ * - PreCompact:上下文压缩前(手动 /compact 或自动),只观察
11
+ * - SubagentStart / SubagentStop:task 子代理开始 / 结束,只观察
8
12
  *
9
13
  * 协议(对齐 Claude Code):
10
- * - 通过 stdin 给 hook 进程喂 JSON:
11
- * { hook_event_name, cwd, tool_name, tool_input, tool_response? }
12
- * - 退出码 0 = 放行(stdout 打印给用户);2 = 拦截(stderr 作为原因喂回模型);
14
+ * - 通过 stdin 给 hook 进程喂 JSON:{ hook_event_name, cwd, ...事件特有字段 }
15
+ * - 退出码 0 = 放行(stdout 汇总到 result.output,由调用方决定打印还是注入);
16
+ * 2 = 拦截(仅可拦截事件生效;stderr 作为原因);
13
17
  * 其它非零 / 超时 / 启动失败 = fail open:打印警告但放行。
14
18
  * - 同一事件配了多个 hook 时按声明顺序执行;拦截后短路,后续不再执行。
19
+ * - matcher 只对工具事件(PreToolUse / PostToolUse*)生效,其余事件忽略 matcher。
15
20
  *
16
21
  * 安全底线:每次执行都打印一行透明日志(命令可见),让 hook 行为对用户可观测。
17
22
  */
18
23
  import { spawn } from 'node:child_process';
19
24
  import { style } from '../style.js';
25
+ /** 可拦截的事件(退出码 2 有意义);其余事件的退出码 2 按出错处理(fail open)。 */
26
+ const BLOCKABLE_EVENTS = new Set([
27
+ 'PreToolUse',
28
+ 'UserPromptSubmit',
29
+ ]);
20
30
  const DEFAULT_TIMEOUT_SEC = 10;
21
31
  /**
22
32
  * matcher 匹配规则:
@@ -38,7 +48,7 @@ export function matchHook(matcher, toolName) {
38
48
  });
39
49
  }
40
50
  /** 执行单个 hook:spawn shell,喂 stdin JSON,按退出码判定结果。 */
41
- function runOneHook(def, payload) {
51
+ function runOneHook(def, payload, blockable) {
42
52
  return new Promise((resolve) => {
43
53
  const timeoutSec = def.timeout ?? DEFAULT_TIMEOUT_SEC;
44
54
  const shell = process.env.SHELL || '/bin/bash';
@@ -80,13 +90,14 @@ function runOneHook(def, payload) {
80
90
  if (code === 0) {
81
91
  finish({ action: 'allow', message: stdout.trim() || undefined });
82
92
  }
83
- else if (code === 2) {
93
+ else if (code === 2 && blockable) {
84
94
  finish({
85
95
  action: 'block',
86
96
  message: stderr.trim() || '(hook 未给出原因)',
87
97
  });
88
98
  }
89
99
  else {
100
+ // 不可拦截事件的退出码 2、以及其它非零码,统一按出错 fail open
90
101
  const detail = stderr.trim();
91
102
  finish({
92
103
  action: 'error',
@@ -101,7 +112,7 @@ function runOneHook(def, payload) {
101
112
  }
102
113
  /**
103
114
  * 执行某个事件下所有匹配的 hook。
104
- * @param defs 配置中的全部 hook(内部按 event + matcher 过滤)
115
+ * @param defs 配置中的全部 hook(内部按 event 过滤;工具事件再按 matcher 过滤)
105
116
  * @param event 触发事件
106
117
  * @param payload 事件载荷(不含 hook_event_name)
107
118
  * @param print 输出回调(子代理场景传缩进 print)
@@ -109,26 +120,54 @@ function runOneHook(def, payload) {
109
120
  export async function runHooks(defs, event, payload, print = (c) => process.stdout.write(c)) {
110
121
  if (!defs || defs.length === 0)
111
122
  return { blocked: false };
112
- const matched = defs.filter((d) => d.event === event && matchHook(d.matcher, payload.tool_name));
123
+ const matched = defs.filter((d) => d.event === event &&
124
+ (payload.tool_name === undefined ||
125
+ matchHook(d.matcher, payload.tool_name)));
126
+ const blockable = BLOCKABLE_EVENTS.has(event);
127
+ const outputs = [];
128
+ const collect = () => ({
129
+ blocked: false,
130
+ output: outputs.length > 0 ? outputs.join('\n') : undefined,
131
+ });
113
132
  for (const def of matched) {
114
133
  print(style.muted(`\n⏎ [hook] ${event} ← ${def.command}\n`));
115
- const outcome = await runOneHook(def, {
116
- hook_event_name: event,
117
- ...payload,
118
- });
134
+ const outcome = await runOneHook(def, { hook_event_name: event, ...payload }, blockable);
119
135
  if (outcome.action === 'allow') {
120
136
  if (outcome.message)
121
- print(outcome.message + '\n');
137
+ outputs.push(outcome.message);
122
138
  continue;
123
139
  }
124
140
  if (outcome.action === 'error') {
125
141
  print(style.warn(`[hook] 执行失败(已放行):${outcome.message}\n`));
126
142
  continue;
127
143
  }
128
- // 拦截:告知用户并短路,原因由调用方喂回模型
129
- print(style.warn(`[hook] 已拦截 ${payload.tool_name}:${outcome.message}\n`));
130
- return { blocked: true, reason: outcome.message };
144
+ // 拦截:告知用户并短路,原因由调用方处理(喂回模型或拒绝输入)
145
+ const target = payload.tool_name ?? event;
146
+ print(style.warn(`[hook] 已拦截 ${target}:${outcome.message}\n`));
147
+ return {
148
+ blocked: true,
149
+ reason: outcome.message,
150
+ output: outputs.length > 0 ? outputs.join('\n') : undefined,
151
+ };
152
+ }
153
+ return collect();
154
+ }
155
+ /**
156
+ * 用户输入提交钩子(UserPromptSubmit)。
157
+ * - 被拦截:返回 blocked,调用方应放弃本次输入(REPL 回到提示符、非交互退出);
158
+ * - 放行:把所有 hook 的 stdout 作为补充上下文追加到 prompt 末尾返回。
159
+ */
160
+ export async function runUserPromptHooks(defs, cwd, prompt, print) {
161
+ const res = await runHooks(defs, 'UserPromptSubmit', { cwd, prompt }, print);
162
+ if (res.blocked) {
163
+ return { blocked: true, reason: res.reason, prompt };
164
+ }
165
+ if (res.output) {
166
+ return {
167
+ blocked: false,
168
+ prompt: `${prompt}\n\n[hook 补充上下文]\n${res.output}`,
169
+ };
131
170
  }
132
- return { blocked: false };
171
+ return { blocked: false, prompt };
133
172
  }
134
173
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/run/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/run/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { style } from '../style.js';
2
2
  import { executeTool, getTool, registerMcpTools, registerTool, textToolResult, } from '../../tools/index.js';
3
3
  import { createTaskTool } from './task.js';
4
- import { renderTodoPanel } from '../../tools/todo.js';
4
+ import { getTodos, renderTodoPanel, resetTodos } from '../../tools/todo.js';
5
5
  import { ruleKeyFor } from './permissions.js';
6
6
  import { formatToolCall, formatToolResult, toolCallLines, } from './format.js';
7
7
  import { LineFoldPrinter, renderWithFold } from './fold.js';
@@ -30,6 +30,18 @@ const REPEAT_TOOL_REMINDER = '\n\n<system-reminder>\n' +
30
30
  const REPEAT_TOOL_STOP_REMINDER = '\n\n<system-reminder>\n' +
31
31
  '你已经多次重复同一个工具调用且没有取得进展。下一步不要继续调用这个完全相同的工具参数;请总结当前卡点,或改用不同工具/参数继续。\n' +
32
32
  '</system-reminder>';
33
+ /** 连续多少轮没写 todo(且还有未完成项)后,往工具结果里追加待办更新提醒。 */
34
+ const TODO_STALE_ROUNDS = 8;
35
+ const TODO_STALE_REMINDER = '\n\n<system-reminder>\n' +
36
+ '待办清单已多轮未更新。请用 todo 工具刷新进度:完成的项标 done,下一项标 in_progress,同时只保留一项 in_progress。' +
37
+ '若清单已与当前工作不符,请重写或清空它。\n' +
38
+ '</system-reminder>';
39
+ /**
40
+ * 生成工具调用的稳定指纹。
41
+ *
42
+ * 模型有时会把 JSON 参数键顺序换一下;这里先排序再 stringify,
43
+ * 让“同一个工具 + 同一组参数”能被可靠识别,用于重复调用提醒。
44
+ */
33
45
  function canonicalToolArgs(argsJson) {
34
46
  try {
35
47
  return JSON.stringify(sortJson(JSON.parse(argsJson || '{}')));
@@ -38,6 +50,12 @@ function canonicalToolArgs(argsJson) {
38
50
  return argsJson;
39
51
  }
40
52
  }
53
+ /**
54
+ * 递归排序 JSON 对象的 key。
55
+ *
56
+ * 只改变对象键顺序,不改变数组顺序和值本身;这样既能稳定比较,
57
+ * 又不会误把语义不同的数组参数视为相同。
58
+ */
41
59
  function sortJson(value) {
42
60
  if (Array.isArray(value))
43
61
  return value.map(sortJson);
@@ -50,6 +68,12 @@ function sortJson(value) {
50
68
  }
51
69
  return value;
52
70
  }
71
+ /**
72
+ * 根据连续重复次数选择给模型的提醒文案。
73
+ *
74
+ * 3 次开始轻提醒,5 次升级为强提醒;提醒只写入 tool result 给模型看,
75
+ * 不改变用户侧的工具输出。
76
+ */
53
77
  function repeatedToolReminder(repeatCount) {
54
78
  if (repeatCount >= 5)
55
79
  return REPEAT_TOOL_STOP_REMINDER;
@@ -57,6 +81,12 @@ function repeatedToolReminder(repeatCount) {
57
81
  return REPEAT_TOOL_REMINDER;
58
82
  return '';
59
83
  }
84
+ /**
85
+ * 把结构化工具结果转换成喂给模型的文本。
86
+ *
87
+ * 失败结果会加一个显式 system 标记,帮助模型区分“命令正常输出了一段错误文本”
88
+ * 和“工具执行真的失败了”,从而更容易自动修正下一步。
89
+ */
60
90
  function toolResultForModel(result, repeatCount) {
61
91
  const prefix = result.isError ? `${TOOL_ERROR_STATUS}\n` : '';
62
92
  return `${prefix}${result.output}${repeatedToolReminder(repeatCount)}`;
@@ -66,18 +96,27 @@ function toolResultForModel(result, repeatCount) {
66
96
  * 直到模型不再调用工具(给出最终回答)或达到轮数上限。
67
97
  */
68
98
  export async function runAgentTurn(options) {
69
- const { ai, history, confirm, stats, print = process.stdout.write.bind(process.stdout), maxRounds, requireToolsFirstRound, onToolCall, onToolResult, permission, configMaxSteps, todoPanel = true, endPanel = true, hooks, } = options;
99
+ const { ai, history, confirm, stats, print = process.stdout.write.bind(process.stdout), cwd = process.cwd(), maxRounds, requireToolsFirstRound, continueOnPendingTodos, allowedTools, onReasoning, onHookOutput, onPermissionRequest, onToolCall, onToolResult, permission, configMaxSteps, todoPanel = true, endPanel = true, hooks, sessionId, checkpointsDir, } = options;
70
100
  // 上限优先级:显式 maxRounds(/agent、/goal)> configMaxSteps(config 解析)> 默认 50。
71
101
  // limit <= 0 表示不限(跳过检查),对齐 config maxStepsPerTurn=0 语义。
72
102
  const limit = maxRounds ?? configMaxSteps ?? DEFAULT_MAX_STEPS;
103
+ // hook 输出:事件模式交给 onHookOutput(独立事件),否则内联 print(CLI 行为不变)
104
+ const emitHookOutput = (text) => {
105
+ if (onHookOutput)
106
+ onHookOutput(text);
107
+ else
108
+ print(text + '\n');
109
+ };
73
110
  /** 工具执行上下文(供 task 等需要反向调用 AI / 复用会话的工具)。 */
74
111
  const toolCtx = {
112
+ sessionId,
113
+ checkpointsDir,
75
114
  ai,
76
115
  confirm,
77
116
  permission,
78
117
  stats,
79
118
  print,
80
- cwd: process.cwd(),
119
+ cwd,
81
120
  maxSteps: configMaxSteps,
82
121
  todoPanel,
83
122
  hooks,
@@ -86,10 +125,21 @@ export async function runAgentTurn(options) {
86
125
  registerTool(createTaskTool(toolCtx));
87
126
  let lastToolKey = null;
88
127
  let repeatCount = 0;
128
+ // 待办未完成时的续跑提醒计数:连续空转达到上限就放弃,避免死循环
129
+ let nudgeCount = 0;
130
+ const MAX_TODO_NUDGES = 3;
131
+ // 距离上次写 todo 的轮数:太久不更新(且还有未完成项)就提醒模型刷新
132
+ let roundsSinceTodoWrite = 0;
89
133
  for (let round = 0; limit <= 0 || round < limit; round++) {
90
134
  let reasoningStarted = false;
91
135
  let reasoningEnded = false;
92
136
  const onReasoningDelta = (text) => {
137
+ // 事件模式:把思考流作为独立信号交给调用方,不混入正文渲染
138
+ if (onReasoning) {
139
+ onReasoning(text);
140
+ return;
141
+ }
142
+ // CLI 默认:灰色内联渲染(行为不变)
93
143
  if (!reasoningStarted) {
94
144
  print(style.muted('思考中…\n'));
95
145
  reasoningStarted = true;
@@ -108,7 +158,12 @@ export async function runAgentTurn(options) {
108
158
  // 与子代理共用 WriteFileStreamPrinter,行为一致。
109
159
  const writePrinter = new WriteFileStreamPrinter();
110
160
  const onToolArgumentDelta = (index, name, argsSoFar) => writePrinter.handleDelta(index, name, argsSoFar, print);
111
- const turn = await ai.chat(history, onDelta, round === 0 && requireToolsFirstRound ? { requireTools: true } : undefined, onReasoningDelta, onToolArgumentDelta);
161
+ const chatOptions = {};
162
+ if (round === 0 && requireToolsFirstRound)
163
+ chatOptions.requireTools = true;
164
+ if (allowedTools)
165
+ chatOptions.allowedTools = allowedTools;
166
+ const turn = await ai.chat(history, onDelta, Object.keys(chatOptions).length > 0 ? chatOptions : undefined, onReasoningDelta, onToolArgumentDelta);
112
167
  // 优先使用后端返回的真实 usage;不支持时降级为字符估算
113
168
  if (turn.usage) {
114
169
  stats.promptTokens += turn.usage.promptTokens;
@@ -124,7 +179,39 @@ export async function runAgentTurn(options) {
124
179
  }
125
180
  // 没有工具调用 → 这是最终回答,收尾退出
126
181
  if (turn.toolCalls.length === 0) {
182
+ // /agent、/goal:待办列表还有未完成项时,模型的过渡性回答不算收尾,
183
+ // 补一条提醒消息让它继续执行(连续空转上限 MAX_TODO_NUDGES 次兜底)
184
+ if (continueOnPendingTodos && nudgeCount < MAX_TODO_NUDGES) {
185
+ const pending = getTodos().filter((t) => t.status !== 'done');
186
+ if (pending.length > 0) {
187
+ print('\n');
188
+ nudgeCount++;
189
+ history.push({
190
+ role: 'assistant',
191
+ content: turn.content,
192
+ });
193
+ const list = pending
194
+ .map((t) => `- ${t.content}`)
195
+ .join('\n');
196
+ history.push({
197
+ role: 'user',
198
+ content: `还有 ${pending.length} 项待办未完成:\n${list}\n` +
199
+ '请继续执行(先更新待办状态),直到全部完成。',
200
+ });
201
+ print(style.muted(`(待办未完成,继续执行 ${nudgeCount}/${MAX_TODO_NUDGES}…)\n`));
202
+ continue;
203
+ }
204
+ }
127
205
  print('\n');
206
+ // 待办全部完成:回合结束自动清空,面板不残留已完成清单
207
+ const todos = getTodos();
208
+ if (todos.length > 0 && todos.every((t) => t.status === 'done')) {
209
+ resetTodos();
210
+ }
211
+ // Stop hook:回合正常收尾(模型给出最终回答),仅观察
212
+ const stop = await runHooks(hooks, 'Stop', { cwd, stop_reason: 'final' }, print);
213
+ if (stop.output)
214
+ emitHookOutput(stop.output);
128
215
  // 回合结束:渲染待办面板(提示符上方常驻),无待办时为空串
129
216
  const panel = todoPanel && endPanel ? renderTodoPanel() : '';
130
217
  if (panel)
@@ -132,6 +219,8 @@ export async function runAgentTurn(options) {
132
219
  history.push({ role: 'assistant', content: turn.content });
133
220
  return;
134
221
  }
222
+ // 本轮有工具调用,说明还在推进,重置空转计数
223
+ nudgeCount = 0;
135
224
  // 有工具调用:先把带 tool_calls 的 assistant 消息入历史
136
225
  history.push({
137
226
  role: 'assistant',
@@ -146,10 +235,23 @@ export async function runAgentTurn(options) {
146
235
  for (const tc of turn.toolCalls) {
147
236
  const tool = getTool(tc.name);
148
237
  const args = safeParse(tc.arguments);
238
+ // 只读护栏:allowedTools 之外的工具一律拒绝执行(plan mode 硬边界)
239
+ if (allowedTools && !allowedTools.includes(tc.name)) {
240
+ const denied = textToolResult(`当前为只读模式,工具 ${tc.name} 不可用。请只用只读工具(${allowedTools.join(' / ')})研究,完成后给出计划文本。`, true);
241
+ history.push({
242
+ role: 'tool',
243
+ tool_call_id: tc.id,
244
+ content: toolResultForModel(denied, 1),
245
+ });
246
+ onToolResult?.(tc, denied);
247
+ continue;
248
+ }
149
249
  const toolKey = `${tc.name} ${canonicalToolArgs(tc.arguments)}`;
150
250
  // PreToolUse hook:在「始终允许 / 用户确认」之前触发,对所有工具生效;
151
251
  // 被拦截则短路——不弹确认、不执行,原因喂回模型。
152
252
  const pre = await runHooks(hooks, 'PreToolUse', { cwd: toolCtx.cwd, tool_name: tc.name, tool_input: args }, print);
253
+ if (pre.output)
254
+ emitHookOutput(pre.output);
153
255
  if (pre.blocked) {
154
256
  const blocked = textToolResult(`操作被 PreToolUse hook 拦截:${pre.reason ?? ''}。请勿重试,可询问用户希望如何继续。`, true);
155
257
  history.push({
@@ -172,6 +274,12 @@ export async function runAgentTurn(options) {
172
274
  print(style.tool(`\n✓ 已自动允许(${ruleKey})\n`));
173
275
  }
174
276
  else {
277
+ // 事件模式:先通知「正在请求确认」(决定仍由 confirm 返回)
278
+ onPermissionRequest?.({
279
+ tool: tc.name,
280
+ preview,
281
+ ruleKey: ruleKey ?? undefined,
282
+ });
175
283
  const choice = await confirm(preview, ruleKey ? { ruleKey } : undefined);
176
284
  if (choice === 'no') {
177
285
  print('\n已取消。\n');
@@ -203,9 +311,13 @@ export async function runAgentTurn(options) {
203
311
  }
204
312
  // bash 输出实时流式打印:包一层按行折叠(超 40 行停打 + ctrl+o 展开)
205
313
  const bashFold = tc.name === 'bash' ? new LineFoldPrinter(print) : null;
206
- const execCtx = bashFold
207
- ? { ...toolCtx, print: (c) => bashFold.write(c) }
208
- : toolCtx;
314
+ const execCtx = {
315
+ ...toolCtx,
316
+ stepIndex: round + 1,
317
+ print: bashFold
318
+ ? (c) => bashFold.write(c)
319
+ : toolCtx.print,
320
+ };
209
321
  const result = await executeTool(tc.name, tc.arguments, execCtx);
210
322
  bashFold?.finish();
211
323
  if (toolKey === lastToolKey) {
@@ -222,24 +334,58 @@ export async function runAgentTurn(options) {
222
334
  print(style.muted(` → ${formatToolResult(tc, result)}\n`));
223
335
  }
224
336
  // PostToolUse / PostToolUseFailure hook:只观察(stdout 仅打印给用户,不喂回模型)
225
- await runHooks(hooks, result.isError ? 'PostToolUseFailure' : 'PostToolUse', {
337
+ const post = await runHooks(hooks, result.isError ? 'PostToolUseFailure' : 'PostToolUse', {
226
338
  cwd: toolCtx.cwd,
227
339
  tool_name: tc.name,
228
340
  tool_input: args,
229
341
  tool_response: result.output,
230
342
  }, print);
343
+ if (post.output)
344
+ emitHookOutput(post.output);
231
345
  history.push({
232
346
  role: 'tool',
233
347
  tool_call_id: tc.id,
234
348
  content: toolResultForModel(result, repeatCount),
235
349
  });
236
350
  }
351
+ // 待办维护提醒:本轮写了 todo 则计数归零;连续多轮没写且还有未完成项时,
352
+ // 往最后一条工具结果后追加提醒(只进模型上下文,不影响用户侧输出)
353
+ if (turn.toolCalls.some((tc) => tc.name === 'todo')) {
354
+ roundsSinceTodoWrite = 0;
355
+ }
356
+ else {
357
+ roundsSinceTodoWrite++;
358
+ const pending = getTodos().filter((t) => t.status !== 'done');
359
+ if (roundsSinceTodoWrite >= TODO_STALE_ROUNDS && pending.length > 0) {
360
+ roundsSinceTodoWrite = 0;
361
+ const last = history[history.length - 1];
362
+ if (last?.role === 'tool' && typeof last.content === 'string') {
363
+ last.content += TODO_STALE_REMINDER;
364
+ }
365
+ }
366
+ }
237
367
  // 继续下一轮,让模型基于工具结果接着回答
238
368
  }
239
369
  // 仅在上限生效(limit > 0)时才会跑到这里;不限(limit<=0)靠模型自己停止。
240
370
  if (limit > 0) {
241
371
  print(style.warn(`\n(已达到工具调用轮数上限 ${limit}。如需更高,请在 config 设 maxStepsPerTurn,或设 0 为不限。)\n`));
372
+ // 历史此时以 tool 结果收尾,模型不知道自己为什么停了;
373
+ // 补一条说明,下一轮对话才能讲清「做到哪、为什么停」
374
+ history.push({
375
+ role: 'user',
376
+ content: `(系统提示:已达到工具调用轮数上限 ${limit},本轮执行被暂停。` +
377
+ '如任务未完成,下次回复请先说明当前进度和剩余工作。)',
378
+ });
379
+ }
380
+ // 待办全部完成:回合结束自动清空(触顶收尾同样处理)
381
+ const tailTodos = getTodos();
382
+ if (tailTodos.length > 0 && tailTodos.every((t) => t.status === 'done')) {
383
+ resetTodos();
242
384
  }
385
+ // Stop hook:轮数触顶收尾,仅观察
386
+ const tailStop = await runHooks(hooks, 'Stop', { cwd, stop_reason: 'round_limit' }, print);
387
+ if (tailStop.output)
388
+ emitHookOutput(tailStop.output);
243
389
  // 触顶收尾同样渲染待办面板
244
390
  const tailPanel = todoPanel && endPanel ? renderTodoPanel() : '';
245
391
  if (tailPanel)
@@ -250,7 +396,7 @@ export async function runAgentTurn(options) {
250
396
  * 以 systemPrompt 开场,把 prompt 作为 user 消息发送,执行一轮后返回。
251
397
  */
252
398
  export async function runOnce(options) {
253
- const { ai, prompt, confirm, print = process.stdout.write.bind(process.stdout), systemPrompt = DEFAULT_SYSTEM_PROMPT, mcpManager, configMaxSteps, hooks, } = options;
399
+ const { ai, prompt, confirm, print = process.stdout.write.bind(process.stdout), cwd = process.cwd(), systemPrompt = DEFAULT_SYSTEM_PROMPT, mcpManager, configMaxSteps, hooks, sessionId, checkpointsDir, } = options;
254
400
  if (mcpManager) {
255
401
  await registerMcpTools(mcpManager);
256
402
  }
@@ -262,11 +408,14 @@ export async function runOnce(options) {
262
408
  print(chunk);
263
409
  };
264
410
  await runAgentTurn({
411
+ sessionId,
412
+ checkpointsDir,
265
413
  ai,
266
414
  history,
267
415
  confirm,
268
416
  stats: { promptTokens: 0, completionTokens: 0, totalTokens: 0 },
269
417
  print: capturePrint,
418
+ cwd,
270
419
  configMaxSteps,
271
420
  hooks,
272
421
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/run/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/run/index.ts"],"names":[],"mappings":"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"}
@@ -134,6 +134,14 @@ async function runSubAgent(ctx, args) {
134
134
  const allowedTools = resolveAllowedTools(type);
135
135
  const allowedSet = new Set(allowedTools);
136
136
  print(style.muted(`\n(子代理开始:${args.description ?? ''}${type ? ` · ${type}` : ''})\n`));
137
+ // SubagentStart hook:仅观察,stdout 缩进打印(与正文同 gutter)
138
+ const subStart = await runHooks(ctx.hooks, 'SubagentStart', {
139
+ cwd: ctx.cwd,
140
+ subagent_type: type ?? 'default',
141
+ description: args.description,
142
+ }, bodyPrint);
143
+ if (subStart.output)
144
+ bodyPrint(subStart.output + '\n');
137
145
  const history = [
138
146
  { role: 'system', content: systemPrompt },
139
147
  { role: 'user', content: String(args.prompt ?? '') },
@@ -189,6 +197,8 @@ async function runSubAgent(ctx, args) {
189
197
  const a = safeParse(tc.arguments);
190
198
  // PreToolUse hook:与主循环同一套配置,缩进打印;拦截则短路。
191
199
  const pre = await runHooks(ctx.hooks, 'PreToolUse', { cwd: ctx.cwd, tool_name: tc.name, tool_input: a }, bodyPrint);
200
+ if (pre.output)
201
+ bodyPrint(pre.output + '\n');
192
202
  if (pre.blocked) {
193
203
  const result = textToolResult(`操作被 PreToolUse hook 拦截:${pre.reason ?? ''}。请勿重试。`, true);
194
204
  history.push({
@@ -249,12 +259,14 @@ async function runSubAgent(ctx, args) {
249
259
  bashFold?.finish();
250
260
  bodyPrint(style.muted(` → ${formatToolResult(tc, result)}\n`));
251
261
  // PostToolUse / PostToolUseFailure hook:只观察
252
- await runHooks(ctx.hooks, result.isError ? 'PostToolUseFailure' : 'PostToolUse', {
262
+ const post = await runHooks(ctx.hooks, result.isError ? 'PostToolUseFailure' : 'PostToolUse', {
253
263
  cwd: ctx.cwd,
254
264
  tool_name: tc.name,
255
265
  tool_input: a,
256
266
  tool_response: result.output,
257
267
  }, bodyPrint);
268
+ if (post.output)
269
+ bodyPrint(post.output + '\n');
258
270
  history.push({
259
271
  role: 'tool',
260
272
  tool_call_id: tc.id,
@@ -267,6 +279,14 @@ async function runSubAgent(ctx, args) {
267
279
  bodyPrint(style.muted('(子代理已达到工具调用轮数上限;如需更高,请在 config 设 maxStepsPerTurn)\n'));
268
280
  }
269
281
  setTodos(savedTodos); // 恢复主会话 todo 快照(隔离收尾)
282
+ // SubagentStop hook:仅观察
283
+ const subStop = await runHooks(ctx.hooks, 'SubagentStop', {
284
+ cwd: ctx.cwd,
285
+ subagent_type: type ?? 'default',
286
+ description: args.description,
287
+ }, bodyPrint);
288
+ if (subStop.output)
289
+ bodyPrint(subStop.output + '\n');
270
290
  print(style.muted('(子代理结束)\n'));
271
291
  return lastText || '(子代理未给出文本结论)';
272
292
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/cli/run/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/cli/run/task.ts"],"names":[],"mappings":"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"}