@namzu/cli 29.1.0 → 32.0.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 (311) hide show
  1. package/CHANGELOG.md +296 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +5 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/acp.d.ts +20 -2
  6. package/dist/commands/acp.d.ts.map +1 -1
  7. package/dist/commands/acp.js +42 -5
  8. package/dist/commands/acp.js.map +1 -1
  9. package/dist/commands/drain.d.ts.map +1 -1
  10. package/dist/commands/drain.js +2 -1
  11. package/dist/commands/drain.js.map +1 -1
  12. package/dist/commands/exec-json.d.ts.map +1 -1
  13. package/dist/commands/exec-json.js +24 -1
  14. package/dist/commands/exec-json.js.map +1 -1
  15. package/dist/commands/exec.d.ts.map +1 -1
  16. package/dist/commands/exec.js +5 -1
  17. package/dist/commands/exec.js.map +1 -1
  18. package/dist/commands/prior-messages.d.ts.map +1 -1
  19. package/dist/commands/prior-messages.js +42 -2
  20. package/dist/commands/prior-messages.js.map +1 -1
  21. package/dist/commands/schedule.d.ts.map +1 -1
  22. package/dist/commands/schedule.js +7 -5
  23. package/dist/commands/schedule.js.map +1 -1
  24. package/dist/config/composer-triggers.d.ts +41 -0
  25. package/dist/config/composer-triggers.d.ts.map +1 -0
  26. package/dist/config/composer-triggers.js +80 -0
  27. package/dist/config/composer-triggers.js.map +1 -0
  28. package/dist/config/load.d.ts.map +1 -1
  29. package/dist/config/load.js +58 -0
  30. package/dist/config/load.js.map +1 -1
  31. package/dist/config/schema.d.ts +34 -0
  32. package/dist/config/schema.d.ts.map +1 -1
  33. package/dist/config/schema.js.map +1 -1
  34. package/dist/context/doctrine.d.ts +3 -3
  35. package/dist/context/doctrine.d.ts.map +1 -1
  36. package/dist/context/doctrine.js +3 -3
  37. package/dist/context/doctrine.js.map +1 -1
  38. package/dist/context/environment.d.ts +26 -3
  39. package/dist/context/environment.d.ts.map +1 -1
  40. package/dist/context/environment.js +68 -9
  41. package/dist/context/environment.js.map +1 -1
  42. package/dist/context/runtime-message.d.ts.map +1 -1
  43. package/dist/context/runtime-message.js +4 -0
  44. package/dist/context/runtime-message.js.map +1 -1
  45. package/dist/integrations/mcp/servers.d.ts +72 -5
  46. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  47. package/dist/integrations/mcp/servers.js +144 -23
  48. package/dist/integrations/mcp/servers.js.map +1 -1
  49. package/dist/integrations/notifications/desktop.d.ts +2 -0
  50. package/dist/integrations/notifications/desktop.d.ts.map +1 -1
  51. package/dist/integrations/notifications/desktop.js +6 -5
  52. package/dist/integrations/notifications/desktop.js.map +1 -1
  53. package/dist/integrations/plugins/runtime.d.ts +10 -2
  54. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  55. package/dist/integrations/plugins/runtime.js +16 -29
  56. package/dist/integrations/plugins/runtime.js.map +1 -1
  57. package/dist/integrations/providers/harness-credentials.d.ts +9 -4
  58. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
  59. package/dist/integrations/providers/harness-credentials.js +16 -8
  60. package/dist/integrations/providers/harness-credentials.js.map +1 -1
  61. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  62. package/dist/integrations/resident/session-step.js +2 -1
  63. package/dist/integrations/resident/session-step.js.map +1 -1
  64. package/dist/integrations/sessions/store.d.ts.map +1 -1
  65. package/dist/integrations/sessions/store.js +20 -2
  66. package/dist/integrations/sessions/store.js.map +1 -1
  67. package/dist/integrations/subagents/NamzuCliAgent.d.ts +8 -0
  68. package/dist/integrations/subagents/NamzuCliAgent.d.ts.map +1 -0
  69. package/dist/integrations/subagents/NamzuCliAgent.js +9 -0
  70. package/dist/integrations/subagents/NamzuCliAgent.js.map +1 -0
  71. package/dist/integrations/subagents/runtime.d.ts +5 -4
  72. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  73. package/dist/integrations/subagents/runtime.js +46 -11
  74. package/dist/integrations/subagents/runtime.js.map +1 -1
  75. package/dist/integrations/web/open-url.d.ts +24 -0
  76. package/dist/integrations/web/open-url.d.ts.map +1 -0
  77. package/dist/integrations/web/open-url.js +73 -0
  78. package/dist/integrations/web/open-url.js.map +1 -0
  79. package/dist/integrations/web/search.d.ts.map +1 -1
  80. package/dist/integrations/web/search.js +8 -6
  81. package/dist/integrations/web/search.js.map +1 -1
  82. package/dist/permissions/rules.d.ts +5 -1
  83. package/dist/permissions/rules.d.ts.map +1 -1
  84. package/dist/permissions/rules.js +85 -3
  85. package/dist/permissions/rules.js.map +1 -1
  86. package/dist/schedule/build.d.ts +26 -2
  87. package/dist/schedule/build.d.ts.map +1 -1
  88. package/dist/schedule/build.js +139 -20
  89. package/dist/schedule/build.js.map +1 -1
  90. package/dist/schedule/changes.d.ts +6 -0
  91. package/dist/schedule/changes.d.ts.map +1 -1
  92. package/dist/schedule/changes.js +23 -0
  93. package/dist/schedule/changes.js.map +1 -1
  94. package/dist/schedule/commands/add.d.ts +1 -1
  95. package/dist/schedule/commands/add.d.ts.map +1 -1
  96. package/dist/schedule/commands/add.js +188 -54
  97. package/dist/schedule/commands/add.js.map +1 -1
  98. package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
  99. package/dist/schedule/commands/lifecycle.js +2 -1
  100. package/dist/schedule/commands/lifecycle.js.map +1 -1
  101. package/dist/schedule/commands/list.d.ts +2 -0
  102. package/dist/schedule/commands/list.d.ts.map +1 -1
  103. package/dist/schedule/commands/list.js +69 -20
  104. package/dist/schedule/commands/list.js.map +1 -1
  105. package/dist/schedule/daemon/daemon.d.ts +1 -1
  106. package/dist/schedule/daemon/daemon.d.ts.map +1 -1
  107. package/dist/schedule/daemon/daemon.js +22 -5
  108. package/dist/schedule/daemon/daemon.js.map +1 -1
  109. package/dist/schedule/daemon/notify.d.ts +29 -2
  110. package/dist/schedule/daemon/notify.d.ts.map +1 -1
  111. package/dist/schedule/daemon/notify.js +71 -2
  112. package/dist/schedule/daemon/notify.js.map +1 -1
  113. package/dist/schedule/env.d.ts +8 -4
  114. package/dist/schedule/env.d.ts.map +1 -1
  115. package/dist/schedule/env.js +13 -6
  116. package/dist/schedule/env.js.map +1 -1
  117. package/dist/schedule/fire/calls.d.ts +49 -0
  118. package/dist/schedule/fire/calls.d.ts.map +1 -0
  119. package/dist/schedule/fire/calls.js +114 -0
  120. package/dist/schedule/fire/calls.js.map +1 -0
  121. package/dist/schedule/fire/fire.d.ts +1 -1
  122. package/dist/schedule/fire/fire.d.ts.map +1 -1
  123. package/dist/schedule/fire/fire.js +209 -15
  124. package/dist/schedule/fire/fire.js.map +1 -1
  125. package/dist/schedule/fire/result.d.ts +1 -1
  126. package/dist/schedule/fire/result.d.ts.map +1 -1
  127. package/dist/schedule/fire/result.js +2 -1
  128. package/dist/schedule/fire/result.js.map +1 -1
  129. package/dist/schedule/fire/run-script.d.ts +46 -0
  130. package/dist/schedule/fire/run-script.d.ts.map +1 -0
  131. package/dist/schedule/fire/run-script.js +81 -0
  132. package/dist/schedule/fire/run-script.js.map +1 -0
  133. package/dist/schedule/fire/unattended-note.d.ts +8 -0
  134. package/dist/schedule/fire/unattended-note.d.ts.map +1 -1
  135. package/dist/schedule/fire/unattended-note.js +5 -0
  136. package/dist/schedule/fire/unattended-note.js.map +1 -1
  137. package/dist/schedule/fire/wake-gate.d.ts +39 -0
  138. package/dist/schedule/fire/wake-gate.d.ts.map +1 -0
  139. package/dist/schedule/fire/wake-gate.js +90 -0
  140. package/dist/schedule/fire/wake-gate.js.map +1 -0
  141. package/dist/schedule/floor.d.ts +28 -8
  142. package/dist/schedule/floor.d.ts.map +1 -1
  143. package/dist/schedule/floor.js +624 -114
  144. package/dist/schedule/floor.js.map +1 -1
  145. package/dist/schedule/policy.d.ts +40 -0
  146. package/dist/schedule/policy.d.ts.map +1 -1
  147. package/dist/schedule/policy.js +36 -0
  148. package/dist/schedule/policy.js.map +1 -1
  149. package/dist/schedule/script-check.d.ts +53 -0
  150. package/dist/schedule/script-check.d.ts.map +1 -0
  151. package/dist/schedule/script-check.js +145 -0
  152. package/dist/schedule/script-check.js.map +1 -0
  153. package/dist/schedule/script-shell.d.ts +3 -0
  154. package/dist/schedule/script-shell.d.ts.map +1 -0
  155. package/dist/schedule/script-shell.js +5 -0
  156. package/dist/schedule/script-shell.js.map +1 -0
  157. package/dist/schedule/service/index.d.ts +1 -1
  158. package/dist/schedule/service/index.d.ts.map +1 -1
  159. package/dist/schedule/service/index.js +20 -11
  160. package/dist/schedule/service/index.js.map +1 -1
  161. package/dist/schedule/service/manifest.js +1 -1
  162. package/dist/schedule/service/manifest.js.map +1 -1
  163. package/dist/schedule/service/windows-task.d.ts +7 -0
  164. package/dist/schedule/service/windows-task.d.ts.map +1 -1
  165. package/dist/schedule/service/windows-task.js +65 -0
  166. package/dist/schedule/service/windows-task.js.map +1 -1
  167. package/dist/schedule/service/wsl.d.ts +13 -1
  168. package/dist/schedule/service/wsl.d.ts.map +1 -1
  169. package/dist/schedule/service/wsl.js +16 -6
  170. package/dist/schedule/service/wsl.js.map +1 -1
  171. package/dist/schedule/store/atomic.d.ts +5 -2
  172. package/dist/schedule/store/atomic.d.ts.map +1 -1
  173. package/dist/schedule/store/atomic.js +7 -4
  174. package/dist/schedule/store/atomic.js.map +1 -1
  175. package/dist/schedule/store/claims.js +1 -1
  176. package/dist/schedule/store/claims.js.map +1 -1
  177. package/dist/schedule/store/history.d.ts +1 -1
  178. package/dist/schedule/store/history.d.ts.map +1 -1
  179. package/dist/schedule/store/history.js +4 -1
  180. package/dist/schedule/store/history.js.map +1 -1
  181. package/dist/schedule/store/jobs.d.ts +19 -3
  182. package/dist/schedule/store/jobs.d.ts.map +1 -1
  183. package/dist/schedule/store/jobs.js +83 -16
  184. package/dist/schedule/store/jobs.js.map +1 -1
  185. package/dist/schedule/store/state.js +1 -1
  186. package/dist/schedule/store/state.js.map +1 -1
  187. package/dist/schedule/types.d.ts +98 -6
  188. package/dist/schedule/types.d.ts.map +1 -1
  189. package/dist/schedule/types.js +25 -1
  190. package/dist/schedule/types.js.map +1 -1
  191. package/dist/schedule/visible-source.d.ts +18 -0
  192. package/dist/schedule/visible-source.d.ts.map +1 -0
  193. package/dist/schedule/visible-source.js +59 -0
  194. package/dist/schedule/visible-source.js.map +1 -0
  195. package/dist/skills/directory.d.ts +38 -0
  196. package/dist/skills/directory.d.ts.map +1 -0
  197. package/dist/skills/directory.js +51 -0
  198. package/dist/skills/directory.js.map +1 -0
  199. package/dist/test-support/toolset.d.ts +23 -0
  200. package/dist/test-support/toolset.d.ts.map +1 -0
  201. package/dist/test-support/toolset.js +27 -0
  202. package/dist/test-support/toolset.js.map +1 -0
  203. package/dist/tui/App.d.ts.map +1 -1
  204. package/dist/tui/App.js +343 -64
  205. package/dist/tui/App.js.map +1 -1
  206. package/dist/tui/ChoicePicker.d.ts +2 -0
  207. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  208. package/dist/tui/ChoicePicker.js +10 -2
  209. package/dist/tui/ChoicePicker.js.map +1 -1
  210. package/dist/tui/Composer.d.ts +62 -3
  211. package/dist/tui/Composer.d.ts.map +1 -1
  212. package/dist/tui/Composer.js +162 -25
  213. package/dist/tui/Composer.js.map +1 -1
  214. package/dist/tui/ComposerFrame.d.ts +1 -1
  215. package/dist/tui/ComposerFrame.js +3 -3
  216. package/dist/tui/ComposerFrame.js.map +1 -1
  217. package/dist/tui/EffortSlider.d.ts +8 -9
  218. package/dist/tui/EffortSlider.d.ts.map +1 -1
  219. package/dist/tui/EffortSlider.js +15 -12
  220. package/dist/tui/EffortSlider.js.map +1 -1
  221. package/dist/tui/PermissionOverlay.d.ts +13 -1
  222. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  223. package/dist/tui/PermissionOverlay.js +26 -4
  224. package/dist/tui/PermissionOverlay.js.map +1 -1
  225. package/dist/tui/StatusBar.d.ts +12 -12
  226. package/dist/tui/StatusBar.d.ts.map +1 -1
  227. package/dist/tui/StatusBar.js +15 -15
  228. package/dist/tui/StatusBar.js.map +1 -1
  229. package/dist/tui/agent.d.ts +73 -12
  230. package/dist/tui/agent.d.ts.map +1 -1
  231. package/dist/tui/agent.js +430 -180
  232. package/dist/tui/agent.js.map +1 -1
  233. package/dist/tui/hypermode.d.ts +37 -0
  234. package/dist/tui/hypermode.d.ts.map +1 -0
  235. package/dist/tui/hypermode.js +58 -0
  236. package/dist/tui/hypermode.js.map +1 -0
  237. package/dist/tui/open-browser.d.ts +29 -1
  238. package/dist/tui/open-browser.d.ts.map +1 -1
  239. package/dist/tui/open-browser.js +83 -11
  240. package/dist/tui/open-browser.js.map +1 -1
  241. package/dist/tui/permission-review.d.ts +11 -2
  242. package/dist/tui/permission-review.d.ts.map +1 -1
  243. package/dist/tui/permission-review.js +176 -19
  244. package/dist/tui/permission-review.js.map +1 -1
  245. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  246. package/dist/tui/schedule/host-commands.js +95 -33
  247. package/dist/tui/schedule/host-commands.js.map +1 -1
  248. package/dist/tui/schedule/integration.d.ts +6 -2
  249. package/dist/tui/schedule/integration.d.ts.map +1 -1
  250. package/dist/tui/schedule/integration.js +3 -1
  251. package/dist/tui/schedule/integration.js.map +1 -1
  252. package/dist/tui/schedule/resume.d.ts.map +1 -1
  253. package/dist/tui/schedule/resume.js +10 -1
  254. package/dist/tui/schedule/resume.js.map +1 -1
  255. package/dist/tui/schedule/tool-host.d.ts +18 -1
  256. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  257. package/dist/tui/schedule/tool-host.js +384 -84
  258. package/dist/tui/schedule/tool-host.js.map +1 -1
  259. package/dist/tui/slashCommands.d.ts +23 -5
  260. package/dist/tui/slashCommands.d.ts.map +1 -1
  261. package/dist/tui/slashCommands.js +80 -31
  262. package/dist/tui/slashCommands.js.map +1 -1
  263. package/dist/tui/theme.d.ts +10 -4
  264. package/dist/tui/theme.d.ts.map +1 -1
  265. package/dist/tui/theme.js +4 -3
  266. package/dist/tui/theme.js.map +1 -1
  267. package/dist/tui/triggers/analyze.d.ts +57 -0
  268. package/dist/tui/triggers/analyze.d.ts.map +1 -0
  269. package/dist/tui/triggers/analyze.js +221 -0
  270. package/dist/tui/triggers/analyze.js.map +1 -0
  271. package/dist/tui/triggers/context-text.d.ts +21 -0
  272. package/dist/tui/triggers/context-text.d.ts.map +1 -0
  273. package/dist/tui/triggers/context-text.js +44 -0
  274. package/dist/tui/triggers/context-text.js.map +1 -0
  275. package/dist/tui/triggers/copy.d.ts +38 -0
  276. package/dist/tui/triggers/copy.d.ts.map +1 -0
  277. package/dist/tui/triggers/copy.js +163 -0
  278. package/dist/tui/triggers/copy.js.map +1 -0
  279. package/dist/tui/triggers/detect.d.ts +83 -0
  280. package/dist/tui/triggers/detect.d.ts.map +1 -0
  281. package/dist/tui/triggers/detect.js +295 -0
  282. package/dist/tui/triggers/detect.js.map +1 -0
  283. package/dist/tui/triggers/fold.d.ts +34 -0
  284. package/dist/tui/triggers/fold.d.ts.map +1 -0
  285. package/dist/tui/triggers/fold.js +44 -0
  286. package/dist/tui/triggers/fold.js.map +1 -0
  287. package/dist/tui/triggers/pattern.d.ts +66 -0
  288. package/dist/tui/triggers/pattern.d.ts.map +1 -0
  289. package/dist/tui/triggers/pattern.js +243 -0
  290. package/dist/tui/triggers/pattern.js.map +1 -0
  291. package/dist/tui/triggers/provenance.d.ts +58 -0
  292. package/dist/tui/triggers/provenance.d.ts.map +1 -0
  293. package/dist/tui/triggers/provenance.js +98 -0
  294. package/dist/tui/triggers/provenance.js.map +1 -0
  295. package/dist/tui/triggers/registry.d.ts +113 -0
  296. package/dist/tui/triggers/registry.d.ts.map +1 -0
  297. package/dist/tui/triggers/registry.js +164 -0
  298. package/dist/tui/triggers/registry.js.map +1 -0
  299. package/dist/tui/triggers/setting.d.ts +18 -0
  300. package/dist/tui/triggers/setting.d.ts.map +1 -0
  301. package/dist/tui/triggers/setting.js +61 -0
  302. package/dist/tui/triggers/setting.js.map +1 -0
  303. package/dist/tui/triggers/verbs.d.ts +29 -0
  304. package/dist/tui/triggers/verbs.d.ts.map +1 -0
  305. package/dist/tui/triggers/verbs.js +140 -0
  306. package/dist/tui/triggers/verbs.js.map +1 -0
  307. package/dist/tui/types.d.ts +3 -1
  308. package/dist/tui/types.d.ts.map +1 -1
  309. package/package.json +12 -12
  310. package/skills/README.md +5 -0
  311. package/skills/schedule-task/SKILL.md +123 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,300 @@
1
1
  # @namzu/cli
2
2
 
3
+ ## 32.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 567ada8: CLI MCP tool names change from `mcp_<server>_<tool>` to `mcp__<server>__<tool>`. Update any permissions, saved prompts or integrations that refer to those names; the CLI warns once for each configured permission rule still using the old form. MCP tools now update after server notifications and reconnects. Configure `allow`, `deny`, `maxRetries`, `requireApproval`, `readOnlyHintTrusted` and `instructions` per server under `mcpServers`; `instructions: true` includes the server's text as labelled untrusted request context. `/mcp tools` shows the server's current tool names and instructions.
8
+
9
+ The SDK now skips prompt discovery when a server did not advertise prompt support and keeps approval-wrapped tool definitions stable across unchanged toolset snapshots.
10
+
11
+ - 567ada8: Plugin tools now carry a source for their owning plugin (`plugin:<name>`) or MCP server (`plugin:<name>/mcp:<server>`), so source authorization can distinguish them. Plugin MCP servers use `mcpToolset`, gaining live tool and prompt discovery, policy-filtered deferred resources and held changed definitions. Plugin MCP prompt tool names change from `<plugin>__mcp_prompt_<server>_<name>` to `<plugin>__mcp__<server>__prompt__<name>`; update saved tool names and permission rules that refer to them. `MCPToolsetOptions.reconnect` also accepts a function that returns the current reconnect policy.
12
+ - fbeac55: A scheduled job can now be a fixed shell script instead of a model prompt, or a cheap "wake-gate" script that decides whether to run the model at all — `namzu schedule add --kind script|script+agent`, or the model's `schedule` tool with `kind`/`script`. A `script` job spends zero tokens and opens no session; a `script+agent` job runs a gate script first and calls the model only when it prints `{"wake": true, "context": "..."}`. The script body is checked against the scheduled-run floor (the whole text, exactly as a live `bash` call is read) and then every `deny` rule — the operator's own and any config file's — per lexed command; **`allow`/`ask` rules and `unmatched` are never consulted for a script**, since it is fixed, human-confirmed text, not a call a model improvises. A `script+agent` job's `allow`/`ask`/`unmatched` rules still govern its AGENT phase only, unaffected by the script's own (deny-only) check.
13
+
14
+ **`@namzu/sdk` (major)**
15
+
16
+ - **Breaking type correction:** `ScheduleJobPreview.model` is optional because a pure `script` job has no model. Hosts that display it must handle its absence for `runKind: 'script'`; previews for `agent` and `script+agent` still carry the pinned model.
17
+ - `ScheduleJobPreview.networkAccess` now includes a host script or an allowed host shell that could reach the network, even without web/browser tool grants. Its new optional `networkGrantAccess` separates those grants from shell capability; a host implementing `previewUpdate` should set it so a kind-only conversion can be checked against the network-beside-host-shell rule without refusing every script. An older host that omits it is treated conservatively using `networkAccess`.
18
+ - An unattended sandbox-escape opt-in no longer waives review of a runtime-chosen program name or another call's outside-root path in the same batch.
19
+ - **Security fix:** a recognised wrapper such as `env`, `nice`, `sudo`, `busybox` or `toybox` can no longer hide a shell's `-c` payload from review. Literal payloads are read for permission checks; an expanding payload requires review and is refused in unattended runs. `script -t -c` now recognises `-c` as the command option; `-T` consumes its required timing-file value.
20
+ - **Security fix:** `find`'s `-exec` family now follows wrappers and shell `-c` payloads inside each clause, including when another wrapper launches `find`. A dynamically selected program or a `find` placeholder in a shell payload requires live review and is refused in an unattended scheduled script. The scheduled-run floor also sees service-changing tools behind wrappers in these clauses.
21
+ - **Breaking:** `ScheduleJobDraft.prompt` is now optional (`prompt?: string`), since a pure `script` draft has none. Any `ScheduleToolHost` implementation that reads `draft.prompt` as a bare `string` needs a null check (or to keep reading it only when `draft.runKind` is `'agent'`/`'script+agent'`, where it is still guaranteed present).
22
+ - `ScheduleJobDraft` gains `runKind?: 'agent' | 'script' | 'script+agent'` (absent = `'agent'`, unchanged from before) and `script?: { body, shell, timeoutMs? }`. `ScheduleJobPreview` gains the same `runKind`/`script` fields so a host's confirmation screen can show the exact text.
23
+ - The `schedule` tool's input schema gains `kind` and `script`; `create` requires `script` unless `kind` is `'agent'` and requires `prompt` unless `kind` is `'script'`, and refuses an agent draft that also carries a script. The existing network-beside-a-host-shell refusal now also covers a `script`/`script+agent` job on the host: the script IS shell code, not a rule a live call might reach later.
24
+ - **Security/UX fix:** `update` accepted `kind`/`script` in its input schema but silently dropped both from the change it actually applied, reporting success with no error or warning that the model's new script was ignored. `ScheduleJobChanges` gains `runKind`/`script` (additive, so this alone would be `minor`) and `update` now forwards both to `ScheduleToolHost.previewUpdate`, re-verified fresh against the scheduled-run floor and every `deny` rule exactly like a new job's, and shown in full — with what changed — on the same confirmation screen `create` uses. A host that does not yet read the new fields off `ScheduleJobChanges` silently keeps a job's existing kind/script on every update, the same as before this release; only `@namzu/cli`'s own host (below) newly acts on them.
25
+ - **Security fix:** `update` checks the effective preview's network grants after applying every change, so a kind-only conversion cannot inherit web/browser access beside a newly introduced host script. A call that changes the kind and leaves permissions unset is checked too.
26
+ - New exports from the root entry: `execHostShell`, `ExecHostShellProgress`, `CommandShell`, `CommandShellProbe`, `findCommandShell`, `hostCommandShell`, `hostShellSpawn`, `withoutBashStartup` — the shell-resolution and spawn machinery the `bash` tool already used internally, now available to a host that runs a command line outside a live tool call.
27
+ - `findCommandShellForDialect` and `installedCommandShellForDialect` select an installed bash or sh explicitly, returning no shell if the requested interpreter is absent. `execHostShell` accepts that `CommandShell` through its optional `shell` option, keeping its existing process supervision and output capture for hosts that choose an interpreter themselves.
28
+ - **Security fix, in the scheduled-run floor, so a live `bash` call benefits too:** `trap 'ACTION' SIGNAL` now reads `ACTION` as a command line (it runs when the signal fires); `find … -exec|-execdir|-ok|-okdir … ;|+` is refused when its clause contains `{}` and the search root is unknown or could reach NAMZU_HOME, a `-name`/`-path` filter could match NAMZU_HOME's own name, or the clause's own program can stop or remove a service; running a file the SAME command line wrote earlier (`>`, `>>`, `tee`, `cp`/`mv`, then `./x`, `sh x`, `bash x`, `. x`, `source x`) is refused, since its content was never confirmed.
29
+ - **`lexShellCommandLine` now reads `$(…)` and backtick bodies as nested command lines** (the same treatment `bash -c` payloads already got) instead of calling the whole containing line opaque outright: each command inside a substitution is in `ShellLexResult.commands`, marked `origin: 'substitution'`, checked by the scheduled-run floor and by every `deny` rule exactly like the rest of the line. Two shapes stay opaque because what actually runs cannot be pinned down from the text alone, measured against real bash (5.2.21 and 5.3.15): a command substitution beside brace expansion in the same word (`$(cmd){a,b}` runs `cmd` once per alternative, not once) and an unquoted substitution used as a `<`/`>` redirection target (a `${var:-…}`-style default value can run its substitution twice when the target turns out ambiguous) — both are refused the same way an unmodeled construct always was. `${ list; }` (bash 5.3's brace-form substitution) and process substitution (`<(…)`, `>(…)`) are unchanged, still opaque; out of this scope. `ShellWord` gains `substitutes: boolean` (additive). Proven differentially against a real bash on the host (`command_not_found_handle` argv capture, disabled builtins, empty `PATH`): every existing corpus line, the exhaustive up-to-three-token sweep, a 6,000-line seeded random sample (manually run to 150,000 with zero mismatches before landing), and new hand-written cases for nesting, mixed quoting, and the two constructs above. `decomposeCommandLine`'s `segments`/`opaque` change the same way for these two constructs.
30
+ - **Security fix, follow-up to the above:** a second review found that the scheduled-run floor's own `pkill`/`killall`/`systemctl`/`launchctl`/`schtasks`/D-Bus detection read a wild (expanding) program-name word as NOT being the tool in question unless its raw, unevaluated text happened to contain the tool's name as one contiguous run — `$(echo pk)ill -f node` and `$(echo system)ctl stop $(echo namzu)-scheduler.service` both passed. A wild word in the program-name position (the head, or right after a `sudo`/`env`-style one-level prefix) now counts as being every tool this checks for; a wild word elsewhere (an ordinary argument, a path) is unaffected. `find ~/.namzu -exec rm {} \;`-style commands are unaffected: the fix is scoped to the program-name position, not to "any wild word anywhere."
31
+ - **Security fix, live tool authorization behaviour changes (`packages/sdk/src/runtime/query/`):** the same review found that a `deny` rule written against a command's real name (`"git push*": deny`) never matches one produced by a substitution or a variable (`$(echo git) push`, `` `echo rm` -rf x``, `$X push`, or a variable in the program's path, `"$HOME"/bin/tool`), since the name never appears as such anywhere in the call's text — for the scheduled-run floor's script check (`verifyScheduledScript`, which now refuses such a command outright, naming it, the same posture as an opaque script) and, pre-existing and more broadly, for the live `bash` tool's own permission rules. **An operator now sees more review prompts:** a bash call whose lexed command's own program-name word expands is escalated (`ToolCallSummary.escalation.unknownProgram`, new field) the same unconditional way a sandbox escape already is — never approved by an allow rule, a remembered grant, `accept-edits` or `auto`/an unattended turn, asked about in every mode that gets that far (naming why: "the program this runs is decided at runtime: `<text>`"), and refused outright with no prompt (`UNKNOWN_PROGRAM_UNATTENDED_REFUSAL`, new export) — there is no unattended opt-in for this the way `unattendedSandboxEscape: 'allow'` is for a sandbox escape. A `deny` rule that matches some other way (the tool's own name, an unrelated word) still refuses the call outright, unaffected. Argument-level expansion alone does not trigger this — only the program-name word — so an ordinary `echo $(date)` is unaffected. New audit actions `unknown_program` (`approved`/`refused`). See `docs/sdk/escalations.md`.
32
+ - **Security fix, follow-up to both of the above — one extra word defeated every one of them:** a third review found that all three consumers (the escalation, the scheduled-run floor, `verifyScheduledScript`) only ever looked at a command's literal head word, so `env $(echo git) push`, `command $(echo git) push`, `exec $(echo git) push`, and a re-exec wrapper with a mandatory argument of its own before the program (`timeout 5 …`, `stdbuf -oL …`, `chrt 0 …`, `env VAR=value …`) all ran, or passed the script check, unverified — the floor's one-hop `REEXEC_PREFIX` guess put the program at the wrong word entirely for these, and `exec`/`command`/`taskset`/`time`/`builtin`/`xargs` were not in it at all. `eval`/`source`/`.` were not read as unverifiable either, though `command-line.ts` already treats them as opaque for `deny`/`allow` rules. **New SDK module, `packages/sdk/src/authorization/program.ts`, exported from `@namzu/sdk`:** `programPositions(command, dialect)` is the one place "where does this command actually exec a program" now lives — it unwraps a chain of re-exec wrappers (`sudo`, `doas`, `pkexec`, `env`, `nice`, `ionice`, `nohup`, `setsid`, `timeout`, `stdbuf`, `chrt`, `taskset`, `time`, `command`, `builtin`, `exec`, `xargs`) with each one's own real option grammar, failing closed on an option it does not recognise, and reads each `find -exec`-family clause as its own position. `source path`/`. path` and `eval word…` are read the same way a nested `bash -c '<literal>'` payload already is: a LITERAL path is known, exactly as `bash path` is (nothing inspects either one's contents), and a LITERAL `eval` payload is joined and lexed as a command line of its own, with every position inside it folded in (so `eval 'env $(echo git) push'` is still unknown, transitively); an expanding path/argument word, or a payload that does not read cleanly, is unknown. `hasPoisoningPrefix`/`poisonsLaterCommands`/`poisonedProgramPosition`/`resolveScriptPrograms`/`DYNAMIC_RESOLUTION_VARIABLES` cover the other half: a command-prefix or `export`/bare assignment to `PATH`, `LD_PRELOAD`, `LD_LIBRARY_PATH`, `BASH_ENV`, `ENV` or `IFS` makes a LATER literal program name unverifiable too. **Behaviour change:** `unknownProgram`'s text is now the command plus why its program's position could not be resolved, not a bare word — a host that pattern-matches the exact string should match on substring/prefix, not equality. `ToolCallEscalation.unknownProgram`'s doc comment, `escalationReason`'s wording, and the floor's own `heads`/`REEXEC_PREFIX` mechanism (removed, replaced by `programPositions`) all changed accordingly. `packages/sdk/src/authorization/__tests__/program.test.ts` (new). See `docs/sdk/escalations.md`, `docs/sdk/command-lines.md`, `docs/cli/scheduled-tasks.md`.
33
+ - **Security fix, two CRITICAL bugs from a final review of `program.ts`, plus wrapper coverage:** (1) `sudo`'s own case never skipped a `NAME=value` pair the way `env`'s already did, so `sudo VAR=value $(echo ls)` reported the ASSIGNMENT WORD as the program and never examined the real, wild one after it; both `sudo`'s and `env`'s assignment-skipping now also feed a poisoning name (`PATH=`, `LD_PRELOAD=`, …) into the poisoning check instead of silently passing it through. (2) `executor.ts`'s `unknownProgramOf` ignored the reading's own `opaque`/`!complete` flag, so `bash -c "$X"` — whose payload the lexer cannot follow at all — was never escalated; a new exported function, `unknownProgramInLine(value, dialect)`, checks that first, and `executor.ts` now delegates to it rather than re-implementing the walk. New wrapper coverage: `busybox`/`toybox` (transparent applet dispatch); `declare -x`/`typeset -x` (any option cluster with it, never `+x`) now poison like `export`, and `export -n` correctly does not; `su -c`/`runuser -c`/`script -c`/`flock -c` read a literal payload recursively like a nested `bash -c '<literal>'` (`su`/`runuser` with no `-c` are unknown: an interactive login shell); `flock`'s positional form; `unshare`, `nsenter`, `chroot` (unknown with no command), `setpriv`, `prlimit`, `numactl`; `watch` (default payload joined and lexed like `eval`'s, `-x` execs the argv directly); `sudo -i`/`-s`/`-e`/`--login`/`--shell`/`--edit` and bare `sudoedit` are explicit unknowns. `ssh host cmd` is deliberately not modelled (the command is remote); `docs/sdk/escalations.md` now documents this residual boundary — the full modelled-wrapper list, and that an unmodelled one is treated as the program itself, with `deny` rules, the floor and ordinary review still applying to it. `packages/sdk/src/authorization/program.ts`, `runtime/query/executor.ts`, `packages/sdk/src/authorization/__tests__/program.test.ts`.
34
+
35
+ **`@namzu/cli` (major)**
36
+
37
+ - A pure `script` job now creates and runs without a configured provider or `--model`. New script jobs omit the unused `model` field; older confirmed script jobs that already store a real model still read with their confirmation digest intact and keep it on a script edit. Explicit `--model`, `--effort`, prompt, agent budget, provider wait, approval TTL, session retention and browser grant inputs are refused for a pure script instead of silently ignored; older stored fields remain readable but inert. `agent` and `script+agent` still require a model; converting a model-free script to either kind requires one. Text previews, the SDK `ScheduleJobPreview.budget`, and `schedule show` report zero model tokens and the script timeout for pure scripts. The schedule tool's success message reports pure script history without claiming a session.
38
+ - **Breaking, on disk:** the job/run-result/history file format moves to `v: 2` for a job that actually uses `runKind`/`script`, a `check-failed` status, or `gateResult`/`scriptOutput`. An older namzu that reads such a file refuses it loudly ("was written by a newer namzu...") rather than misreading a script job as a malformed agent job. A plain `agent` job stays `v: 1`, byte-for-byte as before, and every existing job keeps reading and confirming exactly as it did — downgrade only affects a job you have actually converted to `script`/`script+agent`.
39
+ - **Fix:** a job file an older namzu (or a hand edit) left in a format the current one refuses to fully parse was previously invisible to `createJob`'s name-uniqueness check and to `findJob` (by name or id prefix) — a name collision with it went undetected, and looking it up said "No scheduled job is named…" instead of the real reason. Both now read a refused file's `id`/`name` leniently, off the raw JSON, without validating anything else about it: a name collision with such a file is now refused, naming the file and the reason; looking it up by its own name or a matching id prefix now reports the real reason (e.g. "written by a newer namzu…"); a name or id prefix matching more than one job — readable, unreadable, or a mix — is an error listing every match and how to address each. `schedule list` says `N job files could not be read` instead of `No scheduled jobs` when every job file is such a file.
40
+ - New `schedule add`/`edit` flags: `--kind agent|script|script+agent`, `--script`/`--script-file`, `--shell bash|sh`, `--script-timeout`. A `script` job needs `--shell` and a non-empty script and has no `--prompt`; `--unmatched park` is refused for a pure `script` job (nothing can wait for the operator mid-script); `--execution sandbox` is refused for `script`/`script+agent` in this release; `script`/`script+agent` job creation is refused outright on native (non-WSL) Windows, where the only available shell reading is a loose `cmd.exe` approximation the floor cannot fully verify.
41
+ - **Fix:** `--shell sh` previously only labeled a script for verification while fire always used the live bash tool's automatically chosen shell. On a bash host, a newly confirmed `sh` job was guaranteed to stop at first fire. A script now executes under its chosen installed `bash` or `sh`; creation and every confirmation refuse an absent interpreter, and fire blocks if it has since disappeared. Native Windows remains refused.
42
+ - `ScheduleRunStatus` gains `check-failed` (a script or wake-gate malfunctioned: non-zero exit, its own timeout, or stdout that is not the wake-gate's JSON contract) — CLI-internal, not part of the SDK's public surface. It joins the failure bucket for the failure streak and automatic pause, and gets its own notification and `noticeText` case.
43
+ - `schedule show`/`history --json` gain `gateResult` (`{ wake, contextChars }`) and `scriptOutput` (`{ stdout, stderr }`, capped with an explicit truncation marker) on a fired `script`/`script+agent` run; `show`'s text view gains a "Script"/"Wake-gate script" section beside "Prompt".
44
+ - `schedule list` (text and `--json`) now shows each job's kind: `[script, 0 tokens]` and `[script+agent]` in the text view, `kind` (absent for `agent`) in `--json`. The TUI's `/schedule` list marks the same two kinds. Found missing in a UX review — nothing distinguished a zero-token `script` job from an `agent` job in either listing.
45
+ - **Security fix:** a `script`/`script+agent` run's own output — a wake-gate parse failure's quoted stdout, a script-check refusal's quoted command, a `check-failed` notification's reason, `scriptSummaryOf`'s extracted summary line, and `schedule show`/`history`'s text-view `reason`/`summary` — is untrusted runtime text, not anything an operator confirmed, and is now run through the same `sanitizeLine()` a model's own answer already is before it reaches a terminal or a desktop notification, so it cannot plant control characters, terminal escape sequences or invisible/bidi characters on the operator's screen. `--json` output is unaffected and stays raw.
46
+ - **Security fix:** CLI and TUI schedule add/edit/confirm/list/show text views now show terminal controls and bidi characters in script text, prompts, changed lines and folder paths as visible code point escapes, so a script cannot erase or reorder its own confirmation. The model's schedule-tool confirmation uses the same projection. Persisted jobs and JSON output preserve the original source text.
47
+ - **Security/UX fix:** the TUI's `schedule` tool host now acts on an `update`'s `runKind`/`script`: previously it always carried a job's existing kind and script forward unchanged, silently, whatever the model asked to change. Moving to `kind: 'agent'` drops the script (an agent job cannot carry one); a change that touches `kind` or `script` shows up in "Changed since it was last confirmed" the same as every other field, alongside the new script's full text in its own section (`packages/cli/src/tui/schedule/tool-host.ts` `updateRequest`, `packages/cli/src/schedule/changes.ts` `confirmationView`).
48
+ - **Security fix:** `namzu schedule __fire` now refuses a `script`/`script+agent` run outright on native (non-WSL) Windows, the same way job creation already does. Job creation alone was not enough: a job confirmed on WSL or Linux, whose daemon later finds itself running on native Windows (a moved `NAMZU_HOME`, a machine re-imaged from WSL to a native install), previously ran anyway whenever the job's confirmed shell dialect happened to still read as `sh` — the label native Windows's `cmd.exe` approximation and POSIX sh both report, so the existing dialect-mismatch check alone could not tell them apart.
49
+ - A `script`/`script+agent` script (and the scheduled-run floor generally, so a live `bash` call benefits too) may now use `$(…)`/backtick command substitution: it is checked the same as the rest of the script instead of refusing the whole thing outright (see the SDK's `lexShellCommandLine` entry above). The `schedule-task` skill's guidance on this is updated to match; the two narrow shapes still refused (a substitution beside brace expansion, or unquoted as a `<`/`>` redirection target) are named there with why.
50
+
51
+ Upgrade step: nothing changes for an existing `agent` job. Adopting a `script`/`script+agent` job on a `NAMZU_HOME` you may downgrade the CLI on later means that job's files become unreadable by the older version until you upgrade again; keep that in mind before converting a job you might need to roll back.
52
+
53
+ - 567ada8: **`@namzu/cli`**: the session's tool roster is now composed from named `Toolset`s (`@namzu/sdk`'s toolsets, plan.md v3 §8) instead of a `ToolRegistry`. This is internal composition, not a config or CLI-flag change — nothing in `namzu.config.json` or the command line changes — but it is a breaking change for anything that imported `@namzu/cli`'s internals directly:
54
+
55
+ | Removed / changed | Replace with |
56
+ | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
57
+ | `createCliPluginRuntime(config, tools: ToolRegistry, cwd, hooks?, skillTool?)` | `createCliPluginRuntime(config, cwd, hooks?)` — it no longer takes or mutates a tool registry. Read `runtime.skills.size` and fold `runtime.manager.toolsets` into your own toolsets list; the `skill` tool is your own toolset now, not something this runtime registers. |
58
+ | `SubagentRuntimeOptions.buildTools: () => ToolRegistryContract` | `buildTools: () => readonly Toolset[]`. |
59
+ | `SubagentRuntimeOptions.configureWebSearch?: (provider, model, tools: ToolRegistryContract) => WebSearchConfig \| undefined` | `configureWebSearch?: (provider, model, toolsets: readonly Toolset[]) => WebSearchConfig \| undefined` — a pure decision now; it no longer removes `web_search` itself, so a caller building the child's final toolsets filters it out when this returns truthy (`filtered(ts, (t) => t.name !== 'web_search')`). |
60
+ | `McpConnection.tools: readonly ToolDefinition[]` (still present) | `McpConnection.toolsets: readonly Toolset[]`, two per connected server (main tools and deferred resources, both kind `mcp_server`, id `mcp:<server>`) — prefer these; `.tools` is now just the flattened union across all of them. |
61
+
62
+ Additive: `AgentSession` gained a `presenter: ToolPresenter` field — the session's real tool-call/result presenter, for a host that renders events outside `send()`'s own stream. The ACP bridge (`namzu acp`) now uses it instead of a presenter built over a permanently empty registry, so tool-specific `presentCall`/`presentResult` views (a richer diff, a custom label) render over ACP for the first time; every ACP tool view had silently fallen back to the generic label before.
63
+
64
+ Behaviour: because tool availability is now derived from the turn's own revealed-tool history (`@namzu/sdk`'s `ToolManager`) rather than a per-send registry fork, a tool `search_tools` reveals in one send now stays active in a later send of the same session, and after `namzu resume` — it no longer resets every send.
65
+
66
+ **`@namzu/sdk`**: two `combineToolsets` usage bugs, found while wiring the CLI onto toolsets, are fixed — `query()`'s own generated tools and `SupervisorAgent`'s coordinator tools are now two separate array entries (an eager one and a deferred one) rather than one `combineToolsets`'d together, so `runtimeToolOverrides: { name: 'deferred' }` (task tools, coordinator tools) is honoured again instead of silently falling back to `'active'` for both halves. `query()` also no longer adds its own `search_tools` when a caller's `toolsets` already contribute a tool under that exact name (a connector genuinely named `search_tools`), matching the pre-toolsets registry's behaviour and avoiding a spurious `ToolsetConflictError`. Pure bug fixes, no API change.
67
+
68
+ ### Minor Changes
69
+
70
+ - 567ada8: `mcpServers` entries in `namzu.config.json` may now reference the operator's own environment from inside an `env` or `headers` value with a bare `${VAR_NAME}` (identifier characters only — no `${VAR:-default}` fallback). This is narrower than the interpolation some other MCP clients' configs use: only `env` and `headers` values are expanded (never `command`, `args`, `url` or `cwd`), and a reference to a variable that is not set fails that one server with a named reason instead of substituting an empty string. `inheritEnv` remains the primary way to grant a named variable to a stdio child under its own name; `${VAR_NAME}` is for the value itself, and is the only secret-safe option `headers` has ever had.
71
+
72
+ Purely additive: a config with no `${...}` in its `env`/`headers` values behaves exactly as before. A config that happened to contain a literal `${SOMENAME}` string matching a variable name that is set in the operator's environment now has that string substituted rather than passed through literally.
73
+
74
+ - 567ada8: Plugin manifests can declare `instructions`. An enabled plugin contributes the text as labelled, untrusted request context; disabling it revokes the contribution, including for an already-running turn. SDK hosts can also call `definePlugin({ name, tools, hooks, instructions, mcpServers })` and `PluginLifecycleManager.installDefined(plugin)` to install a host-authored plugin without a manifest file or dynamic module import.
75
+
76
+ ### Patch Changes
77
+
78
+ - 567ada8: Fixed: `namzu acp`'s tool-call/result presenter (added in this release to fix the previously-always-empty ACP presenter) delegated through one connection-global "active session" slot. Two ACP sessions with prompts in flight at the same time could have session A's tool-call/result rendered with session B's tool-specific view once B's prompt started — worse than the pre-fix behaviour (always generic, but never wrong) for exactly the concurrent case `acp-session-isolation.test.ts` otherwise covers.
79
+
80
+ The presenter now tracks which session's event it is presenting for only the synchronous span of that one event — bracketed around each `record.route(event)` call rather than held for a whole turn — so a second session's prompt starting, or finishing, while the first is still streaming can no longer be read as "active" while the first session's own event is being presented.
81
+
82
+ - 567ada8: The SDK now accepts application-defined agent type strings and provides `QueryAgent` as the generic managed query adapter. `defineAgent` gives its `run` callback a required fourth `AbortSignal` parameter and creates fresh instances for delegated turns. Code that invokes a `DefineAgentOptions.run` callback directly must supply that fourth argument; existing three-argument callback implementations remain assignable. `ReactiveAgent` and the supervisor, pipeline and router exports remain available as deprecated compatibility names. CLI delegated turns use a CLI-owned `NamzuCliAgent` while keeping their existing configuration behavior.
83
+ - 567ada8: Authorization rules can now match the owning toolset's source id with `{ type: 'by_source', sources: ['mcp:github'], decision: 'review' }`. This lets a host ask, allow or deny every tool from one or more MCP servers without listing names individually. A rule with no matching host-supplied source leaves the call to later rules.
84
+
85
+ The CLI accepts `[permissions.sources]` with source ids or globs mapped to `allow`, `ask` or `deny`, and its permissions display shows those rules and their decisions.
86
+
87
+ - 567ada8: Releases live toolset change listeners when a CLI session or turn ends, including a send with extra per-turn tools. Closing the session keeps its plugin and MCP connection cleanup while dropping the host-side manager subscriptions.
88
+ - 567ada8: `CommandNameCollisionError` (`tui/slashCommands.ts`, thrown when a kernel command and a CLI-local one claim the same name) now extends `@namzu/sdk`'s `RegistryCollisionError`, matching every SDK `*CollisionError` after its registry-collision convergence. Name, message and behavior are unchanged; a catch block naming `CommandNameCollisionError` still works, and one that wants "some registry collided" without naming every class can now catch `RegistryCollisionError` instead. See [docs/sdk/registries.md](../docs/sdk/registries.md).
89
+ - 567ada8: MCP tool definitions that change after initial admission keep serving their earlier definition across turns; new and removed names still update. `/mcp` and `exec --json` now report server discovery changes and current policy refusals, including changed definitions held for review.
90
+ - 567ada8: Former MCP permission-name warnings now use the CLI's structured logger instead of writing plain text to stderr. Consumers of `exec --json` stderr can continue parsing log records when a legacy permission rule is configured. Plugin MCP disconnect warnings use a fixed message and put the operation in a log attribute.
91
+ - 567ada8: Shipped prose no longer names other named products. `matchesToolSelector`'s doc comment (`packages/sdk/src/tools/roster.ts`) and [Tool metadata and selectors](../docs/sdk/tool-metadata-and-selectors.md) describe its synchronous-only design against "some other agent frameworks' equivalent selector" instead of one by name; [Tool servers](../docs/cli/mcp-servers.md) describes the wider `${VAR}`/`${VAR:-default}` interpolation some MCP clients accept as "several desktop and editor MCP clients" instead of naming two. Wording only: no type, default or behaviour changed.
92
+ - 567ada8: Invalid JavaScript plugin tools now fail when a plugin is enabled, with the
93
+ plugin and module named, if they omit a usable `inputSchema`. Before, a
94
+ deferred plugin tool could load successfully and then crash the turn with a
95
+ Zod `_def` error after `search_tools` revealed it. Supply a Zod
96
+ `inputSchema`, or a compatible parser and explicit `modelInputSchema`.
97
+ - 567ada8: Fixed: under `toolLoading: 'deferred'`, `search_tools` was refused by review in every mode but `auto` — `plan` and `strict` refused it outright, and the interactive default (`prompt`) put up an approval dialog for it on every discovery call, where before the toolsets migration it ran silently. The session's own review-exemption manager is built from `sessionToolsets` alone and never learns about `search_tools` (mounted internally, per turn, by `query()`), so `reviewExemptionFor`'s lookup resolved it as an unknown tool and treated it as never exempt.
98
+
99
+ `reviewExemptionFor` now falls back to the SDK's own `search_tools` definition for a name the session's manager does not carry, read exactly the way the kernel reads a known tool (`isTrustedReadOnly`), so the exemption holds regardless of whether this turn's `query()` actually mounts it. This does not add `search_tools` to `/tools` or `/permissions` (`promptExemptToolNames`), which still read the session's roster bare and stay fixed at boot, as `tools-and-permissions-agree.test.ts` requires.
100
+
101
+ This is also what makes the earlier claim in this same release — that a tool `search_tools` reveals in one send stays active in a later send — true for `permissionMode: 'plan'` too; it previously held only for `auto`, since a blocked `search_tools` call never revealed anything to persist.
102
+
103
+ - 567ada8: Restores file-defined sub-agent shadowing: a project agent file named `explore` or `general-purpose` again replaces the matching built-in, using the new `AgentRegistry.replace` instead of `register` now that registries throw on a duplicate id by default (`@namzu/sdk`'s registry-collision convergence). No change from the last published `@namzu/cli` behavior — this restores parity with a regression introduced earlier in this same line of work, before it ever shipped.
104
+ - Updated dependencies [567ada8]
105
+ - Updated dependencies [567ada8]
106
+ - Updated dependencies [567ada8]
107
+ - Updated dependencies [567ada8]
108
+ - Updated dependencies [567ada8]
109
+ - Updated dependencies [567ada8]
110
+ - Updated dependencies [567ada8]
111
+ - Updated dependencies [567ada8]
112
+ - Updated dependencies [567ada8]
113
+ - Updated dependencies [567ada8]
114
+ - Updated dependencies [567ada8]
115
+ - Updated dependencies [567ada8]
116
+ - Updated dependencies [567ada8]
117
+ - Updated dependencies [567ada8]
118
+ - Updated dependencies [567ada8]
119
+ - Updated dependencies [567ada8]
120
+ - Updated dependencies [567ada8]
121
+ - Updated dependencies [567ada8]
122
+ - Updated dependencies [567ada8]
123
+ - Updated dependencies [567ada8]
124
+ - Updated dependencies [567ada8]
125
+ - Updated dependencies [567ada8]
126
+ - Updated dependencies [567ada8]
127
+ - Updated dependencies [567ada8]
128
+ - Updated dependencies [fbeac55]
129
+ - Updated dependencies [567ada8]
130
+ - Updated dependencies [567ada8]
131
+ - Updated dependencies [567ada8]
132
+ - Updated dependencies [567ada8]
133
+ - Updated dependencies [567ada8]
134
+ - Updated dependencies [567ada8]
135
+ - Updated dependencies [567ada8]
136
+ - Updated dependencies [567ada8]
137
+ - Updated dependencies [567ada8]
138
+ - @namzu/sdk@48.0.0
139
+ - @namzu/browser@0.1.1
140
+ - @namzu/computer-use@2.0.2
141
+ - @namzu/anthropic@6.2.2
142
+ - @namzu/deepseek@2.0.2
143
+ - @namzu/openai@4.1.3
144
+ - @namzu/openrouter@3.0.3
145
+ - @namzu/zen@2.5.2
146
+ - @namzu/ollama@2.2.5
147
+
148
+ ## 31.0.0
149
+
150
+ ### Major Changes
151
+
152
+ - 166fe10: **Words you type in the interactive composer can now act for that message — on by default.** This changes what existing keystrokes do, so it is a major version.
153
+
154
+ - `hypermode` at the start or end of a message (or clause) arms a one-turn hypermode: that turn runs at `xhigh` effort (the highest level below it on a model without `xhigh`) and the model is asked to delegate independent work to parallel agents. The next turn gets neither, and `/hypermode` (the session setting) is not turned on.
155
+ - "save this as a skill", "turn it into a skill", "bunu skill olarak kaydet", "bunu skill'e çevir", "bundan bir skill yap" and their request forms (`kaydeder misin`, `kaydedebilir misin`, `kaydedelim mi`, …) run `/skills save` after the turn — only when that turn completed, did tool work and did not already save a skill. A message that is only the phrase runs `/skills save` at once.
156
+ - Schedule phrases ("run it every day", "bunu her sabah çalıştır") are only suggested; they never act on their own.
157
+
158
+ Before you press Enter, the words are highlighted and a row above the input says exactly what will happen, for example `✦ hypermode · this turn: effort xhigh, delegate to parallel agents · alt+w drop`. **Alt+W** drops it for that message; Backspace right after `hypermode` drops it too. Only keys you type arm a trigger: pasted, recalled or edited text only shows a suggestion (`✧ hypermode? · alt+w arms`), and loops, pickers, `namzu exec`, `drain`, ACP and scheduled runs never act on these words. Talking about a word does not arm it: "what is hypermode?", a word in the middle of a sentence, in quotes, in code or in a path stays prose. A trigger grants nothing and skips no confirmation; `save_skill` and scheduled jobs still show their own screens. Your message reaches the model and the log unchanged.
159
+
160
+ **To keep the old behaviour**, turn composer triggers off with `/config triggers off` (writes the user config), or in `~/.namzu/config.yaml`:
161
+
162
+ ```yaml
163
+ composerTriggers:
164
+ enabled: false
165
+ ```
166
+
167
+ Or keep the feature and turn one trigger down: `composerTriggers.builtin.hypermode: suggest` (or `off`), likewise `save-skill`. A project's `namzu.config.json` can turn triggers off or down for that project but cannot turn them back on over your user file. The `composerTriggers` key is new on the exported `NamzuCliConfig` type.
168
+
169
+ - 166fe10: The multi-agent session mode is now called **hypermode**. Turn it on with `/hypermode on` (or pick the last stop of the `/effort` picker, which now reads `xhigh + hypermode (workflows)`, with `Off · delegates to parallel agents by default` under it). The footer shows `· hypermode` and the message box's border names it the same way. **One behaviour change:** the mode now pins reasoning effort to `xhigh`, not to the highest level the model publishes. On a model that offers `max` (or `ultra`), turning the mode on used to select `max`; it now selects `xhigh`, which spends less per turn. A model without `xhigh` gets the highest level it publishes below it, and the stop names that level (`high + hypermode (workflows)`). To run a hypermode session at `max`, turn the mode on and then choose `/effort max`; the mode keeps delegating by default. Independent work is still delegated to parallel agents by default, for this session only.
170
+
171
+ `/orchestrate` still works: it prints `/orchestrate is deprecated: the mode is now called hypermode. Use /hypermode; /orchestrate will be removed in a later major version.` and then does exactly what `/hypermode` does. Switch any scripts, notes or muscle memory to `/hypermode` before the next major version. The mode was never stored in a config file, so there is nothing to migrate.
172
+
173
+ ### Minor Changes
174
+
175
+ - 443094a: Stateless `namzu exec --json` history on stdin (`Message[]`, no `--session`) now accepts and keeps an optional `id` on each message (`BaseMessage.id`, `@namzu/sdk`'s new field), the same way it already keeps `toolCalls[].id`: validated as a string, never required, never stripped. A host that reads a prior turn back from `namzu history --session <key>` (which carries the real durable id on every message) can feed that same history into a later stateless call unmodified and have `query()` reconcile it by id. This stream's own `delta`/`tool-start`/`tool-end` events do not yet surface a message's id as it happens, so a host that only ever rebuilds `Message[]` from this stream still has none to attach — that keeps working exactly as before, reconciled by value.
176
+
177
+ ### Patch Changes
178
+
179
+ - 2d4ff9a: **`ask_user_question` says which option it recommends in a field, not in the label.** An option takes `recommended: true`, and `UserQuestionOption.recommended` is set on each recommended option of the question your `ResumeHandler` receives; it is absent on the others. The answer's `data.selected[]` carries `recommended: true` on a chosen option the model recommended. The tool no longer tells the model to append " (Recommended)" to a label.
180
+
181
+ Labels now reach your handler without a recommendation marker. An option is recommended when the model set `recommended: true` on it, or left the flag out and ended its label in "(Recommended)". That English marker was already removed from the answer; it is now also removed from the label you are shown, on every option that carries it, and an option the model set `recommended: false` on stays unrecommended. What was left before it still reaches you and the answer whole: "Cloud (AWS) (Recommended)" reads "Cloud (AWS)", as the answer did before. On a recommended option, a trailing parenthesised group of one to three words — "(Önerilen)", "(Empfohlen)", "(推荐)", which used to reach both your screen and the answer the model read back — is taken for the marker and removed from the label you are shown and from the answer. That includes a qualifier the model put there against the tool's instructions: a flagged "Use cache (Redis)" arrives as "Use cache". It is removed only when every option whose label ends in a group is recommended, did not end in "(Recommended)", and ends in that same group (letter case aside, compared the same way whatever your host's locale), so a group that differs between options is kept, flagged or not: "Postgres (managed)" / "Postgres (self-hosted)", or a multi-select's "Tests (unit)" / "Tests (e2e)". A marker that is all that tells two options apart ("Redis (Empfohlen)" next to "Redis") and a group with digits or symbols are kept too, and the order of the options changes none of this. Nothing else changes a label or makes an option recommended: apart from surrounding spaces and a trailing "(Recommended)", an option that is not recommended reaches you, and the answer, exactly as written, and a localised marker on it stays.
182
+
183
+ What to do: if your question UI showed the recommendation only because the label said "(Recommended)", show it from `option.recommended` instead; nothing else changes. In the CLI the question card draws `[recommended]` next to that option.
184
+
185
+ - 49491b9: A cut-off or malformed `Agent` call is no longer answered with advice about writing files. The tool declares `prompt` as its one long argument, so a call whose prompt filled the response when the output limit cut it off is told to keep `prompt` under half of what arrived, or under 12000 characters when that is less, and to put long material in a file and name it in the prompt. A call cut off by a stream that ended is told 12000 characters. When most of the response went to reasoning, or to what came before the call, the call is told that instead, with no budget. A malformed call is told to send valid JSON and how to write a newline, tab, quote or backslash inside the `prompt` string, with nothing about files or size.
186
+ - 49491b9: `namzu exec --json` now writes a `tool-input-unreadable` event for a tool call whose streamed arguments could not be read, before the call's `tool-start`. It carries `toolUseId`, `turnId`, `inputError` (whose `reason` says whether the arguments were cut off, `truncated`, or were not valid JSON, `malformed`) and `partialArguments`, the first 16 384 characters of what the model sent. A host used to see only the failed `tool-end`, so it could not tell the two apart or record what was sent. A host that line-scans by `kind` and ignores kinds it does not know needs no change.
187
+ - 49491b9: `namzu exec --json` checks a prior tool call's `metadata.inputError` on the history it reads from stdin, as it already checked `inputTruncated` and `partialArguments`. The executor words its answer to that call from the field, so a `reason` other than `truncated` or `malformed`, or a `length` that is not a count, reached the model as "after undefined characters". Such history is now refused before the turn starts, naming the field, like any other invalid history.
188
+ - 166fe10: `/hypermode off` now puts back the reasoning effort you had before turning the mode on (the message says which: `Hypermode is off — effort back to low.`). Before, turning the mode off left effort pinned at the level the mode chose, so later turns kept running — and spending — at that level although the help said both settings revert. If you picked a level yourself while the mode was on, that level stays. Nothing to change on your side.
189
+ - 166fe10: Security fix: a loop the model creates with the `session_loop` tool now sends its prompt to the model as plain text every time it fires. Before, the TUI treated a model loop's prompt like a line you typed: a prompt starting with `!` ran a shell command on your machine, outside the sandbox and without review; `#` saved a project memory; `/` ran a slash command; and a sentence such as "modeli opus-5 yapar mısın" switched the model. A loop fires every interval for up to seven days, so one approval of its creation (none in `auto` mode) could become unreviewed host commands.
190
+
191
+ Loops you create with `/loop` are unchanged: their `/`, `!` and `#` still work. No loop's prompt is added to the composer's history any more, so Up brings back only what you typed. Nothing to configure; if you relied on a model-created loop running a command, create the loop yourself with `/loop <interval> <command>`.
192
+
193
+ - 2d4ff9a: Earlier entries in this package's CHANGELOG no longer name one particular application built on namzu, or quote a path from outside this repository. This changes only the CHANGELOG.md that ships in the tarball; no code or types change, and there is nothing to do to upgrade.
194
+ - 7c810bc: `web_search`'s transcript presenter stripped the untrusted-content envelope from its own tool result by matching the frame's literal opening/closing tags by hand. `@namzu/sdk`'s `wrapUntrusted` now binds those tags to a per-render nonce (see the `@namzu/sdk` major changeset in this same release), so the hand-rolled match would have silently stopped recognizing the envelope and shown the raw, tagged text in the transcript instead of the clean result. The presenter now reads the body back with the exported `untrustedEnvelopeBody`, which already understands the nonce, instead of re-deriving the tag shape.
195
+ - Updated dependencies [2d4ff9a]
196
+ - Updated dependencies [49491b9]
197
+ - Updated dependencies [166fe10]
198
+ - Updated dependencies [2d4ff9a]
199
+ - Updated dependencies [2d4ff9a]
200
+ - Updated dependencies [49491b9]
201
+ - Updated dependencies [7c810bc]
202
+ - Updated dependencies [443094a]
203
+ - Updated dependencies [49491b9]
204
+ - Updated dependencies [7c810bc]
205
+ - Updated dependencies [49491b9]
206
+ - Updated dependencies [443094a]
207
+ - @namzu/sdk@47.0.0
208
+ - @namzu/anthropic@6.2.1
209
+ - @namzu/openrouter@3.0.2
210
+ - @namzu/deepseek@2.0.1
211
+ - @namzu/openai@4.1.2
212
+ - @namzu/google@1.1.1
213
+ - @namzu/computer-use@2.0.1
214
+ - @namzu/ollama@2.2.5
215
+ - @namzu/files@1.1.2
216
+ - @namzu/zen@2.5.1
217
+ - @namzu/browser@0.1.0
218
+
219
+ ## 30.0.0
220
+
221
+ ### Major Changes
222
+
223
+ - 82769f1: The interactive CLI now asks once per session before the model first sees your screen, and `strict` mode no longer lets a screenshot run on its own — that second part is why this is a major release for `@namzu/cli`. In `prompt`, `accept-edits` and `plan` mode the first `computer_use` call that would send the screen to the provider — a screenshot, a zoom, the list of open windows, a window's controls, or an action that returns a screenshot — opens a "Share your screen" box naming the provider; after a yes, later screenshots in that session run without asking, and clicks, typing and `ui_act` are still reviewed as before. A mode switch keeps the answer; a new session (`/new`, `/clear`, `/model`) asks again. `auto` never asks. **`strict` now refuses a screenshot unless a rule allows it**: to keep screenshots running in `strict`, add `permissions: { computer_use: 'allow' }` (which also allows clicks) or a narrower rule for the actions you want.
224
+
225
+ Approving a `ui_act` call shows the control by name (`Press Button "Beş" (e30)`), and `ui_snapshot` as the window it reads.
226
+
227
+ **`@namzu/sdk`**
228
+
229
+ - `ToolDefinition.capturesScreen?(input)` and `defineTool({ capturesScreen })` declare which calls send the operator's screen to the model provider. `computer_use` declares its observations and every action followed by a screenshot.
230
+ - **Breaking:** the authorization gate's `allow_read_only` rule (`allowReadOnlyTools: true`, in every shipped preset) no longer allows a call that declares `capturesScreen`; it goes to the review policy instead. With `createReviewHandler` and no `screenConsent` nothing changes (a screenshot is approved as a read); a custom `ResumeHandler` now sees `computer_use` screenshots, zooms, window lists and UI snapshots. To keep them out of review, add an explicit rule such as `{ type: 'allow_by_name', toolNames: ['computer_use'] }` (which allows clicks too).
231
+ - `createReviewHandler` / `createReviewPolicy` take `screenConsent: { sessions: Set<string> }` and an optional `capturesScreen(name, input)` predicate (default: the tool's declaration from `registry`). With them, the first such batch in a session is put to `prompt` with the new `ToolReviewRequest.screenConsent: true`; `strict` refuses it unless a rule allowed it, `auto` does not ask, and without a `prompt` it is refused with the new `SCREEN_CONSENT_UNATTENDED_REFUSAL`. A no is `SCREEN_CONSENT_DECLINED_FEEDBACK`. New type `ScreenConsentRecord`. Without `screenConsent` nothing changes.
232
+
233
+ ### Minor Changes
234
+
235
+ - 172fd9e: New `open_url` tool: in the interactive terminal and `namzu exec`, the model can open an http(s) page in your default browser (under WSL, the Windows browser) instead of guessing a shell command. It is a `network` tool, so `prompt` mode asks before it runs. Add a `[permissions]` rule for `open_url` to allow or deny it. `exec --json`, `drain`, ACP, scheduled runs and sub-agents do not have it. Each request in those two surfaces now carries about 120 more tokens of tool schema.
236
+ - 28102e1: The model can change a scheduled job instead of deleting and recreating it. The `schedule` tool has a new action, `update`: `job` names the job, and only the fields the model sets change (`prompt`, `when`, `folder`, `tz`, `budget`, or `permissions` as the whole new set, under the same limits as `create`). Asked whether it could change a job, a model with no such action deleted the job and created it again, and the job's history was lost.
237
+
238
+ In the TUI the operator confirms every change on one screen: what changes first (the `-`/`+` lines `namzu schedule edit` shows), a `THE PERMISSIONS CHANGE` warning when a run's rules, `unmatched`, execution or browser grant change, then the job as it will run. `Cancel` is the default. `Save` writes the same job — its id, creation time and history kept — with the operator's new confirmation, keeps a paused job paused, and records `edited by tool` with the changes in its history. A change is refused if the job was changed while the operator was being asked. Like `create`, `update` is not preceded by the ordinary permission review in `prompt`, `accept-edits` and `auto`.
239
+
240
+ SDK: `ScheduleToolHost` gains three optional methods, `previewUpdate(job, changes)`, `confirmUpdate(request, signal?)` and `update(preview)`, and new types `ScheduleJobChanges`, `ScheduleJobUpdateProposal` and `ScheduleUpdateRequest`. A host without them keeps working: the tool refuses `update` there and tells the model not to delete and recreate the job.
241
+
242
+ - 28102e1: A scheduled run that completed with refused tool calls now says so. A job whose only command was refused on every run was recorded `completed` each time, with a `finished` notification and nothing else to go on.
243
+
244
+ A run now records `refusedCalls` (calls that never ran: a permission rule, the scheduled-run floor, `unmatched: deny`, a tool its permissions withhold) and `failedCalls` (calls that ran and returned an error), each `{ count, first: { tool, reason } }`, in its result file and history record, and as counts in the job state's `lastRun`. `namzu schedule list` shows `last completed (1 call refused)`, `show` and `history` print the first reason under the run, `run-now` prints it, and so do `/schedule` and the model's `schedule` tool `list`. The finished notification reads `done at …, but 1 call was refused (bash); namzu schedule show <job> says why`; the reason itself appears in the notification only for a job created with `--notify-summary`, because it can quote the command the model wrote.
245
+
246
+ The run's status is unchanged: `completed` still means the turn ended normally, so failure counting, automatic pausing and which notification is sent behave as before. The new fields are additions to the `--json` output of `list`, `show` and `history`.
247
+
248
+ ### Patch Changes
249
+
250
+ - 82769f1: Computer use no longer runs blind on a provider that cannot show the model an image in a tool result (OpenAI via API key, Bedrock, OpenRouter, LM Studio, Ollama, the generic HTTP driver). The `computer_use` tool is still listed, says why it cannot be used, and refuses every call; the desktop is never touched, and the session notices say `Computer use is unavailable in this session: …`. Use Anthropic, Codex or Google for computer use.
251
+
252
+ Approving a `computer_use` call now shows each desktop action on its own line, in the order it will run, with any text to be typed shown in full.
253
+
254
+ - 28102e1: A scheduled run can no longer reach the scheduler through a shell the command-line reader does not follow. `powershell -c 'namzu schedule stop'`, `pwsh -command '…'`, `fish -c '…'`, `tcsh -c '…'` and `bash.exe -c '…'` were allowed whatever their text held: the scheduled-run floor took any shell at the head of a command with a `-c` option as read, but only the payloads of `sh`, `bash`, `dash`, `zsh`, `ksh`, `ash` and `mksh` (and `busybox` running one) are. Such text now goes through the floor's tripwire like any other text a program runs as code. A job whose commands use those shells without naming the scheduler, `NAMZU_HOME` or the browser profiles runs as before.
255
+
256
+ SDK: new exports `nestedShellCommand(words)`, `NESTED_SHELLS` and the type `NestedShellCommand`. `nestedShellCommand` says, for one simple command's words (without its leading assignments), which `-c` payload `lexShellCommandLine` reads as a command line of its own, why it made the line opaque instead, or `null` when it reads none. The lexer uses it itself, so its reading is unchanged.
257
+
258
+ - 28102e1: A scheduled run may now run a command whose code merely mentions namzu. `powershell.exe -NoProfile -Command "[System.Windows.MessageBox]::Show('Namzu: scheduled job running','Namzu')"` was refused by the scheduled-run floor, because text passed to PowerShell, `cmd`, Python, Node or a shell reading its input was refused whenever it contained `namzu` or `schedul`. Such text is now refused only when it holds something that can reach the scheduler or `NAMZU_HOME`: a `schedule` subcommand other than `list`, `show`, `status`, `history` or `logs` with the CLI or an expansion in reach, the service's name (`namzu-scheduler…`, `com.namzu.…`), a service tool with a namzu name or a `*`, `pkill`/`killall`, `NAMZU_HOME` by name, `.namzu` as a path segment, a path into either protected folder, or `LOCALAPPDATA` with a `namzu` segment. A job that was refused for naming the product runs; nothing that reached the scheduler before is let through (checked against bash on 35 159 generated lines, and on 1 189 labelled lines of PowerShell, `cmd`, Python, Node and `sh` code).
259
+
260
+ The refusal now says which rule matched and where (`` the argument `~/.namzu/x` names NAMZU_HOME (/home/you/.namzu) ``, `` … it holds `schedule stop` (a `namzu schedule` subcommand other than …), in the argument `namzu schedule stop` ``) instead of listing everything the floor protects.
261
+
262
+ SDK: a `predicate` authorization rule may carry `describe(call)`, asked after `decide` returned a decision; its answer is the gate's reason for that call instead of the rule's fixed `description` (a `null`, empty or thrown answer keeps `description`). `describeRule(rule, call?)` takes the call as an optional second argument. Both are additions; existing rules and callers are unchanged.
263
+
264
+ - 28102e1: In the TUI, the model's `schedule` tool now lists every scheduled job, not only those of the session's folder. A model that created a job in a folder below the session's and then called `list` was told "No scheduled jobs." while `namzu schedule list` showed the job, because the TUI's host filtered by folder unless the model passed `allFolders: true`, which models do not. Jobs of the session's own folder are marked `(this folder)` and are still the only ones whose prompt the model sees.
265
+
266
+ SDK: `ScheduleJobSummary` gains an optional `inSessionFolder`, which the `schedule` tool prints as `(this folder)` on the job's `list` line. A host may use it to list every job regardless of `allFolders`. The tool still asks `host.list({ allFolders: false })` unless the model sets it, so a host that filters by folder behaves as before.
267
+
268
+ - 28102e1: A skill the model loads now names the directory its files are in (#536), so a skill whose instructions say `scripts/…` or `references/…` can be followed. On the host it is the directory the skill was read from. With `sandbox.enabled`, a skill under the working directory or an added directory gets the same path, which the sandbox mounts; every other skill (the user and shared-user tiers, the built-ins, `.agents/skills` above the working directory, user plugins, and every skill under an `ephemeral` workspace) is reported as not reachable instead of being given a host path the sandbox refuses. Nothing to do on upgrade.
269
+ - 28102e1: `namzu schedule status` on Windows and WSL now says what the Task Scheduler's last result means, keeping the number: `last result: running (267009, 0x41301)` instead of `last result 267009`. The result that appears every five minutes while the scheduler runs, `-2147020576` (0x800710E0), reads `an instance was already running, so a new one was not started; expected, since the task checks every five minutes`, so it is not mistaken for a failure. Task Scheduler's own codes, the common Windows errors and the scheduler's own exit codes are named; any other result shows its number and its hexadecimal form.
270
+ - 172fd9e: Under WSL, the Claude, Codex, Gemini and OpenCode sessions you are signed in to on Windows are now found even when `/etc/wsl.conf` moves the Windows drives (`[automount] root`). The paired Windows home used to be looked up only under `/mnt/c`. A scheduled run's `PATH` now also drops the Windows drive entries under that root, instead of only those under `/mnt/`. On the default `/mnt/` nothing changes.
271
+ - 172fd9e: Under WSL, several things now look for Windows programs under the drive mount root set in `/etc/wsl.conf` (`[automount] root`) rather than always under `/mnt/c`: the scheduler service's programs (`schtasks.exe`, `cmd.exe`, `powershell.exe`, …) and the directory they start in, Windows notifications, and the paths the model is told about. On a distro that moved the root, `namzu schedule install` used to refuse and notifications never appeared. On the default `/mnt/` nothing changes. A service installed while the root was elsewhere keeps the program paths recorded in its manifest. If you have since moved the root, reinstall it with `namzu schedule install`.
272
+ - 172fd9e: Under WSL, `namzu login` now opens the sign-in page in the Windows browser. It launches Windows PowerShell by absolute path, under the drive mount root set in `/etc/wsl.conf` (`[automount] root`, `/mnt/` by default), and the address is passed as data, never as script text. It used to call `xdg-open`, which under WSL usually opened nothing, so you had to copy the URL. When interop is off or PowerShell is missing, it still falls back to `xdg-open`. Nothing to change on your side.
273
+ - Updated dependencies [28102e1]
274
+ - Updated dependencies [28102e1]
275
+ - Updated dependencies [82769f1]
276
+ - Updated dependencies [82769f1]
277
+ - Updated dependencies [82769f1]
278
+ - Updated dependencies [82769f1]
279
+ - Updated dependencies [82769f1]
280
+ - Updated dependencies [82769f1]
281
+ - Updated dependencies [28102e1]
282
+ - Updated dependencies [28102e1]
283
+ - Updated dependencies [28102e1]
284
+ - Updated dependencies [28102e1]
285
+ - Updated dependencies [28102e1]
286
+ - Updated dependencies [28102e1]
287
+ - Updated dependencies [28102e1]
288
+ - Updated dependencies [82769f1]
289
+ - Updated dependencies [28102e1]
290
+ - @namzu/anthropic@6.2.0
291
+ - @namzu/sdk@46.0.0
292
+ - @namzu/openai@4.1.1
293
+ - @namzu/computer-use@2.0.0
294
+ - @namzu/browser@0.1.0
295
+ - @namzu/ollama@2.2.4
296
+ - @namzu/openrouter@3.0.1
297
+
3
298
  ## 29.1.0
4
299
 
5
300
  ### Minor Changes
@@ -6235,7 +6530,7 @@ redis"` passes through untouched; the extra words are what distinguish a request
6235
6530
  What a consumer sees change:
6236
6531
 
6237
6532
  - `@namzu/sandbox` raised `Sandbox backend 'x' is not implemented yet. Track
6238
- progress in vendor/namzu/docs.local/sessions/ses_004-...` — a runtime error
6533
+ progress in <a local notes directory>/...` — a runtime error
6239
6534
  instructing the reader to open a path that is not in the package, not in the
6240
6535
  repository, and not on the internet. It now names what does ship instead.
6241
6536
  - `@namzu/computer-use`'s README linked to an adapter-pattern document under a
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8BH,OAAO,EAEN,KAAK,gBAAgB,EAKrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAmDxD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAI7E;AAED,MAAM,WAAW,aAAa;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CACvD;AAQD,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAyajE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA4E5F"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8BH,OAAO,EAEN,KAAK,gBAAgB,EAKrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAmDxD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAI7E;AAED,MAAM,WAAW,aAAa;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CACvD;AAQD,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA6ajE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA4E5F"}
package/dist/cli.js CHANGED
@@ -34,7 +34,7 @@ import { resolveNamzuHome } from './integrations/state/home.js';
34
34
  import { cliLogger, createStderrSink, installCliLogging, resolveLogFormat, resolveLogLevel, } from './logging.js';
35
35
  import { createFormatter, isFormatName } from './output/index.js';
36
36
  import { compileBrowserSites, withBrowserSiteRules } from './permissions/browser-sites.js';
37
- import { compilePermissions } from './permissions/rules.js';
37
+ import { compilePermissions, warnLegacyMcpPermissionNames } from './permissions/rules.js';
38
38
  import { CLI_VERSION } from './version.js';
39
39
  /** sysexits EX_USAGE — command-line argument error. */
40
40
  const EX_USAGE = 64;
@@ -294,6 +294,7 @@ export async function runCli(opts) {
294
294
  const commandCtx = getBootstrapContext();
295
295
  beginCatalogueRefresh(commandCtx.config);
296
296
  const buildTuiContext = (resolvedCtx, cwd) => {
297
+ warnLegacyMcpPermissionNames(resolvedCtx.config.permissions);
297
298
  const permissions = compilePermissions(resolvedCtx.config.permissions, resolvedCtx.config.permissionChecks);
298
299
  for (const d of permissions.diagnostics) {
299
300
  const where = d.pattern ? `permissions.${d.tool}."${d.pattern}"` : `permissions.${d.tool}`;
@@ -326,6 +327,9 @@ export async function runCli(opts) {
326
327
  ...(resolvedCtx.config.mcpServers ? { mcpServers: resolvedCtx.config.mcpServers } : {}),
327
328
  ...(resolvedCtx.config.plugins ? { plugins: resolvedCtx.config.plugins } : {}),
328
329
  ...(resolvedCtx.config.skills ? { skills: resolvedCtx.config.skills } : {}),
330
+ ...(resolvedCtx.config.composerTriggers
331
+ ? { composerTriggers: resolvedCtx.config.composerTriggers }
332
+ : {}),
329
333
  ...(resolvedCtx.config.web ? { web: resolvedCtx.config.web } : {}),
330
334
  ...(resolvedCtx.config.hooks ? { hooks: resolvedCtx.config.hooks } : {}),
331
335
  ...(resolvedCtx.config.compaction ? { compaction: resolvedCtx.config.compaction } : {}),
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type AcpAgentGateway, type ExternalRefTarget, type Origin, type SessionId } from '@namzu/sdk';
1
+ import { type AcpAgentGateway, type ExternalRefTarget, type Origin, type SessionId, type ToolPresenter } from '@namzu/sdk';
2
2
  import { resolveTrustedProjectContext } from '../config/trusted-project-context.js';
3
3
  import type { DetectedProvider, Preferences } from '../integrations/providers/index.js';
4
4
  import { decideHeadlessTrust } from '../permissions/headless-trust.js';
@@ -40,7 +40,7 @@ export type ExternalSessionLookup = (protocol: 'acp', kind: 'session', externalI
40
40
  * finds the same session.
41
41
  */
42
42
  export declare function resolveAcpSession(wireSessionId: string, lookup: ExternalSessionLookup): Promise<AcpSessionTarget>;
43
- type AcpLiveSession = Pick<AgentSession, 'hasProvider' | 'errorHint' | 'mcpFailed' | 'send' | 'close'>;
43
+ type AcpLiveSession = Pick<AgentSession, 'hasProvider' | 'errorHint' | 'mcpFailed' | 'send' | 'close' | 'presenter'>;
44
44
  export interface AcpRuntimeDependencies {
45
45
  readonly probe: typeof probeAgentSession;
46
46
  readonly createSession: (preferences: Preferences, detected: readonly DetectedProvider[], options: Parameters<typeof createAgentSession>[2]) => Promise<AcpLiveSession>;
@@ -51,6 +51,24 @@ export interface AcpRuntimeDependencies {
51
51
  }
52
52
  export interface CliAcpRuntime {
53
53
  readonly gateway: AcpAgentGateway;
54
+ /**
55
+ * Delegates to whichever session's own event is being rendered RIGHT NOW
56
+ * — never "whichever session's `prompt` call is live", which two
57
+ * concurrent prompts both are. `record.route` (see `gateway.prompt`
58
+ * below) wraps the SDK's `onEvent` so that `activeRecord` is set to
59
+ * `record` for exactly the synchronous span of that one call: `update.ts`
60
+ * reads `presenter` synchronously while building the update it emits, so
61
+ * bracketing the call this tightly, rather than for the whole turn, is
62
+ * what keeps a second session's prompt — live at the same time — from
63
+ * ever being read as "active" while this event is presented. Falls back
64
+ * to the generic label/view before any turn has run. Was permanently a
65
+ * presenter over an empty, never-populated registry; every ACP
66
+ * tool-call/result view fell back to the generic label for every tool,
67
+ * every session (fixed here, not in the SDK: `ACPServerConfig.presenter`
68
+ * is one value for the whole server, not per session, so this is the
69
+ * best a CLI-side fix can do without also changing that surface).
70
+ */
71
+ readonly presenter: ToolPresenter;
54
72
  close(): Promise<void>;
55
73
  }
56
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGtB,KAAK,MAAM,EAGX,KAAK,SAAS,EAOd,MAAM,YAAY,CAAA;AAMnB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAEvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,KAAK,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAmD5D;;;;;;;;;;;;;;;GAeG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CACnC,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,KACd,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAgBD,KAAK,cAAc,GAAG,IAAI,CACzB,YAAY,EACZ,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAC5D,CAAA;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,iBAAiB,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,CACvB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,OAAO,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAC7C,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,mBAAmB,CAAA;IAChD,QAAQ,CAAC,qBAAqB,EAAE,OAAO,4BAA4B,CAAA;IACnE,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC7E;AAQD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAUD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,cAAc,EAC5B,IAAI,GAAE,sBAA6C,GACjD,aAAa,CA8Nf;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCxE;AAED,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAA"}
1
+ {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGtB,KAAK,MAAM,EAGX,KAAK,SAAS,EACd,KAAK,aAAa,EAMlB,MAAM,YAAY,CAAA;AAMnB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAEvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,KAAK,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAmD5D;;;;;;;;;;;;;;;GAeG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CACnC,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,KACd,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAgBD,KAAK,cAAc,GAAG,IAAI,CACzB,YAAY,EACZ,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAC1E,CAAA;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,iBAAiB,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,CACvB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,OAAO,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAC7C,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,mBAAmB,CAAA;IAChD,QAAQ,CAAC,qBAAqB,EAAE,OAAO,4BAA4B,CAAA;IACnE,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC7E;AAQD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAUD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,cAAc,EAC5B,IAAI,GAAE,sBAA6C,GACjD,aAAa,CAoQf;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCxE;AAED,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAA"}