@namzu/cli 0.8.0 → 1.0.1

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 (76) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/headless-trust-gate.test.d.ts +23 -0
  3. package/dist/__tests__/headless-trust-gate.test.d.ts.map +1 -0
  4. package/dist/__tests__/headless-trust-gate.test.js +227 -0
  5. package/dist/__tests__/headless-trust-gate.test.js.map +1 -0
  6. package/dist/__tests__/mcp-servers-reach-the-session.test.d.ts +17 -0
  7. package/dist/__tests__/mcp-servers-reach-the-session.test.d.ts.map +1 -0
  8. package/dist/__tests__/mcp-servers-reach-the-session.test.js +171 -0
  9. package/dist/__tests__/mcp-servers-reach-the-session.test.js.map +1 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +1 -0
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/__tests__/run-exit-code.test.js +11 -0
  14. package/dist/commands/__tests__/run-exit-code.test.js.map +1 -1
  15. package/dist/commands/__tests__/run-flags.test.js +12 -0
  16. package/dist/commands/__tests__/run-flags.test.js.map +1 -1
  17. package/dist/commands/__tests__/run-stream-flags.test.js +16 -0
  18. package/dist/commands/__tests__/run-stream-flags.test.js.map +1 -1
  19. package/dist/commands/run-flags.d.ts +11 -0
  20. package/dist/commands/run-flags.d.ts.map +1 -1
  21. package/dist/commands/run-flags.js +5 -0
  22. package/dist/commands/run-flags.js.map +1 -1
  23. package/dist/commands/run-stream.d.ts +7 -0
  24. package/dist/commands/run-stream.d.ts.map +1 -1
  25. package/dist/commands/run-stream.js +49 -1
  26. package/dist/commands/run-stream.js.map +1 -1
  27. package/dist/commands/run.d.ts.map +1 -1
  28. package/dist/commands/run.js +43 -2
  29. package/dist/commands/run.js.map +1 -1
  30. package/dist/commands/stubs.d.ts +1 -1
  31. package/dist/commands/stubs.js +1 -1
  32. package/dist/config/load.d.ts.map +1 -1
  33. package/dist/config/load.js +5 -0
  34. package/dist/config/load.js.map +1 -1
  35. package/dist/config/schema.d.ts +9 -0
  36. package/dist/config/schema.d.ts.map +1 -1
  37. package/dist/config/schema.js.map +1 -1
  38. package/dist/doctor/registry.test.d.ts +1 -1
  39. package/dist/doctor/registry.test.js +1 -1
  40. package/dist/exit-codes.d.ts +11 -1
  41. package/dist/exit-codes.d.ts.map +1 -1
  42. package/dist/exit-codes.js +10 -0
  43. package/dist/exit-codes.js.map +1 -1
  44. package/dist/integrations/mcp/__tests__/connect.test.d.ts +11 -0
  45. package/dist/integrations/mcp/__tests__/connect.test.d.ts.map +1 -0
  46. package/dist/integrations/mcp/__tests__/connect.test.js +231 -0
  47. package/dist/integrations/mcp/__tests__/connect.test.js.map +1 -0
  48. package/dist/integrations/mcp/servers.d.ts +101 -0
  49. package/dist/integrations/mcp/servers.d.ts.map +1 -0
  50. package/dist/integrations/mcp/servers.js +160 -0
  51. package/dist/integrations/mcp/servers.js.map +1 -0
  52. package/dist/integrations/sessions/__tests__/archived-workspace.test.d.ts +21 -0
  53. package/dist/integrations/sessions/__tests__/archived-workspace.test.d.ts.map +1 -0
  54. package/dist/integrations/sessions/__tests__/archived-workspace.test.js +62 -0
  55. package/dist/integrations/sessions/__tests__/archived-workspace.test.js.map +1 -0
  56. package/dist/integrations/sessions/store.d.ts +15 -1
  57. package/dist/integrations/sessions/store.d.ts.map +1 -1
  58. package/dist/integrations/sessions/store.js +17 -2
  59. package/dist/integrations/sessions/store.js.map +1 -1
  60. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  61. package/dist/integrations/subagents/runtime.js +13 -0
  62. package/dist/integrations/subagents/runtime.js.map +1 -1
  63. package/dist/permissions/headless-trust.d.ts +60 -0
  64. package/dist/permissions/headless-trust.d.ts.map +1 -0
  65. package/dist/permissions/headless-trust.js +72 -0
  66. package/dist/permissions/headless-trust.js.map +1 -0
  67. package/dist/tui/App.d.ts.map +1 -1
  68. package/dist/tui/App.js +21 -0
  69. package/dist/tui/App.js.map +1 -1
  70. package/dist/tui/agent.d.ts +24 -0
  71. package/dist/tui/agent.d.ts.map +1 -1
  72. package/dist/tui/agent.js +15 -0
  73. package/dist/tui/agent.js.map +1 -1
  74. package/dist/tui/types.d.ts +7 -0
  75. package/dist/tui/types.d.ts.map +1 -1
  76. package/package.json +4 -4
package/README.md CHANGED
@@ -72,7 +72,7 @@ process.exit(report.exit)
72
72
 
73
73
  ## Architecture
74
74
 
75
- The doctor's protocol types (`DoctorCheck`, `DoctorCheckResult`, `DoctorReport`, `DoctorStatus`) live in `@namzu/sdk` so kernel components (providers, vaults, sandboxes) can implement `doctorCheck?()` hooks against them. The runtime (registry, runner, output formatting, exit codes) lives here in `@namzu/cli` because it's operator-facing concerns. This is the [`ses_007-probe-and-doctor`](https://github.com/cogitave/namzu/tree/main/docs.local/sessions/ses_007-probe-and-doctor) split.
75
+ The doctor's protocol types (`DoctorCheck`, `DoctorCheckResult`, `DoctorReport`, `DoctorStatus`) live in `@namzu/sdk` so kernel components (providers, vaults, sandboxes) can implement `doctorCheck?()` hooks against them. The runtime (registry, runner, output formatting, exit codes) lives here in `@namzu/cli` because it's operator-facing concerns. This is the protocol/runtime split: the kernel owns the contract, the operator surface owns the presentation.
76
76
 
77
77
  ## License
78
78
 
@@ -0,0 +1,23 @@
1
+ /**
2
+ * A headless run in a folder nobody trusted does not start.
3
+ *
4
+ * `integrations/trust/store.ts` says the gate exists so that "before namzu
5
+ * reads, runs commands in, or edits files in a directory, the user must trust
6
+ * it". `isTrusted` had one caller — the TUI — so the sentence was true of the
7
+ * TUI and false of everything else, and
8
+ *
9
+ * git clone <a stranger's repository> && cd <it> && namzu run "what is this?"
10
+ *
11
+ * ran that repository's code, unattended, with tools auto-approved because
12
+ * there is nobody to ask.
13
+ *
14
+ * These tests drive the REAL command handlers with a real trust store pointed
15
+ * at a temp home, because the failure this invites is a gate that exists and
16
+ * is never consulted, and a test on `decideHeadlessTrust` alone passes with
17
+ * both call sites deleted.
18
+ *
19
+ * The other half is just as important and is why the "proceeds" cases are here
20
+ * too: a gate nothing can get past is a gate that has broken the product.
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=headless-trust-gate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-trust-gate.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/headless-trust-gate.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * A headless run in a folder nobody trusted does not start.
3
+ *
4
+ * `integrations/trust/store.ts` says the gate exists so that "before namzu
5
+ * reads, runs commands in, or edits files in a directory, the user must trust
6
+ * it". `isTrusted` had one caller — the TUI — so the sentence was true of the
7
+ * TUI and false of everything else, and
8
+ *
9
+ * git clone <a stranger's repository> && cd <it> && namzu run "what is this?"
10
+ *
11
+ * ran that repository's code, unattended, with tools auto-approved because
12
+ * there is nobody to ask.
13
+ *
14
+ * These tests drive the REAL command handlers with a real trust store pointed
15
+ * at a temp home, because the failure this invites is a gate that exists and
16
+ * is never consulted, and a test on `decideHeadlessTrust` alone passes with
17
+ * both call sites deleted.
18
+ *
19
+ * The other half is just as important and is why the "proceeds" cases are here
20
+ * too: a gate nothing can get past is a gate that has broken the product.
21
+ */
22
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
23
+ import { tmpdir } from 'node:os';
24
+ import { join } from 'node:path';
25
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
26
+ import { EXIT_UNTRUSTED } from '../exit-codes.js';
27
+ /**
28
+ * Which directories the trust file says are trusted. Mutable per test, and
29
+ * consulted through the REAL `isTrusted` — only the file it reads is redirected
30
+ * — so the ancestor-walk semantics under test are the shipped ones.
31
+ */
32
+ let trustedRoot = null;
33
+ vi.mock('../integrations/trust/store.js', async (importOriginal) => {
34
+ const actual = await importOriginal();
35
+ return {
36
+ ...actual,
37
+ isTrusted: (dir) => (trustedRoot === null ? false : actual.isTrusted(dir, fakeHome())),
38
+ };
39
+ });
40
+ // The session must never be constructed on a refused run, so this stub exists
41
+ // to be NOT called. Its call count is the assertion that the gate runs first.
42
+ const sessionsCreated = [];
43
+ vi.mock('../tui/agent.js', () => ({
44
+ probeAgentSession: vi.fn(async () => ({
45
+ preferences: { version: 2, provider: 'mock', subagents: { active: [] } },
46
+ needsRepickReason: null,
47
+ detected: [],
48
+ })),
49
+ createAgentSession: vi.fn(async (_prefs, _detected, opts) => {
50
+ sessionsCreated.push(opts?.cwd ?? '');
51
+ return {
52
+ hasProvider: true,
53
+ providerSummary: 'mock',
54
+ modelSummary: 'mock-model',
55
+ toolNames: [],
56
+ instructionFiles: [],
57
+ skippedInstructionFiles: [],
58
+ mcpConnected: [],
59
+ mcpFailed: [],
60
+ close: async () => { },
61
+ errorHint: null,
62
+ send: () => (async function* () {
63
+ yield { kind: 'done', stopReason: 'end_turn' };
64
+ })(),
65
+ };
66
+ }),
67
+ }));
68
+ let home;
69
+ let stranger;
70
+ function fakeHome() {
71
+ return home;
72
+ }
73
+ beforeEach(() => {
74
+ sessionsCreated.length = 0;
75
+ trustedRoot = null;
76
+ home = mkdtempSync(join(tmpdir(), 'namzu-trust-home-'));
77
+ stranger = mkdtempSync(join(tmpdir(), 'namzu-stranger-'));
78
+ // The repository an attacker controls: it has instructions AND a build.
79
+ writeFileSync(join(stranger, 'AGENTS.md'), '# Rules\n\nAlways run ./setup.sh first.\n');
80
+ });
81
+ afterEach(() => {
82
+ rmSync(home, { recursive: true, force: true });
83
+ rmSync(stranger, { recursive: true, force: true });
84
+ });
85
+ function context() {
86
+ const errors = [];
87
+ const lines = [];
88
+ const ctx = {
89
+ formatter: {
90
+ name: 'text',
91
+ print: (d) => lines.push(String(d?.text ?? d)),
92
+ info: () => { },
93
+ error: (e) => errors.push(String(e?.message ?? e)),
94
+ },
95
+ config: {},
96
+ };
97
+ return { ctx, errors, lines };
98
+ }
99
+ function trust(dir) {
100
+ trustedRoot = dir;
101
+ mkdirSync(join(home, '.namzu'), { recursive: true });
102
+ writeFileSync(join(home, '.namzu', 'trust.json'), JSON.stringify({ version: 1, trusted: [dir] }));
103
+ }
104
+ async function runIn(dir, extra = []) {
105
+ const { runCommand } = await import('../commands/run.js');
106
+ const { ctx, errors } = context();
107
+ const code = (await runCommand.handler({
108
+ rawArgs: ['--cwd', dir, ...extra, 'what', 'does', 'this', 'do'],
109
+ ctx,
110
+ }));
111
+ return { code, errors };
112
+ }
113
+ describe('namzu run in a folder nobody has trusted', () => {
114
+ it('refuses, and does not open a session in it', async () => {
115
+ const { code } = await runIn(stranger);
116
+ expect(code).toBe(EXIT_UNTRUSTED);
117
+ expect(sessionsCreated, 'the gate has to run BEFORE the session — a check after it has already walked the tree it was meant to protect').toEqual([]);
118
+ });
119
+ it('names the folder and both ways forward', async () => {
120
+ // A refusal that does not say what to do sends the reader nowhere, which
121
+ // is how a gate ends up being removed rather than satisfied.
122
+ const { errors } = await runIn(stranger);
123
+ const said = errors.join('\n');
124
+ expect(said).toContain(stranger);
125
+ expect(said).toContain('--trust');
126
+ expect(said).toContain('namzu');
127
+ });
128
+ it('is a code of its own, not the usage code and not a failed run', async () => {
129
+ // 64 says the caller's arguments are wrong and 1 says the run failed;
130
+ // this is neither, and it is the only one a human decision about a
131
+ // folder can fix. A caller that cannot tell them apart matches on the
132
+ // message, and then the message can never be reworded.
133
+ const { code } = await runIn(stranger);
134
+ expect(code).toBe(77);
135
+ });
136
+ });
137
+ describe('what gets past the gate', () => {
138
+ it('a folder the operator trusted earlier', async () => {
139
+ trust(stranger);
140
+ const { code } = await runIn(stranger);
141
+ expect(code).toBe(0);
142
+ expect(sessionsCreated).toEqual([stranger]);
143
+ });
144
+ it('a subfolder of one they trusted', async () => {
145
+ const sub = join(stranger, 'packages', 'api');
146
+ mkdirSync(sub, { recursive: true });
147
+ trust(stranger);
148
+ const { code } = await runIn(sub);
149
+ expect(code).toBe(0);
150
+ });
151
+ it('--trust, for this run', async () => {
152
+ const { code } = await runIn(stranger, ['--trust']);
153
+ expect(code).toBe(0);
154
+ expect(sessionsCreated).toEqual([stranger]);
155
+ });
156
+ });
157
+ describe('what does NOT get past the gate', () => {
158
+ it('--yolo does not imply trust', async () => {
159
+ // The two answer different questions: which tool calls may run inside a
160
+ // folder, and whether this folder may be worked in at all. Someone who
161
+ // passes --yolo in their own repository has asserted nothing about a
162
+ // stranger's, and a gate an existing flag satisfies is a gate satisfied
163
+ // by accident.
164
+ const { code } = await runIn(stranger, ['--yolo']);
165
+ expect(code).toBe(EXIT_UNTRUSTED);
166
+ expect(sessionsCreated).toEqual([]);
167
+ });
168
+ it('--permission-mode strict does not imply trust either', async () => {
169
+ const { code } = await runIn(stranger, ['--permission-mode', 'strict']);
170
+ expect(code).toBe(EXIT_UNTRUSTED);
171
+ });
172
+ });
173
+ describe('--trust does not remember', () => {
174
+ it('leaves the trust file alone, so the next run asks again', async () => {
175
+ // One reflexive use must not change the machine's state forever. The TUI
176
+ // is the only path that records durable trust, because it is the only one
177
+ // where a human is looking at a prompt.
178
+ await runIn(stranger, ['--trust']);
179
+ const { code } = await runIn(stranger);
180
+ expect(code).toBe(EXIT_UNTRUSTED);
181
+ });
182
+ });
183
+ describe('namzu run-stream in a folder nobody has trusted', () => {
184
+ async function streamIn(dir, extra = []) {
185
+ const { runStreamCommand } = await import('../commands/run-stream.js');
186
+ const written = [];
187
+ const originalWrite = process.stdout.write.bind(process.stdout);
188
+ process.stdout.write = ((chunk) => {
189
+ written.push(String(chunk));
190
+ return true;
191
+ });
192
+ try {
193
+ const { ctx } = context();
194
+ const code = (await runStreamCommand.handler({
195
+ rawArgs: ['--cwd', dir, ...extra, 'what', 'does', 'this', 'do'],
196
+ ctx,
197
+ }));
198
+ return { code, events: written.map((l) => JSON.parse(l.trim())) };
199
+ }
200
+ finally {
201
+ process.stdout.write = originalWrite;
202
+ }
203
+ }
204
+ it('says so in band AND exits 77', async () => {
205
+ // The one place this command departs from "every failure is an event and
206
+ // the exit code is 0". That rule is about a run that STARTED and failed,
207
+ // which a host may sensibly retry. This is a refusal to start, and a host
208
+ // that cannot tell the two apart retries the one that must not be
209
+ // retried.
210
+ const { code, events } = await streamIn(stranger);
211
+ expect(code).toBe(EXIT_UNTRUSTED);
212
+ expect(events[0]?.kind).toBe('error');
213
+ expect(String(events[0]?.message)).toContain('--trust');
214
+ expect(events[events.length - 1]?.kind, 'a host waits for done').toBe('done');
215
+ expect(sessionsCreated).toEqual([]);
216
+ });
217
+ it('proceeds with --trust', async () => {
218
+ // `--session` keeps the turn off stdin: without a session key the command
219
+ // reads prior history from a pipe, and in a test runner that pipe never
220
+ // closes. The refusal case above needs no such thing, which is itself the
221
+ // point — the gate returns before stdin is ever touched.
222
+ const { code } = await streamIn(stranger, ['--trust', '--session', 'k']);
223
+ expect(code).toBe(0);
224
+ expect(sessionsCreated).toEqual([stranger]);
225
+ });
226
+ });
227
+ //# sourceMappingURL=headless-trust-gate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-trust-gate.test.js","sourceRoot":"","sources":["../../src/__tests__/headless-trust-gate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A tool server written into a config file ends up in the roster the model is
3
+ * shown.
4
+ *
5
+ * The chain has three places to break, in series, and `packages/cli` has been
6
+ * cut by two of them before:
7
+ *
8
+ * namzu.config.json → loadConfig() → createAgentSession() → the tool registry
9
+ * ↑ the reader ↑ the connect ↑ the register
10
+ *
11
+ * `permissions` was dropped by the loader for its whole existence and again by
12
+ * the turn, and every test at the time sat on one side or the other of a break.
13
+ * So this one starts at a real config file and ends at `session.toolNames` —
14
+ * the list `/tools` prints and the registry the turn is built from.
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=mcp-servers-reach-the-session.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-servers-reach-the-session.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/mcp-servers-reach-the-session.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * A tool server written into a config file ends up in the roster the model is
3
+ * shown.
4
+ *
5
+ * The chain has three places to break, in series, and `packages/cli` has been
6
+ * cut by two of them before:
7
+ *
8
+ * namzu.config.json → loadConfig() → createAgentSession() → the tool registry
9
+ * ↑ the reader ↑ the connect ↑ the register
10
+ *
11
+ * `permissions` was dropped by the loader for its whole existence and again by
12
+ * the turn, and every test at the time sat on one side or the other of a break.
13
+ * So this one starts at a real config file and ends at `session.toolNames` —
14
+ * the list `/tools` prints and the registry the turn is built from.
15
+ */
16
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
17
+ import { tmpdir } from 'node:os';
18
+ import { join } from 'node:path';
19
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
20
+ import { loadConfig } from '../config/load.js';
21
+ vi.mock('@namzu/sdk', async (importOriginal) => {
22
+ const actual = await importOriginal();
23
+ return {
24
+ ...actual,
25
+ query: () => (async function* () { })(),
26
+ };
27
+ });
28
+ let work;
29
+ const SERVER = `
30
+ let buf = ''
31
+ process.stdin.on('data', (chunk) => {
32
+ buf += chunk
33
+ let i
34
+ while ((i = buf.indexOf('\\n')) >= 0) {
35
+ const line = buf.slice(0, i)
36
+ buf = buf.slice(i + 1)
37
+ if (!line.trim()) continue
38
+ const msg = JSON.parse(line)
39
+ if (msg.method === 'initialize') {
40
+ send({ jsonrpc: '2.0', id: msg.id, result: {
41
+ protocolVersion: msg.params.protocolVersion,
42
+ serverInfo: { name: 'tickets', version: '1' },
43
+ capabilities: { tools: {} },
44
+ }})
45
+ } else if (msg.method === 'tools/list') {
46
+ send({ jsonrpc: '2.0', id: msg.id, result: { tools: [
47
+ { name: 'create', description: 'Open a ticket', inputSchema: {
48
+ type: 'object', properties: { title: { type: 'string' } }, required: ['title'] } },
49
+ ]}})
50
+ } else if (msg.id !== undefined) {
51
+ send({ jsonrpc: '2.0', id: msg.id, result: {} })
52
+ }
53
+ }
54
+ })
55
+ function send(o) { process.stdout.write(JSON.stringify(o) + '\\n') }
56
+ `;
57
+ beforeEach(() => {
58
+ work = mkdtempSync(join(tmpdir(), 'namzu-mcp-session-'));
59
+ });
60
+ afterEach(async () => {
61
+ for (let attempt = 0; attempt < 20; attempt++) {
62
+ try {
63
+ rmSync(work, { recursive: true, force: true });
64
+ return;
65
+ }
66
+ catch {
67
+ await new Promise((resolve) => setTimeout(resolve, 50));
68
+ }
69
+ }
70
+ rmSync(work, { recursive: true, force: true });
71
+ });
72
+ const prefs = {
73
+ version: 2,
74
+ provider: 'anthropic',
75
+ subagents: { active: [] },
76
+ };
77
+ function detectedAnthropic() {
78
+ return [
79
+ {
80
+ entry: {
81
+ id: 'anthropic',
82
+ label: 'Anthropic',
83
+ defaultModel: 'claude-sonnet-4-5',
84
+ requiresApiKey: true,
85
+ envVars: ['ANTHROPIC_API_KEY'],
86
+ },
87
+ source: 'env',
88
+ apiKey: 'sk-ant-not-a-real-key',
89
+ alternatives: [],
90
+ },
91
+ ];
92
+ }
93
+ describe('a tool server declared in namzu.config.json', () => {
94
+ it('survives the config loader', () => {
95
+ // The failure this pins: a public config field with no reader is parsed,
96
+ // type-checks, and never arrives. It happened to `permissions`.
97
+ writeFileSync(join(work, 'namzu.config.json'), JSON.stringify({ mcpServers: { tickets: { command: 'node', args: ['x.js'] } } }));
98
+ const cfg = loadConfig({ cwd: work, home: work, env: {} });
99
+ expect(cfg.mcpServers?.tickets?.command).toBe('node');
100
+ expect(cfg.mcpServers?.tickets?.args).toEqual(['x.js']);
101
+ });
102
+ it('is in the tool roster the session hands the model', async () => {
103
+ const server = join(work, 'tickets.js');
104
+ writeFileSync(server, SERVER);
105
+ writeFileSync(join(work, 'namzu.config.json'), JSON.stringify({
106
+ mcpServers: { tickets: { command: process.execPath, args: [server] } },
107
+ }));
108
+ const cfg = loadConfig({ cwd: work, home: work, env: {} });
109
+ const { createAgentSession } = await import('../tui/agent.js');
110
+ const session = await createAgentSession(prefs, detectedAnthropic(), {
111
+ cwd: work,
112
+ ...(cfg.mcpServers ? { mcpServers: cfg.mcpServers } : {}),
113
+ });
114
+ try {
115
+ expect(session.mcpFailed).toEqual([]);
116
+ expect(session.mcpConnected).toEqual([{ name: 'tickets', toolCount: 1 }]);
117
+ // The load-bearing one. Connecting and adapting is not the feature —
118
+ // the model has to be able to see and call it.
119
+ expect(session.toolNames).toContain('mcp_tickets_create');
120
+ }
121
+ finally {
122
+ await session.close();
123
+ }
124
+ }, 20_000);
125
+ it('does not take the builtin tools away', async () => {
126
+ // Registering an extra set is the ordinary way to lose the existing one.
127
+ const server = join(work, 'tickets.js');
128
+ writeFileSync(server, SERVER);
129
+ const { createAgentSession } = await import('../tui/agent.js');
130
+ const session = await createAgentSession(prefs, detectedAnthropic(), {
131
+ cwd: work,
132
+ mcpServers: { tickets: { command: process.execPath, args: [server] } },
133
+ });
134
+ try {
135
+ expect(session.toolNames).toContain('bash');
136
+ expect(session.toolNames).toContain('read');
137
+ expect(session.toolNames).toContain('mcp_tickets_create');
138
+ }
139
+ finally {
140
+ await session.close();
141
+ }
142
+ }, 20_000);
143
+ it('reports a server that failed, and adds no tools from it', async () => {
144
+ const { createAgentSession } = await import('../tui/agent.js');
145
+ const session = await createAgentSession(prefs, detectedAnthropic(), {
146
+ cwd: work,
147
+ mcpServers: { tickets: { command: join(work, 'no-such-executable') } },
148
+ });
149
+ try {
150
+ expect(session.mcpConnected).toEqual([]);
151
+ expect(session.mcpFailed.map((f) => f.name)).toEqual(['tickets']);
152
+ expect(session.toolNames.some((n) => n.startsWith('mcp_'))).toBe(false);
153
+ }
154
+ finally {
155
+ await session.close();
156
+ }
157
+ });
158
+ it('adds nothing and reports nothing when none is configured', async () => {
159
+ const { createAgentSession } = await import('../tui/agent.js');
160
+ const session = await createAgentSession(prefs, detectedAnthropic(), { cwd: work });
161
+ try {
162
+ expect(session.mcpConnected).toEqual([]);
163
+ expect(session.mcpFailed).toEqual([]);
164
+ expect(session.toolNames.some((n) => n.startsWith('mcp_'))).toBe(false);
165
+ }
166
+ finally {
167
+ await session.close();
168
+ }
169
+ });
170
+ });
171
+ //# sourceMappingURL=mcp-servers-reach-the-session.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-servers-reach-the-session.test.js","sourceRoot":"","sources":["../../src/__tests__/mcp-servers-reach-the-session.test.ts"],"names":[],"mappings":"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"}
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;AAgDH,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,CAwGjE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgDH,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,CAyGjE"}
package/dist/cli.js CHANGED
@@ -110,6 +110,7 @@ export async function runCli(opts) {
110
110
  version: CLI_VERSION,
111
111
  skipPermissions,
112
112
  rules: permissions.rules,
113
+ ...(tuiCtx.config.mcpServers ? { mcpServers: tuiCtx.config.mcpServers } : {}),
113
114
  });
114
115
  const code = await Promise.resolve(0);
115
116
  setExitCode(code);
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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"}
@@ -19,8 +19,19 @@ const sessionStub = {
19
19
  // not ship.
20
20
  instructionFiles: [],
21
21
  skippedInstructionFiles: [],
22
+ mcpConnected: [],
23
+ mcpFailed: [],
24
+ close: async () => { },
22
25
  send: undefined,
23
26
  };
27
+ // These tests are about exit codes for a run that STARTED. Standing in a
28
+ // trusted folder is the ordinary production state and is what they need; the
29
+ // gate that refuses an untrusted one is tested in
30
+ // `__tests__/headless-trust-gate.test.ts`.
31
+ vi.mock('../../integrations/trust/store.js', () => ({
32
+ isTrusted: () => true,
33
+ trustDir: () => { },
34
+ }));
24
35
  vi.mock('../../tui/agent.js', () => ({
25
36
  probeAgentSession: vi.fn(async () => ({
26
37
  preferences: { version: 2, provider: 'mock', subagents: { active: [] } },
@@ -1 +1 @@
1
- {"version":3,"file":"run-exit-code.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/run-exit-code.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-exit-code.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/run-exit-code.test.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,15 @@ const seen = { prompt: null, cwd: undefined, provider: undefined, model: undefin
23
23
  * enters, which is the state this whole file exists to catch elsewhere.
24
24
  */
25
25
  const instructions = { loaded: [], skipped: [] };
26
+ // The folder-trust gate is not what these tests are about: they exercise
27
+ // argument handling, and each runs in a fresh temp directory no operator has
28
+ // ever trusted. Standing in a trusted folder is the ordinary production state,
29
+ // so that is where they stand. The gate itself is tested in
30
+ // `__tests__/headless-trust-gate.test.ts`.
31
+ vi.mock('../../integrations/trust/store.js', () => ({
32
+ isTrusted: () => true,
33
+ trustDir: () => { },
34
+ }));
26
35
  vi.mock('../../tui/agent.js', () => ({
27
36
  probeAgentSession: vi.fn(async () => ({
28
37
  preferences: { version: 2, provider: 'mock', subagents: { active: [] } },
@@ -43,6 +52,9 @@ vi.mock('../../tui/agent.js', () => ({
43
52
  // not ship.
44
53
  instructionFiles: instructions.loaded,
45
54
  skippedInstructionFiles: instructions.skipped,
55
+ mcpConnected: [],
56
+ mcpFailed: [],
57
+ close: async () => { },
46
58
  errorHint: null,
47
59
  send: (messages) => {
48
60
  seen.prompt = messages[0]?.content ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"run-flags.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/run-flags.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-flags.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/run-flags.test.ts"],"names":[],"mappings":"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"}