@namzu/cli 2.0.0 → 2.2.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 (176) hide show
  1. package/dist/tui/App.d.ts.map +1 -1
  2. package/dist/tui/App.js +22 -2
  3. package/dist/tui/App.js.map +1 -1
  4. package/dist/tui/agent.d.ts +10 -0
  5. package/dist/tui/agent.d.ts.map +1 -1
  6. package/dist/tui/agent.js +10 -0
  7. package/dist/tui/agent.js.map +1 -1
  8. package/dist/tui/slashCommands.d.ts +83 -0
  9. package/dist/tui/slashCommands.d.ts.map +1 -1
  10. package/dist/tui/slashCommands.js +157 -0
  11. package/dist/tui/slashCommands.js.map +1 -1
  12. package/package.json +11 -6
  13. package/dist/__tests__/environment-reaches-the-turn.test.d.ts +0 -17
  14. package/dist/__tests__/environment-reaches-the-turn.test.d.ts.map +0 -1
  15. package/dist/__tests__/environment-reaches-the-turn.test.js +0 -128
  16. package/dist/__tests__/environment-reaches-the-turn.test.js.map +0 -1
  17. package/dist/__tests__/headless-trust-gate.test.d.ts +0 -23
  18. package/dist/__tests__/headless-trust-gate.test.d.ts.map +0 -1
  19. package/dist/__tests__/headless-trust-gate.test.js +0 -227
  20. package/dist/__tests__/headless-trust-gate.test.js.map +0 -1
  21. package/dist/__tests__/mcp-servers-reach-the-session.test.d.ts +0 -17
  22. package/dist/__tests__/mcp-servers-reach-the-session.test.d.ts.map +0 -1
  23. package/dist/__tests__/mcp-servers-reach-the-session.test.js +0 -171
  24. package/dist/__tests__/mcp-servers-reach-the-session.test.js.map +0 -1
  25. package/dist/__tests__/permission-rules-reach-the-turn.test.d.ts +0 -31
  26. package/dist/__tests__/permission-rules-reach-the-turn.test.d.ts.map +0 -1
  27. package/dist/__tests__/permission-rules-reach-the-turn.test.js +0 -132
  28. package/dist/__tests__/permission-rules-reach-the-turn.test.js.map +0 -1
  29. package/dist/__tests__/project-instructions-reach-the-turn.test.d.ts +0 -24
  30. package/dist/__tests__/project-instructions-reach-the-turn.test.d.ts.map +0 -1
  31. package/dist/__tests__/project-instructions-reach-the-turn.test.js +0 -153
  32. package/dist/__tests__/project-instructions-reach-the-turn.test.js.map +0 -1
  33. package/dist/cli.test.d.ts +0 -2
  34. package/dist/cli.test.d.ts.map +0 -1
  35. package/dist/cli.test.js +0 -108
  36. package/dist/cli.test.js.map +0 -1
  37. package/dist/commands/__tests__/eval.test.d.ts +0 -2
  38. package/dist/commands/__tests__/eval.test.d.ts.map +0 -1
  39. package/dist/commands/__tests__/eval.test.js +0 -165
  40. package/dist/commands/__tests__/eval.test.js.map +0 -1
  41. package/dist/commands/__tests__/passthrough-help.test.d.ts +0 -2
  42. package/dist/commands/__tests__/passthrough-help.test.d.ts.map +0 -1
  43. package/dist/commands/__tests__/passthrough-help.test.js +0 -96
  44. package/dist/commands/__tests__/passthrough-help.test.js.map +0 -1
  45. package/dist/commands/__tests__/resume.test.d.ts +0 -15
  46. package/dist/commands/__tests__/resume.test.d.ts.map +0 -1
  47. package/dist/commands/__tests__/resume.test.js +0 -116
  48. package/dist/commands/__tests__/resume.test.js.map +0 -1
  49. package/dist/commands/__tests__/run-exit-code.test.d.ts +0 -2
  50. package/dist/commands/__tests__/run-exit-code.test.d.ts.map +0 -1
  51. package/dist/commands/__tests__/run-exit-code.test.js +0 -100
  52. package/dist/commands/__tests__/run-exit-code.test.js.map +0 -1
  53. package/dist/commands/__tests__/run-flags.test.d.ts +0 -11
  54. package/dist/commands/__tests__/run-flags.test.d.ts.map +0 -1
  55. package/dist/commands/__tests__/run-flags.test.js +0 -238
  56. package/dist/commands/__tests__/run-flags.test.js.map +0 -1
  57. package/dist/commands/__tests__/run-stream-flags.test.d.ts +0 -2
  58. package/dist/commands/__tests__/run-stream-flags.test.d.ts.map +0 -1
  59. package/dist/commands/__tests__/run-stream-flags.test.js +0 -295
  60. package/dist/commands/__tests__/run-stream-flags.test.js.map +0 -1
  61. package/dist/commands/doctor.test.d.ts +0 -2
  62. package/dist/commands/doctor.test.d.ts.map +0 -1
  63. package/dist/commands/doctor.test.js +0 -82
  64. package/dist/commands/doctor.test.js.map +0 -1
  65. package/dist/config/load.test.d.ts +0 -2
  66. package/dist/config/load.test.d.ts.map +0 -1
  67. package/dist/config/load.test.js +0 -57
  68. package/dist/config/load.test.js.map +0 -1
  69. package/dist/context/__tests__/environment.test.d.ts +0 -10
  70. package/dist/context/__tests__/environment.test.d.ts.map +0 -1
  71. package/dist/context/__tests__/environment.test.js +0 -84
  72. package/dist/context/__tests__/environment.test.js.map +0 -1
  73. package/dist/context/__tests__/project.test.d.ts +0 -12
  74. package/dist/context/__tests__/project.test.d.ts.map +0 -1
  75. package/dist/context/__tests__/project.test.js +0 -201
  76. package/dist/context/__tests__/project.test.js.map +0 -1
  77. package/dist/doctor/checks/credentials.test.d.ts +0 -10
  78. package/dist/doctor/checks/credentials.test.d.ts.map +0 -1
  79. package/dist/doctor/checks/credentials.test.js +0 -47
  80. package/dist/doctor/checks/credentials.test.js.map +0 -1
  81. package/dist/doctor/checks/sandbox.test.d.ts +0 -2
  82. package/dist/doctor/checks/sandbox.test.d.ts.map +0 -1
  83. package/dist/doctor/checks/sandbox.test.js +0 -59
  84. package/dist/doctor/checks/sandbox.test.js.map +0 -1
  85. package/dist/doctor/registry.test.d.ts +0 -7
  86. package/dist/doctor/registry.test.d.ts.map +0 -1
  87. package/dist/doctor/registry.test.js +0 -379
  88. package/dist/doctor/registry.test.js.map +0 -1
  89. package/dist/integrations/mcp/__tests__/connect.test.d.ts +0 -11
  90. package/dist/integrations/mcp/__tests__/connect.test.d.ts.map +0 -1
  91. package/dist/integrations/mcp/__tests__/connect.test.js +0 -231
  92. package/dist/integrations/mcp/__tests__/connect.test.js.map +0 -1
  93. package/dist/integrations/providers/discover.test.d.ts +0 -2
  94. package/dist/integrations/providers/discover.test.d.ts.map +0 -1
  95. package/dist/integrations/providers/discover.test.js +0 -93
  96. package/dist/integrations/providers/discover.test.js.map +0 -1
  97. package/dist/integrations/providers/keychain.test.d.ts +0 -2
  98. package/dist/integrations/providers/keychain.test.d.ts.map +0 -1
  99. package/dist/integrations/providers/keychain.test.js +0 -21
  100. package/dist/integrations/providers/keychain.test.js.map +0 -1
  101. package/dist/integrations/providers/oauth.test.d.ts +0 -2
  102. package/dist/integrations/providers/oauth.test.d.ts.map +0 -1
  103. package/dist/integrations/providers/oauth.test.js +0 -86
  104. package/dist/integrations/providers/oauth.test.js.map +0 -1
  105. package/dist/integrations/providers/preferences.test.d.ts +0 -2
  106. package/dist/integrations/providers/preferences.test.d.ts.map +0 -1
  107. package/dist/integrations/providers/preferences.test.js +0 -76
  108. package/dist/integrations/providers/preferences.test.js.map +0 -1
  109. package/dist/integrations/sessions/__tests__/archived-workspace.test.d.ts +0 -21
  110. package/dist/integrations/sessions/__tests__/archived-workspace.test.d.ts.map +0 -1
  111. package/dist/integrations/sessions/__tests__/archived-workspace.test.js +0 -62
  112. package/dist/integrations/sessions/__tests__/archived-workspace.test.js.map +0 -1
  113. package/dist/integrations/subagents/__tests__/delegation-trace.test.d.ts +0 -2
  114. package/dist/integrations/subagents/__tests__/delegation-trace.test.d.ts.map +0 -1
  115. package/dist/integrations/subagents/__tests__/delegation-trace.test.js +0 -114
  116. package/dist/integrations/subagents/__tests__/delegation-trace.test.js.map +0 -1
  117. package/dist/integrations/trust/store.test.d.ts +0 -2
  118. package/dist/integrations/trust/store.test.d.ts.map +0 -1
  119. package/dist/integrations/trust/store.test.js +0 -50
  120. package/dist/integrations/trust/store.test.js.map +0 -1
  121. package/dist/memory/store.test.d.ts +0 -2
  122. package/dist/memory/store.test.d.ts.map +0 -1
  123. package/dist/memory/store.test.js +0 -63
  124. package/dist/memory/store.test.js.map +0 -1
  125. package/dist/output/formatter.test.d.ts +0 -2
  126. package/dist/output/formatter.test.d.ts.map +0 -1
  127. package/dist/output/formatter.test.js +0 -88
  128. package/dist/output/formatter.test.js.map +0 -1
  129. package/dist/output/rendered-payload.test.d.ts +0 -2
  130. package/dist/output/rendered-payload.test.d.ts.map +0 -1
  131. package/dist/output/rendered-payload.test.js +0 -61
  132. package/dist/output/rendered-payload.test.js.map +0 -1
  133. package/dist/permissions/__tests__/mode.test.d.ts +0 -10
  134. package/dist/permissions/__tests__/mode.test.d.ts.map +0 -1
  135. package/dist/permissions/__tests__/mode.test.js +0 -115
  136. package/dist/permissions/__tests__/mode.test.js.map +0 -1
  137. package/dist/permissions/__tests__/rules.test.d.ts +0 -10
  138. package/dist/permissions/__tests__/rules.test.d.ts.map +0 -1
  139. package/dist/permissions/__tests__/rules.test.js +0 -196
  140. package/dist/permissions/__tests__/rules.test.js.map +0 -1
  141. package/dist/skills/store.test.d.ts +0 -2
  142. package/dist/skills/store.test.d.ts.map +0 -1
  143. package/dist/skills/store.test.js +0 -80
  144. package/dist/skills/store.test.js.map +0 -1
  145. package/dist/tui/__tests__/context-gauge.test.d.ts +0 -2
  146. package/dist/tui/__tests__/context-gauge.test.d.ts.map +0 -1
  147. package/dist/tui/__tests__/context-gauge.test.js +0 -83
  148. package/dist/tui/__tests__/context-gauge.test.js.map +0 -1
  149. package/dist/tui/__tests__/deferred-tool-discovery.test.d.ts +0 -24
  150. package/dist/tui/__tests__/deferred-tool-discovery.test.d.ts.map +0 -1
  151. package/dist/tui/__tests__/deferred-tool-discovery.test.js +0 -111
  152. package/dist/tui/__tests__/deferred-tool-discovery.test.js.map +0 -1
  153. package/dist/tui/__tests__/to-agent-event.test.d.ts +0 -2
  154. package/dist/tui/__tests__/to-agent-event.test.d.ts.map +0 -1
  155. package/dist/tui/__tests__/to-agent-event.test.js +0 -230
  156. package/dist/tui/__tests__/to-agent-event.test.js.map +0 -1
  157. package/dist/tui/__tests__/working-directory.test.d.ts +0 -13
  158. package/dist/tui/__tests__/working-directory.test.d.ts.map +0 -1
  159. package/dist/tui/__tests__/working-directory.test.js +0 -109
  160. package/dist/tui/__tests__/working-directory.test.js.map +0 -1
  161. package/dist/tui/agent.test.d.ts +0 -2
  162. package/dist/tui/agent.test.d.ts.map +0 -1
  163. package/dist/tui/agent.test.js +0 -225
  164. package/dist/tui/agent.test.js.map +0 -1
  165. package/dist/tui/markdownParser.test.d.ts +0 -2
  166. package/dist/tui/markdownParser.test.d.ts.map +0 -1
  167. package/dist/tui/markdownParser.test.js +0 -90
  168. package/dist/tui/markdownParser.test.js.map +0 -1
  169. package/dist/tui/mentions.test.d.ts +0 -2
  170. package/dist/tui/mentions.test.d.ts.map +0 -1
  171. package/dist/tui/mentions.test.js +0 -35
  172. package/dist/tui/mentions.test.js.map +0 -1
  173. package/dist/tui/slashCommands.test.d.ts +0 -2
  174. package/dist/tui/slashCommands.test.d.ts.map +0 -1
  175. package/dist/tui/slashCommands.test.js +0 -114
  176. package/dist/tui/slashCommands.test.js.map +0 -1
@@ -1,100 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest';
2
- import { runCommand } from '../run.js';
3
- /**
4
- * `namzu run` exited 0 for six ways of not finishing.
5
- *
6
- * `run_failed` is emitted only from the kernel's throw path, so a run stopped
7
- * by its token budget, its timeout, its iteration cap, a cancellation, or a
8
- * guardrail arrived as `run_completed` — which this command mapped to "print
9
- * the text and return 0". The sharp case is the output guardrail: an answer
10
- * that was REFUSED exited 0 with empty text, so `namzu run … > out.txt &&
11
- * deploy` went ahead on the empty file.
12
- */
13
- const sessionStub = {
14
- hasProvider: true,
15
- providerSummary: 'mock',
16
- modelSummary: 'mock-model',
17
- // A real session always carries this, empty or not. A stub that omits a
18
- // field production always sets is a fixture that tests a system which does
19
- // not ship.
20
- instructionFiles: [],
21
- skippedInstructionFiles: [],
22
- mcpConnected: [],
23
- mcpFailed: [],
24
- close: async () => { },
25
- send: undefined,
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
- }));
35
- vi.mock('../../tui/agent.js', () => ({
36
- probeAgentSession: vi.fn(async () => ({
37
- preferences: { version: 2, provider: 'mock', subagents: { active: [] } },
38
- detected: [],
39
- })),
40
- createAgentSession: vi.fn(async () => sessionStub),
41
- }));
42
- function contextCapturing() {
43
- const printed = [];
44
- const errors = [];
45
- const ctx = {
46
- formatter: {
47
- name: 'text',
48
- print: (d) => printed.push(String(d?.text ?? d)),
49
- info: () => { },
50
- error: (e) => errors.push(String(e?.message ?? e)),
51
- },
52
- config: {},
53
- };
54
- return { ctx, printed, errors };
55
- }
56
- function streaming(events) {
57
- sessionStub.send = () => (async function* () {
58
- for (const e of events)
59
- yield e;
60
- })();
61
- }
62
- async function runWith(events) {
63
- streaming(events);
64
- const { ctx, printed, errors } = contextCapturing();
65
- const code = (await runCommand.handler({ rawArgs: ['hello'], ctx }));
66
- return { code, printed, errors };
67
- }
68
- describe('namzu run exit code reflects whether the run finished', () => {
69
- it('exits 0 when the model answered', async () => {
70
- const { code, printed } = await runWith([
71
- { kind: 'delta', text: 'the answer' },
72
- { kind: 'done', stopReason: 'end_turn' },
73
- ]);
74
- expect(code).toBe(0);
75
- expect(printed.join('')).toContain('the answer');
76
- });
77
- it('exits 1 when an output guardrail refused the answer', async () => {
78
- // The empty-output case. Exiting 0 here told a shell script the run had
79
- // succeeded and handed it nothing.
80
- const { code, errors } = await runWith([{ kind: 'done', stopReason: 'output_guardrail' }]);
81
- expect(code).toBe(1);
82
- expect(errors.join('')).toContain('output_guardrail');
83
- });
84
- it('exits 1 but still prints what it got when the iteration cap cut it short', async () => {
85
- // Partial output is real output — a caller who piped it wants what
86
- // there is. What they also need is for `$?` to say it is partial.
87
- const { code, printed, errors } = await runWith([
88
- { kind: 'delta', text: 'half an ans' },
89
- { kind: 'done', stopReason: 'max_iterations' },
90
- ]);
91
- expect(code).toBe(1);
92
- expect(printed.join('')).toContain('half an ans');
93
- expect(errors.join('')).toContain('partial');
94
- });
95
- it('still exits 1 on an explicit error event', async () => {
96
- const { code } = await runWith([{ kind: 'error', message: 'provider exploded' }]);
97
- expect(code).toBe(1);
98
- });
99
- });
100
- //# sourceMappingURL=run-exit-code.test.js.map
@@ -1 +0,0 @@
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,11 +0,0 @@
1
- /**
2
- * `namzu run` accepts what `namzu run-stream` accepts.
3
- *
4
- * The two are the same headless one-shot and differ only in how they print, so
5
- * an option one takes and the other reads aloud to the model is a defect, not a
6
- * design. `run` joined every argument into the prompt, which is the exact shape
7
- * already fixed once in the streaming sibling — `--cwd` was documented there,
8
- * unparsed, and silently ran in the process's own directory.
9
- */
10
- export {};
11
- //# sourceMappingURL=run-flags.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-flags.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/run-flags.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -1,238 +0,0 @@
1
- /**
2
- * `namzu run` accepts what `namzu run-stream` accepts.
3
- *
4
- * The two are the same headless one-shot and differ only in how they print, so
5
- * an option one takes and the other reads aloud to the model is a defect, not a
6
- * design. `run` joined every argument into the prompt, which is the exact shape
7
- * already fixed once in the streaming sibling — `--cwd` was documented there,
8
- * unparsed, and silently ran in the process's own directory.
9
- */
10
- import { mkdtempSync, rmSync } from 'node:fs';
11
- import { tmpdir } from 'node:os';
12
- import { join } from 'node:path';
13
- import { Readable } from 'node:stream';
14
- import { describe, expect, it, vi } from 'vitest';
15
- import { EXIT_USAGE } from '../../exit-codes.js';
16
- import { composePrompt, runCommand } from '../run.js';
17
- const seen = { prompt: null, cwd: undefined, provider: undefined, model: undefined };
18
- /**
19
- * What the stubbed session reports about project instructions.
20
- *
21
- * Mutable so a test can produce the case that matters — a file that is PRESENT
22
- * and was refused. Left empty, the reader below is a branch no test ever
23
- * enters, which is the state this whole file exists to catch elsewhere.
24
- */
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
- }));
35
- vi.mock('../../tui/agent.js', () => ({
36
- probeAgentSession: vi.fn(async () => ({
37
- preferences: { version: 2, provider: 'mock', subagents: { active: [] } },
38
- needsRepickReason: null,
39
- detected: [],
40
- })),
41
- createAgentSession: vi.fn(async (prefs, _detected, opts) => {
42
- seen.cwd = opts?.cwd;
43
- seen.provider = prefs.provider;
44
- seen.model = prefs.model;
45
- return {
46
- hasProvider: true,
47
- providerSummary: 'mock',
48
- modelSummary: 'mock-model',
49
- toolNames: [],
50
- // Present because a real session always sets these — a stub missing a
51
- // field production always has is a fixture for a system that does
52
- // not ship.
53
- instructionFiles: instructions.loaded,
54
- skippedInstructionFiles: instructions.skipped,
55
- mcpConnected: [],
56
- mcpFailed: [],
57
- close: async () => { },
58
- errorHint: null,
59
- send: (messages) => {
60
- seen.prompt = messages[0]?.content ?? null;
61
- return (async function* () {
62
- yield { kind: 'done', stopReason: 'end_turn' };
63
- })();
64
- },
65
- };
66
- }),
67
- }));
68
- function context() {
69
- const printed = [];
70
- const errors = [];
71
- const ctx = {
72
- formatter: {
73
- name: 'text',
74
- print: (d) => printed.push(String(d?.text ?? d)),
75
- info: () => { },
76
- error: (e) => errors.push(String(e?.message ?? e)),
77
- },
78
- config: {},
79
- };
80
- return { ctx, printed, errors };
81
- }
82
- async function run(rawArgs, setup) {
83
- seen.prompt = null;
84
- seen.cwd = undefined;
85
- seen.provider = undefined;
86
- seen.model = undefined;
87
- instructions.loaded = [];
88
- instructions.skipped = [];
89
- setup?.();
90
- const { ctx, errors } = context();
91
- const code = (await runCommand.handler({ rawArgs, ctx }));
92
- return { code, errors };
93
- }
94
- describe('namzu run reads its options instead of reciting them', () => {
95
- it('works in --cwd and keeps it out of the prompt', async () => {
96
- const elsewhere = mkdtempSync(join(tmpdir(), 'namzu-run-cwd-'));
97
- try {
98
- const { code } = await run(['--cwd', elsewhere, 'fix', 'the', 'test']);
99
- expect(code).toBe(0);
100
- expect(seen.cwd).toBe(elsewhere);
101
- // The whole point: the flag was previously the first two words the
102
- // model was asked to act on.
103
- expect(seen.prompt).toBe('fix the test');
104
- }
105
- finally {
106
- rmSync(elsewhere, { recursive: true, force: true });
107
- }
108
- });
109
- it('takes --provider and --model over the stored preference', async () => {
110
- const { code } = await run(['--provider', 'openai', '--model', 'some-model', 'hello']);
111
- expect(code).toBe(0);
112
- expect(seen.provider).toBe('openai');
113
- expect(seen.model).toBe('some-model');
114
- expect(seen.prompt).toBe('hello');
115
- });
116
- it('refuses an option it does not know, with a usage exit code', async () => {
117
- // A shell caller reads `$?`; saying "--temperature 0.5" to the model and
118
- // exiting 0 is the failure this replaces.
119
- const { code, errors } = await run(['--temperature', '0.5', 'hello']);
120
- expect(code).toBe(EXIT_USAGE);
121
- expect(errors.join('')).toContain('--temperature');
122
- expect(seen.prompt).toBeNull();
123
- });
124
- it('refuses a --cwd that is not there rather than running in this one', async () => {
125
- const { code, errors } = await run(['--cwd', join(tmpdir(), 'namzu-run-no-such'), 'hello']);
126
- expect(code).toBe(EXIT_USAGE);
127
- expect(errors.join('')).toContain('--cwd does not exist');
128
- expect(seen.prompt).toBeNull();
129
- });
130
- it('lets `--` carry a prompt that begins with a dash', async () => {
131
- const { code } = await run(['--', '--force', 'is', 'part', 'of', 'the', 'question']);
132
- expect(code).toBe(0);
133
- expect(seen.prompt).toBe('--force is part of the question');
134
- });
135
- it('accepts --yolo and does not put it in the prompt', async () => {
136
- // Headless turns never prompt for approval, so there is nothing to skip.
137
- // Accepting it silently is what keeps `namzu --yolo run …` working.
138
- const { code } = await run(['--yolo', 'hello']);
139
- expect(code).toBe(0);
140
- expect(seen.prompt).toBe('hello');
141
- });
142
- });
143
- describe('a pipe and a question are both the prompt', () => {
144
- // `cat notes.txt | namzu run "summarise this"` read the three words and
145
- // silently dropped the file: piped input was consulted only when there was
146
- // no argument prompt. The run succeeded and answered about nothing.
147
- it('keeps piped material alongside the question', () => {
148
- const prompt = composePrompt('summarise this', 'line one\nline two\n');
149
- expect(prompt).toContain('summarise this');
150
- expect(prompt).toContain('line one');
151
- expect(prompt).toContain('line two');
152
- });
153
- it('fences the piped material so it cannot read as part of the question', () => {
154
- // Without a boundary the last line of a long paste runs into the
155
- // instruction, and the model cannot tell the request from the material.
156
- const prompt = composePrompt('what is wrong here?', 'const x = 1');
157
- expect(prompt).toBe('what is wrong here?\n\n<stdin>\nconst x = 1\n</stdin>');
158
- });
159
- it('is just the pipe when no question was given', () => {
160
- expect(composePrompt('', 'do the thing')).toBe('do the thing');
161
- });
162
- it('is just the question when nothing was piped', () => {
163
- expect(composePrompt('do the thing', '')).toBe('do the thing');
164
- // No empty tag block either — a model shown `<stdin></stdin>` is being
165
- // told something was attached when nothing was.
166
- expect(composePrompt('do the thing', ' \n ')).toBe('do the thing');
167
- });
168
- it('is empty when neither was given, so the caller can report it', () => {
169
- expect(composePrompt('', '')).toBe('');
170
- });
171
- });
172
- describe('the pipe reaches the model, not just the composer', () => {
173
- // composePrompt is pure and proves the shape. This proves the plumbing:
174
- // that piped bytes are actually READ when a prompt argument is present.
175
- // They were not — stdin was consulted only when the argument was absent —
176
- // and a unit test of the composer alone would pass with that defect intact.
177
- function withStdin(text, fn) {
178
- const real = Object.getOwnPropertyDescriptor(process, 'stdin');
179
- const fake = text === null ? Readable.from([]) : Readable.from([Buffer.from(text)]);
180
- Object.defineProperty(process, 'stdin', {
181
- configurable: true,
182
- get: () => Object.assign(fake, { isTTY: text === null }),
183
- });
184
- return fn().finally(() => {
185
- if (real)
186
- Object.defineProperty(process, 'stdin', real);
187
- });
188
- }
189
- it('sends the piped file alongside the question', async () => {
190
- await withStdin('the contents of notes.txt', async () => {
191
- const { code } = await run(['summarise this']);
192
- expect(code).toBe(0);
193
- expect(seen.prompt).toContain('summarise this');
194
- expect(seen.prompt).toContain('the contents of notes.txt');
195
- });
196
- });
197
- it('reads the pipe as the whole prompt for the `-` sentinel', async () => {
198
- await withStdin('the question is in here', async () => {
199
- const { code } = await run(['-']);
200
- expect(code).toBe(0);
201
- expect(seen.prompt).toBe('the question is in here');
202
- });
203
- });
204
- });
205
- describe('an instruction file that was refused is named, not omitted', () => {
206
- // The session reports a refusal and `run` has to print it. An empty loaded
207
- // list cannot distinguish "this project declares none" from "yours is a
208
- // symlink out of the tree and namzu would not read it", and those two want
209
- // opposite responses from whoever is reading the output.
210
- it('reports a skipped file and why, on stderr', async () => {
211
- const { code, errors } = await run(['hello'], () => {
212
- instructions.skipped = [
213
- { path: '/repo/AGENTS.md', reason: 'it is a symlink to /etc/shadow, outside the project' },
214
- ];
215
- });
216
- expect(code).toBe(0);
217
- const said = errors.join('\n');
218
- expect(said).toContain('AGENTS.md');
219
- expect(said, 'a refusal that does not say why sends the reader nowhere').toContain('outside the project');
220
- });
221
- it('says nothing when nothing was refused', async () => {
222
- const { errors } = await run(['hello']);
223
- expect(errors.join('\n')).not.toContain('skipped');
224
- });
225
- });
226
- describe('a flag that was never read is refused, not swallowed', () => {
227
- // `--instance` was parsed into a field nothing anywhere in the repo read.
228
- // A host passing it got the persona selection it asked for exactly never,
229
- // and was told exactly nothing — which is worse than an absent flag,
230
- // because an absent flag says so immediately.
231
- it('refuses --instance now that it means nothing', async () => {
232
- const { code, errors } = await run(['--instance', 'namzu-2', 'hello']);
233
- expect(code).toBe(EXIT_USAGE);
234
- expect(errors.join('')).toContain('--instance');
235
- expect(seen.prompt).toBeNull();
236
- });
237
- });
238
- //# sourceMappingURL=run-flags.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-flags.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/run-flags.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=run-stream-flags.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-stream-flags.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/run-stream-flags.test.ts"],"names":[],"mappings":""}