@pentoshi/clai 4.8.4 → 4.9.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 (267) hide show
  1. package/README.md +69 -3
  2. package/dist/agent/finalize-gate.js +0 -9
  3. package/dist/agent/finalize-gate.js.map +1 -1
  4. package/dist/agent/plan-mode-reminders.js +5 -5
  5. package/dist/agent/plan-mode-reminders.js.map +1 -1
  6. package/dist/agent/plan-tool.d.ts +1 -0
  7. package/dist/agent/plan-tool.js +50 -21
  8. package/dist/agent/plan-tool.js.map +1 -1
  9. package/dist/agent/reliability-policy.d.ts +9 -0
  10. package/dist/agent/reliability-policy.js +36 -1
  11. package/dist/agent/reliability-policy.js.map +1 -1
  12. package/dist/agent/runner.d.ts +4 -0
  13. package/dist/agent/runner.js +193 -116
  14. package/dist/agent/runner.js.map +1 -1
  15. package/dist/agent/task-analyzer.d.ts +8 -18
  16. package/dist/agent/task-analyzer.js +75 -182
  17. package/dist/agent/task-analyzer.js.map +1 -1
  18. package/dist/agent/task-evidence.js +10 -0
  19. package/dist/agent/task-evidence.js.map +1 -1
  20. package/dist/agent/tool-call-parser.js +14 -13
  21. package/dist/agent/tool-call-parser.js.map +1 -1
  22. package/dist/app/adapters/current-agent-adapter.d.ts +5 -1
  23. package/dist/app/adapters/current-agent-adapter.js +2 -1
  24. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  25. package/dist/app/commands/catalog.js +5 -0
  26. package/dist/app/commands/catalog.js.map +1 -1
  27. package/dist/app/controllers/session-compact-helper.js +3 -6
  28. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  29. package/dist/app/ports/transcript-item.d.ts +4 -0
  30. package/dist/classic/app/ClassicApp.js +1 -1
  31. package/dist/classic/app/ClassicApp.js.map +1 -1
  32. package/dist/classic/app/action-handlers.js +4 -0
  33. package/dist/classic/app/action-handlers.js.map +1 -1
  34. package/dist/classic/app/app-wiring.js +1 -0
  35. package/dist/classic/app/app-wiring.js.map +1 -1
  36. package/dist/classic/app/wiring-lifecycle.js +1 -0
  37. package/dist/classic/app/wiring-lifecycle.js.map +1 -1
  38. package/dist/classic/blocks/compacted-lines.js +3 -0
  39. package/dist/classic/blocks/compacted-lines.js.map +1 -1
  40. package/dist/classic/blocks/thinking-lines.js +11 -2
  41. package/dist/classic/blocks/thinking-lines.js.map +1 -1
  42. package/dist/classic/bootstrap/start-classic.js +3 -0
  43. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  44. package/dist/classic/chrome/Composer.d.ts +6 -0
  45. package/dist/classic/chrome/Composer.js +2 -3
  46. package/dist/classic/chrome/Composer.js.map +1 -1
  47. package/dist/classic/chrome/composer-controller.d.ts +6 -1
  48. package/dist/classic/chrome/composer-controller.js +18 -8
  49. package/dist/classic/chrome/composer-controller.js.map +1 -1
  50. package/dist/classic/chrome/editor-view.d.ts +2 -1
  51. package/dist/classic/chrome/editor-view.js +1 -1
  52. package/dist/classic/chrome/editor-view.js.map +1 -1
  53. package/dist/classic/chrome/status-rows.js +3 -2
  54. package/dist/classic/chrome/status-rows.js.map +1 -1
  55. package/dist/classic/panels/TextEditorPanel.d.ts +3 -0
  56. package/dist/classic/panels/TextEditorPanel.js +7 -0
  57. package/dist/classic/panels/TextEditorPanel.js.map +1 -0
  58. package/dist/classic/panels/panel-controller.js +28 -1
  59. package/dist/classic/panels/panel-controller.js.map +1 -1
  60. package/dist/classic/panels/panel-effect.d.ts +3 -0
  61. package/dist/classic/panels/panel-effect.js.map +1 -1
  62. package/dist/classic/panels/panel-effects.js +3 -0
  63. package/dist/classic/panels/panel-effects.js.map +1 -1
  64. package/dist/classic/panels/panel-host.js +3 -0
  65. package/dist/classic/panels/panel-host.js.map +1 -1
  66. package/dist/classic/panels/panel-types.d.ts +2 -0
  67. package/dist/classic/panels/secret-panel.d.ts +1 -1
  68. package/dist/classic/panels/secret-panel.js +4 -2
  69. package/dist/classic/panels/secret-panel.js.map +1 -1
  70. package/dist/classic/panels/text-editor-panel.d.ts +33 -0
  71. package/dist/classic/panels/text-editor-panel.js +101 -0
  72. package/dist/classic/panels/text-editor-panel.js.map +1 -0
  73. package/dist/llm/adapters/anthropic-tools.d.ts +2 -1
  74. package/dist/llm/adapters/anthropic-tools.js +55 -4
  75. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  76. package/dist/llm/anthropic.js +1 -1
  77. package/dist/llm/anthropic.js.map +1 -1
  78. package/dist/llm/aws-mantle.js +2 -0
  79. package/dist/llm/aws-mantle.js.map +1 -1
  80. package/dist/llm/meta.js +62 -68
  81. package/dist/llm/meta.js.map +1 -1
  82. package/dist/llm/provider.js +7 -7
  83. package/dist/llm/request-plan.js +7 -2
  84. package/dist/llm/request-plan.js.map +1 -1
  85. package/dist/llm/tool-protocol.d.ts +1 -0
  86. package/dist/llm/tool-protocol.js +7 -0
  87. package/dist/llm/tool-protocol.js.map +1 -1
  88. package/dist/mcp/client.d.ts +27 -0
  89. package/dist/mcp/client.js +119 -0
  90. package/dist/mcp/client.js.map +1 -0
  91. package/dist/mcp/config-file.d.ts +35 -0
  92. package/dist/mcp/config-file.js +217 -0
  93. package/dist/mcp/config-file.js.map +1 -0
  94. package/dist/mcp/discovery.d.ts +4 -0
  95. package/dist/mcp/discovery.js +409 -0
  96. package/dist/mcp/discovery.js.map +1 -0
  97. package/dist/mcp/format.d.ts +17 -0
  98. package/dist/mcp/format.js +122 -0
  99. package/dist/mcp/format.js.map +1 -0
  100. package/dist/mcp/index.d.ts +15 -0
  101. package/dist/mcp/index.js +16 -0
  102. package/dist/mcp/index.js.map +1 -0
  103. package/dist/mcp/jsonrpc.d.ts +40 -0
  104. package/dist/mcp/jsonrpc.js +175 -0
  105. package/dist/mcp/jsonrpc.js.map +1 -0
  106. package/dist/mcp/manager.d.ts +36 -0
  107. package/dist/mcp/manager.js +300 -0
  108. package/dist/mcp/manager.js.map +1 -0
  109. package/dist/mcp/mentions.d.ts +9 -0
  110. package/dist/mcp/mentions.js +44 -0
  111. package/dist/mcp/mentions.js.map +1 -0
  112. package/dist/mcp/names.d.ts +15 -0
  113. package/dist/mcp/names.js +59 -0
  114. package/dist/mcp/names.js.map +1 -0
  115. package/dist/mcp/results.d.ts +6 -0
  116. package/dist/mcp/results.js +182 -0
  117. package/dist/mcp/results.js.map +1 -0
  118. package/dist/mcp/runtime.d.ts +107 -0
  119. package/dist/mcp/runtime.js +505 -0
  120. package/dist/mcp/runtime.js.map +1 -0
  121. package/dist/mcp/substitution.d.ts +13 -0
  122. package/dist/mcp/substitution.js +74 -0
  123. package/dist/mcp/substitution.js.map +1 -0
  124. package/dist/mcp/transport-http.d.ts +53 -0
  125. package/dist/mcp/transport-http.js +433 -0
  126. package/dist/mcp/transport-http.js.map +1 -0
  127. package/dist/mcp/transport-stdio.d.ts +39 -0
  128. package/dist/mcp/transport-stdio.js +268 -0
  129. package/dist/mcp/transport-stdio.js.map +1 -0
  130. package/dist/mcp/transport.d.ts +20 -0
  131. package/dist/mcp/transport.js +44 -0
  132. package/dist/mcp/transport.js.map +1 -0
  133. package/dist/mcp/types.d.ts +179 -0
  134. package/dist/mcp/types.js +30 -0
  135. package/dist/mcp/types.js.map +1 -0
  136. package/dist/mcp/validation.d.ts +16 -0
  137. package/dist/mcp/validation.js +222 -0
  138. package/dist/mcp/validation.js.map +1 -0
  139. package/dist/modes/agent.d.ts +2 -0
  140. package/dist/modes/agent.js.map +1 -1
  141. package/dist/noninteractive/start-noninteractive.js +4 -0
  142. package/dist/noninteractive/start-noninteractive.js.map +1 -1
  143. package/dist/prompts/embedded.js +2 -2
  144. package/dist/prompts/embedded.js.map +1 -1
  145. package/dist/prompts/index.d.ts +3 -0
  146. package/dist/prompts/index.js +70 -55
  147. package/dist/prompts/index.js.map +1 -1
  148. package/dist/prompts/system.agent.md +34 -10
  149. package/dist/prompts/system.ask.md +8 -0
  150. package/dist/safety/classifier.js +4 -0
  151. package/dist/safety/classifier.js.map +1 -1
  152. package/dist/store/logs.js +17 -6
  153. package/dist/store/logs.js.map +1 -1
  154. package/dist/store/plan.d.ts +2 -0
  155. package/dist/store/plan.js.map +1 -1
  156. package/dist/store/session-workspace.js +2 -1
  157. package/dist/store/session-workspace.js.map +1 -1
  158. package/dist/tools/definitions.js +18 -0
  159. package/dist/tools/definitions.js.map +1 -1
  160. package/dist/tools/external-tools.d.ts +30 -0
  161. package/dist/tools/external-tools.js +52 -0
  162. package/dist/tools/external-tools.js.map +1 -0
  163. package/dist/tools/registry.js +36 -5
  164. package/dist/tools/registry.js.map +1 -1
  165. package/dist/tui-v2/bootstrap/start-tui-v2.js +3 -0
  166. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  167. package/dist/tui-v2/components/completion/completion-menu.d.ts +4 -6
  168. package/dist/tui-v2/components/completion/completion-menu.js +34 -16
  169. package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
  170. package/dist/tui-v2/components/composer/composer-input-box.js +3 -1
  171. package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
  172. package/dist/tui-v2/components/modal/secret-modal.js +6 -4
  173. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  174. package/dist/tui-v2/components/modal/text-editor-modal.d.ts +19 -0
  175. package/dist/tui-v2/components/modal/text-editor-modal.js +85 -0
  176. package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -0
  177. package/dist/tui-v2/components/overlay/overlay-host.js +2 -1
  178. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  179. package/dist/tui-v2/components/transcript/compacted-row.js +12 -3
  180. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  181. package/dist/tui-v2/components/transcript/thinking-block.d.ts +9 -1
  182. package/dist/tui-v2/components/transcript/thinking-block.js +253 -49
  183. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  184. package/dist/tui-v2/components/transcript/thinking-presentation.d.ts +46 -0
  185. package/dist/tui-v2/components/transcript/thinking-presentation.js +84 -0
  186. package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -0
  187. package/dist/tui-v2/components/transcript/transcript-row.d.ts +2 -0
  188. package/dist/tui-v2/components/transcript/transcript-row.js +7 -2
  189. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  190. package/dist/tui-v2/components/transcript/transcript-view.js +195 -83
  191. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  192. package/dist/tui-v2/composer/composer-editor.js +54 -39
  193. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  194. package/dist/tui-v2/composer/composer-highlight.d.ts +20 -0
  195. package/dist/tui-v2/composer/composer-highlight.js +97 -0
  196. package/dist/tui-v2/composer/composer-highlight.js.map +1 -0
  197. package/dist/tui-v2/composer/textarea-keybindings.d.ts +5 -0
  198. package/dist/tui-v2/composer/textarea-keybindings.js +12 -0
  199. package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
  200. package/dist/ui/mentions.js +4 -1
  201. package/dist/ui/mentions.js.map +1 -1
  202. package/dist/ui-core/actions/action-id.d.ts +1 -1
  203. package/dist/ui-core/actions/action-id.js +1 -0
  204. package/dist/ui-core/actions/action-id.js.map +1 -1
  205. package/dist/ui-core/actions/format-shortcuts.js +5 -0
  206. package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
  207. package/dist/ui-core/actions/keymap.js +3 -0
  208. package/dist/ui-core/actions/keymap.js.map +1 -1
  209. package/dist/ui-core/bootstrap/composition-root.d.ts +3 -0
  210. package/dist/ui-core/bootstrap/composition-root.js +5 -1
  211. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  212. package/dist/ui-core/commands/command-handlers.js +2 -0
  213. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  214. package/dist/ui-core/commands/mcp-commands.d.ts +3 -0
  215. package/dist/ui-core/commands/mcp-commands.js +310 -0
  216. package/dist/ui-core/commands/mcp-commands.js.map +1 -0
  217. package/dist/ui-core/commands/picker-commands.d.ts +1 -1
  218. package/dist/ui-core/commands/picker-commands.js +2 -2
  219. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  220. package/dist/ui-core/commands/session-commands.js +1 -0
  221. package/dist/ui-core/commands/session-commands.js.map +1 -1
  222. package/dist/ui-core/composer/completion-viewport.d.ts +40 -0
  223. package/dist/ui-core/composer/completion-viewport.js +105 -0
  224. package/dist/ui-core/composer/completion-viewport.js.map +1 -0
  225. package/dist/ui-core/controllers/overlay-controller.d.ts +24 -3
  226. package/dist/ui-core/controllers/overlay-controller.js +35 -4
  227. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  228. package/dist/ui-core/rendering/artifact-pager-source.d.ts +1 -0
  229. package/dist/ui-core/rendering/artifact-pager-source.js +67 -1
  230. package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
  231. package/dist/ui-core/rendering/duration.d.ts +3 -1
  232. package/dist/ui-core/rendering/duration.js +14 -0
  233. package/dist/ui-core/rendering/duration.js.map +1 -1
  234. package/dist/ui-core/rendering/exit-summary.js +4 -4
  235. package/dist/ui-core/rendering/format-help.js +4 -0
  236. package/dist/ui-core/rendering/format-help.js.map +1 -1
  237. package/dist/ui-core/rendering/intro-header.js +4 -4
  238. package/dist/ui-core/rendering/open-tool-output.js +90 -32
  239. package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
  240. package/dist/ui-core/rendering/theme.d.ts +5 -3
  241. package/dist/ui-core/rendering/theme.js +8 -4
  242. package/dist/ui-core/rendering/theme.js.map +1 -1
  243. package/dist/ui-core/rendering/wordmark.d.ts +2 -2
  244. package/dist/ui-core/rendering/wordmark.js +62 -62
  245. package/dist/ui-core/rendering/wordmark.js.map +1 -1
  246. package/dist/ui-core/state/thinking-copy.d.ts +13 -0
  247. package/dist/ui-core/state/thinking-copy.js +33 -0
  248. package/dist/ui-core/state/thinking-copy.js.map +1 -0
  249. package/dist/ui-core/state/transcript-hydrate.js +20 -0
  250. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  251. package/dist/ui-core/state/transcript-reducer.js +140 -62
  252. package/dist/ui-core/state/transcript-reducer.js.map +1 -1
  253. package/dist/ui-core/state/transcript-store.d.ts +10 -0
  254. package/dist/ui-core/state/transcript-store.js +235 -31
  255. package/dist/ui-core/state/transcript-store.js.map +1 -1
  256. package/dist/ui-core/state/transcript-types.d.ts +10 -0
  257. package/dist/ui-core/state/transcript-types.js +1 -0
  258. package/dist/ui-core/state/transcript-types.js.map +1 -1
  259. package/dist/ui-core/state/transcript-window.d.ts +32 -0
  260. package/dist/ui-core/state/transcript-window.js +63 -0
  261. package/dist/ui-core/state/transcript-window.js.map +1 -0
  262. package/dist/version.generated.d.ts +2 -2
  263. package/dist/version.generated.js +2 -2
  264. package/package.json +1 -1
  265. package/dist/tui-v2/composer/skill-highlight.d.ts +0 -3
  266. package/dist/tui-v2/composer/skill-highlight.js +0 -63
  267. package/dist/tui-v2/composer/skill-highlight.js.map +0 -1
package/README.md CHANGED
@@ -21,6 +21,7 @@ Two things make it practical for everyday use:
21
21
  - **Durable plans.** `plan.create` / `task.update` drive a live checklist that survives context compaction and reloads with `/history` — the agent works task-by-task and won't fake completion.
22
22
  - **Persistent interactive terminals.** Conversation-owned PTY or pipe sessions keep REPLs such as Python, Metasploit, Meterpreter, database consoles, and debuggers open across model turns. The agent can send follow-up input, read incremental output, resize, interrupt, and close them without losing state.
23
23
  - **Native + text tool calling.** Uses provider-native function calling where available, with a text-fence fallback (`toolCalling: auto|native|text`).
24
+ - **MCP, explicitly controlled.** Discovers local stdio and remote HTTP/SSE servers from project and compatible inherited configs. MCP tools are off by default; `/mcp` inspects and adds servers, and picking one drops an editable `@mcp:<server>` token into your prompt — stack as many as you need, delete one with backspace, or switch the whole session on with `/mcp all`.
24
25
  - **Safety gate you control.** Every action is classified safe / confirm / block; deletes always confirm with a preview; destructive patterns are blocked.
25
26
 
26
27
  ---
@@ -435,7 +436,7 @@ You own authorization; clai still gates risk on every action:
435
436
 
436
437
  ## Terminal UI
437
438
 
438
- The old line REPL has been removed — there are only full surfaces now. An OpenTUI full-screen console is selected for a sufficiently large interactive POSIX terminal. The classic Ink UI is selected on Windows, on smaller terminals, or with `--classic`; non-TTY prompts use the noninteractive stream renderer. In the classic UI, mouse reporting is on by default so wheel swipes scroll the live tail and panels instead of being misread as prompt-history keys; native text selection stays one modifier away (Shift/Option/Fn), and `CLAI_CLASSIC_MOUSE=0` turns mouse reporting off. The interactive surfaces provide streaming chat, nested tool cards (including `tool.batch` sub-calls), file diffs, a live plan pane, pickers, history, and secure masked key prompts.
439
+ The old line REPL has been removed — there are only full surfaces now. An OpenTUI full-screen console is selected for a sufficiently large interactive POSIX terminal. The classic Ink UI is selected on Windows, on smaller terminals, or with `--classic`; non-TTY prompts use the noninteractive stream renderer. In the classic UI, mouse reporting is on by default so wheel swipes scroll the live tail and panels instead of being misread as prompt-history keys; native text selection stays one modifier away (Shift/Option/Fn), and `CLAI_CLASSIC_MOUSE=0` turns mouse reporting off. The interactive surfaces provide streaming chat, nested tool cards (including `tool.batch` sub-calls), file diffs, a live plan pane, pickers, history, and secure masked key prompts. MCP tools stay off by default; picking a server with `/mcp` inserts an aqua `@mcp:<server>` token into the prompt you are typing — several tokens can coexist, backspace deletes one like any other text, and `all` / `off` add no token. MCP counts never appear in status bars.
439
440
 
440
441
  | Action | Key |
441
442
  |--------|-----|
@@ -446,10 +447,14 @@ The old line REPL has been removed — there are only full surfaces now. An Open
446
447
  | Plan pane / plan detail | `Ctrl+H` / `Ctrl+P` |
447
448
  | Background jobs | `Ctrl+J` |
448
449
  | Expand thinking / tool output | `Ctrl+T` / `Ctrl+O` |
450
+ | Copy the focused thinking block | `c` |
449
451
  | Search transcript | `Ctrl+R` |
450
452
  | Copy selection | `Ctrl+Shift+C` |
451
453
  | Commands / file mentions | `/` · `@` |
452
- | Help / shortcuts | `Ctrl+G` |
454
+ | MCP servers / project config | `/mcp` |
455
+ | Command help / shortcut reference | `Ctrl+G` / `/shortcuts` |
456
+
457
+ Completed thinking collapses to one clickable `✦ Thought for 3.2s` line; clicking it (or `Ctrl+T`) opens the reasoning in a card that scrolls internally when the reasoning is long. Clicking a card focuses it — the border turns violet and the wheel scrolls that card instead of the chat, even at its first and last row — while an unfocused card dims, shows `click to focus`, and leaves the wheel to the transcript. Moving the pointer out or clicking elsewhere releases it, and `c` copies the focused block's full reasoning and then releases it.
453
458
 
454
459
  Tool cards show the command/input clearly, with a live elapsed timer next to the command name while they run (the final duration stays visible afterwards), and keep long scan tails in an expandable OUTPUT pager (search, copy, export). File writes show a diff preview. When the agent finishes each prompt — naturally or aborted — a `✻ Worked for 1m16s` row is appended under the response, and it is restored when the session is resumed from `/history`. The status line names what the agent is actually doing right now — `responding` while streaming, `compacting` during auto or manual context compaction — instead of holding the last tool name. Prompts typed while the agent is busy are queued and run automatically in order once the turn settles; the queue pauses only when the previous turn was cancelled, errored, or stopped by the loop guard. Compaction cards preserve session memory without dropping the plan, and `/history` restores full sessions — prompts, tool results, and the matching plan — even after an abort or autosave.
455
460
 
@@ -468,6 +473,7 @@ On exit, both interactive surfaces leave the alternate screen and print a sign-o
468
473
  | `/effort [level]` · `/reasoning [level]` | Thinking / reasoning effort |
469
474
  | `/freeonly [on\|off]` · `/fallback [on\|off]` | Free-only filter · cross-provider fallback |
470
475
  | `/search [provider]` · `/search-provider` | Choose web-search backend |
476
+ | `/mcp [server\|all\|off\|list\|status\|tools\|locations\|refresh]` | Browse and select MCP servers; add/reconnect servers and inspect project/inherited configuration |
471
477
  | `/scope [show\|add\|new\|clear]` | Engagement scope |
472
478
  | `/output [last\|id\|list]` | Open full tool output (also `Ctrl+O`) |
473
479
  | `/jobs` | Background jobs (also `Ctrl+J`) |
@@ -524,6 +530,65 @@ enabled with `CLAI_SHOW_THINKING=1`.
524
530
 
525
531
  ---
526
532
 
533
+ ## Model Context Protocol (MCP)
534
+
535
+ clai can discover and call tools from local or remote MCP servers. MCP tools are **off by default** and are not sent to the model until a prompt mentions a server or the session is switched on with `/mcp all`. Run `/mcp` to discover configured servers and open the shared picker in Classic or OpenTUI. Picking a server inserts an aqua `@mcp:<server>` token into the composer text, exactly like a `skill:` mention: it is ordinary editable text, so backspace removes it, and several tokens select several servers for that prompt. `all` and `off` insert no token.
536
+
537
+ ### Project configuration
538
+
539
+ The native project file is `.clai/mcp.json`. It accepts JSON or JSONC and the common `servers` / `mcpServers` shapes. A minimal configuration can mix stdio and Streamable HTTP servers:
540
+
541
+ ```json
542
+ {
543
+ "servers": {
544
+ "local": {
545
+ "command": "my-mcp-server",
546
+ "args": ["--root", "${workspaceFolder}"],
547
+ "env": {
548
+ "MCP_TOKEN": "${env:MCP_TOKEN}"
549
+ }
550
+ },
551
+ "remote": {
552
+ "url": "https://mcp.example.com/mcp",
553
+ "headers": {
554
+ "Authorization": "Bearer ${env:MCP_TOKEN}"
555
+ }
556
+ }
557
+ }
558
+ }
559
+ ```
560
+
561
+ A `command` entry uses stdio. A `url` entry uses Streamable HTTP by default; set `"type": "sse"` for a legacy SSE endpoint. `${workspaceFolder}`, `${env:NAME}` / `${env.NAME}`, and compatible `${input:name}` substitutions are resolved at discovery time, and resolved secret values are redacted from diagnostics.
562
+
563
+ The picker can add one server without hand-editing the file: choose **+ add MCP server** and a full multiline editor opens — visible caret, arrow-key and word/line navigation, mid-text edits, selection, and multi-line paste. `Enter` inserts a newline, `Ctrl+S` saves, `Esc` cancels. If the JSON does not validate, the editor reopens with your text intact and the parse error in the header, so a long paste is never retyped. You can also supply the fragment inline:
564
+
565
+ ```text
566
+ /mcp add {"name":"docs","command":"docs-server","args":[]}
567
+ ```
568
+
569
+ The add flow accepts one named object or a one-entry `servers` / `mcpServers` fragment, validates it, then atomically merges it into the current project `.clai/mcp.json` with deterministic server ordering and restrictive permissions. Existing unrelated metadata is preserved.
570
+
571
+ clai also inherits compatible configuration from `CLAI_MCP_CONFIG` (an OS-delimited file list), ancestor `.clai/mcp.json` and `.mcp.json` files, repository `.github/mcp.json` and `.vscode/mcp.json`, clai user config, and supported Copilot, Claude, and VS Code user locations. Higher-precedence definitions deterministically shadow inherited servers with the same name. `/mcp locations` shows the exact project target and inherited paths for the current workspace.
572
+
573
+ ### Select and inspect servers
574
+
575
+ ```text
576
+ /mcp # picker: add, off, all, or one server
577
+ /mcp docs # drop @mcp:docs into the prompt (repeat for more servers)
578
+ /mcp all # expose tools from every live server
579
+ /mcp off # default: expose no MCP tools
580
+ /mcp list # sources, transports, state, selection, and catalog
581
+ /mcp status # live, failed, and invalid server details
582
+ /mcp tools [server] # canonical mcp.<server>.<tool> names
583
+ /mcp locations # project and inherited configuration paths
584
+ /mcp refresh # rediscover configs and live tools
585
+ /mcp reconnect docs # restart one server connection
586
+ ```
587
+
588
+ Static built-in tools always remain first; selected MCP definitions are appended in deterministic order as `mcp.<server>.<tool>`. A tool explicitly annotated read-only can run under the normal safe/parallel policy. Unmarked, mutating, or destructive MCP tools require the usual confirmation, and ask mode exposes only safe tools. Server descriptions and results are treated as untrusted data, secrets are redacted, response sizes and lifecycles are bounded, and HTTP credentials are never forwarded through redirects.
589
+
590
+ ---
591
+
527
592
  ## Built-in tools
528
593
 
529
594
  | Group | Tools |
@@ -575,7 +640,7 @@ Search-provider keys are multi-key and rotate just like model providers.
575
640
 
576
641
  ## Per-project context
577
642
 
578
- Drop a `.clai/context.md` in a repo and its contents are injected every turn — lab topology, in-scope hosts, stack assumptions, coding conventions, or anything the agent should always know for that project.
643
+ Drop a `.clai/context.md` in a repo and its contents are injected every turn — lab topology, in-scope hosts, stack assumptions, coding conventions, or anything the agent should always know for that project. Project-scoped MCP servers belong in `.clai/mcp.json`; use `/mcp locations` to see that target plus every inherited compatible source.
579
644
 
580
645
  ---
581
646
 
@@ -647,6 +712,7 @@ clai/
647
712
  │ ├─ index.ts # CLI entry + subcommands
648
713
  │ ├─ agent/ # loop, plans, compaction, resume orientation, tool parsing
649
714
  │ ├─ llm/ # 18 providers, streaming, native tools, key rotation + fallback
715
+ │ ├─ mcp/ # discovery, validation, transports, lifecycle, and tool dispatch
650
716
  │ ├─ tools/ # fs, shell, net, http, web, pentest, batch, plan
651
717
  │ ├─ safety/ # risk classifier + engagement (scope) policy
652
718
  │ ├─ store/ # config, history, keys, plans, scope
@@ -84,15 +84,6 @@ export function chooseFinalizeRecovery(input) {
84
84
  cleaned.trim().length > 0) {
85
85
  return recoveryForFailedProbe();
86
86
  }
87
- if (input.buildLike &&
88
- !input.pentestLike &&
89
- !input.pentestSession &&
90
- input.sawFailedLocalHttpProbe &&
91
- !input.sawLocalHttpProbe &&
92
- budgetRemaining(recovery, "failedProbe") &&
93
- cleaned.trim().length > 0) {
94
- return recoveryForFailedProbe();
95
- }
96
87
  if ((input.pentestLike || input.pentestSession) &&
97
88
  budgetRemaining(recovery, "shallowPentest") &&
98
89
  looksLikeShallowPentestReport(cleaned, {
@@ -1 +1 @@
1
- {"version":3,"file":"finalize-gate.js","sourceRoot":"","sources":["../../src/agent/finalize-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finalize-gate.js","sourceRoot":"","sources":["../../src/agent/finalize-gate.ts"],"names":[],"mappings":"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"}
@@ -47,11 +47,11 @@ export function planModeResearchReminder(opts) {
47
47
  ? "workspace/stack context, constraints, and architecture facts"
48
48
  : "context and discovery that will improve the plan";
49
49
  return (`\n\n[plan-mode reminder · step ${step}] ` +
50
- `This is only a reminder do NOT stop, limit, or cut research short because of this note. ` +
51
- `Continue and take as much time as you need. Do not miss important ${domain} by hurrying. ` +
52
- `Keep gathering until you honestly believe nothing material is left to discover for a strong plan. ` +
53
- `Plan mode’s deliverable is still one comprehensive plan.create (goal, evidence-backed detail, ordered tasks for post-accept work). ` +
54
- `When research is truly complete, present the plan and await accept put remaining implement/test/exploit work in tasks.`);
50
+ `This is a calibration note, not a stop order or a demand to keep collecting data. ` +
51
+ `Reconcile what you know against the requested outcome, material ${domain}, and the decisions the plan must make. ` +
52
+ `Continue research where an unresolved uncertainty could change scope, architecture, priority, safety, or verification; avoid repeating low-yield work once those decisions are supported. ` +
53
+ `Represent important unresolved or untested surfaces explicitly in the plan rather than hiding them or researching forever. ` +
54
+ `When material coverage is mapped and plan-changing uncertainty is resolved, deliver one comprehensive plan.create with evidence, assumptions, risks, ordered outcome tasks, branch conditions, and verification, then await acceptance.`);
55
55
  }
56
56
  /** Append reminder suffix when the gate passes; otherwise return content unchanged. */
57
57
  export function maybeAppendPlanModeReminder(toolContent, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"plan-mode-reminders.js","sourceRoot":"","sources":["../../src/agent/plan-mode-reminders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAa/D,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,wBAAwB;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC,GAAG,2BAA2B,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAsB;IACjE,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA0B;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,KAAK,SAAS;QACzB,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,kDAAkD,CAAC;IAE3D,OAAO,CACL,kCAAkC,IAAI,IAAI;QAC1C,4FAA4F;QAC5F,qEAAqE,MAAM,gBAAgB;QAC3F,oGAAoG;QACpG,qIAAqI;QACrI,0HAA0H,CAC3H,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,IAA6C;IAE7C,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,wBAAwB,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,cAAc;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"plan-mode-reminders.js","sourceRoot":"","sources":["../../src/agent/plan-mode-reminders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAa/D,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,wBAAwB;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC,GAAG,2BAA2B,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAsB;IACjE,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA0B;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,KAAK,SAAS;QACzB,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,kDAAkD,CAAC;IAE3D,OAAO,CACL,kCAAkC,IAAI,IAAI;QAC1C,oFAAoF;QACpF,mEAAmE,MAAM,0CAA0C;QACnH,4LAA4L;QAC5L,6HAA6H;QAC7H,yOAAyO,CAC1O,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,IAA6C;IAE7C,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,wBAAwB,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,cAAc;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC"}
@@ -30,6 +30,7 @@ export interface NormalizedPlanTask {
30
30
  dependencies: string[];
31
31
  dependenciesSpecified: boolean;
32
32
  resourceLocks: string[];
33
+ acceptanceCriteria?: string | undefined;
33
34
  }
34
35
  /** Full entries including model-supplied id/name aliases (X3). */
35
36
  export declare function normalizePlanTaskEntries(args: Record<string, unknown>): NormalizedPlanTask[];
@@ -276,6 +276,19 @@ export function normalizePlanTaskEntries(args) {
276
276
  const stringArray = (value) => Array.isArray(value)
277
277
  ? [...new Set(value.filter((item) => typeof item === "string").map((item) => item.trim()).filter(Boolean))]
278
278
  : [];
279
+ const rawAcceptance = object.acceptance ??
280
+ object.acceptanceCriteria ??
281
+ object.successCriteria ??
282
+ object.verify;
283
+ const acceptanceCriteria = typeof rawAcceptance === "string"
284
+ ? rawAcceptance.trim()
285
+ : Array.isArray(rawAcceptance)
286
+ ? rawAcceptance
287
+ .filter((item) => typeof item === "string")
288
+ .map((item) => item.trim())
289
+ .filter(Boolean)
290
+ .join("; ")
291
+ : "";
279
292
  return {
280
293
  title,
281
294
  aliases: [...new Set(aliases)],
@@ -283,6 +296,7 @@ export function normalizePlanTaskEntries(args) {
283
296
  dependenciesSpecified: Object.prototype.hasOwnProperty.call(object, "dependencies") ||
284
297
  Object.prototype.hasOwnProperty.call(object, "dependsOn"),
285
298
  resourceLocks: stringArray(object.resourceLocks ?? object.resources),
299
+ ...(acceptanceCriteria ? { acceptanceCriteria } : {}),
286
300
  };
287
301
  })
288
302
  .filter((x) => Boolean(x));
@@ -356,11 +370,14 @@ export function planContextMessage(plan, approved) {
356
370
  const evidenceHint = t.evidence?.successWorkCount
357
371
  ? ` [evidence: ${t.evidence.successWorkCount} successful tool${t.evidence.successWorkCount === 1 ? "" : "s"}${t.evidence.lastOkTool ? `; last ${t.evidence.lastOkTool}` : ""}]`
358
372
  : "";
373
+ const acceptanceHint = t.acceptanceCriteria?.trim()
374
+ ? ` [acceptance: ${t.acceptanceCriteria.trim()}]`
375
+ : "";
359
376
  const hierarchyHint = t.parentTaskId ? ` [child of ${t.parentTaskId}]` : "";
360
377
  const jobHint = t.jobId
361
378
  ? ` [responder job=${t.jobId}${t.processId ? ` pid=${t.processId}` : ""}]`
362
379
  : "";
363
- lines.push(` ${i + 1}. [${t.id}] (${t.state}) ${t.title}${hierarchyHint}${jobHint}${aliasHint}${dependencyHint}${resourceHint}${evidenceHint}`);
380
+ lines.push(` ${i + 1}. [${t.id}] (${t.state}) ${t.title}${hierarchyHint}${jobHint}${aliasHint}${dependencyHint}${resourceHint}${acceptanceHint}${evidenceHint}`);
364
381
  });
365
382
  lines.push("task.update taskId MUST be t1, t2, … from this list (or a listed alias). Use task.add for newly discovered work; it is placed before unfinished report creation. Use task.move with position/beforeTaskId/afterTaskId to rearrange work without changing ids or evidence. Responder-owned job tasks advance automatically; never task.update them. After analyzing a delivered Responder result, job.read its job or notification before finalizing.");
366
383
  if (plan.meta?.projectRoot) {
@@ -396,24 +413,26 @@ export function planContextMessage(plan, approved) {
396
413
  "compaction, is re-injected here every turn, and is the CURRENT source of truth for what is done vs pending. " +
397
414
  "It OVERRIDES any 'current state', 'remaining work', 'ready to…', or completion wording in the compacted memory " +
398
415
  "summary; when the summary and these task states disagree, trust these task states.");
399
- lines.push("Let the task states drive your next action and next reads: open the in_progress or failed task, read only its " +
400
- "own artifacts plus the specific earlier-task outputs you need to confirm what is already done, then continue " +
401
- "strictly task-by-task from there. Do NOT re-scan the whole project or read unrelated files to rediscover " +
402
- "status. You are advised to work through every task, but you may stop without finishing all of them when " +
403
- "genuinely blocked or when the situation requires it report the remaining tasks honestly instead of " +
404
- "forcing completion.");
416
+ lines.push("Let task states identify the current foreground outcome and avoid rediscovering settled work. Read that task's " +
417
+ "artifacts plus only the prior evidence needed for its dependencies. One foreground task stays in_progress for " +
418
+ "state integrity, but the plan is a living outcome map rather than an inflexible script: if evidence exposes " +
419
+ "required work or invalidates priority, add the discovery, return the current task to pending when necessary, " +
420
+ "and deliberately open the new highest-priority ready task. Preserve completed evidence and never re-scan the " +
421
+ "whole project merely to recover status. You may stop with open tasks only when genuinely blocked, told to stop, " +
422
+ "or waiting on declared external work; report the exact remainder honestly.");
405
423
  }
406
- lines.push("Flow: task.update in_progress → real work → WAIT for and READ every tool result for that task → " +
407
- "only then mark done when the task outcome is satisfied immediately open the next task. " +
408
- "Never mark done right after firing a foreground command on the hope it will succeed analyze the actual output first. " +
409
- "A durable background launch creates a Responder-owned child task: launch high-value slow enumeration/fuzzing early, continue independent fast work, and never busy-poll or start a duplicate. " +
410
- "If only Responder-owned child tasks remain, yield honestly; Responder will inject the durable completion and wake the session without forcing an empty turn. " +
411
- "Durable evidence shown beside a task survives resume; use it to close that task rather than repeating already-confirmed work. " +
412
- "Independent read-only lookups may parallelize within a task. " +
413
- "If a tool fails: mark failed or stay in progress, fix, retry until the task is truly done. " +
414
- "For software builds: run automated checks (typecheck/build/tests when applicable) then live/runtime proof. " +
415
- "For run/verify: prove runtime (shell.start, ready tail, LISTEN, or localhost GET), leave server running, final message includes URL, port, and job id. " +
416
- "Do not re-open done tasks. If mid-task evidence shows the plan is wrong, adapt (fix root cause; for pentest, revise plan with completed tasks preserved).");
424
+ lines.push("Flow: task.update in_progress → pursue the task's outcome using the evidence-appropriate method → WAIT for and READ every result → " +
425
+ "verify its acceptance evidence → mark done only when the outcome holds → open the next ready task. " +
426
+ "A launched command is not evidence of completion, and one successful path may not cover the task's relevant edge, integration, or regression surface. " +
427
+ "Capture unrelated or newly required discoveries with task.add; do not silently broaden scope or discard them. " +
428
+ "A durable background launch creates a Responder-owned child task: launch high-value slow work early only when independent work remains, and never busy-poll or duplicate it. " +
429
+ "If only Responder-owned child tasks remain, yield honestly; Responder will inject the durable completion. " +
430
+ "Durable evidence beside a task survives resume; reuse it rather than repeating confirmed work. " +
431
+ "Independent read-only lookups may parallelize when their results do not depend on each other. " +
432
+ "If a tool fails, interpret why, revise the hypothesis or environment, and retry with a materially improved approach instead of ritual repetition. " +
433
+ "Before finalizing, reconcile every requested acceptance criterion, task, affected surface, and material residual uncertainty. " +
434
+ "For software, use applicable automated and runtime/integration proof. For security, use remote target evidence and explicit attack-surface residuals. " +
435
+ "Do not re-open done tasks.");
417
436
  }
418
437
  else {
419
438
  lines.push("This plan is NOT yet approved — do not execute tasks (no scaffold/write/install/exploit). " +
@@ -591,6 +610,9 @@ export async function handlePlanTool(call, session, ctx) {
591
610
  const locks = taskEntries[i]?.resourceLocks ?? [];
592
611
  if (locks.length)
593
612
  plan.tasks[i].resourceLocks = locks;
613
+ const acceptanceCriteria = taskEntries[i]?.acceptanceCriteria;
614
+ if (acceptanceCriteria)
615
+ plan.tasks[i].acceptanceCriteria = acceptanceCriteria;
594
616
  }
595
617
  for (let i = 0; i < plan.tasks.length; i++) {
596
618
  const rawDependencies = taskEntries[i]?.dependencies ?? [];
@@ -614,6 +636,7 @@ export async function handlePlanTool(call, session, ctx) {
614
636
  id: match.id,
615
637
  state: match.state,
616
638
  note: match.note,
639
+ acceptanceCriteria: task.acceptanceCriteria ?? match.acceptanceCriteria,
617
640
  evidence: match.evidence,
618
641
  parentTaskId: match.parentTaskId,
619
642
  jobId: match.jobId,
@@ -993,6 +1016,11 @@ export async function handlePlanTool(call, session, ctx) {
993
1016
  title,
994
1017
  state: "pending",
995
1018
  note: typeof call.args.note === "string" ? call.args.note : undefined,
1019
+ acceptanceCriteria: typeof call.args.acceptanceCriteria === "string"
1020
+ ? call.args.acceptanceCriteria.trim()
1021
+ : typeof call.args.acceptance === "string"
1022
+ ? call.args.acceptance.trim()
1023
+ : undefined,
996
1024
  aliases: [slugifyTaskId(title)].filter(Boolean),
997
1025
  dependencies,
998
1026
  resourceLocks: stringArray(call.args.resourceLocks ?? call.args.resources),
@@ -1307,9 +1335,10 @@ export async function handlePlanTool(call, session, ctx) {
1307
1335
  }
1308
1336
  else if (stateRaw === "in_progress") {
1309
1337
  modelNote =
1310
- `Task [${taskId}] is now in_progress. Do ONLY this task's work, wait for tool results, ` +
1311
- `and mark done only when you are satisfied the results prove success. ` +
1312
- `Then task.update {taskId:"${taskId}", state:"done"}. Do not open or work on later tasks yet.`;
1338
+ `Task [${taskId}] is now in_progress and owns the foreground outcome. Choose the method from current evidence, ` +
1339
+ `read each result, and keep working until the task's acceptance evidence holds. Capture newly discovered required ` +
1340
+ `work with task.add. If a discovery must preempt this task, move [${taskId}] back to pending before opening the ` +
1341
+ `higher-priority task; otherwise preserve focus and avoid starting unrelated later work. Mark done only after verification.`;
1313
1342
  }
1314
1343
  else if (stateRaw === "pending") {
1315
1344
  modelNote =
@@ -1 +1 @@
1
- {"version":3,"file":"plan-tool.js","sourceRoot":"","sources":["../../src/agent/plan-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-tool.js","sourceRoot":"","sources":["../../src/agent/plan-tool.ts"],"names":[],"mappings":"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"}