@namzu/cli 27.0.0 → 28.1.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/CHANGELOG.md +76 -0
- package/README.md +24 -18
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +122 -12
- package/dist/cli.js.map +1 -1
- package/dist/commands/drain.js +2 -2
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/{run-flags.d.ts → exec-flags.d.ts} +29 -21
- package/dist/commands/exec-flags.d.ts.map +1 -0
- package/dist/commands/{run-flags.js → exec-flags.js} +31 -23
- package/dist/commands/exec-flags.js.map +1 -0
- package/dist/commands/{run-stream.d.ts → exec-json.d.ts} +20 -14
- package/dist/commands/exec-json.d.ts.map +1 -0
- package/dist/commands/exec-json.js +473 -0
- package/dist/commands/exec-json.js.map +1 -0
- package/dist/commands/{run.d.ts → exec.d.ts} +14 -13
- package/dist/commands/exec.d.ts.map +1 -0
- package/dist/commands/exec.js +683 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/host-queries.d.ts +12 -0
- package/dist/commands/host-queries.d.ts.map +1 -0
- package/dist/commands/host-queries.js +149 -0
- package/dist/commands/host-queries.js.map +1 -0
- package/dist/commands/prior-messages.js +1 -1
- package/dist/commands/prior-messages.js.map +1 -1
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +2 -0
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/resident-flags.d.ts +2 -2
- package/dist/commands/resident-flags.d.ts.map +1 -1
- package/dist/commands/resident-flags.js +4 -2
- package/dist/commands/resident-flags.js.map +1 -1
- package/dist/commands/resident-learning.js +1 -1
- package/dist/commands/resident-learning.js.map +1 -1
- package/dist/commands/resident.js +1 -1
- package/dist/commands/resident.js.map +1 -1
- package/dist/commands/skills.js +1 -1
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/stdin.d.ts +5 -5
- package/dist/commands/stdin.js +5 -5
- package/dist/commands/types.d.ts +2 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +19 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +18 -4
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/{run-limits.d.ts → turn-guards.d.ts} +1 -1
- package/dist/config/turn-guards.d.ts.map +1 -0
- package/dist/config/{run-limits.js → turn-guards.js} +1 -1
- package/dist/config/turn-guards.js.map +1 -0
- package/dist/context/project.d.ts +1 -1
- package/dist/context/project.js +1 -1
- package/dist/doctor/checks/chain.js +2 -2
- package/dist/doctor/checks/chain.js.map +1 -1
- package/dist/integrations/providers/access.d.ts +4 -1
- package/dist/integrations/providers/access.d.ts.map +1 -1
- package/dist/integrations/providers/access.js +6 -3
- package/dist/integrations/providers/access.js.map +1 -1
- package/dist/integrations/providers/zen-catalogue.d.ts +100 -0
- package/dist/integrations/providers/zen-catalogue.d.ts.map +1 -0
- package/dist/integrations/providers/zen-catalogue.js +196 -0
- package/dist/integrations/providers/zen-catalogue.js.map +1 -0
- package/dist/integrations/resident/runner-launch.d.ts +3 -3
- package/dist/integrations/resident/runner-launch.d.ts.map +1 -1
- package/dist/integrations/resident/runner-worker.js +22 -0
- package/dist/integrations/resident/runner-worker.js.map +1 -1
- package/dist/integrations/resident/session-step.d.ts +2 -2
- package/dist/integrations/resident/session-step.d.ts.map +1 -1
- package/dist/integrations/resident/session-step.js +1 -1
- package/dist/integrations/resident/session-step.js.map +1 -1
- package/dist/integrations/sessions/transcript-export.js +3 -1
- package/dist/integrations/sessions/transcript-export.js.map +1 -1
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +1 -1
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/integrations/web/search.d.ts +1 -1
- package/dist/logging.d.ts +5 -5
- package/dist/logging.js +6 -6
- package/dist/permissions/headless-trust.d.ts +2 -2
- package/dist/permissions/headless-trust.js +3 -3
- package/dist/permissions/headless-trust.js.map +1 -1
- package/dist/permissions/live-mode.d.ts +73 -0
- package/dist/permissions/live-mode.d.ts.map +1 -0
- package/dist/permissions/live-mode.js +62 -0
- package/dist/permissions/live-mode.js.map +1 -0
- package/dist/termination.d.ts +1 -1
- package/dist/termination.js +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +181 -79
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Checklist.d.ts +56 -0
- package/dist/tui/Checklist.d.ts.map +1 -0
- package/dist/tui/Checklist.js +90 -0
- package/dist/tui/Checklist.js.map +1 -0
- package/dist/tui/StatusBar.d.ts +10 -0
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusBar.js +8 -1
- package/dist/tui/StatusBar.js.map +1 -1
- package/dist/tui/TaskList.d.ts +18 -25
- package/dist/tui/TaskList.d.ts.map +1 -1
- package/dist/tui/TaskList.js +34 -58
- package/dist/tui/TaskList.js.map +1 -1
- package/dist/tui/Transcript.d.ts.map +1 -1
- package/dist/tui/Transcript.js +8 -1
- package/dist/tui/Transcript.js.map +1 -1
- package/dist/tui/agent.d.ts +33 -7
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +51 -9
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/live-window.d.ts +22 -0
- package/dist/tui/live-window.d.ts.map +1 -1
- package/dist/tui/live-window.js +34 -0
- package/dist/tui/live-window.js.map +1 -1
- package/dist/tui/notices.d.ts +27 -0
- package/dist/tui/notices.d.ts.map +1 -0
- package/dist/tui/notices.js +27 -0
- package/dist/tui/notices.js.map +1 -0
- package/dist/tui/slashCommands.d.ts +1 -1
- package/dist/tui/slashCommands.js +5 -5
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/status-panel-layout.js +1 -1
- package/dist/tui/status-panel-layout.js.map +1 -1
- package/dist/tui/task-activity.d.ts +71 -0
- package/dist/tui/task-activity.d.ts.map +1 -0
- package/dist/tui/task-activity.js +157 -0
- package/dist/tui/task-activity.js.map +1 -0
- package/dist/tui/turn-limits-settings.d.ts +1 -1
- package/dist/tui/turn-limits-settings.d.ts.map +1 -1
- package/dist/tui/turn-limits-settings.js +1 -1
- package/dist/tui/turn-limits-settings.js.map +1 -1
- package/dist/tui/types.d.ts +13 -0
- package/dist/tui/types.d.ts.map +1 -1
- package/dist/user-commands/store.d.ts +3 -3
- package/dist/user-commands/store.js +4 -4
- package/dist/user-commands/store.js.map +1 -1
- package/package.json +6 -6
- package/dist/commands/run-flags.d.ts.map +0 -1
- package/dist/commands/run-flags.js.map +0 -1
- package/dist/commands/run-stream.d.ts.map +0 -1
- package/dist/commands/run-stream.js +0 -647
- package/dist/commands/run-stream.js.map +0 -1
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -617
- package/dist/commands/run.js.map +0 -1
- package/dist/config/run-limits.d.ts.map +0 -1
- package/dist/config/run-limits.js.map +0 -1
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The input surface
|
|
3
|
-
* `run-stream`.
|
|
2
|
+
* The input surface of `namzu exec`, the headless one-shot.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `--cwd /elsewhere` and ran in this directory, which is the defect that was
|
|
12
|
-
* already fixed once, in the sibling command.
|
|
4
|
+
* `exec` prints its reply for a shell by default and, with `--json`, emits one
|
|
5
|
+
* JSON event per line for a host UI. Those used to be two commands with two
|
|
6
|
+
* inputs that drifted: one learned to parse `--cwd`, `--model`, `--provider`,
|
|
7
|
+
* `--session` and `--skills` while the other joined every argument into the
|
|
8
|
+
* prompt, so `--cwd /elsewhere "fix the test"` sent the model a prompt
|
|
9
|
+
* beginning `--cwd /elsewhere` and worked in this directory anyway.
|
|
13
10
|
*
|
|
14
|
-
* One parser, so the two cannot drift again.
|
|
11
|
+
* One parser, so the two output modes cannot drift again. `namzu resident`
|
|
12
|
+
* reads the same flags for the turns it starts.
|
|
15
13
|
*
|
|
16
|
-
* What
|
|
17
|
-
* deliberate:
|
|
18
|
-
* a line-scanning host, so it emits an error event and exits 0. Each is
|
|
19
|
-
* only signal its caller is listening for.
|
|
14
|
+
* What the modes still differ on is how a bad argument is REPORTED, and that is
|
|
15
|
+
* deliberate: the default mode answers a shell, so it exits non-zero; `--json`
|
|
16
|
+
* answers a line-scanning host, so it emits an error event and exits 0. Each is
|
|
17
|
+
* the only signal its caller is listening for.
|
|
20
18
|
*/
|
|
21
19
|
import type { ReasoningEffort, ReviewAnswer } from '@namzu/sdk';
|
|
22
20
|
import type { Preferences } from '../integrations/providers/index.js';
|
|
23
|
-
export interface
|
|
21
|
+
export interface ExecFlags {
|
|
24
22
|
session: string | null;
|
|
25
23
|
model: string | null;
|
|
26
24
|
provider: string | null;
|
|
@@ -60,7 +58,7 @@ export interface RunFlags {
|
|
|
60
58
|
waitForProviderMs: number | null;
|
|
61
59
|
/**
|
|
62
60
|
* `--gate '<command>'`, repeatable — commands that must pass before the
|
|
63
|
-
*
|
|
61
|
+
* turn is allowed to settle.
|
|
64
62
|
*
|
|
65
63
|
* An ARRAY rather than a single value, and repeat-to-append rather than
|
|
66
64
|
* last-wins, because "typecheck AND test" is the ordinary case and a
|
|
@@ -73,6 +71,16 @@ export interface RunFlags {
|
|
|
73
71
|
* back before the turn stops with `answer_rejected`.
|
|
74
72
|
*/
|
|
75
73
|
gateRetries: number | null;
|
|
74
|
+
/**
|
|
75
|
+
* `--json`: print the turn as one JSON event per line instead of the reply.
|
|
76
|
+
*/
|
|
77
|
+
json: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* `--output-schema <file>`: a JSON Schema file the final answer is bound
|
|
80
|
+
* to, through the provider's native structured output. The path as given;
|
|
81
|
+
* the command resolves it against the process's directory.
|
|
82
|
+
*/
|
|
83
|
+
outputSchema: string | null;
|
|
76
84
|
/**
|
|
77
85
|
* `--flags` this parser does not know.
|
|
78
86
|
*
|
|
@@ -84,7 +92,7 @@ export interface RunFlags {
|
|
|
84
92
|
unknown: string[];
|
|
85
93
|
rest: string[];
|
|
86
94
|
}
|
|
87
|
-
export declare function
|
|
95
|
+
export declare function parseExecFlags(rawArgs: readonly string[]): ExecFlags;
|
|
88
96
|
/**
|
|
89
97
|
* Absolute path for a `--cwd`, or an error naming what is wrong with it.
|
|
90
98
|
*
|
|
@@ -126,7 +134,7 @@ export declare function loadSkillsContext(cwd: string, names: readonly string[])
|
|
|
126
134
|
* stops after `maxAnswerReviews`, and a turn whose budget outlasts its gate
|
|
127
135
|
* spends its remaining turns being told the same thing.
|
|
128
136
|
*/
|
|
129
|
-
export declare function buildGate(flags: Pick<
|
|
137
|
+
export declare function buildGate(flags: Pick<ExecFlags, 'gates' | 'gateRetries'>, cwd: string): {
|
|
130
138
|
reviewAnswer: ReviewAnswer;
|
|
131
139
|
maxAnswerReviews: number;
|
|
132
140
|
} | undefined;
|
|
@@ -153,5 +161,5 @@ export declare function unknownOptionMessage(unknown: readonly string[]): string
|
|
|
153
161
|
* viable. Passed together with `--provider`, it models the single member that
|
|
154
162
|
* replaced the chain.
|
|
155
163
|
*/
|
|
156
|
-
export declare function applyProviderFlags(prefs: Preferences, flags: Pick<
|
|
157
|
-
//# sourceMappingURL=
|
|
164
|
+
export declare function applyProviderFlags(prefs: Preferences, flags: Pick<ExecFlags, 'provider' | 'model'>): Preferences;
|
|
165
|
+
//# sourceMappingURL=exec-flags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-flags.d.ts","sourceRoot":"","sources":["../../src/commands/exec-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE/D,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,oCAAoC,CAAA;AAWjG,MAAM,WAAW,SAAS;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iEAAiE;IACjE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,kFAAkF;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAA;IACxB;;;;;;;;;OASG;IACH,KAAK,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAA;IACrB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,oEAAoE;IACpE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oEAAoE;IACpE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;OAEG;IACH,IAAI,EAAE,OAAO,CAAA;IACb;;;;OAIG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAuPpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAS/F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC,EAC/C,GAAG,EAAE,MAAM,GACT;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAUtE;AAmBD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAuBvE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,GAC1C,WAAW,CAiBb"}
|
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The input surface
|
|
3
|
-
* `run-stream`.
|
|
2
|
+
* The input surface of `namzu exec`, the headless one-shot.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `--cwd /elsewhere` and ran in this directory, which is the defect that was
|
|
12
|
-
* already fixed once, in the sibling command.
|
|
4
|
+
* `exec` prints its reply for a shell by default and, with `--json`, emits one
|
|
5
|
+
* JSON event per line for a host UI. Those used to be two commands with two
|
|
6
|
+
* inputs that drifted: one learned to parse `--cwd`, `--model`, `--provider`,
|
|
7
|
+
* `--session` and `--skills` while the other joined every argument into the
|
|
8
|
+
* prompt, so `--cwd /elsewhere "fix the test"` sent the model a prompt
|
|
9
|
+
* beginning `--cwd /elsewhere` and worked in this directory anyway.
|
|
13
10
|
*
|
|
14
|
-
* One parser, so the two cannot drift again.
|
|
11
|
+
* One parser, so the two output modes cannot drift again. `namzu resident`
|
|
12
|
+
* reads the same flags for the turns it starts.
|
|
15
13
|
*
|
|
16
|
-
* What
|
|
17
|
-
* deliberate:
|
|
18
|
-
* a line-scanning host, so it emits an error event and exits 0. Each is
|
|
19
|
-
* only signal its caller is listening for.
|
|
14
|
+
* What the modes still differ on is how a bad argument is REPORTED, and that is
|
|
15
|
+
* deliberate: the default mode answers a shell, so it exits non-zero; `--json`
|
|
16
|
+
* answers a line-scanning host, so it emits an error event and exits 0. Each is
|
|
17
|
+
* the only signal its caller is listening for.
|
|
20
18
|
*/
|
|
21
19
|
import { statSync } from 'node:fs';
|
|
22
20
|
import { resolve } from 'node:path';
|
|
23
21
|
import { DEFAULT_GATE_MAX_RETRIES, createCommandGate } from '@namzu/sdk';
|
|
24
22
|
import { durationMs } from './provider-wait.js';
|
|
25
|
-
/** A nonnegative safe integer; zero disables the corresponding
|
|
26
|
-
function
|
|
23
|
+
/** A nonnegative safe integer; zero disables the corresponding turn limit. */
|
|
24
|
+
function turnLimit(value, flag) {
|
|
27
25
|
const n = Number(value.trim());
|
|
28
26
|
if (!value.trim() || !Number.isSafeInteger(n) || n < 0)
|
|
29
27
|
throw new Error(`${flag} takes a safe whole number at least 0 (unlimited), got ${value}`);
|
|
30
28
|
return n;
|
|
31
29
|
}
|
|
32
|
-
export function
|
|
30
|
+
export function parseExecFlags(rawArgs) {
|
|
33
31
|
const out = {
|
|
34
32
|
session: null,
|
|
35
33
|
model: null,
|
|
@@ -47,6 +45,8 @@ export function parseRunFlags(rawArgs) {
|
|
|
47
45
|
waitForProviderMs: null,
|
|
48
46
|
gates: [],
|
|
49
47
|
gateRetries: null,
|
|
48
|
+
json: false,
|
|
49
|
+
outputSchema: null,
|
|
50
50
|
unknown: [],
|
|
51
51
|
rest: [],
|
|
52
52
|
};
|
|
@@ -97,11 +97,11 @@ export function parseRunFlags(rawArgs) {
|
|
|
97
97
|
}), idx))
|
|
98
98
|
continue;
|
|
99
99
|
if (take(a, 'max-iterations', (v) => {
|
|
100
|
-
out.maxIterations =
|
|
100
|
+
out.maxIterations = turnLimit(v, '--max-iterations');
|
|
101
101
|
}, idx))
|
|
102
102
|
continue;
|
|
103
103
|
if (take(a, 'token-budget', (v) => {
|
|
104
|
-
out.tokenBudget =
|
|
104
|
+
out.tokenBudget = turnLimit(v, '--token-budget');
|
|
105
105
|
}, idx))
|
|
106
106
|
continue;
|
|
107
107
|
if (take(a, 'wait-for-provider', (v) => {
|
|
@@ -116,6 +116,14 @@ export function parseRunFlags(rawArgs) {
|
|
|
116
116
|
out.trust = true;
|
|
117
117
|
continue;
|
|
118
118
|
}
|
|
119
|
+
if (a === '--json') {
|
|
120
|
+
out.json = true;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (take(a, 'output-schema', trimmed((v) => {
|
|
124
|
+
out.outputSchema = v;
|
|
125
|
+
}), idx))
|
|
126
|
+
continue;
|
|
119
127
|
if (take(a, 'resume', trimmed((v) => {
|
|
120
128
|
out.resume = v;
|
|
121
129
|
}), idx))
|
|
@@ -152,7 +160,7 @@ export function parseRunFlags(rawArgs) {
|
|
|
152
160
|
out.gateRetries = Number(v);
|
|
153
161
|
}, idx))
|
|
154
162
|
continue;
|
|
155
|
-
// Was accepted and ignored, because a headless
|
|
163
|
+
// Was accepted and ignored, because a headless turn never prompted and so
|
|
156
164
|
// had nothing to bypass. Now that an operator can write rules, it means
|
|
157
165
|
// something: `auto` for the calls no rule decided. It still cannot reopen
|
|
158
166
|
// a `deny` or the dangerous-pattern floor, so it promises more than it
|
|
@@ -265,7 +273,7 @@ export function unknownOptionMessage(unknown) {
|
|
|
265
273
|
// Two different mistakes reached the same sentence, and only one of them
|
|
266
274
|
// was ever about a dash.
|
|
267
275
|
//
|
|
268
|
-
// `namzu
|
|
276
|
+
// `namzu exec "..." --verbose` is the order a person types, and the generic
|
|
269
277
|
// message answered it with "pass `--` before a prompt that starts with a
|
|
270
278
|
// dash" — advice for a prompt beginning with `-`, which this is not. The
|
|
271
279
|
// reader is then looking at the wrong half of their command line. The flag
|
|
@@ -320,4 +328,4 @@ export function applyProviderFlags(prefs, flags) {
|
|
|
320
328
|
const remodelled = { id: head.id, model: flags.model };
|
|
321
329
|
return { ...prefs, providers: [remodelled, ...rest] };
|
|
322
330
|
}
|
|
323
|
-
//# sourceMappingURL=
|
|
331
|
+
//# sourceMappingURL=exec-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-flags.js","sourceRoot":"","sources":["../../src/commands/exec-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `namzu
|
|
3
|
-
*
|
|
4
|
-
* emits one compact NDJSON line per `AgentEvent` to stdout
|
|
2
|
+
* `namzu exec --json [--session <key>] "<prompt>"` — the headless one-shot as
|
|
3
|
+
* a STREAM. Same engine as the default mode, but instead of buffering the
|
|
4
|
+
* final text it emits one compact NDJSON line per `AgentEvent` to stdout
|
|
5
5
|
* (`{"kind":"delta","text":…}`, `{"kind":"tool-start",…}`,
|
|
6
6
|
* `{"kind":"error","message":…}`, `{"kind":"done"}`). A host process — a
|
|
7
7
|
* desktop app embedding namzu, say — line-scans stdout and renders the turn
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* reasoning and complete tool turns included. That's what lets a reopened
|
|
16
16
|
* session show and replay its past messages (`namzu history --session
|
|
17
17
|
* <key>`). Without `--session`, prior history may be supplied on stdin as a
|
|
18
|
-
* JSON `Message[]` and the turn
|
|
19
|
-
* (stateless one-shot).
|
|
18
|
+
* JSON `Message[]` and the turn works in an in-memory log: nothing is
|
|
19
|
+
* persisted (a stateless one-shot).
|
|
20
20
|
*
|
|
21
21
|
* Status lines go to stderr as NDJSON (LOG-05), never stdout, so every
|
|
22
22
|
* stdout line is a valid JSON event, and EVERY failure is reported in band,
|
|
@@ -53,17 +53,23 @@
|
|
|
53
53
|
* credential or driver the session needs, a declared tool server that is not
|
|
54
54
|
* there, a command file that will not parse.
|
|
55
55
|
*
|
|
56
|
-
* `1` rather than a new code because `namzu
|
|
57
|
-
* only in how it prints — already exits `1` for these
|
|
58
|
-
* trust. A host that shells to one for a script and the other for a UI must not
|
|
56
|
+
* `1` rather than a new code because the default mode of `namzu exec` — the
|
|
57
|
+
* same one-shot, differing only in how it prints — already exits `1` for these
|
|
58
|
+
* conditions and `77` for trust. A host that shells to one for a script and the other for a UI must not
|
|
59
59
|
* be handed two tables for one fact.
|
|
60
60
|
*
|
|
61
61
|
* Dropping `--session` is NOT "the caller fixing it": it abandons what was
|
|
62
62
|
* asked for rather than achieving it.
|
|
63
63
|
*/
|
|
64
|
-
import type
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
import { type StructuredOutputConfig } from '@namzu/sdk';
|
|
65
|
+
import type { TerminationHandling } from '../termination.js';
|
|
66
|
+
import { type ExecFlags } from './exec-flags.js';
|
|
67
|
+
import type { CommandHandlerArgs } from './types.js';
|
|
68
|
+
/**
|
|
69
|
+
* `exec --json`. `flags` are already parsed; `structuredOutput` is the loaded
|
|
70
|
+
* `--output-schema`, or an error loading it that is reported in band.
|
|
71
|
+
*/
|
|
72
|
+
export declare function execJson({ ctx: bootstrapCtx }: CommandHandlerArgs, termination: TerminationHandling, flags: ExecFlags, structuredOutput: StructuredOutputConfig | {
|
|
73
|
+
readonly error: string;
|
|
74
|
+
} | undefined): Promise<number>;
|
|
75
|
+
//# sourceMappingURL=exec-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-json.d.ts","sourceRoot":"","sources":["../../src/commands/exec-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH,OAAO,EAGN,KAAK,sBAAsB,EAI3B,MAAM,YAAY,CAAA;AAkBnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAI5D,OAAO,EACN,KAAK,SAAS,EAMd,MAAM,iBAAiB,CAAA;AAGxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAapD;;;GAGG;AACH,wBAAsB,QAAQ,CAC7B,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,kBAAkB,EACzC,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,SAAS,EAChB,gBAAgB,EAAE,sBAAsB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAC/E,OAAO,CAAC,MAAM,CAAC,CA+XjB"}
|