@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.
- package/CHANGELOG.md +5898 -0
- package/README.md +23 -24
- package/dist/bin.js +12 -1
- package/dist/bin.js.map +1 -1
- package/dist/checkpoints/store.d.ts +75 -0
- package/dist/checkpoints/store.d.ts.map +1 -0
- package/dist/checkpoints/store.js +177 -0
- package/dist/checkpoints/store.js.map +1 -0
- package/dist/checkpoints/wrap.d.ts +15 -0
- package/dist/checkpoints/wrap.d.ts.map +1 -0
- package/dist/checkpoints/wrap.js +37 -0
- package/dist/checkpoints/wrap.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/acp.js +2 -0
- package/dist/commands/acp.js.map +1 -1
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +15 -2
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/provider-wait.d.ts +44 -0
- package/dist/commands/provider-wait.d.ts.map +1 -0
- package/dist/commands/provider-wait.js +65 -0
- package/dist/commands/provider-wait.js.map +1 -0
- package/dist/commands/run-flags.d.ts +13 -1
- package/dist/commands/run-flags.d.ts.map +1 -1
- package/dist/commands/run-flags.js +41 -0
- package/dist/commands/run-flags.js.map +1 -1
- package/dist/commands/run-stream.d.ts.map +1 -1
- package/dist/commands/run-stream.js +33 -13
- package/dist/commands/run-stream.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +132 -78
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/stdin.d.ts +17 -0
- package/dist/commands/stdin.d.ts.map +1 -0
- package/dist/commands/stdin.js +69 -0
- package/dist/commands/stdin.js.map +1 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +107 -2
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +80 -5
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/context/doctrine.d.ts +16 -38
- package/dist/context/doctrine.d.ts.map +1 -1
- package/dist/context/doctrine.js +16 -75
- package/dist/context/doctrine.js.map +1 -1
- package/dist/context/environment.d.ts +2 -0
- package/dist/context/environment.d.ts.map +1 -1
- package/dist/context/environment.js +3 -0
- package/dist/context/environment.js.map +1 -1
- package/dist/integrations/mcp/servers.d.ts +19 -0
- package/dist/integrations/mcp/servers.d.ts.map +1 -1
- package/dist/integrations/mcp/servers.js +23 -2
- package/dist/integrations/mcp/servers.js.map +1 -1
- package/dist/integrations/plugins/runtime.d.ts +8 -2
- package/dist/integrations/plugins/runtime.d.ts.map +1 -1
- package/dist/integrations/plugins/runtime.js +24 -12
- package/dist/integrations/plugins/runtime.js.map +1 -1
- package/dist/integrations/providers/chain-capabilities.js +1 -1
- package/dist/integrations/providers/chain-capabilities.js.map +1 -1
- package/dist/integrations/providers/credential-store.d.ts +1 -1
- package/dist/integrations/providers/credential-store.js +1 -1
- package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
- package/dist/integrations/providers/harness-credentials.js +7 -0
- package/dist/integrations/providers/harness-credentials.js.map +1 -1
- package/dist/integrations/providers/registry.d.ts +2 -2
- package/dist/integrations/providers/registry.js +2 -2
- package/dist/integrations/sessions/store.d.ts +14 -22
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/store.js +78 -175
- package/dist/integrations/sessions/store.js.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
- package/dist/integrations/sessions/transcript-export.js +6 -2
- package/dist/integrations/sessions/transcript-export.js.map +1 -1
- package/dist/integrations/state/identity.d.ts +21 -0
- package/dist/integrations/state/identity.d.ts.map +1 -0
- package/dist/integrations/state/identity.js +49 -0
- package/dist/integrations/state/identity.js.map +1 -0
- package/dist/integrations/state/immutable-json.d.ts +10 -0
- package/dist/integrations/state/immutable-json.d.ts.map +1 -0
- package/dist/integrations/state/immutable-json.js +38 -0
- package/dist/integrations/state/immutable-json.js.map +1 -0
- package/dist/integrations/state/project.d.ts +10 -0
- package/dist/integrations/state/project.d.ts.map +1 -0
- package/dist/integrations/state/project.js +15 -0
- package/dist/integrations/state/project.js.map +1 -0
- package/dist/integrations/state/report.d.ts.map +1 -1
- package/dist/integrations/state/report.js +42 -12
- package/dist/integrations/state/report.js.map +1 -1
- package/dist/integrations/subagents/definitions.d.ts +19 -0
- package/dist/integrations/subagents/definitions.d.ts.map +1 -0
- package/dist/integrations/subagents/definitions.js +26 -0
- package/dist/integrations/subagents/definitions.js.map +1 -0
- package/dist/integrations/subagents/parent.d.ts +13 -0
- package/dist/integrations/subagents/parent.d.ts.map +1 -0
- package/dist/integrations/subagents/parent.js +57 -0
- package/dist/integrations/subagents/parent.js.map +1 -0
- package/dist/integrations/subagents/runtime.d.ts +24 -13
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +282 -122
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/memory/store.d.ts +35 -15
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +79 -25
- package/dist/memory/store.js.map +1 -1
- package/dist/permissions/mode.d.ts +12 -45
- package/dist/permissions/mode.d.ts.map +1 -1
- package/dist/permissions/mode.js +18 -13
- package/dist/permissions/mode.js.map +1 -1
- package/dist/release-notes.d.ts +20 -0
- package/dist/release-notes.d.ts.map +1 -0
- package/dist/release-notes.js +64 -0
- package/dist/release-notes.js.map +1 -0
- package/dist/tui/AgentExplorer.d.ts.map +1 -1
- package/dist/tui/AgentExplorer.js +14 -18
- package/dist/tui/AgentExplorer.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +606 -207
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/BrandHeader.d.ts +12 -0
- package/dist/tui/BrandHeader.d.ts.map +1 -0
- package/dist/tui/BrandHeader.js +17 -0
- package/dist/tui/BrandHeader.js.map +1 -0
- package/dist/tui/ChoicePicker.d.ts +11 -1
- package/dist/tui/ChoicePicker.d.ts.map +1 -1
- package/dist/tui/ChoicePicker.js +46 -13
- package/dist/tui/ChoicePicker.js.map +1 -1
- package/dist/tui/Composer.d.ts +4 -1
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/Composer.js +4 -4
- package/dist/tui/Composer.js.map +1 -1
- package/dist/tui/ComposerFrame.d.ts +10 -0
- package/dist/tui/ComposerFrame.d.ts.map +1 -0
- package/dist/tui/ComposerFrame.js +93 -0
- package/dist/tui/ComposerFrame.js.map +1 -0
- package/dist/tui/EditPromptPicker.d.ts.map +1 -1
- package/dist/tui/EditPromptPicker.js +1 -1
- package/dist/tui/EditPromptPicker.js.map +1 -1
- package/dist/tui/LiveActivity.d.ts +12 -5
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/LiveActivity.js +17 -32
- package/dist/tui/LiveActivity.js.map +1 -1
- package/dist/tui/PermissionOverlay.d.ts +26 -2
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.js +108 -16
- package/dist/tui/PermissionOverlay.js.map +1 -1
- package/dist/tui/Picker.d.ts +2 -2
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +79 -52
- package/dist/tui/Picker.js.map +1 -1
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusBar.js +5 -2
- package/dist/tui/StatusBar.js.map +1 -1
- package/dist/tui/TaskList.d.ts +3 -1
- package/dist/tui/TaskList.d.ts.map +1 -1
- package/dist/tui/TaskList.js +13 -4
- package/dist/tui/TaskList.js.map +1 -1
- package/dist/tui/Transcript.d.ts +3 -3
- package/dist/tui/Transcript.d.ts.map +1 -1
- package/dist/tui/Transcript.js +16 -34
- package/dist/tui/Transcript.js.map +1 -1
- package/dist/tui/agent.d.ts +113 -50
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +512 -293
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/choice-selection.d.ts +17 -0
- package/dist/tui/choice-selection.d.ts.map +1 -0
- package/dist/tui/choice-selection.js +38 -0
- package/dist/tui/choice-selection.js.map +1 -0
- package/dist/tui/exit-summary.d.ts +7 -1
- package/dist/tui/exit-summary.d.ts.map +1 -1
- package/dist/tui/exit-summary.js +12 -3
- package/dist/tui/exit-summary.js.map +1 -1
- package/dist/tui/index.d.ts +3 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +5 -3
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/logo.d.ts +7 -22
- package/dist/tui/logo.d.ts.map +1 -1
- package/dist/tui/logo.js +8 -34
- package/dist/tui/logo.js.map +1 -1
- package/dist/tui/model-choices.d.ts.map +1 -1
- package/dist/tui/model-choices.js +21 -6
- package/dist/tui/model-choices.js.map +1 -1
- package/dist/tui/permission-review.d.ts +15 -4
- package/dist/tui/permission-review.d.ts.map +1 -1
- package/dist/tui/permission-review.js +48 -9
- package/dist/tui/permission-review.js.map +1 -1
- package/dist/tui/provider-selection.d.ts +4 -0
- package/dist/tui/provider-selection.d.ts.map +1 -0
- package/dist/tui/provider-selection.js +16 -0
- package/dist/tui/provider-selection.js.map +1 -0
- package/dist/tui/run-interruption.d.ts +3 -2
- package/dist/tui/run-interruption.d.ts.map +1 -1
- package/dist/tui/run-interruption.js +2 -1
- package/dist/tui/run-interruption.js.map +1 -1
- package/dist/tui/shell-escape.d.ts +42 -0
- package/dist/tui/shell-escape.d.ts.map +1 -0
- package/dist/tui/shell-escape.js +110 -0
- package/dist/tui/shell-escape.js.map +1 -0
- package/dist/tui/slashCommands.d.ts +77 -31
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +343 -303
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/terminal-choice-text.d.ts +8 -0
- package/dist/tui/terminal-choice-text.d.ts.map +1 -0
- package/dist/tui/terminal-choice-text.js +37 -0
- package/dist/tui/terminal-choice-text.js.map +1 -0
- package/dist/tui/theme.d.ts +3 -4
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +16 -17
- package/dist/tui/theme.js.map +1 -1
- package/dist/tui/types.d.ts +6 -1
- package/dist/tui/types.d.ts.map +1 -1
- 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
|
-
|
|
10
|
-
|
|
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
|
|
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`.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
`/
|
|
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.
|
|
177
|
-
|
|
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
|
-
`/
|
|
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. `/
|
|
226
|
-
|
|
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
|
|
261
|
-
|
|
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.
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/dist/commands/acp.js
CHANGED
|
@@ -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
|
});
|