@namzu/cli 0.7.6 → 0.8.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 (45) hide show
  1. package/dist/__tests__/environment-reaches-the-turn.test.d.ts +17 -0
  2. package/dist/__tests__/environment-reaches-the-turn.test.d.ts.map +1 -0
  3. package/dist/__tests__/environment-reaches-the-turn.test.js +128 -0
  4. package/dist/__tests__/environment-reaches-the-turn.test.js.map +1 -0
  5. package/dist/__tests__/project-instructions-reach-the-turn.test.d.ts +24 -0
  6. package/dist/__tests__/project-instructions-reach-the-turn.test.d.ts.map +1 -0
  7. package/dist/__tests__/project-instructions-reach-the-turn.test.js +153 -0
  8. package/dist/__tests__/project-instructions-reach-the-turn.test.js.map +1 -0
  9. package/dist/commands/__tests__/run-exit-code.test.js +5 -0
  10. package/dist/commands/__tests__/run-exit-code.test.js.map +1 -1
  11. package/dist/commands/__tests__/run-flags.test.js +38 -1
  12. package/dist/commands/__tests__/run-flags.test.js.map +1 -1
  13. package/dist/commands/run.d.ts.map +1 -1
  14. package/dist/commands/run.js +21 -0
  15. package/dist/commands/run.js.map +1 -1
  16. package/dist/context/__tests__/environment.test.d.ts +10 -0
  17. package/dist/context/__tests__/environment.test.d.ts.map +1 -0
  18. package/dist/context/__tests__/environment.test.js +84 -0
  19. package/dist/context/__tests__/environment.test.js.map +1 -0
  20. package/dist/context/__tests__/project.test.d.ts +12 -0
  21. package/dist/context/__tests__/project.test.d.ts.map +1 -0
  22. package/dist/context/__tests__/project.test.js +201 -0
  23. package/dist/context/__tests__/project.test.js.map +1 -0
  24. package/dist/context/environment.d.ts +54 -0
  25. package/dist/context/environment.d.ts.map +1 -0
  26. package/dist/context/environment.js +97 -0
  27. package/dist/context/environment.js.map +1 -0
  28. package/dist/context/project.d.ts +132 -0
  29. package/dist/context/project.d.ts.map +1 -0
  30. package/dist/context/project.js +256 -0
  31. package/dist/context/project.js.map +1 -0
  32. package/dist/integrations/subagents/__tests__/delegation-trace.test.js +48 -3
  33. package/dist/integrations/subagents/__tests__/delegation-trace.test.js.map +1 -1
  34. package/dist/integrations/subagents/runtime.d.ts +21 -0
  35. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  36. package/dist/integrations/subagents/runtime.js +24 -11
  37. package/dist/integrations/subagents/runtime.js.map +1 -1
  38. package/dist/tui/App.d.ts.map +1 -1
  39. package/dist/tui/App.js +12 -0
  40. package/dist/tui/App.js.map +1 -1
  41. package/dist/tui/agent.d.ts +22 -0
  42. package/dist/tui/agent.d.ts.map +1 -1
  43. package/dist/tui/agent.js +49 -2
  44. package/dist/tui/agent.js.map +1 -1
  45. package/package.json +4 -4
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The agent is told what day it is and which branch it is on, in the request
3
+ * that is actually sent.
4
+ *
5
+ * A composer test proves the sentence is well formed and nothing about whether
6
+ * anyone says it. The failure this invites is the block existing, being
7
+ * correct, and never being joined into the prompt — which is silent: the model
8
+ * keeps answering from its training cut-off, confidently, and every date it
9
+ * writes into a changelog or a frontmatter field looks like an ordinary answer.
10
+ *
11
+ * So this starts at a REAL repository on disk and ends at the `systemPrompt`
12
+ * `query()` was called with, and it drives the sub-agent path as well, because
13
+ * a delegated task dating a file from the wrong year is the same defect one
14
+ * hop further out.
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=environment-reaches-the-turn.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-reaches-the-turn.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/environment-reaches-the-turn.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * The agent is told what day it is and which branch it is on, in the request
3
+ * that is actually sent.
4
+ *
5
+ * A composer test proves the sentence is well formed and nothing about whether
6
+ * anyone says it. The failure this invites is the block existing, being
7
+ * correct, and never being joined into the prompt — which is silent: the model
8
+ * keeps answering from its training cut-off, confidently, and every date it
9
+ * writes into a changelog or a frontmatter field looks like an ordinary answer.
10
+ *
11
+ * So this starts at a REAL repository on disk and ends at the `systemPrompt`
12
+ * `query()` was called with, and it drives the sub-agent path as well, because
13
+ * a delegated task dating a file from the wrong year is the same defect one
14
+ * hop further out.
15
+ */
16
+ import { execFileSync } from 'node:child_process';
17
+ import { mkdirSync, mkdtempSync, rmSync } from 'node:fs';
18
+ import { tmpdir } from 'node:os';
19
+ import { join } from 'node:path';
20
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
21
+ import { AgentRegistry } from '@namzu/sdk';
22
+ import { localIsoDate } from '../context/environment.js';
23
+ const queryCalls = [];
24
+ vi.mock('@namzu/sdk', async (importOriginal) => {
25
+ const actual = await importOriginal();
26
+ return {
27
+ ...actual,
28
+ query: (params) => {
29
+ queryCalls.push(params);
30
+ return (async function* () { })();
31
+ },
32
+ };
33
+ });
34
+ let root;
35
+ let repo;
36
+ beforeEach(() => {
37
+ queryCalls.length = 0;
38
+ root = mkdtempSync(join(tmpdir(), 'namzu-env-turn-'));
39
+ repo = join(root, 'repo');
40
+ mkdirSync(repo, { recursive: true });
41
+ execFileSync('git', ['init', '--quiet'], { cwd: repo });
42
+ execFileSync('git', ['checkout', '-q', '-b', 'feature/parser'], { cwd: repo });
43
+ });
44
+ afterEach(() => {
45
+ vi.restoreAllMocks();
46
+ rmSync(root, { recursive: true, force: true });
47
+ });
48
+ const prefs = {
49
+ version: 2,
50
+ provider: 'anthropic',
51
+ subagents: { active: [] },
52
+ };
53
+ function detectedAnthropic() {
54
+ return [
55
+ {
56
+ entry: {
57
+ id: 'anthropic',
58
+ label: 'Anthropic',
59
+ defaultModel: 'claude-sonnet-4-5',
60
+ requiresApiKey: true,
61
+ envVars: ['ANTHROPIC_API_KEY'],
62
+ },
63
+ source: 'env',
64
+ apiKey: 'sk-ant-not-a-real-key',
65
+ alternatives: [],
66
+ },
67
+ ];
68
+ }
69
+ async function openSessionIn(cwd) {
70
+ const { createAgentSession } = await import('../tui/agent.js');
71
+ return createAgentSession(prefs, detectedAnthropic(), { cwd });
72
+ }
73
+ async function drive(cwd) {
74
+ const session = await openSessionIn(cwd);
75
+ for await (const _ of session.send([{ role: 'user', content: 'hi', timestamp: 0 }])) {
76
+ // drain
77
+ }
78
+ expect(queryCalls.length, 'the turn must have reached query()').toBe(1);
79
+ return String(queryCalls[0]?.systemPrompt ?? '');
80
+ }
81
+ describe('where and when the agent is', () => {
82
+ it("is in the system prompt of the turn, with today's date", async () => {
83
+ const systemPrompt = await drive(repo);
84
+ expect(systemPrompt).toContain(localIsoDate(new Date()));
85
+ });
86
+ it('names the branch that is actually checked out', async () => {
87
+ const systemPrompt = await drive(repo);
88
+ expect(systemPrompt).toContain('feature/parser');
89
+ });
90
+ it('follows the branch when it changes mid-session, instead of repeating the old one', async () => {
91
+ // The reason this is read per turn. An agent that checks out a branch
92
+ // itself — an ordinary thing to be asked to do — would otherwise spend
93
+ // the rest of the session asserting the branch it started on, which is
94
+ // worse than never having been told.
95
+ const session = await openSessionIn(repo);
96
+ for await (const _ of session.send([{ role: 'user', content: 'hi', timestamp: 0 }])) {
97
+ // drain
98
+ }
99
+ execFileSync('git', ['checkout', '-q', '-b', 'feature/lexer'], { cwd: repo });
100
+ for await (const _ of session.send([{ role: 'user', content: 'again', timestamp: 0 }])) {
101
+ // drain
102
+ }
103
+ expect(String(queryCalls[0]?.systemPrompt)).toContain('feature/parser');
104
+ expect(String(queryCalls[1]?.systemPrompt)).toContain('feature/lexer');
105
+ });
106
+ it('says a plain directory is not a repository', async () => {
107
+ const plain = join(root, 'plain');
108
+ mkdirSync(plain);
109
+ const systemPrompt = await drive(plain);
110
+ expect(systemPrompt).toContain('not a git repository');
111
+ });
112
+ it('reaches a sub-agent too', async () => {
113
+ const registered = [];
114
+ vi.spyOn(AgentRegistry.prototype, 'register').mockImplementation((def) => {
115
+ for (const d of Array.isArray(def) ? def : [def])
116
+ registered.push(d);
117
+ });
118
+ await openSessionIn(repo);
119
+ const general = registered.find((d) => d.info.id === 'general-purpose');
120
+ if (!general?.configBuilder) {
121
+ throw new Error('the sub-agent runtime did not stand up — this test proves nothing');
122
+ }
123
+ const config = (await general.configBuilder({}));
124
+ expect(config.systemPrompt).toContain('feature/parser');
125
+ expect(config.systemPrompt).toContain(localIsoDate(new Date()));
126
+ });
127
+ });
128
+ //# sourceMappingURL=environment-reaches-the-turn.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-reaches-the-turn.test.js","sourceRoot":"","sources":["../../src/__tests__/environment-reaches-the-turn.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * A project's `AGENTS.md` reaches the turn that is supposed to obey it.
3
+ *
4
+ * The chain is
5
+ *
6
+ * AGENTS.md on disk → loadProjectInstructions() → createAgentSession()
7
+ * → the systemPrompt query() is called with
8
+ * → and, separately, the sub-agent definition's prompt
9
+ *
10
+ * and the reason this test starts at a real file rather than at the loader is
11
+ * that a loader test passes with every hop after it deleted. The composed
12
+ * block being correct proves nothing about it being composed INTO anything;
13
+ * the failure mode this feature invites is the string existing and being
14
+ * dropped one function short of the provider, which is silent — the run
15
+ * succeeds and writes code the project would reject, exactly as it did before
16
+ * the feature existed.
17
+ *
18
+ * The sub-agent assertion is here rather than beside the other sub-agent tests
19
+ * on purpose. Two paths carry the same signal, and one of two paths carrying a
20
+ * signal is how this class of defect survives a green suite: the parent would
21
+ * honour the project's rules and every task it delegated would quietly not.
22
+ */
23
+ export {};
24
+ //# sourceMappingURL=project-instructions-reach-the-turn.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-instructions-reach-the-turn.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/project-instructions-reach-the-turn.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * A project's `AGENTS.md` reaches the turn that is supposed to obey it.
3
+ *
4
+ * The chain is
5
+ *
6
+ * AGENTS.md on disk → loadProjectInstructions() → createAgentSession()
7
+ * → the systemPrompt query() is called with
8
+ * → and, separately, the sub-agent definition's prompt
9
+ *
10
+ * and the reason this test starts at a real file rather than at the loader is
11
+ * that a loader test passes with every hop after it deleted. The composed
12
+ * block being correct proves nothing about it being composed INTO anything;
13
+ * the failure mode this feature invites is the string existing and being
14
+ * dropped one function short of the provider, which is silent — the run
15
+ * succeeds and writes code the project would reject, exactly as it did before
16
+ * the feature existed.
17
+ *
18
+ * The sub-agent assertion is here rather than beside the other sub-agent tests
19
+ * on purpose. Two paths carry the same signal, and one of two paths carrying a
20
+ * signal is how this class of defect survives a green suite: the parent would
21
+ * honour the project's rules and every task it delegated would quietly not.
22
+ */
23
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
24
+ import { tmpdir } from 'node:os';
25
+ import { join } from 'node:path';
26
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
27
+ import { AgentRegistry } from '@namzu/sdk';
28
+ const queryCalls = [];
29
+ vi.mock('@namzu/sdk', async (importOriginal) => {
30
+ const actual = await importOriginal();
31
+ return {
32
+ ...actual,
33
+ query: (params) => {
34
+ queryCalls.push(params);
35
+ return (async function* () { })();
36
+ },
37
+ };
38
+ });
39
+ let root;
40
+ let repo;
41
+ let pkg;
42
+ beforeEach(() => {
43
+ queryCalls.length = 0;
44
+ root = mkdtempSync(join(tmpdir(), 'namzu-project-'));
45
+ repo = join(root, 'repo');
46
+ pkg = join(repo, 'pkg');
47
+ mkdirSync(pkg, { recursive: true });
48
+ // A real repository boundary, so nothing above the temp directory can leak
49
+ // into the walk and make an assertion pass for the wrong reason.
50
+ mkdirSync(join(repo, '.git'));
51
+ });
52
+ afterEach(() => {
53
+ vi.restoreAllMocks();
54
+ rmSync(root, { recursive: true, force: true });
55
+ });
56
+ const prefs = {
57
+ version: 2,
58
+ provider: 'anthropic',
59
+ subagents: { active: [] },
60
+ };
61
+ function detectedAnthropic() {
62
+ return [
63
+ {
64
+ entry: {
65
+ id: 'anthropic',
66
+ label: 'Anthropic',
67
+ defaultModel: 'claude-sonnet-4-5',
68
+ requiresApiKey: true,
69
+ envVars: ['ANTHROPIC_API_KEY'],
70
+ },
71
+ source: 'env',
72
+ apiKey: 'sk-ant-not-a-real-key',
73
+ alternatives: [],
74
+ },
75
+ ];
76
+ }
77
+ async function openSessionIn(cwd) {
78
+ const { createAgentSession } = await import('../tui/agent.js');
79
+ return createAgentSession(prefs, detectedAnthropic(), { cwd });
80
+ }
81
+ async function drive(cwd) {
82
+ const session = await openSessionIn(cwd);
83
+ for await (const _ of session.send([{ role: 'user', content: 'hi', timestamp: 0 }])) {
84
+ // drain
85
+ }
86
+ expect(queryCalls.length, 'the turn must have reached query()').toBe(1);
87
+ return String(queryCalls[0]?.systemPrompt ?? '');
88
+ }
89
+ describe("the project's instructions", () => {
90
+ it('are in the system prompt the turn is actually run with', async () => {
91
+ writeFileSync(join(pkg, 'AGENTS.md'), '# House rules\n\nNever use a default export.');
92
+ const systemPrompt = await drive(pkg);
93
+ expect(systemPrompt).toContain('Never use a default export.');
94
+ });
95
+ it('carry the whole ancestor chain, nearest last', async () => {
96
+ writeFileSync(join(repo, 'AGENTS.md'), 'Repository rule: commits are signed.');
97
+ writeFileSync(join(pkg, 'AGENTS.md'), 'Package rule: this package is generated.');
98
+ const systemPrompt = await drive(pkg);
99
+ expect(systemPrompt).toContain('Repository rule: commits are signed.');
100
+ expect(systemPrompt).toContain('Package rule: this package is generated.');
101
+ expect(systemPrompt.indexOf('Repository rule'), 'the nearer file has to come last or its override never takes effect').toBeLessThan(systemPrompt.indexOf('Package rule'));
102
+ });
103
+ it('do not displace the identity block or the memory that was already there', async () => {
104
+ // The composition is a join over a list, and the ordinary way to break a
105
+ // join is to replace an element instead of adding one. If the project
106
+ // block arrived by overwriting `NAMZU_IDENTITY`, every assertion above
107
+ // would still pass and the agent would have lost its anti-fabrication
108
+ // rules to a file it found on disk.
109
+ writeFileSync(join(pkg, 'AGENTS.md'), 'Never use a default export.');
110
+ const systemPrompt = await drive(pkg);
111
+ expect(systemPrompt).toContain('You are namzu');
112
+ expect(systemPrompt).toContain('CRITICAL — never fabricate');
113
+ expect(systemPrompt.indexOf('You are namzu'), 'instructions read off a working directory must not precede the rules they cannot rewrite').toBeLessThan(systemPrompt.indexOf('Never use a default export.'));
114
+ });
115
+ it('add nothing to the prompt when the project declares none', async () => {
116
+ const systemPrompt = await drive(pkg);
117
+ expect(systemPrompt).not.toContain('Project instructions');
118
+ // The loader returns `null` for "no file", and the composition is a join
119
+ // over a list. Drop the filter that removes the empty slots and the
120
+ // literal four characters `null` are sent to the model between the
121
+ // identity block and the skills block, on every run in every directory
122
+ // with no AGENTS.md — while the assertion above still passes.
123
+ expect(systemPrompt, 'an absent block must be absent, not the word null').not.toContain('null');
124
+ expect(systemPrompt, 'the identity block still has to be there').toContain('You are namzu');
125
+ });
126
+ it('are reported by the session, as the exact set that was injected', async () => {
127
+ writeFileSync(join(repo, 'AGENTS.md'), 'Repository rule.');
128
+ writeFileSync(join(pkg, 'AGENTS.md'), 'Package rule.');
129
+ const session = await openSessionIn(pkg);
130
+ expect(session.instructionFiles).toEqual([join(repo, 'AGENTS.md'), join(pkg, 'AGENTS.md')]);
131
+ });
132
+ it('bind the sub-agents this session can delegate to', async () => {
133
+ const registered = [];
134
+ vi.spyOn(AgentRegistry.prototype, 'register').mockImplementation((def) => {
135
+ for (const d of Array.isArray(def) ? def : [def])
136
+ registered.push(d);
137
+ });
138
+ writeFileSync(join(pkg, 'AGENTS.md'), 'Never use a default export.');
139
+ await openSessionIn(pkg);
140
+ const general = registered.find((d) => d.info.id === 'general-purpose');
141
+ if (!general?.configBuilder) {
142
+ throw new Error('the sub-agent runtime did not stand up — this test proves nothing');
143
+ }
144
+ // `systemPrompt` is on the config the builder produces, not on the
145
+ // definition: the definition is what a reader would reach for and it
146
+ // carries no prompt at all.
147
+ const config = (await general.configBuilder({}));
148
+ const childPrompt = config.systemPrompt ?? '';
149
+ expect(childPrompt).toContain('Never use a default export.');
150
+ expect(childPrompt, "a delegated task must keep its own guardrails as well as the project's").toContain('Never fabricate.');
151
+ });
152
+ });
153
+ //# sourceMappingURL=project-instructions-reach-the-turn.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-instructions-reach-the-turn.test.js","sourceRoot":"","sources":["../../src/__tests__/project-instructions-reach-the-turn.test.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,11 @@ const sessionStub = {
14
14
  hasProvider: true,
15
15
  providerSummary: 'mock',
16
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: [],
17
22
  send: undefined,
18
23
  };
19
24
  vi.mock('../../tui/agent.js', () => ({
@@ -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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"}
@@ -15,6 +15,14 @@ import { describe, expect, it, vi } from 'vitest';
15
15
  import { EXIT_USAGE } from '../../exit-codes.js';
16
16
  import { composePrompt, runCommand } from '../run.js';
17
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: [] };
18
26
  vi.mock('../../tui/agent.js', () => ({
19
27
  probeAgentSession: vi.fn(async () => ({
20
28
  preferences: { version: 2, provider: 'mock', subagents: { active: [] } },
@@ -30,6 +38,11 @@ vi.mock('../../tui/agent.js', () => ({
30
38
  providerSummary: 'mock',
31
39
  modelSummary: 'mock-model',
32
40
  toolNames: [],
41
+ // Present because a real session always sets these — a stub missing a
42
+ // field production always has is a fixture for a system that does
43
+ // not ship.
44
+ instructionFiles: instructions.loaded,
45
+ skippedInstructionFiles: instructions.skipped,
33
46
  errorHint: null,
34
47
  send: (messages) => {
35
48
  seen.prompt = messages[0]?.content ?? null;
@@ -54,11 +67,14 @@ function context() {
54
67
  };
55
68
  return { ctx, printed, errors };
56
69
  }
57
- async function run(rawArgs) {
70
+ async function run(rawArgs, setup) {
58
71
  seen.prompt = null;
59
72
  seen.cwd = undefined;
60
73
  seen.provider = undefined;
61
74
  seen.model = undefined;
75
+ instructions.loaded = [];
76
+ instructions.skipped = [];
77
+ setup?.();
62
78
  const { ctx, errors } = context();
63
79
  const code = (await runCommand.handler({ rawArgs, ctx }));
64
80
  return { code, errors };
@@ -174,6 +190,27 @@ describe('the pipe reaches the model, not just the composer', () => {
174
190
  });
175
191
  });
176
192
  });
193
+ describe('an instruction file that was refused is named, not omitted', () => {
194
+ // The session reports a refusal and `run` has to print it. An empty loaded
195
+ // list cannot distinguish "this project declares none" from "yours is a
196
+ // symlink out of the tree and namzu would not read it", and those two want
197
+ // opposite responses from whoever is reading the output.
198
+ it('reports a skipped file and why, on stderr', async () => {
199
+ const { code, errors } = await run(['hello'], () => {
200
+ instructions.skipped = [
201
+ { path: '/repo/AGENTS.md', reason: 'it is a symlink to /etc/shadow, outside the project' },
202
+ ];
203
+ });
204
+ expect(code).toBe(0);
205
+ const said = errors.join('\n');
206
+ expect(said).toContain('AGENTS.md');
207
+ expect(said, 'a refusal that does not say why sends the reader nowhere').toContain('outside the project');
208
+ });
209
+ it('says nothing when nothing was refused', async () => {
210
+ const { errors } = await run(['hello']);
211
+ expect(errors.join('\n')).not.toContain('skipped');
212
+ });
213
+ });
177
214
  describe('a flag that was never read is refused, not swallowed', () => {
178
215
  // `--instance` was parsed into a field nothing anywhere in the repo read.
179
216
  // A host passing it got the persona selection it asked for exactly never,
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAiBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AA0C5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrE;AAOD,eAAO,MAAM,UAAU,EAAE,UA8LxB,CAAA"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAmBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AA0C5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrE;AAOD,eAAO,MAAM,UAAU,EAAE,UAoNxB,CAAA"}
@@ -15,6 +15,7 @@
15
15
  * commands now share one parser (`./run-flags.js`), because they are the same
16
16
  * one-shot differing only in how they print.
17
17
  */
18
+ import { relative } from 'node:path';
18
19
  import { configureLogger } from '@namzu/sdk';
19
20
  import { EXIT_USAGE } from '../exit-codes.js';
20
21
  import { openSessions } from '../integrations/sessions/store.js';
@@ -128,6 +129,10 @@ export const runCommand = {
128
129
  '',
129
130
  'A mode only decides calls no rule decided: it can never reopen a deny.',
130
131
  '',
132
+ "The working directory's AGENTS.md files — that directory and every one up",
133
+ 'to the repository root — are loaded as standing instructions for the run,',
134
+ 'and the ones that were loaded are named on stderr.',
135
+ '',
131
136
  '--continue and --resume refuse when the conversation cannot be reopened,',
132
137
  'and say why. Neither ever falls back to starting a new one: run with no',
133
138
  'flag if that is what you want.',
@@ -209,6 +214,22 @@ export const runCommand = {
209
214
  return 1;
210
215
  }
211
216
  ctx.formatter.info(`namzu · ${session.providerSummary}${session.modelSummary ? ` · ${session.modelSummary}` : ''}`);
217
+ // stderr like every other status line, so a caller piping the answer is
218
+ // unaffected and a person watching can still tell which instructions the
219
+ // run is bound by. A script that reads AGENTS.md aloud is not a script
220
+ // whose output changed.
221
+ if (session.instructionFiles.length > 0) {
222
+ ctx.formatter.info(`project instructions: ${session.instructionFiles
223
+ .map((p) => relative(resolved.cwd, p) || p)
224
+ .join(', ')}`);
225
+ }
226
+ // A refusal that says nothing is indistinguishable from a project that
227
+ // declared nothing, and the two want opposite responses from the reader.
228
+ for (const skip of session.skippedInstructionFiles) {
229
+ ctx.formatter.error({
230
+ message: `skipped ${relative(resolved.cwd, skip.path) || skip.path}: ${skip.reason}`,
231
+ });
232
+ }
212
233
  const extraSystem = await loadSkillsContext(resolved.cwd, flags.skills);
213
234
  // A conversation the TUI could reopen could not be reopened from a
214
235
  // script: the store, the reader and the picker all existed and only the
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * What the block says about a directory, and what it refuses to claim.
3
+ *
4
+ * The facts here are read from a real repository created in a temp directory
5
+ * rather than from a stubbed git: the two calls this makes are the part that
6
+ * can be wrong on a real machine, and a fake `git` proves only that the
7
+ * composer agrees with itself.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=environment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.test.d.ts","sourceRoot":"","sources":["../../../src/context/__tests__/environment.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}