@namzu/cli 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/__tests__/resume.test.d.ts +15 -0
- package/dist/commands/__tests__/resume.test.d.ts.map +1 -0
- package/dist/commands/__tests__/resume.test.js +116 -0
- package/dist/commands/__tests__/resume.test.js.map +1 -0
- package/dist/commands/__tests__/run-flags.test.d.ts +11 -0
- package/dist/commands/__tests__/run-flags.test.d.ts.map +1 -0
- package/dist/commands/__tests__/run-flags.test.js +190 -0
- package/dist/commands/__tests__/run-flags.test.js.map +1 -0
- package/dist/commands/__tests__/run-stream-flags.test.js +161 -11
- package/dist/commands/__tests__/run-stream-flags.test.js.map +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/resume.d.ts +60 -0
- package/dist/commands/resume.d.ts.map +1 -0
- package/dist/commands/resume.js +107 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/run-flags.d.ts +76 -0
- package/dist/commands/run-flags.d.ts.map +1 -0
- package/dist/commands/run-flags.js +163 -0
- package/dist/commands/run-flags.js.map +1 -0
- package/dist/commands/run-stream.d.ts +0 -36
- package/dist/commands/run-stream.d.ts.map +1 -1
- package/dist/commands/run-stream.js +71 -98
- package/dist/commands/run-stream.js.map +1 -1
- package/dist/commands/run.d.ts +25 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +185 -16
- package/dist/commands/run.js.map +1 -1
- package/dist/config/schema.d.ts +9 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/permissions/__tests__/mode.test.d.ts +10 -0
- package/dist/permissions/__tests__/mode.test.d.ts.map +1 -0
- package/dist/permissions/__tests__/mode.test.js +115 -0
- package/dist/permissions/__tests__/mode.test.js.map +1 -0
- package/dist/permissions/__tests__/rules.test.d.ts +10 -0
- package/dist/permissions/__tests__/rules.test.d.ts.map +1 -0
- package/dist/permissions/__tests__/rules.test.js +196 -0
- package/dist/permissions/__tests__/rules.test.js.map +1 -0
- package/dist/permissions/mode.d.ts +64 -0
- package/dist/permissions/mode.d.ts.map +1 -0
- package/dist/permissions/mode.js +32 -0
- package/dist/permissions/mode.js.map +1 -0
- package/dist/permissions/rules.d.ts +105 -0
- package/dist/permissions/rules.d.ts.map +1 -0
- package/dist/permissions/rules.js +163 -0
- package/dist/permissions/rules.js.map +1 -0
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +8 -4
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/__tests__/working-directory.test.d.ts +13 -0
- package/dist/tui/__tests__/working-directory.test.d.ts.map +1 -0
- package/dist/tui/__tests__/working-directory.test.js +115 -0
- package/dist/tui/__tests__/working-directory.test.js.map +1 -0
- package/dist/tui/agent.d.ts +30 -3
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +58 -14
- package/dist/tui/agent.js.map +1 -1
- package/package.json +4 -4
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { configureLogger } from '@namzu/sdk';
|
|
23
23
|
import { appendMessages, loadConversation, openSessions, resolveConversation, } from '../integrations/sessions/store.js';
|
|
24
|
+
import { resolvePermissionMode } from '../permissions/mode.js';
|
|
25
|
+
import { compilePermissions } from '../permissions/rules.js';
|
|
26
|
+
import { loadSkillsContext, parseRunFlags, resolveWorkingDirectory, unknownOptionMessage, } from './run-flags.js';
|
|
24
27
|
async function readStdin() {
|
|
25
28
|
if (process.stdin.isTTY)
|
|
26
29
|
return '';
|
|
@@ -33,78 +36,6 @@ function defaultPrefs(detected) {
|
|
|
33
36
|
const first = detected[0];
|
|
34
37
|
return first ? { version: 2, provider: first.entry.id, subagents: { active: [] } } : null;
|
|
35
38
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Exported for tests only — `src/index.ts` does not re-export it, so this is
|
|
38
|
-
* module visibility rather than public surface. Driving the handler far enough
|
|
39
|
-
* to observe a parse means reaching stdin and a provider probe, which is a
|
|
40
|
-
* worse test of a pure function than calling it.
|
|
41
|
-
*/
|
|
42
|
-
export function parseRunStreamFlags(rawArgs) {
|
|
43
|
-
const out = {
|
|
44
|
-
session: null,
|
|
45
|
-
model: null,
|
|
46
|
-
provider: null,
|
|
47
|
-
instance: null,
|
|
48
|
-
cwd: null,
|
|
49
|
-
skills: [],
|
|
50
|
-
unknown: [],
|
|
51
|
-
rest: [],
|
|
52
|
-
};
|
|
53
|
-
const take = (a, name, set, i) => {
|
|
54
|
-
if (a === `--${name}` && i.v + 1 < rawArgs.length) {
|
|
55
|
-
set(rawArgs[++i.v]);
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
if (a.startsWith(`--${name}=`)) {
|
|
59
|
-
set(a.slice(name.length + 3));
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
return false;
|
|
63
|
-
};
|
|
64
|
-
for (const idx = { v: 0 }; idx.v < rawArgs.length; idx.v++) {
|
|
65
|
-
const a = rawArgs[idx.v];
|
|
66
|
-
// End of options. Everything after it is prompt, verbatim — the escape
|
|
67
|
-
// for a prompt that legitimately begins with a dash, which is the only
|
|
68
|
-
// case the refusal below would otherwise take away.
|
|
69
|
-
if (a === '--') {
|
|
70
|
-
out.rest.push(...rawArgs.slice(idx.v + 1));
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
if (take(a, 'cwd', (v) => {
|
|
74
|
-
out.cwd = v.trim() || null;
|
|
75
|
-
}, idx))
|
|
76
|
-
continue;
|
|
77
|
-
if (take(a, 'session', (v) => {
|
|
78
|
-
out.session = v.trim() || null;
|
|
79
|
-
}, idx))
|
|
80
|
-
continue;
|
|
81
|
-
if (take(a, 'model', (v) => {
|
|
82
|
-
out.model = v.trim() || null;
|
|
83
|
-
}, idx))
|
|
84
|
-
continue;
|
|
85
|
-
if (take(a, 'provider', (v) => {
|
|
86
|
-
out.provider = v.trim() || null;
|
|
87
|
-
}, idx))
|
|
88
|
-
continue;
|
|
89
|
-
if (take(a, 'instance', (v) => {
|
|
90
|
-
out.instance = v.trim() || null;
|
|
91
|
-
}, idx))
|
|
92
|
-
continue;
|
|
93
|
-
if (take(a, 'skills', (v) => {
|
|
94
|
-
out.skills = v
|
|
95
|
-
.split(',')
|
|
96
|
-
.map((s) => s.trim())
|
|
97
|
-
.filter(Boolean);
|
|
98
|
-
}, idx))
|
|
99
|
-
continue;
|
|
100
|
-
if (a.startsWith('--')) {
|
|
101
|
-
out.unknown.push(a.split('=')[0]);
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
|
-
out.rest.push(a);
|
|
105
|
-
}
|
|
106
|
-
return out;
|
|
107
|
-
}
|
|
108
39
|
/** Parse stdin as a prior Message[]; tolerate the UI's {role,content} shape. */
|
|
109
40
|
function parsePriorMessages(raw) {
|
|
110
41
|
const trimmed = raw.trim();
|
|
@@ -143,10 +74,13 @@ export const runStreamCommand = {
|
|
|
143
74
|
'event. Built for a host UI that renders progress rather than waiting',
|
|
144
75
|
'for a final string.',
|
|
145
76
|
'',
|
|
77
|
+
'Takes the same options as `namzu run`, including --permission-mode and',
|
|
78
|
+
'the [permissions] table from the config file.',
|
|
79
|
+
'',
|
|
146
80
|
'Needs a provider. Set a credential in the environment, or run namzu',
|
|
147
81
|
'once to pick one interactively.',
|
|
148
82
|
].join('\n'),
|
|
149
|
-
handler: async ({ rawArgs }) => {
|
|
83
|
+
handler: async ({ ctx, rawArgs }) => {
|
|
150
84
|
const write = (o) => {
|
|
151
85
|
process.stdout.write(`${JSON.stringify(o)}\n`);
|
|
152
86
|
};
|
|
@@ -155,15 +89,17 @@ export const runStreamCommand = {
|
|
|
155
89
|
write({ kind: 'done' });
|
|
156
90
|
return 0;
|
|
157
91
|
};
|
|
158
|
-
const flags =
|
|
159
|
-
if (flags.unknown.length > 0)
|
|
160
|
-
return fail(
|
|
161
|
-
}
|
|
92
|
+
const flags = parseRunFlags(rawArgs);
|
|
93
|
+
if (flags.unknown.length > 0)
|
|
94
|
+
return fail(unknownOptionMessage(flags.unknown));
|
|
162
95
|
const sessionKey = flags.session;
|
|
163
|
-
const cwd = flags.cwd ?? process.cwd();
|
|
164
96
|
const prompt = flags.rest.join(' ').trim();
|
|
165
97
|
if (!prompt)
|
|
166
98
|
return fail('no prompt — pass it as an argument');
|
|
99
|
+
const resolved = resolveWorkingDirectory(flags.cwd);
|
|
100
|
+
if ('error' in resolved)
|
|
101
|
+
return fail(resolved.error);
|
|
102
|
+
const cwd = resolved.cwd;
|
|
167
103
|
// Resolve the persisted conversation (if a session key was given) so we
|
|
168
104
|
// load prior turns as context and can append this turn afterward. Falls
|
|
169
105
|
// back to stdin-supplied history when running stateless.
|
|
@@ -196,26 +132,39 @@ export const runStreamCommand = {
|
|
|
196
132
|
prefs = { ...prefs, provider: flags.provider };
|
|
197
133
|
if (flags.model)
|
|
198
134
|
prefs = { ...prefs, model: flags.model };
|
|
199
|
-
|
|
135
|
+
// The operator's rules and mode reach this command too. They did not:
|
|
136
|
+
// `[permissions]` was compiled for `run` and never for `run-stream`, so a
|
|
137
|
+
// host UI ran with an empty rule list whatever the config said — the same
|
|
138
|
+
// shape as a flag that parses and does nothing, one level larger, and
|
|
139
|
+
// silent in exactly the same way.
|
|
140
|
+
const modeResult = resolvePermissionMode({
|
|
141
|
+
flag: flags.permissionMode,
|
|
142
|
+
skipPermissions: flags.skipPermissions,
|
|
143
|
+
interactive: false,
|
|
144
|
+
});
|
|
145
|
+
if ('error' in modeResult)
|
|
146
|
+
return fail(modeResult.error);
|
|
147
|
+
const permissions = compilePermissions(ctx.config.permissions);
|
|
148
|
+
for (const d of permissions.diagnostics) {
|
|
149
|
+
const where = d.pattern ? `permissions.${d.tool}."${d.pattern}"` : `permissions.${d.tool}`;
|
|
150
|
+
// In band, because a host line-scanning stdout has no other channel —
|
|
151
|
+
// and a permission the operator believes is in force must never be
|
|
152
|
+
// dropped without saying so.
|
|
153
|
+
write({ kind: 'error', message: `${where}: ${d.message}` });
|
|
154
|
+
}
|
|
155
|
+
// The resolved `--cwd` is what the agent's tools resolve against, not just
|
|
156
|
+
// where the session store lives — a run told to work in another checkout
|
|
157
|
+
// has to glob, read and edit files there.
|
|
158
|
+
const session = await createAgentSession(prefs, probe.detected, {
|
|
159
|
+
cwd,
|
|
160
|
+
rules: permissions.rules,
|
|
161
|
+
permissionMode: modeResult.mode,
|
|
162
|
+
});
|
|
200
163
|
if (!session.hasProvider)
|
|
201
164
|
return fail(session.errorHint ?? 'agent is not ready');
|
|
202
165
|
// --skills <a,b,c>: load the named skills' bodies and inject them as the
|
|
203
166
|
// turn's extra system context (the same channel the TUI's /skill uses).
|
|
204
|
-
|
|
205
|
-
if (flags.skills.length > 0) {
|
|
206
|
-
try {
|
|
207
|
-
const { discoverSkills, loadSkillBody, composeSkillsPrompt } = await import('../skills/store.js');
|
|
208
|
-
const all = discoverSkills({ cwd });
|
|
209
|
-
const wanted = new Set(flags.skills);
|
|
210
|
-
const active = all
|
|
211
|
-
.filter((s) => wanted.has(s.name))
|
|
212
|
-
.map((s) => ({ name: s.name, body: loadSkillBody(s) }));
|
|
213
|
-
extraSystem = composeSkillsPrompt(active) ?? undefined;
|
|
214
|
-
}
|
|
215
|
-
catch {
|
|
216
|
-
// skills unavailable — run without them rather than fail the turn.
|
|
217
|
-
}
|
|
218
|
-
}
|
|
167
|
+
const extraSystem = await loadSkillsContext(cwd, flags.skills);
|
|
219
168
|
const userMessage = { role: 'user', content: prompt, timestamp: Date.now() };
|
|
220
169
|
const messages = [...prior, userMessage];
|
|
221
170
|
let assistantText = '';
|
|
@@ -263,7 +212,7 @@ export const historyCommand = {
|
|
|
263
212
|
'is not an error.',
|
|
264
213
|
].join('\n'),
|
|
265
214
|
handler: async ({ rawArgs }) => {
|
|
266
|
-
const flags =
|
|
215
|
+
const flags = parseRunFlags(rawArgs);
|
|
267
216
|
const key = flags.session;
|
|
268
217
|
if (!key) {
|
|
269
218
|
process.stdout.write('[]\n');
|
|
@@ -274,7 +223,12 @@ export const historyCommand = {
|
|
|
274
223
|
// the session is read from. Reading the process's own directory
|
|
275
224
|
// instead means a host asking about a session in another checkout is
|
|
276
225
|
// told `[]` — indistinguishable from a session with no messages.
|
|
277
|
-
const
|
|
226
|
+
const resolved = resolveWorkingDirectory(flags.cwd);
|
|
227
|
+
if ('error' in resolved) {
|
|
228
|
+
process.stdout.write('[]\n');
|
|
229
|
+
return 0;
|
|
230
|
+
}
|
|
231
|
+
const cli = await openSessions(resolved.cwd);
|
|
278
232
|
const map = await import('../integrations/sessions/store.js');
|
|
279
233
|
// Resolve WITHOUT creating: only emit history for an existing mapping.
|
|
280
234
|
const existing = await resolveExisting(cli, key);
|
|
@@ -304,10 +258,29 @@ export const skillsJSONCommand = {
|
|
|
304
258
|
name: 'skills-json',
|
|
305
259
|
description: 'Print discovered skills as JSON (for host UIs)',
|
|
306
260
|
passThrough: true,
|
|
307
|
-
|
|
261
|
+
help: [
|
|
262
|
+
'Usage: namzu skills-json [--cwd <path>]',
|
|
263
|
+
'',
|
|
264
|
+
'Print the skills discovered for a working directory as JSON. Project',
|
|
265
|
+
'skills come from that directory; user skills come from the home',
|
|
266
|
+
'directory either way.',
|
|
267
|
+
'',
|
|
268
|
+
'An empty array means no skills were found — it is not an error.',
|
|
269
|
+
].join('\n'),
|
|
270
|
+
handler: async ({ rawArgs }) => {
|
|
271
|
+
// Project skills live under the working directory, so a host listing the
|
|
272
|
+
// skills for one checkout while the process sits in another was shown
|
|
273
|
+
// the wrong project's chips — and then `run-stream --cwd <that
|
|
274
|
+
// checkout> --skills <name>` could not find the skill it had just
|
|
275
|
+
// offered. Same flag, same directory, both ends.
|
|
276
|
+
const resolved = resolveWorkingDirectory(parseRunFlags(rawArgs).cwd);
|
|
277
|
+
if ('error' in resolved) {
|
|
278
|
+
process.stdout.write('[]\n');
|
|
279
|
+
return 0;
|
|
280
|
+
}
|
|
308
281
|
try {
|
|
309
282
|
const { discoverSkills } = await import('../skills/store.js');
|
|
310
|
-
const skills = discoverSkills({ cwd:
|
|
283
|
+
const skills = discoverSkills({ cwd: resolved.cwd }).map((s) => ({
|
|
311
284
|
name: s.name,
|
|
312
285
|
description: s.description,
|
|
313
286
|
source: s.source,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-stream.js","sourceRoot":"","sources":["../../src/commands/run-stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-stream.js","sourceRoot":"","sources":["../../src/commands/run-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.d.ts
CHANGED
|
@@ -8,7 +8,32 @@
|
|
|
8
8
|
* Non-interactive, so there's no approval prompt — tools auto-run, but the
|
|
9
9
|
* safety gate still hard-denies catastrophic commands. One-shots use an
|
|
10
10
|
* ephemeral session and are not added to `/resume` history.
|
|
11
|
+
*
|
|
12
|
+
* Options are parsed, not spoken: this command joined every argument into the
|
|
13
|
+
* prompt, so the flags its streaming sibling accepts — `--cwd` above all —
|
|
14
|
+
* were read aloud to the model while the run used this directory anyway. Both
|
|
15
|
+
* commands now share one parser (`./run-flags.js`), because they are the same
|
|
16
|
+
* one-shot differing only in how they print.
|
|
11
17
|
*/
|
|
12
18
|
import type { CommandDef } from './types.js';
|
|
19
|
+
/**
|
|
20
|
+
* The prompt, from the arguments and the pipe together.
|
|
21
|
+
*
|
|
22
|
+
* Piped input used to be read only when there was no argument prompt, so
|
|
23
|
+
*
|
|
24
|
+
* cat notes.txt | namzu run "summarise this"
|
|
25
|
+
*
|
|
26
|
+
* sent the model three words and silently dropped the file. Nothing reported
|
|
27
|
+
* it: the run succeeded, and the answer was about nothing. A pipe and a
|
|
28
|
+
* question are the ordinary way to ask about a document, and taking only one
|
|
29
|
+
* of the two is the worst reading of that command.
|
|
30
|
+
*
|
|
31
|
+
* The piped text is fenced in a tag so the model can tell the instruction from
|
|
32
|
+
* the material it is about — without a boundary, a long paste runs into the
|
|
33
|
+
* question and the last line of a file reads as part of the request.
|
|
34
|
+
*
|
|
35
|
+
* Pure so it can be tested without a pipe; the reading happens in the handler.
|
|
36
|
+
*/
|
|
37
|
+
export declare function composePrompt(fromArgs: string, piped: string): string;
|
|
13
38
|
export declare const runCommand: CommandDef;
|
|
14
39
|
//# sourceMappingURL=run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA
|
|
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,UA2LxB,CAAA"}
|
package/dist/commands/run.js
CHANGED
|
@@ -8,16 +8,89 @@
|
|
|
8
8
|
* Non-interactive, so there's no approval prompt — tools auto-run, but the
|
|
9
9
|
* safety gate still hard-denies catastrophic commands. One-shots use an
|
|
10
10
|
* ephemeral session and are not added to `/resume` history.
|
|
11
|
+
*
|
|
12
|
+
* Options are parsed, not spoken: this command joined every argument into the
|
|
13
|
+
* prompt, so the flags its streaming sibling accepts — `--cwd` above all —
|
|
14
|
+
* were read aloud to the model while the run used this directory anyway. Both
|
|
15
|
+
* commands now share one parser (`./run-flags.js`), because they are the same
|
|
16
|
+
* one-shot differing only in how they print.
|
|
11
17
|
*/
|
|
12
18
|
import { configureLogger } from '@namzu/sdk';
|
|
13
|
-
|
|
19
|
+
import { EXIT_USAGE } from '../exit-codes.js';
|
|
20
|
+
import { openSessions } from '../integrations/sessions/store.js';
|
|
21
|
+
import { resolvePermissionMode } from '../permissions/mode.js';
|
|
22
|
+
import { compilePermissions } from '../permissions/rules.js';
|
|
23
|
+
import { resolveResume } from './resume.js';
|
|
24
|
+
import { loadSkillsContext, parseRunFlags, resolveWorkingDirectory, unknownOptionMessage, } from './run-flags.js';
|
|
25
|
+
/**
|
|
26
|
+
* How long to wait for the FIRST byte of piped input when the prompt was
|
|
27
|
+
* already given as an argument.
|
|
28
|
+
*
|
|
29
|
+
* Once a byte arrives the read runs to end-of-input with no deadline, so a
|
|
30
|
+
* slow or large producer is never truncated. The bound only covers the case
|
|
31
|
+
* where nothing is coming at all.
|
|
32
|
+
*
|
|
33
|
+
* It exists because "is anything being piped in?" is not answerable without
|
|
34
|
+
* reading: on Windows a real pipe, an inherited-but-idle pipe, and a test
|
|
35
|
+
* runner's stdin are indistinguishable to `fstat` — all three report neither
|
|
36
|
+
* FIFO nor file. Measured. So a command that unconditionally waited for
|
|
37
|
+
* end-of-input would hang forever whenever stdin was open and silent, which is
|
|
38
|
+
* the ordinary state of a CI step or a test process. Waiting a quarter second
|
|
39
|
+
* is invisible to a person and instant for a pipe that has data ready.
|
|
40
|
+
*/
|
|
41
|
+
const FIRST_BYTE_DEADLINE_MS = 250;
|
|
42
|
+
async function readStdin(opts = {}) {
|
|
14
43
|
if (process.stdin.isTTY)
|
|
15
44
|
return '';
|
|
16
45
|
const chunks = [];
|
|
17
|
-
|
|
18
|
-
|
|
46
|
+
const collect = async () => {
|
|
47
|
+
for await (const chunk of process.stdin)
|
|
48
|
+
chunks.push(chunk);
|
|
49
|
+
};
|
|
50
|
+
if (!opts.deadline) {
|
|
51
|
+
await collect();
|
|
52
|
+
return Buffer.concat(chunks).toString('utf8');
|
|
53
|
+
}
|
|
54
|
+
let timer;
|
|
55
|
+
const firstByte = new Promise((resolve) => {
|
|
56
|
+
timer = setTimeout(() => resolve(), FIRST_BYTE_DEADLINE_MS);
|
|
57
|
+
process.stdin.once('readable', () => resolve());
|
|
58
|
+
process.stdin.once('end', () => resolve());
|
|
59
|
+
});
|
|
60
|
+
await firstByte;
|
|
61
|
+
if (timer)
|
|
62
|
+
clearTimeout(timer);
|
|
63
|
+
if (process.stdin.readableEnded || process.stdin.readableLength > 0)
|
|
64
|
+
await collect();
|
|
19
65
|
return Buffer.concat(chunks).toString('utf8');
|
|
20
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* The prompt, from the arguments and the pipe together.
|
|
69
|
+
*
|
|
70
|
+
* Piped input used to be read only when there was no argument prompt, so
|
|
71
|
+
*
|
|
72
|
+
* cat notes.txt | namzu run "summarise this"
|
|
73
|
+
*
|
|
74
|
+
* sent the model three words and silently dropped the file. Nothing reported
|
|
75
|
+
* it: the run succeeded, and the answer was about nothing. A pipe and a
|
|
76
|
+
* question are the ordinary way to ask about a document, and taking only one
|
|
77
|
+
* of the two is the worst reading of that command.
|
|
78
|
+
*
|
|
79
|
+
* The piped text is fenced in a tag so the model can tell the instruction from
|
|
80
|
+
* the material it is about — without a boundary, a long paste runs into the
|
|
81
|
+
* question and the last line of a file reads as part of the request.
|
|
82
|
+
*
|
|
83
|
+
* Pure so it can be tested without a pipe; the reading happens in the handler.
|
|
84
|
+
*/
|
|
85
|
+
export function composePrompt(fromArgs, piped) {
|
|
86
|
+
const question = fromArgs.trim();
|
|
87
|
+
const material = piped.trim();
|
|
88
|
+
if (!question)
|
|
89
|
+
return material;
|
|
90
|
+
if (!material)
|
|
91
|
+
return question;
|
|
92
|
+
return `${question}\n\n<stdin>\n${material}\n</stdin>`;
|
|
93
|
+
}
|
|
21
94
|
function defaultPrefs(detected) {
|
|
22
95
|
const first = detected[0];
|
|
23
96
|
return first ? { version: 2, provider: first.entry.id, subagents: { active: [] } } : null;
|
|
@@ -27,48 +100,144 @@ export const runCommand = {
|
|
|
27
100
|
description: 'Run a single prompt headlessly and print the reply (for scripts/CI)',
|
|
28
101
|
passThrough: true,
|
|
29
102
|
help: [
|
|
30
|
-
'Usage: namzu run <prompt...>',
|
|
103
|
+
'Usage: namzu run [options] <prompt...>',
|
|
31
104
|
' echo "<prompt>" | namzu run',
|
|
105
|
+
' cat file.txt | namzu run "summarise this"',
|
|
32
106
|
'',
|
|
33
|
-
'Run a single prompt headlessly and print the reply. Everything
|
|
34
|
-
'
|
|
35
|
-
'
|
|
107
|
+
'Run a single prompt headlessly and print the reply. Everything that is',
|
|
108
|
+
'not an option is the prompt.',
|
|
109
|
+
'',
|
|
110
|
+
'Piped input is used too, not discarded: with no prompt argument it IS',
|
|
111
|
+
'the prompt, and alongside one it is appended as material the question',
|
|
112
|
+
'is about. `namzu run -` reads the prompt from stdin explicitly.',
|
|
113
|
+
'',
|
|
114
|
+
'Options (the same ones run-stream takes):',
|
|
115
|
+
' --cwd <path> Directory the agent works in (default: this one)',
|
|
116
|
+
' --provider <id> Provider to answer with',
|
|
117
|
+
' --model <id> Model to answer with',
|
|
118
|
+
' --skills <a,b,c> Load these skills as context for the turn',
|
|
119
|
+
' --continue, -c Resume the most recent conversation here',
|
|
120
|
+
' --resume <id> Resume that conversation, and no other',
|
|
121
|
+
' --permission-mode <m> prompt | auto | strict — what happens to a call',
|
|
122
|
+
' no [permissions] rule decided (default: auto)',
|
|
123
|
+
' -- End of options; the rest is the prompt verbatim',
|
|
124
|
+
'',
|
|
125
|
+
'By default tools run without asking, because there is nobody to ask, and',
|
|
126
|
+
'the safety gate still refuses catastrophic commands. Use --permission-mode',
|
|
127
|
+
'strict for an unattended run that must refuse anything no rule allowed.',
|
|
128
|
+
'',
|
|
129
|
+
'A mode only decides calls no rule decided: it can never reopen a deny.',
|
|
130
|
+
'',
|
|
131
|
+
'--continue and --resume refuse when the conversation cannot be reopened,',
|
|
132
|
+
'and say why. Neither ever falls back to starting a new one: run with no',
|
|
133
|
+
'flag if that is what you want.',
|
|
36
134
|
'',
|
|
37
135
|
'Needs a provider. Set a credential in the environment, or run namzu',
|
|
38
136
|
'once to pick one interactively.',
|
|
39
137
|
'',
|
|
40
|
-
'Exit codes: 0 on a reply, 2 when no
|
|
138
|
+
'Exit codes: 0 on a reply, 1 on a failed or unfinished run, 2 when no',
|
|
139
|
+
'prompt was supplied, 64 when an argument is wrong.',
|
|
41
140
|
].join('\n'),
|
|
42
141
|
handler: async ({ ctx, rawArgs }) => {
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
|
|
142
|
+
const flags = parseRunFlags(rawArgs);
|
|
143
|
+
if (flags.unknown.length > 0) {
|
|
144
|
+
// A shell caller learns about a bad argument from `$?`, so this is 64
|
|
145
|
+
// rather than the in-band error event the streaming sibling emits.
|
|
146
|
+
ctx.formatter.error({ message: unknownOptionMessage(flags.unknown) });
|
|
147
|
+
return EXIT_USAGE;
|
|
148
|
+
}
|
|
149
|
+
// `-` on its own means "the prompt is on stdin", the usual spelling for
|
|
150
|
+
// it. Before, it was sent to the model as a one-character question.
|
|
151
|
+
const fromArgs = flags.rest.join(' ').trim() === '-' ? '' : flags.rest.join(' ').trim();
|
|
152
|
+
// With no prompt argument, piped input IS the prompt and is waited for
|
|
153
|
+
// as long as it takes — that is the existing contract for `echo … |
|
|
154
|
+
// namzu run` and for the `-` sentinel. Alongside a prompt it is extra
|
|
155
|
+
// material, so it gets the first-byte deadline instead: a caller who
|
|
156
|
+
// asked a complete question should never be left waiting on a pipe
|
|
157
|
+
// they did not mean to open.
|
|
158
|
+
const piped = await readStdin({ deadline: Boolean(fromArgs) });
|
|
159
|
+
const prompt = composePrompt(fromArgs, piped);
|
|
46
160
|
if (!prompt) {
|
|
47
161
|
ctx.formatter.error({ message: 'no prompt — pass it as an argument or pipe it via stdin' });
|
|
48
162
|
return 2;
|
|
49
163
|
}
|
|
164
|
+
const resolved = resolveWorkingDirectory(flags.cwd);
|
|
165
|
+
if ('error' in resolved) {
|
|
166
|
+
ctx.formatter.error({ message: resolved.error });
|
|
167
|
+
return EXIT_USAGE;
|
|
168
|
+
}
|
|
50
169
|
configureLogger({ level: 'silent' });
|
|
51
170
|
const { probeAgentSession, createAgentSession } = await import('../tui/agent.js');
|
|
52
171
|
const probe = await probeAgentSession();
|
|
53
|
-
|
|
172
|
+
let prefs = probe.preferences ?? defaultPrefs(probe.detected);
|
|
54
173
|
if (!prefs) {
|
|
55
174
|
ctx.formatter.error({
|
|
56
175
|
message: 'no LLM provider available — set a credential (e.g. ANTHROPIC_API_KEY) or run `namzu` to pick one',
|
|
57
176
|
});
|
|
58
177
|
return 1;
|
|
59
178
|
}
|
|
60
|
-
|
|
179
|
+
if (flags.provider)
|
|
180
|
+
prefs = { ...prefs, provider: flags.provider };
|
|
181
|
+
if (flags.model)
|
|
182
|
+
prefs = { ...prefs, model: flags.model };
|
|
183
|
+
// A permission the operator wrote and which was silently dropped is the
|
|
184
|
+
// worst outcome available here: they believe a control is in force and it
|
|
185
|
+
// is not. So a bad line is reported and the rest still load.
|
|
186
|
+
const modeResult = resolvePermissionMode({
|
|
187
|
+
flag: flags.permissionMode,
|
|
188
|
+
skipPermissions: flags.skipPermissions,
|
|
189
|
+
// A headless run has nobody to ask, so `prompt` here would silently
|
|
190
|
+
// become `auto`. Resolving it as `auto` says so instead.
|
|
191
|
+
interactive: false,
|
|
192
|
+
});
|
|
193
|
+
if ('error' in modeResult) {
|
|
194
|
+
ctx.formatter.error({ message: modeResult.error });
|
|
195
|
+
return EXIT_USAGE;
|
|
196
|
+
}
|
|
197
|
+
const permissions = compilePermissions(ctx.config.permissions);
|
|
198
|
+
for (const d of permissions.diagnostics) {
|
|
199
|
+
const where = d.pattern ? `permissions.${d.tool}."${d.pattern}"` : `permissions.${d.tool}`;
|
|
200
|
+
ctx.formatter.error({ message: `${where}: ${d.message}` });
|
|
201
|
+
}
|
|
202
|
+
const session = await createAgentSession(prefs, probe.detected, {
|
|
203
|
+
cwd: resolved.cwd,
|
|
204
|
+
rules: permissions.rules,
|
|
205
|
+
permissionMode: modeResult.mode,
|
|
206
|
+
});
|
|
61
207
|
if (!session.hasProvider) {
|
|
62
208
|
ctx.formatter.error({ message: session.errorHint ?? 'agent is not ready' });
|
|
63
209
|
return 1;
|
|
64
210
|
}
|
|
65
211
|
ctx.formatter.info(`namzu · ${session.providerSummary}${session.modelSummary ? ` · ${session.modelSummary}` : ''}`);
|
|
212
|
+
const extraSystem = await loadSkillsContext(resolved.cwd, flags.skills);
|
|
213
|
+
// A conversation the TUI could reopen could not be reopened from a
|
|
214
|
+
// script: the store, the reader and the picker all existed and only the
|
|
215
|
+
// entry point was missing.
|
|
216
|
+
let sessions = null;
|
|
217
|
+
if (flags.continueLast || flags.resume) {
|
|
218
|
+
try {
|
|
219
|
+
sessions = await openSessions(resolved.cwd);
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
sessions = null; // reported by resolveResume, which knows what was asked for
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
const resume = await resolveResume(sessions, { continueLast: flags.continueLast, sessionId: flags.resume }, resolved.cwd);
|
|
226
|
+
if (resume.kind === 'error') {
|
|
227
|
+
// Refused, never silently started fresh. Someone who asked for a
|
|
228
|
+
// specific conversation and got a new one that looks the same finds
|
|
229
|
+
// out several turns later, having already acted on it.
|
|
230
|
+
ctx.formatter.error({ message: resume.message });
|
|
231
|
+
return EXIT_USAGE;
|
|
232
|
+
}
|
|
233
|
+
const prior = resume.kind === 'resumed' ? resume.messages : [];
|
|
234
|
+
if (resume.kind === 'resumed') {
|
|
235
|
+
ctx.formatter.info(`resuming ${resume.sessionId} · ${prior.length} messages`);
|
|
236
|
+
}
|
|
66
237
|
let text = '';
|
|
67
238
|
let failed = null;
|
|
68
239
|
let stopReason;
|
|
69
|
-
for await (const event of session.send([
|
|
70
|
-
{ role: 'user', content: prompt, timestamp: Date.now() },
|
|
71
|
-
])) {
|
|
240
|
+
for await (const event of session.send([...prior, { role: 'user', content: prompt, timestamp: Date.now() }], extraSystem ? { extraSystem } : undefined)) {
|
|
72
241
|
if (event.kind === 'delta')
|
|
73
242
|
text += event.text;
|
|
74
243
|
else if (event.kind === 'tool-start')
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* are worth enforcing at runtime — premature now.
|
|
8
8
|
*/
|
|
9
9
|
import type { FormatName } from '../output/index.js';
|
|
10
|
+
import type { PermissionsConfig } from '../permissions/rules.js';
|
|
10
11
|
export interface ClawtoolConfig {
|
|
11
12
|
/** Absolute path to the clawtool binary; overrides PATH lookup. */
|
|
12
13
|
readonly binary?: string;
|
|
@@ -24,6 +25,14 @@ export interface NamzuCliConfig {
|
|
|
24
25
|
readonly quiet?: boolean;
|
|
25
26
|
/** Clawtool integration overrides; defaults work zero-config. */
|
|
26
27
|
readonly clawtool?: ClawtoolConfig;
|
|
28
|
+
/**
|
|
29
|
+
* Which tools may run without asking, keyed by tool name.
|
|
30
|
+
*
|
|
31
|
+
* A value is `"allow" | "ask" | "deny"`, or a table of argument patterns
|
|
32
|
+
* mapping to those. Absent means every mutating tool prompts, which is what
|
|
33
|
+
* it meant before this existed — the absence of a policy never widens one.
|
|
34
|
+
*/
|
|
35
|
+
readonly permissions?: PermissionsConfig;
|
|
27
36
|
}
|
|
28
37
|
export declare const DEFAULT_CONFIG: NamzuCliConfig;
|
|
29
38
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,cAAc;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,eAAO,MAAM,cAAc,EAAE,cAG3B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiCH,MAAM,CAAC,MAAM,cAAc,GAAmB,MAAM,CAAC,MAAM,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;CACZ,CAAC,CAAA"}
|