@namzu/cli 12.1.0 → 13.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 (199) hide show
  1. package/README.md +25 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +119 -60
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/acp.d.ts +24 -8
  6. package/dist/commands/acp.d.ts.map +1 -1
  7. package/dist/commands/acp.js +221 -80
  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 +45 -9
  11. package/dist/commands/drain.js.map +1 -1
  12. package/dist/commands/prior-messages.d.ts +11 -0
  13. package/dist/commands/prior-messages.d.ts.map +1 -0
  14. package/dist/commands/prior-messages.js +280 -0
  15. package/dist/commands/prior-messages.js.map +1 -0
  16. package/dist/commands/resume.d.ts.map +1 -1
  17. package/dist/commands/resume.js +21 -19
  18. package/dist/commands/resume.js.map +1 -1
  19. package/dist/commands/run-stream.d.ts +5 -3
  20. package/dist/commands/run-stream.d.ts.map +1 -1
  21. package/dist/commands/run-stream.js +66 -62
  22. package/dist/commands/run-stream.js.map +1 -1
  23. package/dist/commands/run.d.ts.map +1 -1
  24. package/dist/commands/run.js +50 -37
  25. package/dist/commands/run.js.map +1 -1
  26. package/dist/config/debug.d.ts +55 -0
  27. package/dist/config/debug.d.ts.map +1 -0
  28. package/dist/config/debug.js +126 -0
  29. package/dist/config/debug.js.map +1 -0
  30. package/dist/config/load.d.ts +88 -4
  31. package/dist/config/load.d.ts.map +1 -1
  32. package/dist/config/load.js +386 -56
  33. package/dist/config/load.js.map +1 -1
  34. package/dist/config/schema.d.ts +87 -5
  35. package/dist/config/schema.d.ts.map +1 -1
  36. package/dist/config/schema.js +5 -5
  37. package/dist/config/schema.js.map +1 -1
  38. package/dist/config/trusted-project-context.d.ts +11 -0
  39. package/dist/config/trusted-project-context.d.ts.map +1 -0
  40. package/dist/config/trusted-project-context.js +28 -0
  41. package/dist/config/trusted-project-context.js.map +1 -0
  42. package/dist/context/project-path.d.ts +3 -0
  43. package/dist/context/project-path.d.ts.map +1 -0
  44. package/dist/context/project-path.js +16 -0
  45. package/dist/context/project-path.js.map +1 -0
  46. package/dist/context/project-tracker.d.ts +30 -0
  47. package/dist/context/project-tracker.d.ts.map +1 -0
  48. package/dist/context/project-tracker.js +217 -0
  49. package/dist/context/project-tracker.js.map +1 -0
  50. package/dist/context/sandbox.d.ts +29 -9
  51. package/dist/context/sandbox.d.ts.map +1 -1
  52. package/dist/context/sandbox.js +8 -0
  53. package/dist/context/sandbox.js.map +1 -1
  54. package/dist/exit-codes.d.ts +5 -4
  55. package/dist/exit-codes.d.ts.map +1 -1
  56. package/dist/exit-codes.js +5 -4
  57. package/dist/exit-codes.js.map +1 -1
  58. package/dist/index.d.ts +2 -2
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +2 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/integrations/clipboard/text.d.ts +43 -0
  63. package/dist/integrations/clipboard/text.d.ts.map +1 -0
  64. package/dist/integrations/clipboard/text.js +43 -0
  65. package/dist/integrations/clipboard/text.js.map +1 -0
  66. package/dist/integrations/mcp/servers.d.ts +9 -0
  67. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  68. package/dist/integrations/mcp/servers.js +11 -4
  69. package/dist/integrations/mcp/servers.js.map +1 -1
  70. package/dist/integrations/notifications/terminal.d.ts +32 -0
  71. package/dist/integrations/notifications/terminal.d.ts.map +1 -0
  72. package/dist/integrations/notifications/terminal.js +46 -0
  73. package/dist/integrations/notifications/terminal.js.map +1 -0
  74. package/dist/integrations/plugins/runtime.d.ts +17 -0
  75. package/dist/integrations/plugins/runtime.d.ts.map +1 -0
  76. package/dist/integrations/plugins/runtime.js +100 -0
  77. package/dist/integrations/plugins/runtime.js.map +1 -0
  78. package/dist/integrations/providers/credential-store.d.ts +17 -0
  79. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  80. package/dist/integrations/providers/credential-store.js +114 -2
  81. package/dist/integrations/providers/credential-store.js.map +1 -1
  82. package/dist/integrations/providers/index.d.ts +2 -2
  83. package/dist/integrations/providers/index.d.ts.map +1 -1
  84. package/dist/integrations/providers/index.js +2 -2
  85. package/dist/integrations/providers/index.js.map +1 -1
  86. package/dist/integrations/providers/keychain.d.ts +0 -13
  87. package/dist/integrations/providers/keychain.d.ts.map +1 -1
  88. package/dist/integrations/providers/keychain.js +0 -76
  89. package/dist/integrations/providers/keychain.js.map +1 -1
  90. package/dist/integrations/providers/oauth.d.ts +45 -16
  91. package/dist/integrations/providers/oauth.d.ts.map +1 -1
  92. package/dist/integrations/providers/oauth.js +170 -43
  93. package/dist/integrations/providers/oauth.js.map +1 -1
  94. package/dist/integrations/providers/subscription-login.d.ts +2 -0
  95. package/dist/integrations/providers/subscription-login.d.ts.map +1 -1
  96. package/dist/integrations/providers/subscription-login.js +117 -14
  97. package/dist/integrations/providers/subscription-login.js.map +1 -1
  98. package/dist/integrations/sessions/store.d.ts +111 -1
  99. package/dist/integrations/sessions/store.d.ts.map +1 -1
  100. package/dist/integrations/sessions/store.js +400 -7
  101. package/dist/integrations/sessions/store.js.map +1 -1
  102. package/dist/integrations/sessions/transcript-export.d.ts +25 -0
  103. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -0
  104. package/dist/integrations/sessions/transcript-export.js +441 -0
  105. package/dist/integrations/sessions/transcript-export.js.map +1 -0
  106. package/dist/integrations/sessions/turn-evidence.d.ts +138 -0
  107. package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -0
  108. package/dist/integrations/sessions/turn-evidence.js +506 -0
  109. package/dist/integrations/sessions/turn-evidence.js.map +1 -0
  110. package/dist/integrations/subagents/runtime.d.ts +7 -12
  111. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  112. package/dist/integrations/subagents/runtime.js +19 -10
  113. package/dist/integrations/subagents/runtime.js.map +1 -1
  114. package/dist/integrations/trust/store.d.ts.map +1 -1
  115. package/dist/integrations/trust/store.js +27 -13
  116. package/dist/integrations/trust/store.js.map +1 -1
  117. package/dist/permissions/canonical-project.d.ts +9 -0
  118. package/dist/permissions/canonical-project.d.ts.map +1 -0
  119. package/dist/permissions/canonical-project.js +13 -0
  120. package/dist/permissions/canonical-project.js.map +1 -0
  121. package/dist/permissions/checks.d.ts +65 -0
  122. package/dist/permissions/checks.d.ts.map +1 -0
  123. package/dist/permissions/checks.js +122 -0
  124. package/dist/permissions/checks.js.map +1 -0
  125. package/dist/permissions/headless-trust.d.ts +9 -5
  126. package/dist/permissions/headless-trust.d.ts.map +1 -1
  127. package/dist/permissions/headless-trust.js +18 -4
  128. package/dist/permissions/headless-trust.js.map +1 -1
  129. package/dist/permissions/rules.d.ts +16 -7
  130. package/dist/permissions/rules.d.ts.map +1 -1
  131. package/dist/permissions/rules.js +78 -13
  132. package/dist/permissions/rules.js.map +1 -1
  133. package/dist/tui/App.d.ts +5 -2
  134. package/dist/tui/App.d.ts.map +1 -1
  135. package/dist/tui/App.js +1555 -143
  136. package/dist/tui/App.js.map +1 -1
  137. package/dist/tui/Composer.d.ts +14 -3
  138. package/dist/tui/Composer.d.ts.map +1 -1
  139. package/dist/tui/Composer.js +53 -15
  140. package/dist/tui/Composer.js.map +1 -1
  141. package/dist/tui/EditPromptPicker.d.ts +8 -0
  142. package/dist/tui/EditPromptPicker.d.ts.map +1 -0
  143. package/dist/tui/EditPromptPicker.js +18 -0
  144. package/dist/tui/EditPromptPicker.js.map +1 -0
  145. package/dist/tui/LiveActivity.d.ts.map +1 -1
  146. package/dist/tui/LiveActivity.js +2 -1
  147. package/dist/tui/LiveActivity.js.map +1 -1
  148. package/dist/tui/Markdown.d.ts.map +1 -1
  149. package/dist/tui/Markdown.js +2 -1
  150. package/dist/tui/Markdown.js.map +1 -1
  151. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  152. package/dist/tui/PermissionOverlay.js +7 -1
  153. package/dist/tui/PermissionOverlay.js.map +1 -1
  154. package/dist/tui/Picker.d.ts +4 -4
  155. package/dist/tui/Picker.d.ts.map +1 -1
  156. package/dist/tui/Picker.js +86 -7
  157. package/dist/tui/Picker.js.map +1 -1
  158. package/dist/tui/ResumePicker.d.ts.map +1 -1
  159. package/dist/tui/ResumePicker.js +1 -1
  160. package/dist/tui/ResumePicker.js.map +1 -1
  161. package/dist/tui/Transcript.d.ts +4 -2
  162. package/dist/tui/Transcript.d.ts.map +1 -1
  163. package/dist/tui/Transcript.js +31 -5
  164. package/dist/tui/Transcript.js.map +1 -1
  165. package/dist/tui/agent.d.ts +123 -19
  166. package/dist/tui/agent.d.ts.map +1 -1
  167. package/dist/tui/agent.js +665 -143
  168. package/dist/tui/agent.js.map +1 -1
  169. package/dist/tui/compact-transcript.d.ts +24 -0
  170. package/dist/tui/compact-transcript.d.ts.map +1 -0
  171. package/dist/tui/compact-transcript.js +46 -0
  172. package/dist/tui/compact-transcript.js.map +1 -0
  173. package/dist/tui/conversation-history.d.ts +33 -0
  174. package/dist/tui/conversation-history.d.ts.map +1 -0
  175. package/dist/tui/conversation-history.js +42 -0
  176. package/dist/tui/conversation-history.js.map +1 -0
  177. package/dist/tui/edit-prompts.d.ts +23 -0
  178. package/dist/tui/edit-prompts.d.ts.map +1 -0
  179. package/dist/tui/edit-prompts.js +35 -0
  180. package/dist/tui/edit-prompts.js.map +1 -0
  181. package/dist/tui/live-window.d.ts +3 -1
  182. package/dist/tui/live-window.d.ts.map +1 -1
  183. package/dist/tui/live-window.js +20 -8
  184. package/dist/tui/live-window.js.map +1 -1
  185. package/dist/tui/slashCommands.d.ts +178 -9
  186. package/dist/tui/slashCommands.d.ts.map +1 -1
  187. package/dist/tui/slashCommands.js +339 -15
  188. package/dist/tui/slashCommands.js.map +1 -1
  189. package/dist/tui/terminal-display.d.ts +12 -0
  190. package/dist/tui/terminal-display.d.ts.map +1 -0
  191. package/dist/tui/terminal-display.js +65 -0
  192. package/dist/tui/terminal-display.js.map +1 -0
  193. package/dist/tui/types.d.ts +14 -2
  194. package/dist/tui/types.d.ts.map +1 -1
  195. package/dist/tui/workspace-diff.d.ts +40 -0
  196. package/dist/tui/workspace-diff.d.ts.map +1 -0
  197. package/dist/tui/workspace-diff.js +101 -0
  198. package/dist/tui/workspace-diff.js.map +1 -0
  199. package/package.json +7 -7
package/README.md CHANGED
@@ -6,7 +6,7 @@ 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-08-17T00:00:00Z
9
+ timestamp: 2026-08-20T00:00:00Z
10
10
  status: active
11
11
  diataxis: reference
12
12
  -->
@@ -67,6 +67,24 @@ namzu doctor # what this host can actually do, and what is missin
67
67
  namzu login # store a credential in the vault
68
68
  ```
69
69
 
70
+ Repository policy stays live for the whole session. The CLI starts with the
71
+ applicable `AGENTS.md` chain, discovers nested instruction files after
72
+ successful reads, writes and edits, and labels every file with its directory
73
+ scope. The current snapshot is retained in durable model context, while a
74
+ resumed session uses its validated project-relative paths to re-read the files
75
+ from disk instead of trusting stale saved prose.
76
+
77
+ Executable SDK plugins are available but default off. Opt in from a config file
78
+ with `plugins.enabled: true`, then restrict discovery to `project`, `user`, or
79
+ both scopes. Project plugins are not read before the project trust gate, and
80
+ plugin paths are canonicalized against the trusted project or user-home root;
81
+ links that leave that scope and symlinked manifests are refused. Plugin
82
+ settings cannot be activated by an environment-selected profile. The
83
+ same plugin hooks and skills reach interactive turns, headless runs, durable
84
+ resumes, and ACP sessions; session shutdown settles live work before unloading
85
+ them. See the [operator configuration
86
+ reference](https://github.com/cogitave/namzu/blob/main/docs/cli/reference.md#plugins).
87
+
70
88
  ## Headless runs
71
89
 
72
90
  ```bash
@@ -79,6 +97,12 @@ run happens, so a script can act on a tool call before the run is over. Both
79
97
  take `--verbose`/`--quiet`, and both write logs to stderr so stdout stays a
80
98
  clean protocol stream.
81
99
 
100
+ The interactive transcript also shows provider capability mismatches and
101
+ tool-history repairs before the affected answer. A history warning reports the
102
+ source and measured rewrite counts without echoing tool content, and tells the
103
+ operator to verify external state before retrying a non-idempotent interrupted
104
+ call.
105
+
82
106
  ## Documentation
83
107
 
84
108
  - [The operator application](https://github.com/cogitave/namzu/blob/main/docs/cli/reference.md) — every command, the configuration surface, headless event shapes
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;AAyBH,OAAO,EAEN,KAAK,gBAAgB,EAGrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAmCxD,MAAM,WAAW,aAAa;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAChC;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA6JjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA0E5F"}
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;AAuCxD,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,CAgPjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA4E5F"}
package/dist/cli.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * this and exits with the returned code.
8
8
  */
9
9
  import { readFileSync } from 'node:fs';
10
- import { dirname, join } from 'node:path';
10
+ import { dirname, join, resolve } from 'node:path';
11
11
  import { fileURLToPath } from 'node:url';
12
12
  import { Command, CommanderError, Option } from 'commander';
13
13
  import { BOOT_EVENT_NAMES, EVENT_NAME_ATTRIBUTE, VERSION as SDK_VERSION } from '@namzu/sdk';
@@ -20,7 +20,9 @@ import { registerAll } from './commands/registry.js';
20
20
  import { historyCommand, providersJSONCommand, runStreamCommand, skillsJSONCommand, } from './commands/run-stream.js';
21
21
  import { runCommand } from './commands/run.js';
22
22
  import { stubCommands } from './commands/stubs.js';
23
- import { ConfigLoadError, loadConfigWithProvenance, } from './config/load.js';
23
+ import { createConfigDebugSnapshot, formatConfigSource, } from './config/debug.js';
24
+ import { ConfigLoadError, ConfigValueError, loadBootstrapConfigWithProvenance, loadConfigWithProvenance, } from './config/load.js';
25
+ import { bindTrustedProjectContext, resolveTrustedProjectContext, } from './config/trusted-project-context.js';
24
26
  import { EXIT_BAD_CONFIG, EXIT_INTERNAL_ERROR } from './exit-codes.js';
25
27
  import { cliLogger, createStderrSink, installCliLogging, resolveLogFormat, resolveLogLevel, } from './logging.js';
26
28
  import { createFormatter, isFormatName } from './output/index.js';
@@ -52,27 +54,49 @@ export async function runCli(opts) {
52
54
  .name('namzu')
53
55
  .description('Operator CLI for the Namzu agent platform')
54
56
  .version(CLI_VERSION, '-V, --version', 'Print version and exit')
55
- .option('-f, --format <type>', 'Output format: text, json, yaml')
57
+ .addOption(new Option('-f, --format <type>', 'Output format: text, json, yaml').choices([
58
+ 'text',
59
+ 'json',
60
+ 'yaml',
61
+ ]))
56
62
  .option('-q, --quiet', 'Suppress non-essential output; also raises the log floor to warn')
57
63
  .addOption(new Option('-v, --verbose', 'Emit debug-level log records to stderr').conflicts('quiet'))
58
64
  .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']))
59
65
  .option('--dangerously-skip-permissions', 'Run tools without asking for approval (no permission prompts). Only use in a sandbox or a folder you fully trust.')
60
66
  .option('--yolo', 'Alias of --dangerously-skip-permissions.')
67
+ .option('--profile <name>', 'Apply a named profile from the config files. A name no file declares is refused, not ignored.')
61
68
  // Required by Commander 14 so subcommands (doctor) can opt into
62
69
  // passThroughOptions for unparsed argument forwarding.
63
70
  .enablePositionalOptions(true)
64
71
  .exitOverride()
65
72
  .showHelpAfterError(false);
66
- let ctx = null;
67
- const getContext = () => {
68
- if (ctx)
69
- return ctx;
73
+ const buildContext = (load) => {
70
74
  const globalOpts = program.opts();
71
- const { config: fileConfig, provenance } = loadConfigWithProvenance();
72
- const format = globalOpts.format && isFormatName(globalOpts.format)
73
- ? globalOpts.format
74
- : (fileConfig.format ?? 'text');
75
+ const { config: fileConfig, provenance } = load();
76
+ const cliFormat = (() => {
77
+ if (globalOpts.format === undefined)
78
+ return undefined;
79
+ if (isFormatName(globalOpts.format))
80
+ return globalOpts.format;
81
+ // Commander's enumerated option owns the operator-facing refusal. This
82
+ // branch is an invariant check so removing `.choices(...)` cannot bring
83
+ // back the old silent fallback.
84
+ throw new Error(`Commander admitted an invalid --format value: ${globalOpts.format}`);
85
+ })();
86
+ const formatFromCli = cliFormat !== undefined;
87
+ const format = cliFormat ?? fileConfig.format ?? 'text';
75
88
  const quiet = globalOpts.quiet ?? fileConfig.quiet ?? false;
89
+ const envProfile = process.env.NAMZU_PROFILE;
90
+ const selectedProfile = globalOpts.profile !== undefined && globalOpts.profile !== ''
91
+ ? { name: globalOpts.profile, selectedBy: '--profile' }
92
+ : globalOpts.profile === undefined && envProfile !== undefined && envProfile !== ''
93
+ ? { name: envProfile, selectedBy: 'NAMZU_PROFILE' }
94
+ : undefined;
95
+ const configDebug = createConfigDebugSnapshot(provenance, {
96
+ formatFromCli,
97
+ quietFromCli: globalOpts.quiet !== undefined,
98
+ ...(selectedProfile ? { selectedProfile } : {}),
99
+ });
76
100
  // Resolved from the ACTUAL parsed flags, not `quiet` above — that value
77
101
  // already folds in NAMZU_QUIET and a config file's `quiet: true`.
78
102
  // "Flag beats env" (LOG-05) means the literal --verbose/--quiet on THIS
@@ -80,30 +104,56 @@ export async function runCli(opts) {
80
104
  // can produce `quiet: true` would let NAMZU_QUIET silently override an
81
105
  // operator's own NAMZU_LOG_LEVEL, which neither variable promises.
82
106
  const logging = {
83
- level: resolveLogLevel({ verbose: globalOpts.verbose, quiet: globalOpts.quiet }),
107
+ level: resolveLogLevel({
108
+ verbose: globalOpts.verbose,
109
+ quiet: globalOpts.quiet,
110
+ }),
84
111
  format: resolveLogFormat({ logFormat: globalOpts.logFormat }),
85
112
  };
86
- // The process's log destination, claimed HERE — the first point ANY
87
- // invocation has resolved a level/format — rather than left for
88
- // whichever subcommand happens to reach `createAgentSession`. `doctor`
89
- // and `login` never call that function at all; without this line, a
90
- // debug-level `namzu.config.resolved` row would be unreachable under
91
- // `--verbose` for either of them. `{ replace: true }` for the same
92
- // reason every other call site takes it (`commands/run.ts`): a
93
- // subcommand installs its OWN sink moments later, computed from the
94
- // SAME `logging` this line just resolved, or a deliberately different
95
- // one (the TUI's ring buffer) — never a second party fighting this one
96
- // for the destination.
97
- installCliLogging(createStderrSink(logging.format), logging.level);
98
- emitBootNarrative(provenance, fileConfig);
99
- ctx = {
113
+ return {
100
114
  formatter: createFormatter(format, { quiet }),
101
115
  config: { ...fileConfig, format, quiet },
116
+ configDebug,
102
117
  logging,
103
118
  };
104
- return ctx;
105
119
  };
106
- registerAll(program, [
120
+ const selectedConfigOpts = (cwd) => {
121
+ const profile = program.opts().profile;
122
+ return {
123
+ ...(profile !== undefined ? { profile } : {}),
124
+ ...(cwd !== undefined ? { cwd } : {}),
125
+ };
126
+ };
127
+ let bootstrapCtx = null;
128
+ const trustedContexts = new Map();
129
+ const getTrustedContext = (cwd) => {
130
+ const target = resolve(cwd);
131
+ const cached = trustedContexts.get(target);
132
+ if (cached)
133
+ return cached;
134
+ const loaded = loadConfigWithProvenance(selectedConfigOpts(target));
135
+ const trusted = buildContext(() => loaded);
136
+ emitBootNarrative(loaded.provenance, loaded.config);
137
+ trustedContexts.set(target, trusted);
138
+ return trusted;
139
+ };
140
+ const getBootstrapContext = () => {
141
+ if (bootstrapCtx)
142
+ return bootstrapCtx;
143
+ const loaded = loadBootstrapConfigWithProvenance(selectedConfigOpts());
144
+ const bootstrap = buildContext(() => loaded);
145
+ // Claim stderr before any handler can log. A later TUI launch replaces
146
+ // this with its ring sink; trusted project activation deliberately does
147
+ // not replace that owner.
148
+ installCliLogging(createStderrSink(bootstrap.logging.format), bootstrap.logging.level);
149
+ bootstrapCtx = bindTrustedProjectContext(bootstrap, getTrustedContext);
150
+ return bootstrapCtx;
151
+ };
152
+ const getContext = () => {
153
+ getBootstrapContext();
154
+ return getTrustedContext(process.cwd());
155
+ };
156
+ for (const def of [
107
157
  acpCommand,
108
158
  doctorCommand,
109
159
  runCommand,
@@ -116,10 +166,14 @@ export async function runCli(opts) {
116
166
  skillsJSONCommand,
117
167
  providersJSONCommand,
118
168
  ...stubCommands,
119
- ], {
120
- getContext,
121
- setExitCode,
122
- });
169
+ ]) {
170
+ registerAll(program, [def], {
171
+ getContext: def === acpCommand || def === runCommand || def === runStreamCommand || def === drainCommand
172
+ ? getBootstrapContext
173
+ : getContext,
174
+ setExitCode,
175
+ });
176
+ }
123
177
  // Default behavior when `namzu` is invoked with no subcommand: launch
124
178
  // the TUI (M3). When stdout is not a TTY (tests, pipes, CI), print a
125
179
  // one-line marker instead so the binary stays scriptable and our test
@@ -131,22 +185,30 @@ export async function runCli(opts) {
131
185
  // The same three lines `run` and `run-stream` use. The TUI compiled
132
186
  // nothing at all, so a `permissions` table in a config file did nothing
133
187
  // in the mode most people actually use.
134
- const tuiCtx = getContext();
135
- const permissions = compilePermissions(tuiCtx.config.permissions);
136
- for (const d of permissions.diagnostics) {
137
- const where = d.pattern ? `permissions.${d.tool}."${d.pattern}"` : `permissions.${d.tool}`;
138
- tuiCtx.formatter.error({ message: `${where}: ${d.message}` });
139
- }
188
+ const commandCtx = getBootstrapContext();
189
+ const buildTuiContext = (resolvedCtx, cwd) => {
190
+ const permissions = compilePermissions(resolvedCtx.config.permissions, resolvedCtx.config.permissionChecks);
191
+ for (const d of permissions.diagnostics) {
192
+ const where = d.pattern ? `permissions.${d.tool}."${d.pattern}"` : `permissions.${d.tool}`;
193
+ resolvedCtx.formatter.error({ message: `${where}: ${d.message}` });
194
+ }
195
+ return {
196
+ cwd,
197
+ version: CLI_VERSION,
198
+ configDebug: resolvedCtx.configDebug,
199
+ skipPermissions,
200
+ rules: permissions.rules,
201
+ logging: resolvedCtx.logging,
202
+ ...(resolvedCtx.config.mcpServers ? { mcpServers: resolvedCtx.config.mcpServers } : {}),
203
+ ...(resolvedCtx.config.plugins ? { plugins: resolvedCtx.config.plugins } : {}),
204
+ ...(resolvedCtx.config.sandbox ? { sandbox: resolvedCtx.config.sandbox } : {}),
205
+ ...(resolvedCtx.config.tui ? { tui: resolvedCtx.config.tui } : {}),
206
+ };
207
+ };
208
+ const tuiCtx = buildTuiContext(commandCtx, process.cwd());
209
+ bindTrustedProjectContext(tuiCtx, (cwd) => buildTuiContext(resolveTrustedProjectContext(commandCtx, cwd), cwd));
140
210
  const { launchTui } = await import('./tui/index.js');
141
- await launchTui({
142
- cwd: process.cwd(),
143
- version: CLI_VERSION,
144
- skipPermissions,
145
- rules: permissions.rules,
146
- logging: tuiCtx.logging,
147
- ...(tuiCtx.config.mcpServers ? { mcpServers: tuiCtx.config.mcpServers } : {}),
148
- ...(tuiCtx.config.sandbox ? { sandbox: tuiCtx.config.sandbox } : {}),
149
- });
211
+ await launchTui(tuiCtx);
150
212
  const code = await Promise.resolve(0);
151
213
  setExitCode(code);
152
214
  return;
@@ -168,6 +230,13 @@ export async function runCli(opts) {
168
230
  process.stderr.write(`${err.message}\nnamzu will not start with a config it cannot read. Fix the file or remove it.\n`);
169
231
  return EXIT_BAD_CONFIG;
170
232
  }
233
+ if (err instanceof ConfigValueError) {
234
+ const remediation = err.source.kind === 'file'
235
+ ? 'Fix the named setting or remove it from that file.'
236
+ : `Fix or unset ${err.source.variable}.`;
237
+ process.stderr.write(`${err.message}\nnamzu will not start with an explicit config value it cannot honour. ${remediation}\n`);
238
+ return EXIT_BAD_CONFIG;
239
+ }
171
240
  process.stderr.write(`Fatal: ${err instanceof Error ? (err.stack ?? err.message) : String(err)}\n`);
172
241
  return EXIT_INTERNAL_ERROR;
173
242
  }
@@ -197,7 +266,9 @@ export function emitBootNarrative(provenance, config) {
197
266
  default: 0,
198
267
  'user-file': 0,
199
268
  'project-file': 0,
269
+ profile: 0,
200
270
  env: 0,
271
+ managed: 0,
201
272
  };
202
273
  for (const source of Object.values(provenance)) {
203
274
  if (source)
@@ -229,7 +300,7 @@ export function emitBootNarrative(provenance, config) {
229
300
  [EVENT_NAME_ATTRIBUTE]: BOOT_EVENT_NAMES.CONFIG_RESOLVED,
230
301
  'namzu.config.key': key,
231
302
  'namzu.config.value': JSON.stringify(config[key]),
232
- 'namzu.config.source': describeConfigSource(source),
303
+ 'namzu.config.source': formatConfigSource(source),
233
304
  });
234
305
  }
235
306
  // The CLI never calls `registerTelemetry()` on any path today — this is
@@ -256,18 +327,6 @@ export function emitBootNarrative(provenance, config) {
256
327
  'namzu.telemetry.session_export': config.telemetry?.sessionExport !== undefined,
257
328
  });
258
329
  }
259
- function describeConfigSource(source) {
260
- switch (source.kind) {
261
- case 'default':
262
- return 'default';
263
- case 'user-file':
264
- return `user-file ${source.path}`;
265
- case 'project-file':
266
- return `project-file ${source.path}`;
267
- case 'env':
268
- return `env ${source.variable}`;
269
- }
270
- }
271
330
  function mapCommanderError(err) {
272
331
  switch (err.code) {
273
332
  case 'commander.helpDisplayed':
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3F,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAEN,yBAAyB,EACzB,kBAAkB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACN,eAAe,EAGf,gBAAgB,EAChB,iCAAiC,EACjC,wBAAwB,GACxB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACN,yBAAyB,EACzB,4BAA4B,GAC5B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,cAAc,CAAA;AAErB,OAAO,EAAmB,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,uDAAuD;AACvD,MAAM,QAAQ,GAAG,EAAE,CAAA;AAEnB,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,qBAAqB;AACrB,MAAM,WAAW,GAAW,kBAAkB,EAAE,CAAA;AAEhD,SAAS,kBAAkB;IAC1B,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAEnD,CAAA;QACD,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,OAAO,CAAA;IACf,CAAC;AACF,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAmB;IAC/C,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAQ,EAAE;QAC1C,QAAQ,GAAG,IAAI,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC3B,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,2CAA2C,CAAC;SACxD,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,wBAAwB,CAAC;SAC/D,SAAS,CACT,IAAI,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC,OAAO,CAAC;QAC5E,MAAM;QACN,MAAM;QACN,MAAM;KACN,CAAC,CACF;SACA,MAAM,CAAC,aAAa,EAAE,kEAAkE,CAAC;SACzF,SAAS,CACT,IAAI,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CACxF;SACA,SAAS,CACT,IAAI,MAAM,CACT,uBAAuB,EACvB,2IAA2I,CAC3I,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAC7B;SACA,MAAM,CACN,gCAAgC,EAChC,mHAAmH,CACnH;SACA,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC;SAC5D,MAAM,CACN,kBAAkB,EAClB,+FAA+F,CAC/F;QACD,gEAAgE;QAChE,uDAAuD;SACtD,uBAAuB,CAAC,IAAI,CAAC;SAC7B,YAAY,EAAE;SACd,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAE3B,MAAM,YAAY,GAAG,CACpB,IAAuD,EAC9B,EAAE;QAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAM3B,CAAA;QACJ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAA;QACjD,MAAM,SAAS,GAA2B,CAAC,GAAG,EAAE;YAC/C,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACrD,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,UAAU,CAAC,MAAM,CAAA;YAC7D,uEAAuE;YACvE,wEAAwE;YACxE,gCAAgC;YAChC,MAAM,IAAI,KAAK,CAAC,iDAAiD,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QACtF,CAAC,CAAC,EAAE,CAAA;QACJ,MAAM,aAAa,GAAG,SAAS,KAAK,SAAS,CAAA;QAC7C,MAAM,MAAM,GAAe,SAAS,IAAI,UAAU,CAAC,MAAM,IAAI,MAAM,CAAA;QACnE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,IAAI,KAAK,CAAA;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAA;QAC5C,MAAM,eAAe,GACpB,UAAU,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,EAAE;YAC5D,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,WAAoB,EAAE;YAChE,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;gBAClF,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,eAAwB,EAAE;gBAC5D,CAAC,CAAC,SAAS,CAAA;QACd,MAAM,WAAW,GAAG,yBAAyB,CAAC,UAAU,EAAE;YACzD,aAAa;YACb,YAAY,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS;YAC5C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAA;QACF,wEAAwE;QACxE,kEAAkE;QAClE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,OAAO,GAAoB;YAChC,KAAK,EAAE,eAAe,CAAC;gBACtB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;aACvB,CAAC;YACF,MAAM,EAAE,gBAAgB,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;SAC7D,CAAA;QACD,OAAO;YACN,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;YAC7C,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;YACxC,WAAW;YACX,OAAO;SACP,CAAA;IACF,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAC1B,GAAY,EAC2C,EAAE;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAwB,CAAC,OAAO,CAAA;QAC5D,OAAO;YACN,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC,CAAA;IACF,CAAC,CAAA;IACD,IAAI,YAAY,GAAkC,IAAI,CAAA;IACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAA;IACjE,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAA0B,EAAE;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QACzB,MAAM,MAAM,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QAC1C,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnD,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpC,OAAO,OAAO,CAAA;IACf,CAAC,CAAA;IACD,MAAM,mBAAmB,GAAG,GAA2B,EAAE;QACxD,IAAI,YAAY;YAAE,OAAO,YAAY,CAAA;QACrC,MAAM,MAAM,GAAG,iCAAiC,CAAC,kBAAkB,EAAE,CAAC,CAAA;QACtE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QAC5C,uEAAuE;QACvE,wEAAwE;QACxE,0BAA0B;QAC1B,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtF,YAAY,GAAG,yBAAyB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;QACtE,OAAO,YAAY,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,GAA2B,EAAE;QAC/C,mBAAmB,EAAE,CAAA;QACrB,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,KAAK,MAAM,GAAG,IAAI;QACjB,UAAU;QACV,aAAa;QACb,UAAU;QACV,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,oBAAoB;QACpB,GAAG,YAAY;KACf,EAAE,CAAC;QACH,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE;YAC3B,UAAU,EACT,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,YAAY;gBAC3F,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,UAAU;YACd,WAAW;SACX,CAAC,CAAA;IACH,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,sEAAsE;IACtE,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAG3B,CAAA;YACJ,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,0BAA0B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YACzF,oEAAoE;YACpE,wEAAwE;YACxE,wCAAwC;YACxC,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAA;YACxC,MAAM,eAAe,GAAG,CAAC,WAAmC,EAAE,GAAW,EAAE,EAAE;gBAC5E,MAAM,WAAW,GAAG,kBAAkB,CACrC,WAAW,CAAC,MAAM,CAAC,WAAW,EAC9B,WAAW,CAAC,MAAM,CAAC,gBAAgB,CACnC,CAAA;gBACD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAA;oBAC1F,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBACnE,CAAC;gBACD,OAAO;oBACN,GAAG;oBACH,OAAO,EAAE,WAAW;oBACpB,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,eAAe;oBACf,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvF,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClE,CAAA;YACF,CAAC,CAAA;YACD,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YACzD,yBAAyB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CACzC,eAAe,CAAC,4BAA4B,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CACnE,CAAA;YACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;YACpD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACrC,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,OAAM;QACP,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,4FAA4F,CAC5F,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACJ,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACjE,OAAO,QAAQ,CAAA;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACnC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QACD,qEAAqE;QACrE,sEAAsE;QACtE,mDAAmD;QACnD,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,GAAG,GAAG,CAAC,OAAO,mFAAmF,CACjG,CAAA;YACD,OAAO,eAAe,CAAA;QACvB,CAAC;QACD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACrC,MAAM,WAAW,GAChB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;gBACzB,CAAC,CAAC,oDAAoD;gBACtD,CAAC,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAA;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,GAAG,GAAG,CAAC,OAAO,0EAA0E,WAAW,IAAI,CACvG,CAAA;YACD,OAAO,eAAe,CAAA;QACvB,CAAC;QACD,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;QACD,OAAO,mBAAmB,CAAA;IAC3B,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA4B,EAAE,MAAsB;IACrF,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IACvB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAC1B,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,UAAU;QACnD,wBAAwB,EAAE,WAAW;QACrC,wBAAwB,EAAE,WAAW;QACrC,yBAAyB,EAAE,OAAO,CAAC,OAAO;QAC1C,qBAAqB,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;KAC5D,CAAC,CAAA;IAEF,MAAM,MAAM,GAAyC;QACpD,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,CAAC;KACV,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAA;IAC/C,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;QAClC,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,eAAe;QACxD,wBAAwB,EAAE,QAAQ;QAClC,4BAA4B,EAAE,MAAM,CAAC,OAAO;QAC5C,8BAA8B,EAAE,MAAM,CAAC,WAAW,CAAC;QACnD,iCAAiC,EAAE,MAAM,CAAC,cAAc,CAAC;QACzD,wBAAwB,EAAE,MAAM,CAAC,GAAG;KACpC,CAAC,CAAA;IACF,0EAA0E;IAC1E,gEAAgE;IAChE,wCAAwC;IACxC,iEAAiE;IACjE,qEAAqE;IACrE,oEAAoE;IACpE,2DAA2D;IAC3D,uEAAuE;IACvE,sEAAsE;IACtE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAA6B,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM;YAAE,SAAQ;QACrB,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAChC,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,eAAe;YACxD,kBAAkB,EAAE,GAAG;YACvB,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAE,MAAkC,CAAC,GAAG,CAAC,CAAC;YAC9E,qBAAqB,EAAE,kBAAkB,CAAC,MAAM,CAAC;SACjD,CAAC,CAAA;IACH,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,+BAA+B;IAC/B,GAAG,CAAC,IAAI,CACP,2GAA2G,EAC3G;QACC,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB;QACzD,4BAA4B,EAAE,KAAK;QACnC,qEAAqE;QACrE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,cAAc;QACd,EAAE;QACF,uEAAuE;QACvE,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,sEAAsE;QACtE,qEAAqE;QACrE,gCAAgC,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,KAAK,SAAS;KAC/E,CACD,CAAA;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAmB;IAC7C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB;YACvB,OAAO,CAAC,CAAA;QACT,KAAK,0BAA0B,CAAC;QAChC,KAAK,yBAAyB,CAAC;QAC/B,KAAK,2BAA2B,CAAC;QACjC,KAAK,uCAAuC,CAAC;QAC7C,KAAK,2BAA2B,CAAC;QACjC,KAAK,iCAAiC,CAAC;QACvC,KAAK,2BAA2B,CAAC;QACjC,KAAK,6BAA6B;YACjC,OAAO,QAAQ,CAAA;QAChB;YACC,OAAO,mBAAmB,CAAA;IAC5B,CAAC;AACF,CAAC"}
@@ -1,4 +1,9 @@
1
- import type { CommandDef } from './types.js';
1
+ import { type AcpAgentGateway } from '@namzu/sdk';
2
+ import { resolveTrustedProjectContext } from '../config/trusted-project-context.js';
3
+ import type { DetectedProvider, Preferences } from '../integrations/providers/index.js';
4
+ import { decideHeadlessTrust } from '../permissions/headless-trust.js';
5
+ import { type AgentSession, createAgentSession, probeAgentSession } from '../tui/agent.js';
6
+ import type { CommandContext, CommandDef } from './types.js';
2
7
  /**
3
8
  * `namzu acp` — the agent-client protocol over this process's stdio.
4
9
  *
@@ -15,15 +20,26 @@ import type { CommandDef } from './types.js';
15
20
  * file must not do is `console.log`, and a test asserts zero non-JSON bytes
16
21
  * on the child's stdout under info-level logging.
17
22
  */
23
+ type AcpLiveSession = Pick<AgentSession, 'hasProvider' | 'errorHint' | 'mcpFailed' | 'send' | 'close'>;
24
+ export interface AcpRuntimeDependencies {
25
+ readonly probe: typeof probeAgentSession;
26
+ readonly createSession: (preferences: Preferences, detected: readonly DetectedProvider[], options: Parameters<typeof createAgentSession>[2]) => Promise<AcpLiveSession>;
27
+ readonly decideTrust: typeof decideHeadlessTrust;
28
+ readonly resolveProjectContext: typeof resolveTrustedProjectContext;
29
+ }
30
+ export interface CliAcpRuntime {
31
+ readonly gateway: AcpAgentGateway;
32
+ close(): Promise<void>;
33
+ }
18
34
  /**
19
- * Bridges the SDK session to the one verb the protocol server needs.
35
+ * Owns the CLI runtime behind one ACP connection.
20
36
  *
21
- * `onRunEvent` is a session-level hook and the gateway is per-prompt, so the
22
- * dispatcher is swapped for the duration of each turn rather than the
23
- * session being rebuilt. A run event arriving between turns — a late tool
24
- * result, a background job settling — reaches no client, which is correct:
25
- * there is no prompt for it to belong to.
37
+ * The wire server owns IDs, cwd, cancellation and history. This owner mirrors
38
+ * that boundary into the model runtime: one AgentSession and event route per
39
+ * wire session, never one mutable connection-global slot.
26
40
  */
27
- export declare function runAcpCommand(cwd: string): Promise<number>;
41
+ export declare function createCliAcpRuntime(bootstrapCtx: CommandContext, deps?: AcpRuntimeDependencies): CliAcpRuntime;
42
+ export declare function runAcpCommand(ctx: CommandContext): Promise<number>;
28
43
  export declare const acpCommand: CommandDef;
44
+ export {};
29
45
  //# sourceMappingURL=acp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/commands/acp.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAsB5C;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiHhE;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,CA6Mf;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCxE;AAED,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAA"}