@namzu/cli 18.1.0 → 19.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 (219) hide show
  1. package/CHANGELOG.md +5898 -0
  2. package/README.md +23 -24
  3. package/dist/bin.js +12 -1
  4. package/dist/bin.js.map +1 -1
  5. package/dist/checkpoints/store.d.ts +75 -0
  6. package/dist/checkpoints/store.d.ts.map +1 -0
  7. package/dist/checkpoints/store.js +177 -0
  8. package/dist/checkpoints/store.js.map +1 -0
  9. package/dist/checkpoints/wrap.d.ts +15 -0
  10. package/dist/checkpoints/wrap.d.ts.map +1 -0
  11. package/dist/checkpoints/wrap.js +37 -0
  12. package/dist/checkpoints/wrap.js.map +1 -0
  13. package/dist/cli.d.ts +6 -0
  14. package/dist/cli.d.ts.map +1 -1
  15. package/dist/cli.js +12 -1
  16. package/dist/cli.js.map +1 -1
  17. package/dist/commands/acp.d.ts.map +1 -1
  18. package/dist/commands/acp.js +2 -0
  19. package/dist/commands/acp.js.map +1 -1
  20. package/dist/commands/drain.d.ts.map +1 -1
  21. package/dist/commands/drain.js +15 -2
  22. package/dist/commands/drain.js.map +1 -1
  23. package/dist/commands/provider-wait.d.ts +44 -0
  24. package/dist/commands/provider-wait.d.ts.map +1 -0
  25. package/dist/commands/provider-wait.js +65 -0
  26. package/dist/commands/provider-wait.js.map +1 -0
  27. package/dist/commands/run-flags.d.ts +13 -1
  28. package/dist/commands/run-flags.d.ts.map +1 -1
  29. package/dist/commands/run-flags.js +41 -0
  30. package/dist/commands/run-flags.js.map +1 -1
  31. package/dist/commands/run-stream.d.ts.map +1 -1
  32. package/dist/commands/run-stream.js +33 -13
  33. package/dist/commands/run-stream.js.map +1 -1
  34. package/dist/commands/run.d.ts.map +1 -1
  35. package/dist/commands/run.js +132 -78
  36. package/dist/commands/run.js.map +1 -1
  37. package/dist/commands/stdin.d.ts +17 -0
  38. package/dist/commands/stdin.d.ts.map +1 -0
  39. package/dist/commands/stdin.js +69 -0
  40. package/dist/commands/stdin.js.map +1 -0
  41. package/dist/config/load.d.ts.map +1 -1
  42. package/dist/config/load.js +107 -2
  43. package/dist/config/load.js.map +1 -1
  44. package/dist/config/schema.d.ts +80 -5
  45. package/dist/config/schema.d.ts.map +1 -1
  46. package/dist/config/schema.js.map +1 -1
  47. package/dist/context/doctrine.d.ts +16 -38
  48. package/dist/context/doctrine.d.ts.map +1 -1
  49. package/dist/context/doctrine.js +16 -75
  50. package/dist/context/doctrine.js.map +1 -1
  51. package/dist/context/environment.d.ts +2 -0
  52. package/dist/context/environment.d.ts.map +1 -1
  53. package/dist/context/environment.js +3 -0
  54. package/dist/context/environment.js.map +1 -1
  55. package/dist/integrations/mcp/servers.d.ts +19 -0
  56. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  57. package/dist/integrations/mcp/servers.js +23 -2
  58. package/dist/integrations/mcp/servers.js.map +1 -1
  59. package/dist/integrations/plugins/runtime.d.ts +8 -2
  60. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  61. package/dist/integrations/plugins/runtime.js +24 -12
  62. package/dist/integrations/plugins/runtime.js.map +1 -1
  63. package/dist/integrations/providers/chain-capabilities.js +1 -1
  64. package/dist/integrations/providers/chain-capabilities.js.map +1 -1
  65. package/dist/integrations/providers/credential-store.d.ts +1 -1
  66. package/dist/integrations/providers/credential-store.js +1 -1
  67. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
  68. package/dist/integrations/providers/harness-credentials.js +7 -0
  69. package/dist/integrations/providers/harness-credentials.js.map +1 -1
  70. package/dist/integrations/providers/registry.d.ts +2 -2
  71. package/dist/integrations/providers/registry.js +2 -2
  72. package/dist/integrations/sessions/store.d.ts +14 -22
  73. package/dist/integrations/sessions/store.d.ts.map +1 -1
  74. package/dist/integrations/sessions/store.js +78 -175
  75. package/dist/integrations/sessions/store.js.map +1 -1
  76. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  77. package/dist/integrations/sessions/transcript-export.js +6 -2
  78. package/dist/integrations/sessions/transcript-export.js.map +1 -1
  79. package/dist/integrations/state/identity.d.ts +21 -0
  80. package/dist/integrations/state/identity.d.ts.map +1 -0
  81. package/dist/integrations/state/identity.js +49 -0
  82. package/dist/integrations/state/identity.js.map +1 -0
  83. package/dist/integrations/state/immutable-json.d.ts +10 -0
  84. package/dist/integrations/state/immutable-json.d.ts.map +1 -0
  85. package/dist/integrations/state/immutable-json.js +38 -0
  86. package/dist/integrations/state/immutable-json.js.map +1 -0
  87. package/dist/integrations/state/project.d.ts +10 -0
  88. package/dist/integrations/state/project.d.ts.map +1 -0
  89. package/dist/integrations/state/project.js +15 -0
  90. package/dist/integrations/state/project.js.map +1 -0
  91. package/dist/integrations/state/report.d.ts.map +1 -1
  92. package/dist/integrations/state/report.js +42 -12
  93. package/dist/integrations/state/report.js.map +1 -1
  94. package/dist/integrations/subagents/definitions.d.ts +19 -0
  95. package/dist/integrations/subagents/definitions.d.ts.map +1 -0
  96. package/dist/integrations/subagents/definitions.js +26 -0
  97. package/dist/integrations/subagents/definitions.js.map +1 -0
  98. package/dist/integrations/subagents/parent.d.ts +13 -0
  99. package/dist/integrations/subagents/parent.d.ts.map +1 -0
  100. package/dist/integrations/subagents/parent.js +57 -0
  101. package/dist/integrations/subagents/parent.js.map +1 -0
  102. package/dist/integrations/subagents/runtime.d.ts +24 -13
  103. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  104. package/dist/integrations/subagents/runtime.js +282 -122
  105. package/dist/integrations/subagents/runtime.js.map +1 -1
  106. package/dist/memory/store.d.ts +35 -15
  107. package/dist/memory/store.d.ts.map +1 -1
  108. package/dist/memory/store.js +79 -25
  109. package/dist/memory/store.js.map +1 -1
  110. package/dist/permissions/mode.d.ts +12 -45
  111. package/dist/permissions/mode.d.ts.map +1 -1
  112. package/dist/permissions/mode.js +18 -13
  113. package/dist/permissions/mode.js.map +1 -1
  114. package/dist/release-notes.d.ts +20 -0
  115. package/dist/release-notes.d.ts.map +1 -0
  116. package/dist/release-notes.js +64 -0
  117. package/dist/release-notes.js.map +1 -0
  118. package/dist/tui/AgentExplorer.d.ts.map +1 -1
  119. package/dist/tui/AgentExplorer.js +14 -18
  120. package/dist/tui/AgentExplorer.js.map +1 -1
  121. package/dist/tui/App.d.ts.map +1 -1
  122. package/dist/tui/App.js +606 -207
  123. package/dist/tui/App.js.map +1 -1
  124. package/dist/tui/BrandHeader.d.ts +12 -0
  125. package/dist/tui/BrandHeader.d.ts.map +1 -0
  126. package/dist/tui/BrandHeader.js +17 -0
  127. package/dist/tui/BrandHeader.js.map +1 -0
  128. package/dist/tui/ChoicePicker.d.ts +11 -1
  129. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  130. package/dist/tui/ChoicePicker.js +46 -13
  131. package/dist/tui/ChoicePicker.js.map +1 -1
  132. package/dist/tui/Composer.d.ts +4 -1
  133. package/dist/tui/Composer.d.ts.map +1 -1
  134. package/dist/tui/Composer.js +4 -4
  135. package/dist/tui/Composer.js.map +1 -1
  136. package/dist/tui/ComposerFrame.d.ts +10 -0
  137. package/dist/tui/ComposerFrame.d.ts.map +1 -0
  138. package/dist/tui/ComposerFrame.js +93 -0
  139. package/dist/tui/ComposerFrame.js.map +1 -0
  140. package/dist/tui/EditPromptPicker.d.ts.map +1 -1
  141. package/dist/tui/EditPromptPicker.js +1 -1
  142. package/dist/tui/EditPromptPicker.js.map +1 -1
  143. package/dist/tui/LiveActivity.d.ts +12 -5
  144. package/dist/tui/LiveActivity.d.ts.map +1 -1
  145. package/dist/tui/LiveActivity.js +17 -32
  146. package/dist/tui/LiveActivity.js.map +1 -1
  147. package/dist/tui/PermissionOverlay.d.ts +26 -2
  148. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  149. package/dist/tui/PermissionOverlay.js +108 -16
  150. package/dist/tui/PermissionOverlay.js.map +1 -1
  151. package/dist/tui/Picker.d.ts +2 -2
  152. package/dist/tui/Picker.d.ts.map +1 -1
  153. package/dist/tui/Picker.js +79 -52
  154. package/dist/tui/Picker.js.map +1 -1
  155. package/dist/tui/StatusBar.d.ts.map +1 -1
  156. package/dist/tui/StatusBar.js +5 -2
  157. package/dist/tui/StatusBar.js.map +1 -1
  158. package/dist/tui/TaskList.d.ts +3 -1
  159. package/dist/tui/TaskList.d.ts.map +1 -1
  160. package/dist/tui/TaskList.js +13 -4
  161. package/dist/tui/TaskList.js.map +1 -1
  162. package/dist/tui/Transcript.d.ts +3 -3
  163. package/dist/tui/Transcript.d.ts.map +1 -1
  164. package/dist/tui/Transcript.js +16 -34
  165. package/dist/tui/Transcript.js.map +1 -1
  166. package/dist/tui/agent.d.ts +113 -50
  167. package/dist/tui/agent.d.ts.map +1 -1
  168. package/dist/tui/agent.js +512 -293
  169. package/dist/tui/agent.js.map +1 -1
  170. package/dist/tui/choice-selection.d.ts +17 -0
  171. package/dist/tui/choice-selection.d.ts.map +1 -0
  172. package/dist/tui/choice-selection.js +38 -0
  173. package/dist/tui/choice-selection.js.map +1 -0
  174. package/dist/tui/exit-summary.d.ts +7 -1
  175. package/dist/tui/exit-summary.d.ts.map +1 -1
  176. package/dist/tui/exit-summary.js +12 -3
  177. package/dist/tui/exit-summary.js.map +1 -1
  178. package/dist/tui/index.d.ts +3 -1
  179. package/dist/tui/index.d.ts.map +1 -1
  180. package/dist/tui/index.js +5 -3
  181. package/dist/tui/index.js.map +1 -1
  182. package/dist/tui/logo.d.ts +7 -22
  183. package/dist/tui/logo.d.ts.map +1 -1
  184. package/dist/tui/logo.js +8 -34
  185. package/dist/tui/logo.js.map +1 -1
  186. package/dist/tui/model-choices.d.ts.map +1 -1
  187. package/dist/tui/model-choices.js +21 -6
  188. package/dist/tui/model-choices.js.map +1 -1
  189. package/dist/tui/permission-review.d.ts +15 -4
  190. package/dist/tui/permission-review.d.ts.map +1 -1
  191. package/dist/tui/permission-review.js +48 -9
  192. package/dist/tui/permission-review.js.map +1 -1
  193. package/dist/tui/provider-selection.d.ts +4 -0
  194. package/dist/tui/provider-selection.d.ts.map +1 -0
  195. package/dist/tui/provider-selection.js +16 -0
  196. package/dist/tui/provider-selection.js.map +1 -0
  197. package/dist/tui/run-interruption.d.ts +3 -2
  198. package/dist/tui/run-interruption.d.ts.map +1 -1
  199. package/dist/tui/run-interruption.js +2 -1
  200. package/dist/tui/run-interruption.js.map +1 -1
  201. package/dist/tui/shell-escape.d.ts +42 -0
  202. package/dist/tui/shell-escape.d.ts.map +1 -0
  203. package/dist/tui/shell-escape.js +110 -0
  204. package/dist/tui/shell-escape.js.map +1 -0
  205. package/dist/tui/slashCommands.d.ts +77 -31
  206. package/dist/tui/slashCommands.d.ts.map +1 -1
  207. package/dist/tui/slashCommands.js +343 -303
  208. package/dist/tui/slashCommands.js.map +1 -1
  209. package/dist/tui/terminal-choice-text.d.ts +8 -0
  210. package/dist/tui/terminal-choice-text.d.ts.map +1 -0
  211. package/dist/tui/terminal-choice-text.js +37 -0
  212. package/dist/tui/terminal-choice-text.js.map +1 -0
  213. package/dist/tui/theme.d.ts +3 -4
  214. package/dist/tui/theme.d.ts.map +1 -1
  215. package/dist/tui/theme.js +16 -17
  216. package/dist/tui/theme.js.map +1 -1
  217. package/dist/tui/types.d.ts +6 -1
  218. package/dist/tui/types.d.ts.map +1 -1
  219. package/package.json +6 -4
package/README.md CHANGED
@@ -6,9 +6,8 @@ description: >-
6
6
  you get. Interactive sessions, headless runs that stream structured events,
7
7
  and a doctor that reports what the host can actually do.
8
8
  tags: [readme, package, cli, agent]
9
- timestamp: 2026-09-01T00:00:00Z
10
- status: active
11
- diataxis: reference
9
+ status: stable
10
+ generated: { by: human:bahadirarda, at: 2026-09-01T00:00:00Z }
12
11
  -->
13
12
 
14
13
  <div align="center">
@@ -63,7 +62,7 @@ optional capabilities that `namzu doctor` probes for.
63
62
 
64
63
  ```bash
65
64
  namzu # interactive session in the current directory
66
- namzu resume ses_... # reopen the exact interactive conversation printed on exit
65
+ namzu resume <session-id> # reopen the exact interactive conversation printed on exit
67
66
  namzu doctor # what this host can actually do, and what is missing
68
67
  namzu state # read-only inventory of local and user runtime state
69
68
  namzu upgrade --check # check npm without changing the installation
@@ -81,13 +80,17 @@ unknown package-manager layouts instead of guessing at another binary on
81
80
  `PATH`; update those with the package manager that installed them.
82
81
 
83
82
  Generated CLI state now lives below the application home: `~/.namzu` by
84
- default, or the existing real directory named by `NAMZU_HOME`. The canonical
85
- working directory is bound to one Project there, so every Bash, Write and Edit
86
- in a session sees the same caller-owned workspace while transcripts, runs,
87
- memory and tasks survive process and sandbox-handle teardown. A project-local
88
- `.namzu` is reserved for authored `commands`, `plugins` and `skills`. A valid
89
- older project-local runtime remains authoritative; corrupt or split local and
90
- central histories refuse instead of opening an apparently empty conversation.
83
+ default, or the existing real directory named by `NAMZU_HOME`. New directories
84
+ inside the same checkout share one Project, keyed by its canonical root; a
85
+ standalone directory is its own project. Worktrees and nested repositories
86
+ remain separate. Existing central bindings for individual subdirectories keep
87
+ their own histories. Bash, Write and Edit still use the selected working
88
+ directory while transcripts, runs, memory and tasks live centrally. A local
89
+ `.namzu` holds authored `commands`, `plugins`, `skills` and `MEMORY.md`.
90
+ Older project-local runtime and global `cli.json` pointers are inventory data;
91
+ the CLI does not automatically adopt or migrate them. See
92
+ [Project and session state](../../docs/cli/project-state.md) for identity and
93
+ compatibility details.
91
94
 
92
95
  `namzu state` inventories the current workspace's legacy `.namzu` tree and the
93
96
  resolved application-home tree without loading either config cascade or
@@ -130,7 +133,7 @@ palette; selecting a row runs that command through the same dispatcher as a
130
133
  typed slash command. Refused project command files remain visible with their
131
134
  reason. Bare `/effort`, `/permissions`, `/feedback`, `/skills`, and `/review`
132
135
  open finite keyboard choosers. Bare `/rename` opens a prefilled conversation-name editor;
133
- `/title` remains an alias and `/title clear` removes the chosen name. The review
136
+ `/rename clear` removes the chosen name. The review
134
137
  chooser can target a base branch, uncommitted work, or a recent commit; choosing
135
138
  custom instructions restores `/review ` to the composer. When both Namzu-owned
136
139
  subscriptions exist, bare `/logout` asks
@@ -173,15 +176,14 @@ or dependencies. Left/Right moves between panes, arrows navigate, and Enter
173
176
  inspects one child's live projected transcript. Escape returns and `q` closes
174
177
  the inspector. Selection is tied to monitor-owned phase, batch and child
175
178
  identities, so a later delegation wave cannot revive completed rows from an
176
- earlier one. The historical `/agent` spelling remains an executable compatibility
177
- alias but is no longer advertised in the palette. Parent output that settles
179
+ earlier one. Ctrl+T is the only way into the inspector; there is no slash
180
+ command for it. Parent output that settles
178
181
  while a child is open is published once when the active cohort returns control.
179
182
  Interactive Agent calls, their child allocations and the parent turn share a
180
183
  one-hour upper deadline instead of the generic two-minute tool limit; operator
181
184
  cancellation remains the normal way to stop work that is no longer wanted.
182
185
 
183
- `/skill` remains an alias, `/skills <name>` activates directly, and
184
- `/skills list` prints the roster. Long model and resume lists
186
+ `/skills <name>` activates directly and `/skills list` prints the roster. Long model and resume lists
185
187
  keep a seven-row window around the active choice and show its absolute position.
186
188
  Finite labels grow into available terminal width, so branch names and commit
187
189
  subjects are not forced through the same narrow column. The `/help` palette and
@@ -222,8 +224,8 @@ synchronous, so `/`, navigation and Enter may arrive in one terminal burst
222
224
  without losing the chosen command. The same page and boundary keys work in
223
225
  model, resume, review, skill, copy and other finite command choosers; their
224
226
  Enter action also follows the newest cursor when navigation arrives in the
225
- same terminal burst. `/pwd` reports the exact session working directory, while
226
- selecting `/mention` opens a keyboard-navigable list of tracked and unignored
227
+ same terminal burst. `/status` reports the exact session working directory, and
228
+ typing `@` opens a keyboard-navigable list of tracked and unignored
227
229
  project files. Enter or Tab inserts the selected `@path` without sending it;
228
230
  exact project-relative tokens remain editable, and symlinks outside the trusted
229
231
  root are not inlined. On
@@ -257,8 +259,8 @@ sandbox cannot preserve. Use delegated agents for independent concurrent work;
257
259
  turning the sandbox off restores the host background-job capability.
258
260
 
259
261
  Ctrl+L clears only the rendered terminal transcript while idle. It preserves
260
- model context, durable conversation history and copy/export targets, matching
261
- `/clear-screen`; an active turn keeps its visible output and reports that the
262
+ model context, durable conversation history and copy/export targets; an active
263
+ turn keeps its visible output and reports that the
262
264
  shortcut is temporarily unavailable.
263
265
 
264
266
  Bare `/export` opens a destination chooser for the complete verified Markdown
@@ -283,8 +285,7 @@ links that leave that scope and symlinked manifests are refused. Plugin
283
285
  settings cannot be activated by an environment-selected profile. The
284
286
  same plugin hooks and skills reach interactive turns, headless runs, durable
285
287
  resumes, and ACP sessions; session shutdown settles live work before unloading
286
- them. See the [operator configuration
287
- reference](https://github.com/cogitave/namzu/blob/main/docs/cli/reference.md#plugins).
288
+ them.
288
289
 
289
290
  ## Headless runs
290
291
 
@@ -311,8 +312,6 @@ call.
311
312
 
312
313
  ## Documentation
313
314
 
314
- - [The operator application](https://github.com/cogitave/namzu/blob/main/docs/cli/reference.md) — every command, the configuration surface, headless event shapes
315
- - [`namzu doctor`](https://github.com/cogitave/namzu/blob/main/docs/cli/doctor.md)
316
315
  - [All docs](https://github.com/cogitave/namzu/tree/main/docs)
317
316
 
318
317
  ## License
package/dist/bin.js CHANGED
@@ -1,7 +1,18 @@
1
1
  #!/usr/bin/env node
2
+ import { fileURLToPath } from 'node:url';
2
3
  import { runCli } from './cli.js';
3
4
  import { EXIT_INTERNAL_ERROR } from './exit-codes.js';
4
- runCli({ argv: process.argv }).then((code) => {
5
+ // The invoked module, rather than a PATH lookup, owns the resume address. A
6
+ // source launch must retain its Node loader; the distributed JS needs none.
7
+ const entrypoint = fileURLToPath(import.meta.url);
8
+ runCli({
9
+ argv: process.argv,
10
+ resumeCommand: [
11
+ process.execPath,
12
+ ...(entrypoint.endsWith('.ts') ? process.execArgv : []),
13
+ entrypoint,
14
+ ],
15
+ }).then((code) => {
5
16
  process.exit(code);
6
17
  }, (err) => {
7
18
  process.stderr.write(`Fatal: ${err instanceof Error ? (err.stack ?? err.message) : String(err)}\n`);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAClC,CAAC,IAAI,EAAE,EAAE;IACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;IACP,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC7E,CAAA;IACD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;AAClC,CAAC,CACD,CAAA"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,4EAA4E;AAC5E,4EAA4E;AAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,CAAC;IACN,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,aAAa,EAAE;QACd,OAAO,CAAC,QAAQ;QAChB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,UAAU;KACV;CACD,CAAC,CAAC,IAAI,CACN,CAAC,IAAI,EAAE,EAAE;IACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;IACP,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC7E,CAAA;IACD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;AAClC,CAAC,CACD,CAAA"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * File checkpoints: the state of every file the model changed, before it
3
+ * changed it, per turn — so `/restore N` puts the working tree back to
4
+ * where it was before turn N.
5
+ *
6
+ * Not git. A checkpoint is taken by the tool wrapper immediately before an
7
+ * `edit` or `write` runs, whatever the repository's state, and it records
8
+ * absence too, so a file the model created is removed on restore. Kept per
9
+ * session under the project's private state and dropped when the session
10
+ * closes: a checkpoint outlives a turn, not a session — the conversation
11
+ * can be forked and resumed, and its files are the working tree's.
12
+ */
13
+ import { sep } from 'node:path';
14
+ export interface CheckpointTurn {
15
+ /** 1-based, in the order turns began. */
16
+ readonly index: number;
17
+ /** The prompt that started the turn, cut to a line. */
18
+ readonly label: string;
19
+ readonly startedAt: number;
20
+ /** Host paths snapshotted in this turn, first change first. */
21
+ readonly files: readonly string[];
22
+ }
23
+ export interface RestoreReport {
24
+ readonly turn: number;
25
+ /** Files written back to their pre-turn content. */
26
+ readonly restored: readonly string[];
27
+ /** Files removed because they did not exist before the turn. */
28
+ readonly removed: readonly string[];
29
+ }
30
+ /** Files larger than this are not snapshotted; the transcript says so. */
31
+ export declare const CHECKPOINT_MAX_BYTES: number;
32
+ export declare class FileCheckpointStore {
33
+ /** Where blobs go, e.g. `<state>/checkpoints/<sessionId>`. */
34
+ private readonly root;
35
+ /** Only files under here are checkpointed. */
36
+ private readonly cwd;
37
+ private readonly turns;
38
+ private current;
39
+ private readonly skipped;
40
+ constructor(
41
+ /** Where blobs go, e.g. `<state>/checkpoints/<sessionId>`. */
42
+ root: string,
43
+ /** Only files under here are checkpointed. */
44
+ cwd: string);
45
+ /** The next tool write belongs to this turn. Returns its index. */
46
+ beginTurn(label: string): number;
47
+ /** Whether a host path is one this store would checkpoint. */
48
+ covers(hostPath: string): boolean;
49
+ /**
50
+ * Record the file's current content before it changes. Once per path
51
+ * per turn: the first snapshot is the pre-turn state, and a second edit
52
+ * to the same file within a turn must not overwrite it.
53
+ */
54
+ snapshot(hostPath: string): Promise<'recorded' | 'already' | 'outside' | 'too-large'>;
55
+ /** Turns that changed at least one file. */
56
+ list(): readonly CheckpointTurn[];
57
+ /** Paths that were too large to checkpoint, so a restore cannot bring them back. */
58
+ skippedPaths(): readonly string[];
59
+ /**
60
+ * Put every file back to its state before turn `index`, undoing that
61
+ * turn and every later one. Later turns are applied first, so a file
62
+ * touched in several turns ends at its oldest recorded state.
63
+ */
64
+ restore(index: number): Promise<RestoreReport>;
65
+ /** Drop every blob. The session is over. */
66
+ close(): Promise<void>;
67
+ /** A write outside any turn — a host command, say — gets a turn of its own. */
68
+ private turnForStrayWrite;
69
+ }
70
+ /** What `/restore` prints with no argument. */
71
+ export declare function renderCheckpoints(turns: readonly CheckpointTurn[], cwd: string): string;
72
+ /** What `/restore N` prints. */
73
+ export declare function renderRestore(report: RestoreReport, cwd: string): string;
74
+ export { sep as PATH_SEPARATOR };
75
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/checkpoints/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAgD,GAAG,EAAE,MAAM,WAAW,CAAA;AAE7E,MAAM,WAAW,cAAc;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAeD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,QAAkB,CAAA;AAGnD,qBAAa,mBAAmB;IAM9B,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IARrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;;IAG3C,8DAA8D;IAC7C,IAAI,EAAE,MAAM;IAC7B,8CAA8C;IAC7B,GAAG,EAAE,MAAM;IAG7B,mEAAmE;IACnE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAYhC,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKjC;;;;OAIG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IA2B3F,4CAA4C;IAC5C,IAAI,IAAI,SAAS,cAAc,EAAE;IAWjC,oFAAoF;IACpF,YAAY,IAAI,SAAS,MAAM,EAAE;IAIjC;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiCpD,4CAA4C;IACtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;CAIzB;AAOD,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAYvF;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,OAAO,EAAE,GAAG,IAAI,cAAc,EAAE,CAAA"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * File checkpoints: the state of every file the model changed, before it
3
+ * changed it, per turn — so `/restore N` puts the working tree back to
4
+ * where it was before turn N.
5
+ *
6
+ * Not git. A checkpoint is taken by the tool wrapper immediately before an
7
+ * `edit` or `write` runs, whatever the repository's state, and it records
8
+ * absence too, so a file the model created is removed on restore. Kept per
9
+ * session under the project's private state and dropped when the session
10
+ * closes: a checkpoint outlives a turn, not a session — the conversation
11
+ * can be forked and resumed, and its files are the working tree's.
12
+ */
13
+ import { mkdir, readFile, rm, unlink, writeFile } from 'node:fs/promises';
14
+ import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
15
+ /** Files larger than this are not snapshotted; the transcript says so. */
16
+ export const CHECKPOINT_MAX_BYTES = 8 * 1024 * 1024;
17
+ const LABEL_CHARS = 72;
18
+ export class FileCheckpointStore {
19
+ root;
20
+ cwd;
21
+ turns = [];
22
+ current;
23
+ skipped = new Set();
24
+ constructor(
25
+ /** Where blobs go, e.g. `<state>/checkpoints/<sessionId>`. */
26
+ root,
27
+ /** Only files under here are checkpointed. */
28
+ cwd) {
29
+ this.root = root;
30
+ this.cwd = cwd;
31
+ }
32
+ /** The next tool write belongs to this turn. Returns its index. */
33
+ beginTurn(label) {
34
+ const index = this.turns.length + 1;
35
+ this.current = {
36
+ index,
37
+ label: firstLine(label).slice(0, LABEL_CHARS),
38
+ startedAt: Date.now(),
39
+ entries: [],
40
+ };
41
+ this.turns.push(this.current);
42
+ return index;
43
+ }
44
+ /** Whether a host path is one this store would checkpoint. */
45
+ covers(hostPath) {
46
+ const rel = relative(this.cwd, resolve(this.cwd, hostPath));
47
+ return rel.length > 0 && !rel.startsWith('..') && !isAbsolute(rel);
48
+ }
49
+ /**
50
+ * Record the file's current content before it changes. Once per path
51
+ * per turn: the first snapshot is the pre-turn state, and a second edit
52
+ * to the same file within a turn must not overwrite it.
53
+ */
54
+ async snapshot(hostPath) {
55
+ const turn = this.current ?? this.turnForStrayWrite();
56
+ const path = resolve(this.cwd, hostPath);
57
+ if (!this.covers(path))
58
+ return 'outside';
59
+ if (turn.entries.some((e) => e.path === path))
60
+ return 'already';
61
+ let content;
62
+ try {
63
+ content = await readFile(path);
64
+ }
65
+ catch (err) {
66
+ if (err.code === 'ENOENT')
67
+ content = null;
68
+ else
69
+ throw err;
70
+ }
71
+ if (content !== null && content.byteLength > CHECKPOINT_MAX_BYTES) {
72
+ this.skipped.add(path);
73
+ return 'too-large';
74
+ }
75
+ let blob = null;
76
+ if (content !== null) {
77
+ const dir = join(this.root, String(turn.index));
78
+ await mkdir(dir, { recursive: true });
79
+ blob = join(dir, `${turn.entries.length}.blob`);
80
+ await writeFile(blob, content);
81
+ }
82
+ turn.entries.push({ path, blob });
83
+ return 'recorded';
84
+ }
85
+ /** Turns that changed at least one file. */
86
+ list() {
87
+ return this.turns
88
+ .filter((t) => t.entries.length > 0)
89
+ .map((t) => ({
90
+ index: t.index,
91
+ label: t.label,
92
+ startedAt: t.startedAt,
93
+ files: t.entries.map((e) => e.path),
94
+ }));
95
+ }
96
+ /** Paths that were too large to checkpoint, so a restore cannot bring them back. */
97
+ skippedPaths() {
98
+ return [...this.skipped];
99
+ }
100
+ /**
101
+ * Put every file back to its state before turn `index`, undoing that
102
+ * turn and every later one. Later turns are applied first, so a file
103
+ * touched in several turns ends at its oldest recorded state.
104
+ */
105
+ async restore(index) {
106
+ const target = this.turns.find((t) => t.index === index);
107
+ if (!target || !this.turns.some((t) => t.index >= index && t.entries.length > 0)) {
108
+ throw new Error(`No checkpoint for turn ${index}.`);
109
+ }
110
+ const restored = new Set();
111
+ const removed = new Set();
112
+ for (const turn of [...this.turns].filter((t) => t.index >= index).reverse()) {
113
+ for (const entry of turn.entries) {
114
+ if (entry.blob === null) {
115
+ await unlink(entry.path).catch((err) => {
116
+ if (err.code !== 'ENOENT')
117
+ throw err;
118
+ });
119
+ removed.add(entry.path);
120
+ restored.delete(entry.path);
121
+ }
122
+ else {
123
+ await mkdir(dirname(entry.path), { recursive: true });
124
+ await writeFile(entry.path, await readFile(entry.blob));
125
+ restored.add(entry.path);
126
+ removed.delete(entry.path);
127
+ }
128
+ }
129
+ }
130
+ // The undone turns are gone: their snapshots describe a state the
131
+ // tree no longer builds on.
132
+ const dropped = this.turns.splice(this.turns.findIndex((t) => t.index === index));
133
+ for (const turn of dropped) {
134
+ await rm(join(this.root, String(turn.index)), { recursive: true, force: true });
135
+ }
136
+ this.current = undefined;
137
+ return { turn: index, restored: [...restored], removed: [...removed] };
138
+ }
139
+ /** Drop every blob. The session is over. */
140
+ async close() {
141
+ await rm(this.root, { recursive: true, force: true });
142
+ }
143
+ /** A write outside any turn — a host command, say — gets a turn of its own. */
144
+ turnForStrayWrite() {
145
+ this.beginTurn('(outside a turn)');
146
+ return this.current;
147
+ }
148
+ }
149
+ function firstLine(text) {
150
+ const line = text.split('\n').find((l) => l.trim().length > 0) ?? '';
151
+ return line.trim();
152
+ }
153
+ /** What `/restore` prints with no argument. */
154
+ export function renderCheckpoints(turns, cwd) {
155
+ if (turns.length === 0)
156
+ return 'No checkpoints: no file has been changed by a tool this session.';
157
+ const lines = ['Checkpoints (files as they were before each turn):'];
158
+ for (const turn of turns) {
159
+ lines.push(` ${turn.index}. ${turn.label || '(no prompt)'}`);
160
+ for (const file of turn.files)
161
+ lines.push(` ${relative(cwd, file) || file}`);
162
+ }
163
+ lines.push('', '/restore N puts every file back to before turn N, undoing N and every later turn.');
164
+ return lines.join('\n');
165
+ }
166
+ /** What `/restore N` prints. */
167
+ export function renderRestore(report, cwd) {
168
+ const rel = (p) => relative(cwd, p) || p;
169
+ const lines = [`Restored the tree to before turn ${report.turn}.`];
170
+ for (const p of report.restored)
171
+ lines.push(` restored ${rel(p)}`);
172
+ for (const p of report.removed)
173
+ lines.push(` removed ${rel(p)}`);
174
+ return lines.join('\n');
175
+ }
176
+ export { sep as PATH_SEPARATOR };
177
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/checkpoints/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The file tools, with a checkpoint taken before each write.
3
+ *
4
+ * Wrapping `execute` rather than hooking `pre_tool_use`: a hook needs the
5
+ * plugin lifecycle manager, which a session without plugins or hooks does
6
+ * not build, and a checkpoint must not depend on which other features are
7
+ * on. The wrapper reads the file the tool is about to change, records it,
8
+ * and then runs the tool untouched.
9
+ */
10
+ import type { ToolDefinition } from '@namzu/sdk';
11
+ import type { FileCheckpointStore } from './store.js';
12
+ /** Tools whose `path` names a file they will change. */
13
+ export declare const CHECKPOINTED_TOOLS: readonly string[];
14
+ export declare function withCheckpoints(tool: ToolDefinition, store: FileCheckpointStore): ToolDefinition;
15
+ //# sourceMappingURL=wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/checkpoints/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAe,cAAc,EAAc,MAAM,YAAY,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAsB,CAAA;AAQtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAoBhG"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The file tools, with a checkpoint taken before each write.
3
+ *
4
+ * Wrapping `execute` rather than hooking `pre_tool_use`: a hook needs the
5
+ * plugin lifecycle manager, which a session without plugins or hooks does
6
+ * not build, and a checkpoint must not depend on which other features are
7
+ * on. The wrapper reads the file the tool is about to change, records it,
8
+ * and then runs the tool untouched.
9
+ */
10
+ /** Tools whose `path` names a file they will change. */
11
+ export const CHECKPOINTED_TOOLS = ['edit', 'write'];
12
+ function pathOf(input) {
13
+ if (input === null || typeof input !== 'object')
14
+ return undefined;
15
+ const path = input.path;
16
+ return typeof path === 'string' && path.length > 0 ? path : undefined;
17
+ }
18
+ export function withCheckpoints(tool, store) {
19
+ return {
20
+ ...tool,
21
+ execute: async (input, context) => {
22
+ const path = pathOf(input);
23
+ if (path !== undefined) {
24
+ try {
25
+ await store.snapshot(path);
26
+ }
27
+ catch (err) {
28
+ // A checkpoint that cannot be taken must not stop the edit;
29
+ // it is a safety net under the work, not a gate on it.
30
+ context.log('warn', `checkpoint skipped for ${path}: ${err instanceof Error ? err.message : String(err)}`);
31
+ }
32
+ }
33
+ return tool.execute(input, context);
34
+ },
35
+ };
36
+ }
37
+ //# sourceMappingURL=wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/checkpoints/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtE,SAAS,MAAM,CAAC,KAAc;IAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACjE,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAA;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB,EAAE,KAA0B;IAC/E,OAAO;QACN,GAAG,IAAI;QACP,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,OAAoB,EAAuB,EAAE;YAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACJ,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC3B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,4DAA4D;oBAC5D,uDAAuD;oBACvD,OAAO,CAAC,GAAG,CACV,MAAM,EACN,0BAA0B,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACrF,CAAA;gBACF,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;KACD,CAAA;AACF,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -11,6 +11,12 @@ import type { NamzuCliConfig } from './config/schema.js';
11
11
  export interface RunCliOptions {
12
12
  /** Argv with the leading `node` + script path, matching `process.argv` shape. */
13
13
  readonly argv: readonly string[];
14
+ /**
15
+ * Exact executable plus arguments for the interactive resume hint. The binary
16
+ * supplies its absolute Node and entrypoint paths; embedded callers can supply
17
+ * their own launcher. Omitted callers use `namzu` without guessing from argv.
18
+ */
19
+ readonly resumeCommand?: readonly [string, ...string[]];
14
20
  }
15
21
  export declare function runCli(opts: RunCliOptions): Promise<number>;
16
22
  /**
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;AA+BH,OAAO,EAEN,KAAK,gBAAgB,EAKrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAqBxD,MAAM,WAAW,aAAa;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAChC;AAQD,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA4SjE;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;AA+BH,OAAO,EAEN,KAAK,gBAAgB,EAKrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAqBxD,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,CA2TjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA4E5F"}
package/dist/cli.js CHANGED
@@ -50,6 +50,7 @@ export async function runCli(opts) {
50
50
  .addOption(new Option('--log-format <format>', 'Log record format for run/drain/TUI-flush output: pretty (default) or json. namzu run-stream always writes json, regardless of this flag.').choices(['pretty', 'json']))
51
51
  .option('--dangerously-skip-permissions', 'Run tools without asking for approval (no permission prompts). Only use in a sandbox or a folder you fully trust.')
52
52
  .option('--yolo', 'Alias of --dangerously-skip-permissions.')
53
+ .option('--add-dir <path>', 'Let the file tools reach another directory this session; repeatable. /add-dir does the same from inside.', (value, previous) => [...previous, value], [])
53
54
  .option('--profile <name>', 'Apply a named profile from the config files. A name no file declares is refused, not ignored.')
54
55
  // Required by Commander 14 so subcommands (doctor) can opt into
55
56
  // passThroughOptions for unparsed argument forwarding.
@@ -215,17 +216,24 @@ export async function runCli(opts) {
215
216
  const where = d.pattern ? `permissions.${d.tool}."${d.pattern}"` : `permissions.${d.tool}`;
216
217
  resolvedCtx.formatter.error({ message: `${where}: ${d.message}` });
217
218
  }
219
+ const additionalDirectories = [
220
+ ...(resolvedCtx.config.additionalDirectories ?? []),
221
+ ...(launchOpts.addDir ?? []),
222
+ ].map((dir) => resolve(cwd, dir));
218
223
  return {
219
224
  cwd,
220
225
  version: CLI_VERSION,
221
226
  configDebug: resolvedCtx.configDebug,
222
227
  skipPermissions,
228
+ ...(additionalDirectories.length > 0 ? { additionalDirectories } : {}),
223
229
  rules: permissions.rules,
224
230
  logging: resolvedCtx.logging,
225
231
  ...(initialConversationId ? { initialConversationId } : {}),
226
232
  ...(resolvedCtx.config.mcpServers ? { mcpServers: resolvedCtx.config.mcpServers } : {}),
227
233
  ...(resolvedCtx.config.plugins ? { plugins: resolvedCtx.config.plugins } : {}),
228
234
  ...(resolvedCtx.config.web ? { web: resolvedCtx.config.web } : {}),
235
+ ...(resolvedCtx.config.hooks ? { hooks: resolvedCtx.config.hooks } : {}),
236
+ ...(resolvedCtx.config.compaction ? { compaction: resolvedCtx.config.compaction } : {}),
229
237
  ...(resolvedCtx.config.sandbox ? { sandbox: resolvedCtx.config.sandbox } : {}),
230
238
  ...(resolvedCtx.config.tui ? { tui: resolvedCtx.config.tui } : {}),
231
239
  };
@@ -233,7 +241,10 @@ export async function runCli(opts) {
233
241
  const tuiCtx = buildTuiContext(commandCtx, process.cwd());
234
242
  bindTrustedProjectContext(tuiCtx, (cwd) => buildTuiContext(resolveTrustedProjectContext(commandCtx, cwd), cwd));
235
243
  const { launchTui } = await import('./tui/index.js');
236
- await launchTui(tuiCtx);
244
+ if (opts.resumeCommand)
245
+ await launchTui(tuiCtx, { resumeCommand: opts.resumeCommand });
246
+ else
247
+ await launchTui(tuiCtx);
237
248
  const code = await Promise.resolve(0);
238
249
  setExitCode(code);
239
250
  return;
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 +1 @@
1
- {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,eAAe,EAQpB,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;AA+C5D;;;;;;;;;;;;;;;GAeG;AAEH,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;CACnE;AAQD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AASD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,cAAc,EAC5B,IAAI,GAAE,sBAA6C,GACjD,aAAa,CAgNf;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,EAQpB,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;AA+C5D;;;;;;;;;;;;;;;GAeG;AAEH,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;CACnE;AAQD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AASD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,cAAc,EAC5B,IAAI,GAAE,sBAA6C,GACjD,aAAa,CAkNf;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCxE;AAED,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAA"}
@@ -134,6 +134,8 @@ export function createCliAcpRuntime(bootstrapCtx, deps = DEFAULT_RUNTIME_DEPS) {
134
134
  ...(projectCtx.config.mcpServers ? { mcpServers: projectCtx.config.mcpServers } : {}),
135
135
  ...(projectCtx.config.plugins ? { plugins: projectCtx.config.plugins } : {}),
136
136
  ...(projectCtx.config.web ? { web: projectCtx.config.web } : {}),
137
+ ...(projectCtx.config.hooks ? { hooks: projectCtx.config.hooks } : {}),
138
+ ...(projectCtx.config.compaction ? { compaction: projectCtx.config.compaction } : {}),
137
139
  ...(projectCtx.config.sandbox ? { sandbox: projectCtx.config.sandbox } : {}),
138
140
  onRunEvent: (event) => routeOwner.current?.route?.(event),
139
141
  });