@namzu/cli 12.1.0 → 13.0.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/README.md +25 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +119 -60
- package/dist/cli.js.map +1 -1
- package/dist/commands/acp.d.ts +24 -8
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/acp.js +221 -80
- package/dist/commands/acp.js.map +1 -1
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +45 -9
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/prior-messages.d.ts +11 -0
- package/dist/commands/prior-messages.d.ts.map +1 -0
- package/dist/commands/prior-messages.js +280 -0
- package/dist/commands/prior-messages.js.map +1 -0
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +21 -19
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run-stream.d.ts +5 -3
- package/dist/commands/run-stream.d.ts.map +1 -1
- package/dist/commands/run-stream.js +66 -62
- package/dist/commands/run-stream.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +50 -37
- package/dist/commands/run.js.map +1 -1
- package/dist/config/debug.d.ts +55 -0
- package/dist/config/debug.d.ts.map +1 -0
- package/dist/config/debug.js +126 -0
- package/dist/config/debug.js.map +1 -0
- package/dist/config/load.d.ts +88 -4
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +386 -56
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +87 -5
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +5 -5
- package/dist/config/schema.js.map +1 -1
- package/dist/config/trusted-project-context.d.ts +11 -0
- package/dist/config/trusted-project-context.d.ts.map +1 -0
- package/dist/config/trusted-project-context.js +28 -0
- package/dist/config/trusted-project-context.js.map +1 -0
- package/dist/context/project-path.d.ts +3 -0
- package/dist/context/project-path.d.ts.map +1 -0
- package/dist/context/project-path.js +16 -0
- package/dist/context/project-path.js.map +1 -0
- package/dist/context/project-tracker.d.ts +30 -0
- package/dist/context/project-tracker.d.ts.map +1 -0
- package/dist/context/project-tracker.js +217 -0
- package/dist/context/project-tracker.js.map +1 -0
- package/dist/context/sandbox.d.ts +29 -9
- package/dist/context/sandbox.d.ts.map +1 -1
- package/dist/context/sandbox.js +8 -0
- package/dist/context/sandbox.js.map +1 -1
- package/dist/exit-codes.d.ts +5 -4
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/exit-codes.js +5 -4
- package/dist/exit-codes.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/clipboard/text.d.ts +43 -0
- package/dist/integrations/clipboard/text.d.ts.map +1 -0
- package/dist/integrations/clipboard/text.js +43 -0
- package/dist/integrations/clipboard/text.js.map +1 -0
- package/dist/integrations/mcp/servers.d.ts +9 -0
- package/dist/integrations/mcp/servers.d.ts.map +1 -1
- package/dist/integrations/mcp/servers.js +11 -4
- package/dist/integrations/mcp/servers.js.map +1 -1
- package/dist/integrations/notifications/terminal.d.ts +32 -0
- package/dist/integrations/notifications/terminal.d.ts.map +1 -0
- package/dist/integrations/notifications/terminal.js +46 -0
- package/dist/integrations/notifications/terminal.js.map +1 -0
- package/dist/integrations/plugins/runtime.d.ts +17 -0
- package/dist/integrations/plugins/runtime.d.ts.map +1 -0
- package/dist/integrations/plugins/runtime.js +100 -0
- package/dist/integrations/plugins/runtime.js.map +1 -0
- package/dist/integrations/providers/credential-store.d.ts +17 -0
- package/dist/integrations/providers/credential-store.d.ts.map +1 -1
- package/dist/integrations/providers/credential-store.js +114 -2
- package/dist/integrations/providers/credential-store.js.map +1 -1
- package/dist/integrations/providers/index.d.ts +2 -2
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/index.js +2 -2
- package/dist/integrations/providers/index.js.map +1 -1
- package/dist/integrations/providers/keychain.d.ts +0 -13
- package/dist/integrations/providers/keychain.d.ts.map +1 -1
- package/dist/integrations/providers/keychain.js +0 -76
- package/dist/integrations/providers/keychain.js.map +1 -1
- package/dist/integrations/providers/oauth.d.ts +45 -16
- package/dist/integrations/providers/oauth.d.ts.map +1 -1
- package/dist/integrations/providers/oauth.js +170 -43
- package/dist/integrations/providers/oauth.js.map +1 -1
- package/dist/integrations/providers/subscription-login.d.ts +2 -0
- package/dist/integrations/providers/subscription-login.d.ts.map +1 -1
- package/dist/integrations/providers/subscription-login.js +117 -14
- package/dist/integrations/providers/subscription-login.js.map +1 -1
- package/dist/integrations/sessions/store.d.ts +111 -1
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/store.js +400 -7
- package/dist/integrations/sessions/store.js.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts +25 -0
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -0
- package/dist/integrations/sessions/transcript-export.js +441 -0
- package/dist/integrations/sessions/transcript-export.js.map +1 -0
- package/dist/integrations/sessions/turn-evidence.d.ts +138 -0
- package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -0
- package/dist/integrations/sessions/turn-evidence.js +506 -0
- package/dist/integrations/sessions/turn-evidence.js.map +1 -0
- package/dist/integrations/subagents/runtime.d.ts +7 -12
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +19 -10
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/integrations/trust/store.d.ts.map +1 -1
- package/dist/integrations/trust/store.js +27 -13
- package/dist/integrations/trust/store.js.map +1 -1
- package/dist/permissions/canonical-project.d.ts +9 -0
- package/dist/permissions/canonical-project.d.ts.map +1 -0
- package/dist/permissions/canonical-project.js +13 -0
- package/dist/permissions/canonical-project.js.map +1 -0
- package/dist/permissions/checks.d.ts +65 -0
- package/dist/permissions/checks.d.ts.map +1 -0
- package/dist/permissions/checks.js +122 -0
- package/dist/permissions/checks.js.map +1 -0
- package/dist/permissions/headless-trust.d.ts +9 -5
- package/dist/permissions/headless-trust.d.ts.map +1 -1
- package/dist/permissions/headless-trust.js +18 -4
- package/dist/permissions/headless-trust.js.map +1 -1
- package/dist/permissions/rules.d.ts +16 -7
- package/dist/permissions/rules.d.ts.map +1 -1
- package/dist/permissions/rules.js +78 -13
- package/dist/permissions/rules.js.map +1 -1
- package/dist/tui/App.d.ts +5 -2
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +1555 -143
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Composer.d.ts +14 -3
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/Composer.js +53 -15
- package/dist/tui/Composer.js.map +1 -1
- package/dist/tui/EditPromptPicker.d.ts +8 -0
- package/dist/tui/EditPromptPicker.d.ts.map +1 -0
- package/dist/tui/EditPromptPicker.js +18 -0
- package/dist/tui/EditPromptPicker.js.map +1 -0
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/LiveActivity.js +2 -1
- package/dist/tui/LiveActivity.js.map +1 -1
- package/dist/tui/Markdown.d.ts.map +1 -1
- package/dist/tui/Markdown.js +2 -1
- package/dist/tui/Markdown.js.map +1 -1
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.js +7 -1
- package/dist/tui/PermissionOverlay.js.map +1 -1
- package/dist/tui/Picker.d.ts +4 -4
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +86 -7
- package/dist/tui/Picker.js.map +1 -1
- package/dist/tui/ResumePicker.d.ts.map +1 -1
- package/dist/tui/ResumePicker.js +1 -1
- package/dist/tui/ResumePicker.js.map +1 -1
- package/dist/tui/Transcript.d.ts +4 -2
- package/dist/tui/Transcript.d.ts.map +1 -1
- package/dist/tui/Transcript.js +31 -5
- package/dist/tui/Transcript.js.map +1 -1
- package/dist/tui/agent.d.ts +123 -19
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +665 -143
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/compact-transcript.d.ts +24 -0
- package/dist/tui/compact-transcript.d.ts.map +1 -0
- package/dist/tui/compact-transcript.js +46 -0
- package/dist/tui/compact-transcript.js.map +1 -0
- package/dist/tui/conversation-history.d.ts +33 -0
- package/dist/tui/conversation-history.d.ts.map +1 -0
- package/dist/tui/conversation-history.js +42 -0
- package/dist/tui/conversation-history.js.map +1 -0
- package/dist/tui/edit-prompts.d.ts +23 -0
- package/dist/tui/edit-prompts.d.ts.map +1 -0
- package/dist/tui/edit-prompts.js +35 -0
- package/dist/tui/edit-prompts.js.map +1 -0
- package/dist/tui/live-window.d.ts +3 -1
- package/dist/tui/live-window.d.ts.map +1 -1
- package/dist/tui/live-window.js +20 -8
- package/dist/tui/live-window.js.map +1 -1
- package/dist/tui/slashCommands.d.ts +178 -9
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +339 -15
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/terminal-display.d.ts +12 -0
- package/dist/tui/terminal-display.d.ts.map +1 -0
- package/dist/tui/terminal-display.js +65 -0
- package/dist/tui/terminal-display.js.map +1 -0
- package/dist/tui/types.d.ts +14 -2
- package/dist/tui/types.d.ts.map +1 -1
- package/dist/tui/workspace-diff.d.ts +40 -0
- package/dist/tui/workspace-diff.d.ts.map +1 -0
- package/dist/tui/workspace-diff.js +101 -0
- package/dist/tui/workspace-diff.js.map +1 -0
- package/package.json +7 -7
package/dist/config/load.js
CHANGED
|
@@ -1,28 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Config cascade for @namzu/cli
|
|
2
|
+
* Config cascade and runtime admission for @namzu/cli.
|
|
3
3
|
*
|
|
4
4
|
* Resolution order (highest priority first):
|
|
5
|
-
* 1. CLI flags (handled by Commander, merged in `
|
|
5
|
+
* 1. CLI flags (handled by Commander, merged in `cli.ts`)
|
|
6
6
|
* 2. Environment variables prefixed `NAMZU_`
|
|
7
7
|
* 3. Project config: `./namzu.config.json` (TS variant added in a later
|
|
8
8
|
* milestone when a build step is justified)
|
|
9
9
|
* 4. User config: `~/.namzu/config.yaml`
|
|
10
10
|
* 5. Built-in defaults from `schema.ts`
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* This module owns steps 2–5. CLI-flag merging happens in `cli.ts`, where
|
|
13
|
+
* Commander knows what was explicitly set rather than merely defaulted.
|
|
14
14
|
*
|
|
15
15
|
* A file that is not there contributes nothing, and that is a default. A file
|
|
16
16
|
* that IS there and cannot be read throws {@link ConfigLoadError} — this loader
|
|
17
17
|
* has no way to say "some of your settings", and will not pretend the ones it
|
|
18
18
|
* failed to read were never written.
|
|
19
|
+
*
|
|
20
|
+
* A source Namzu can parse but whose known key carries an invalid value throws
|
|
21
|
+
* {@link ConfigValueError}. Absence, syntax failure, and semantic rejection are
|
|
22
|
+
* three different states and none is represented by another.
|
|
19
23
|
*/
|
|
20
24
|
import { readFileSync } from 'node:fs';
|
|
21
25
|
import { homedir } from 'node:os';
|
|
22
26
|
import { join, resolve } from 'node:path';
|
|
23
27
|
import { parse as yamlParse } from 'yaml';
|
|
24
28
|
import { isFormatName } from '../output/index.js';
|
|
29
|
+
import { configMetadataLiteral } from './debug.js';
|
|
25
30
|
import { DEFAULT_CONFIG } from './schema.js';
|
|
31
|
+
/**
|
|
32
|
+
* A machine-wide config that wins the cascade.
|
|
33
|
+
*
|
|
34
|
+
* It exists for the case where the person running namzu is not the person
|
|
35
|
+
* deciding what it may do — a shared build machine, a managed workstation.
|
|
36
|
+
* Applied LAST, so it beats the project file and the environment both, which
|
|
37
|
+
* is the only ordering that makes it worth having.
|
|
38
|
+
*
|
|
39
|
+
* **Its guarantee is the file system's and nothing more.** namzu does not
|
|
40
|
+
* verify a signature, does not check an owner, and cannot tell an
|
|
41
|
+
* administrator's file from one the user wrote there. What stops a user
|
|
42
|
+
* editing it is that the path needs privileges they do not have, on a machine
|
|
43
|
+
* somebody configured that way. That is a real control and a narrow one, and
|
|
44
|
+
* stating it precisely is the difference between a security boundary and the
|
|
45
|
+
* appearance of one.
|
|
46
|
+
*
|
|
47
|
+
* Absent on almost every machine, which is the expected case and not an error.
|
|
48
|
+
*/
|
|
49
|
+
export const MANAGED_CONFIG_PATH = process.platform === 'win32'
|
|
50
|
+
? join(process.env.PROGRAMDATA ?? 'C:\\ProgramData', 'namzu', 'config.json')
|
|
51
|
+
: '/etc/namzu/config.json';
|
|
26
52
|
/**
|
|
27
53
|
* `loadConfig` plus the record of who won each key.
|
|
28
54
|
*
|
|
@@ -35,15 +61,50 @@ import { DEFAULT_CONFIG } from './schema.js';
|
|
|
35
61
|
* by hand.
|
|
36
62
|
*/
|
|
37
63
|
export function loadConfigWithProvenance(opts = {}) {
|
|
64
|
+
return resolveConfigWithProvenance(opts, {
|
|
65
|
+
includeProject: true,
|
|
66
|
+
deferUnknownProfile: false,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve only process/user/managed authority before a project is trusted.
|
|
71
|
+
*
|
|
72
|
+
* Internal CLI seam: deliberately not re-exported from the package root. A
|
|
73
|
+
* selected profile may be declared by the project layer, so an otherwise
|
|
74
|
+
* unknown profile is deferred until the trusted, full resolution pass.
|
|
75
|
+
*/
|
|
76
|
+
export function loadBootstrapConfigWithProvenance(opts = {}) {
|
|
77
|
+
return resolveConfigWithProvenance(opts, {
|
|
78
|
+
includeProject: false,
|
|
79
|
+
deferUnknownProfile: true,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function resolveConfigWithProvenance(opts, mode) {
|
|
38
83
|
const home = opts.home ?? homedir();
|
|
39
84
|
const cwd = opts.cwd ?? process.cwd();
|
|
40
85
|
const env = opts.env ?? process.env;
|
|
41
86
|
const userPath = join(home, '.namzu', 'config.yaml');
|
|
42
87
|
const projectPath = resolve(cwd, 'namzu.config.json');
|
|
88
|
+
const managedPath = opts.managedPath ?? MANAGED_CONFIG_PATH;
|
|
43
89
|
const userCfg = readYamlIfExists(userPath);
|
|
44
|
-
const projectCfg = readJsonIfExists(projectPath);
|
|
90
|
+
const projectCfg = mode.includeProject ? readJsonIfExists(projectPath) : {};
|
|
91
|
+
const managedCfg = readJsonIfExists(managedPath);
|
|
45
92
|
const { config: envCfg, variables: envVariables } = readEnv(env);
|
|
46
|
-
|
|
93
|
+
// The command line first, then the environment. A flag is this run; a
|
|
94
|
+
// variable is this shell — so the narrower statement wins, the way it does
|
|
95
|
+
// everywhere else here.
|
|
96
|
+
const profileName = opts.profile ?? env.NAMZU_PROFILE;
|
|
97
|
+
const profiles = profileLayers(profileName, [
|
|
98
|
+
[userCfg, userPath],
|
|
99
|
+
[projectCfg, projectPath],
|
|
100
|
+
[managedCfg, managedPath],
|
|
101
|
+
], mode.deferUnknownProfile);
|
|
102
|
+
return mergeConfigs(constantLayer(DEFAULT_CONFIG, { kind: 'default' }), constantLayer(userCfg, { kind: 'user-file', path: userPath }), constantLayer(projectCfg, { kind: 'project-file', path: projectPath }),
|
|
103
|
+
// After both files and before the environment. A profile is a
|
|
104
|
+
// deliberate choice about a set of settings, so it beats the ambient
|
|
105
|
+
// values in the file it came from; a variable is a statement about this
|
|
106
|
+
// one shell, so it beats the profile.
|
|
107
|
+
...profiles, {
|
|
47
108
|
config: envCfg,
|
|
48
109
|
sourceFor: (key) => {
|
|
49
110
|
const variable = envVariables[key];
|
|
@@ -57,7 +118,60 @@ export function loadConfigWithProvenance(opts = {}) {
|
|
|
57
118
|
}
|
|
58
119
|
return { kind: 'env', variable };
|
|
59
120
|
},
|
|
60
|
-
}
|
|
121
|
+
},
|
|
122
|
+
// Last, so it beats the project file and the environment both. That
|
|
123
|
+
// ordering is the whole of what a managed layer is.
|
|
124
|
+
constantLayer(managedCfg, { kind: 'managed', path: managedPath }));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* The selected profile, once per file that declares it.
|
|
128
|
+
*
|
|
129
|
+
* One layer per file rather than one merged layer, so provenance keeps naming
|
|
130
|
+
* the file a value actually came from — a project profile overriding a user
|
|
131
|
+
* profile of the same name is the ordinary case, and reporting both as "the
|
|
132
|
+
* profile" would leave an operator opening the wrong file.
|
|
133
|
+
*
|
|
134
|
+
* Refuses a name nothing declares. The alternative is a run under settings
|
|
135
|
+
* nobody chose, reported as success.
|
|
136
|
+
*/
|
|
137
|
+
function profileLayers(name, files, deferUnknown = false) {
|
|
138
|
+
if (name === undefined || name === '')
|
|
139
|
+
return [];
|
|
140
|
+
const layers = [];
|
|
141
|
+
const declared = new Set();
|
|
142
|
+
const declaringFiles = [];
|
|
143
|
+
for (const [config, path] of files) {
|
|
144
|
+
const profiles = config.profiles;
|
|
145
|
+
if (profiles === undefined)
|
|
146
|
+
continue;
|
|
147
|
+
declaringFiles.push(path);
|
|
148
|
+
for (const key of Object.keys(profiles))
|
|
149
|
+
declared.add(key);
|
|
150
|
+
if (!Object.hasOwn(profiles, name))
|
|
151
|
+
continue;
|
|
152
|
+
const selected = profiles[name];
|
|
153
|
+
// `Object.hasOwn` above is the declaration check. Direct indexing alone
|
|
154
|
+
// admits inherited `toString`, `constructor`, and `__proto__` as profiles
|
|
155
|
+
// a file never declared.
|
|
156
|
+
if (selected === undefined)
|
|
157
|
+
continue;
|
|
158
|
+
layers.push(constantLayer(selected, { kind: 'profile', name, path }));
|
|
159
|
+
}
|
|
160
|
+
if (layers.length === 0) {
|
|
161
|
+
if (deferUnknown)
|
|
162
|
+
return [];
|
|
163
|
+
const known = [...declared].sort();
|
|
164
|
+
// The path is where to go and fix it. A file that already declares
|
|
165
|
+
// profiles is the better answer than the one bound to this folder,
|
|
166
|
+
// because a misspelled name usually sits next to the right one — and
|
|
167
|
+
// when nothing declares any, the folder's own file is where the first
|
|
168
|
+
// one would go.
|
|
169
|
+
const where = declaringFiles[0] ?? files[1]?.[1] ?? '';
|
|
170
|
+
throw new ConfigLoadError(where, known.length === 0
|
|
171
|
+
? `No profile named "${name}" — no config file declares any profiles.`
|
|
172
|
+
: `No profile named "${name}". Declared in ${declaringFiles.join(', ')}: ${known.join(', ')}.`);
|
|
173
|
+
}
|
|
174
|
+
return layers;
|
|
61
175
|
}
|
|
62
176
|
export function loadConfig(opts = {}) {
|
|
63
177
|
return loadConfigWithProvenance(opts).config;
|
|
@@ -78,6 +192,28 @@ export class ConfigLoadError extends Error {
|
|
|
78
192
|
this.path = path;
|
|
79
193
|
}
|
|
80
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* A known config key whose explicit value does not satisfy its public type.
|
|
197
|
+
*
|
|
198
|
+
* Kept distinct from {@link ConfigLoadError}: that class means a file could
|
|
199
|
+
* not be read or parsed at all, while this one means the source was readable
|
|
200
|
+
* and named a setting Namzu cannot honour. Public loaders throw both; the
|
|
201
|
+
* standalone binary maps both to `EX_CONFIG`.
|
|
202
|
+
*/
|
|
203
|
+
export class ConfigValueError extends Error {
|
|
204
|
+
source;
|
|
205
|
+
/** Dot/bracket path to the invalid known setting, without its source. */
|
|
206
|
+
settingPath;
|
|
207
|
+
constructor(source, settingPath, message) {
|
|
208
|
+
const origin = source.kind === 'file'
|
|
209
|
+
? `config file ${configMetadataLiteral(source.path)}`
|
|
210
|
+
: `environment variable ${source.variable}`;
|
|
211
|
+
super(`${origin}: ${settingPath} ${message}`);
|
|
212
|
+
this.name = 'ConfigValueError';
|
|
213
|
+
this.source = source;
|
|
214
|
+
this.settingPath = settingPath;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
81
217
|
function readYamlIfExists(path) {
|
|
82
218
|
const raw = readIfPresent(path);
|
|
83
219
|
if (raw === null)
|
|
@@ -151,7 +287,7 @@ function asConfigObject(path, parsed) {
|
|
|
151
287
|
if (typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
152
288
|
throw new ConfigLoadError(path, `${path} must contain a mapping of settings, but its top level is ${describe(parsed)}`);
|
|
153
289
|
}
|
|
154
|
-
return sanitize(parsed);
|
|
290
|
+
return sanitize(parsed, { kind: 'file', path });
|
|
155
291
|
}
|
|
156
292
|
function describe(value) {
|
|
157
293
|
return Array.isArray(value) ? 'a list' : `a ${typeof value}`;
|
|
@@ -160,72 +296,191 @@ function reasonOf(cause) {
|
|
|
160
296
|
return cause instanceof Error ? cause.message : String(cause);
|
|
161
297
|
}
|
|
162
298
|
const CONFIG_READERS = {
|
|
163
|
-
format: (v) =>
|
|
164
|
-
|
|
299
|
+
format: (v, context) => {
|
|
300
|
+
if (typeof v === 'string' && isFormatName(v))
|
|
301
|
+
return v;
|
|
302
|
+
return invalidConfigValue(context, [], 'must be one of "text", "json", or "yaml"');
|
|
303
|
+
},
|
|
304
|
+
quiet: (v, context) => {
|
|
305
|
+
if (typeof v === 'boolean')
|
|
306
|
+
return v;
|
|
307
|
+
return invalidConfigValue(context, [], 'must be a boolean');
|
|
308
|
+
},
|
|
165
309
|
// Shape only. Per-entry validation belongs to `compilePermissions`, which
|
|
166
310
|
// reports a bad effect or an unusable pattern as a diagnostic the user
|
|
167
311
|
// sees; dropping those entries here would silence it.
|
|
168
|
-
permissions: (v) =>
|
|
312
|
+
permissions: (v, context) => {
|
|
313
|
+
if (isConfigMapping(v))
|
|
314
|
+
return v;
|
|
315
|
+
return invalidConfigValue(context, [], 'must be a mapping of tool names');
|
|
316
|
+
},
|
|
317
|
+
// Shape only, like `permissions` and for the same reason: per-entry
|
|
318
|
+
// validation belongs to `verifyPermissionChecks`, which reports a bad
|
|
319
|
+
// check by index. Dropping a malformed one here would turn "your check is
|
|
320
|
+
// unreadable" into "your check passed".
|
|
321
|
+
permissionChecks: (v, context) => {
|
|
322
|
+
if (Array.isArray(v))
|
|
323
|
+
return v;
|
|
324
|
+
return invalidConfigValue(context, [], 'must be a list');
|
|
325
|
+
},
|
|
326
|
+
// Every declared profile is checked when its file loads, not only when it is
|
|
327
|
+
// selected. Typed config in a lower-precedence layer cannot become valid
|
|
328
|
+
// merely because another layer happens to win today. Unknown profile keys
|
|
329
|
+
// remain non-strict and are ignored by `sanitize`, like unknown base keys.
|
|
330
|
+
profiles: (v, context) => {
|
|
331
|
+
if (!isConfigMapping(v)) {
|
|
332
|
+
return invalidConfigValue(context, [], 'must be a mapping of profile names');
|
|
333
|
+
}
|
|
334
|
+
const profiles = {};
|
|
335
|
+
for (const name of Object.keys(v)) {
|
|
336
|
+
const entry = v[name];
|
|
337
|
+
if (!isConfigMapping(entry)) {
|
|
338
|
+
return invalidConfigValue(context, [name], 'must be a mapping of settings');
|
|
339
|
+
}
|
|
340
|
+
const parsed = sanitize(entry, context.source, [...context.path, name], false);
|
|
341
|
+
// Define rather than assign: `__proto__` is a valid own profile name,
|
|
342
|
+
// not permission to change this dictionary's prototype.
|
|
343
|
+
Object.defineProperty(profiles, name, {
|
|
344
|
+
value: parsed,
|
|
345
|
+
enumerable: true,
|
|
346
|
+
configurable: true,
|
|
347
|
+
writable: true,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
return profiles;
|
|
351
|
+
},
|
|
169
352
|
// Shape only, for the same reason as `permissions`: an entry that names
|
|
170
353
|
// neither a command nor a url — or both — is reported by name when the
|
|
171
354
|
// connection is attempted. Dropping it here would turn a mistake the
|
|
172
355
|
// operator can see into a server that silently was never there.
|
|
173
|
-
mcpServers: (v) =>
|
|
356
|
+
mcpServers: (v, context) => {
|
|
357
|
+
if (isConfigMapping(v))
|
|
358
|
+
return v;
|
|
359
|
+
return invalidConfigValue(context, [], 'must be a mapping of server names');
|
|
360
|
+
},
|
|
361
|
+
plugins: (v, context) => {
|
|
362
|
+
if (!isConfigMapping(v))
|
|
363
|
+
return invalidConfigValue(context, [], 'must be a mapping');
|
|
364
|
+
const known = new Set(['enabled', 'autoDiscovery', 'allowedScopes', 'hookTimeoutMs']);
|
|
365
|
+
for (const key of Object.keys(v)) {
|
|
366
|
+
if (!known.has(key)) {
|
|
367
|
+
return invalidConfigValue(context, [key], 'is not a recognized plugin setting');
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
const raw = v;
|
|
371
|
+
if (raw.enabled !== undefined && typeof raw.enabled !== 'boolean') {
|
|
372
|
+
return invalidConfigValue(context, ['enabled'], 'must be a boolean');
|
|
373
|
+
}
|
|
374
|
+
if (raw.autoDiscovery !== undefined && typeof raw.autoDiscovery !== 'boolean') {
|
|
375
|
+
return invalidConfigValue(context, ['autoDiscovery'], 'must be a boolean');
|
|
376
|
+
}
|
|
377
|
+
let allowedScopes;
|
|
378
|
+
if (raw.allowedScopes !== undefined) {
|
|
379
|
+
if (!Array.isArray(raw.allowedScopes)) {
|
|
380
|
+
return invalidConfigValue(context, ['allowedScopes'], 'must be a list');
|
|
381
|
+
}
|
|
382
|
+
const invalidIndex = raw.allowedScopes.findIndex((scope) => scope !== 'project' && scope !== 'user');
|
|
383
|
+
if (invalidIndex >= 0) {
|
|
384
|
+
return invalidConfigValue(context, ['allowedScopes', invalidIndex], 'must be one of "project" or "user"');
|
|
385
|
+
}
|
|
386
|
+
if (new Set(raw.allowedScopes).size !== raw.allowedScopes.length) {
|
|
387
|
+
return invalidConfigValue(context, ['allowedScopes'], 'must not contain duplicates');
|
|
388
|
+
}
|
|
389
|
+
allowedScopes = raw.allowedScopes;
|
|
390
|
+
}
|
|
391
|
+
if (raw.hookTimeoutMs !== undefined &&
|
|
392
|
+
(!Number.isInteger(raw.hookTimeoutMs) ||
|
|
393
|
+
raw.hookTimeoutMs <= 0 ||
|
|
394
|
+
raw.hookTimeoutMs > 2_147_483_647)) {
|
|
395
|
+
return invalidConfigValue(context, ['hookTimeoutMs'], 'must be an integer from 1 to 2147483647');
|
|
396
|
+
}
|
|
397
|
+
return {
|
|
398
|
+
...(raw.enabled !== undefined ? { enabled: raw.enabled } : {}),
|
|
399
|
+
...(raw.autoDiscovery !== undefined ? { autoDiscovery: raw.autoDiscovery } : {}),
|
|
400
|
+
...(allowedScopes !== undefined ? { allowedScopes } : {}),
|
|
401
|
+
...(raw.hookTimeoutMs !== undefined ? { hookTimeoutMs: raw.hookTimeoutMs } : {}),
|
|
402
|
+
};
|
|
403
|
+
},
|
|
174
404
|
// Read field by field rather than shape-only, unlike the two above.
|
|
175
405
|
// Those hand their entries to a compiler that reports a bad one by name;
|
|
176
406
|
// this one is consumed directly, and a misspelled `require_isolation` or
|
|
177
407
|
// a string where a list belongs would otherwise become "no requirement"
|
|
178
408
|
// — a security control silently downgraded by a typo, which is the
|
|
179
409
|
// failure this whole change exists to remove.
|
|
180
|
-
sandbox: (v) => {
|
|
181
|
-
if (
|
|
182
|
-
return
|
|
410
|
+
sandbox: (v, context) => {
|
|
411
|
+
if (!isConfigMapping(v))
|
|
412
|
+
return invalidConfigValue(context, [], 'must be a mapping');
|
|
183
413
|
const raw = v;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
414
|
+
if (raw.enabled !== undefined && typeof raw.enabled !== 'boolean') {
|
|
415
|
+
return invalidConfigValue(context, ['enabled'], 'must be a boolean');
|
|
416
|
+
}
|
|
417
|
+
if (raw.requireIsolation !== undefined && !Array.isArray(raw.requireIsolation)) {
|
|
418
|
+
return invalidConfigValue(context, ['requireIsolation'], 'must be a list');
|
|
419
|
+
}
|
|
420
|
+
const requireIsolation = raw.requireIsolation;
|
|
421
|
+
const invalidIndex = requireIsolation?.findIndex((value) => value !== 'filesystem' && value !== 'network' && value !== 'process');
|
|
422
|
+
if (invalidIndex !== undefined && invalidIndex >= 0) {
|
|
423
|
+
return invalidConfigValue(context, ['requireIsolation', invalidIndex], 'must be one of "filesystem", "network", or "process"');
|
|
424
|
+
}
|
|
425
|
+
if (raw.teardownTimeoutMs !== undefined &&
|
|
426
|
+
(!Number.isInteger(raw.teardownTimeoutMs) ||
|
|
427
|
+
raw.teardownTimeoutMs < 0 ||
|
|
428
|
+
raw.teardownTimeoutMs > 2_147_483_647)) {
|
|
429
|
+
return invalidConfigValue(context, ['teardownTimeoutMs'], 'must be an integer from 0 to 2147483647');
|
|
430
|
+
}
|
|
188
431
|
return {
|
|
189
|
-
...(enabled !== undefined ? { enabled } : {}),
|
|
190
|
-
...(requireIsolation !== undefined
|
|
432
|
+
...(raw.enabled !== undefined ? { enabled: raw.enabled } : {}),
|
|
433
|
+
...(requireIsolation !== undefined
|
|
434
|
+
? {
|
|
435
|
+
requireIsolation: requireIsolation,
|
|
436
|
+
}
|
|
437
|
+
: {}),
|
|
438
|
+
...(raw.teardownTimeoutMs !== undefined
|
|
439
|
+
? { teardownTimeoutMs: raw.teardownTimeoutMs }
|
|
440
|
+
: {}),
|
|
191
441
|
};
|
|
192
442
|
},
|
|
193
443
|
// Field by field, for the same reason as `sandbox` and one stronger:
|
|
194
444
|
// this one decides whether conversation content leaves the machine. A
|
|
195
|
-
// misspelled `redacters` read shape-only
|
|
196
|
-
// while
|
|
197
|
-
//
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
telemetry: (v) => {
|
|
202
|
-
if (typeof v !== 'object' || v === null || Array.isArray(v))
|
|
203
|
-
return undefined;
|
|
445
|
+
// misspelled `redacters` read shape-only could change the export's security
|
|
446
|
+
// posture while it still ran. A malformed known field therefore refuses the
|
|
447
|
+
// config rather than selecting either "off" or a different redactor set.
|
|
448
|
+
telemetry: (v, context) => {
|
|
449
|
+
if (!isConfigMapping(v))
|
|
450
|
+
return invalidConfigValue(context, [], 'must be a mapping');
|
|
204
451
|
const raw = v;
|
|
205
452
|
if (raw.sessionExport === undefined)
|
|
206
453
|
return {};
|
|
207
454
|
const se = raw.sessionExport;
|
|
208
|
-
if (
|
|
209
|
-
return
|
|
455
|
+
if (!isConfigMapping(se)) {
|
|
456
|
+
return invalidConfigValue(context, ['sessionExport'], 'must be a mapping');
|
|
457
|
+
}
|
|
210
458
|
const entry = se;
|
|
211
459
|
// No destination, no export. There is nothing to fall back to and
|
|
212
460
|
// nothing safe to guess.
|
|
213
|
-
if (typeof entry.destination !== 'string' || entry.destination.length === 0)
|
|
214
|
-
return
|
|
461
|
+
if (typeof entry.destination !== 'string' || entry.destination.length === 0) {
|
|
462
|
+
return invalidConfigValue(context, ['sessionExport', 'destination'], 'must be a non-empty string');
|
|
463
|
+
}
|
|
215
464
|
let eventTypes;
|
|
216
465
|
if (entry.eventTypes !== undefined) {
|
|
217
|
-
if (!Array.isArray(entry.eventTypes))
|
|
218
|
-
return
|
|
219
|
-
|
|
220
|
-
|
|
466
|
+
if (!Array.isArray(entry.eventTypes)) {
|
|
467
|
+
return invalidConfigValue(context, ['sessionExport', 'eventTypes'], 'must be a list');
|
|
468
|
+
}
|
|
469
|
+
const invalidIndex = entry.eventTypes.findIndex((event) => typeof event !== 'string');
|
|
470
|
+
if (invalidIndex >= 0) {
|
|
471
|
+
return invalidConfigValue(context, ['sessionExport', 'eventTypes', invalidIndex], 'must be a string');
|
|
472
|
+
}
|
|
221
473
|
eventTypes = entry.eventTypes;
|
|
222
474
|
}
|
|
223
475
|
let redactors;
|
|
224
476
|
if (entry.redactors !== undefined) {
|
|
225
|
-
if (!Array.isArray(entry.redactors))
|
|
226
|
-
return
|
|
227
|
-
|
|
228
|
-
|
|
477
|
+
if (!Array.isArray(entry.redactors)) {
|
|
478
|
+
return invalidConfigValue(context, ['sessionExport', 'redactors'], 'must be a list');
|
|
479
|
+
}
|
|
480
|
+
const invalidIndex = entry.redactors.findIndex((redactor) => redactor !== 'secrets');
|
|
481
|
+
if (invalidIndex >= 0) {
|
|
482
|
+
return invalidConfigValue(context, ['sessionExport', 'redactors', invalidIndex], 'must be "secrets"');
|
|
483
|
+
}
|
|
229
484
|
redactors = entry.redactors;
|
|
230
485
|
}
|
|
231
486
|
return {
|
|
@@ -236,18 +491,65 @@ const CONFIG_READERS = {
|
|
|
236
491
|
},
|
|
237
492
|
};
|
|
238
493
|
},
|
|
494
|
+
// TUI notifications are terminal escape writes only. Invalid nested values
|
|
495
|
+
// refuse rather than silently selecting a different event/protocol or
|
|
496
|
+
// disabling the feature the operator explicitly configured.
|
|
497
|
+
tui: (v, context) => {
|
|
498
|
+
if (!isConfigMapping(v))
|
|
499
|
+
return invalidConfigValue(context, [], 'must be a mapping');
|
|
500
|
+
const raw = v;
|
|
501
|
+
let notifications;
|
|
502
|
+
if (typeof raw.notifications === 'boolean')
|
|
503
|
+
notifications = raw.notifications;
|
|
504
|
+
else if (Array.isArray(raw.notifications)) {
|
|
505
|
+
const invalidIndex = raw.notifications.findIndex((event) => event !== 'turn-settled' && event !== 'approval-required');
|
|
506
|
+
if (invalidIndex >= 0) {
|
|
507
|
+
return invalidConfigValue(context, ['notifications', invalidIndex], 'must be one of "turn-settled" or "approval-required"');
|
|
508
|
+
}
|
|
509
|
+
notifications = raw.notifications;
|
|
510
|
+
}
|
|
511
|
+
else if (raw.notifications !== undefined) {
|
|
512
|
+
return invalidConfigValue(context, ['notifications'], 'must be a boolean or a list');
|
|
513
|
+
}
|
|
514
|
+
const method = raw.notificationMethod;
|
|
515
|
+
if (method !== undefined && method !== 'osc9' && method !== 'bel') {
|
|
516
|
+
return invalidConfigValue(context, ['notificationMethod'], 'must be "osc9" or "bel"');
|
|
517
|
+
}
|
|
518
|
+
return {
|
|
519
|
+
...(notifications !== undefined ? { notifications } : {}),
|
|
520
|
+
...(method !== undefined ? { notificationMethod: method } : {}),
|
|
521
|
+
};
|
|
522
|
+
},
|
|
239
523
|
};
|
|
240
524
|
export const ENV_VARIABLE_NAMES = {
|
|
241
525
|
format: 'NAMZU_FORMAT',
|
|
242
526
|
quiet: 'NAMZU_QUIET',
|
|
243
527
|
permissions: undefined,
|
|
528
|
+
// Deliberately not env-settable, and for a sharper reason than the rest:
|
|
529
|
+
// a variable that could replace the checks could also empty them, which
|
|
530
|
+
// would silence the one thing that says a policy stopped meaning what its
|
|
531
|
+
// author wrote — from a shell profile, with nothing in the config file to
|
|
532
|
+
// show for it.
|
|
533
|
+
permissionChecks: undefined,
|
|
534
|
+
// The SET of profiles is not env-settable — it is the thing being chosen
|
|
535
|
+
// BETWEEN, and a variable that could replace it could hand a shell a
|
|
536
|
+
// profile the files never declared. `NAMZU_PROFILE` selects one of the
|
|
537
|
+
// declared profiles and is read in the cascade rather than here, because
|
|
538
|
+
// it does not set a config field.
|
|
539
|
+
profiles: undefined,
|
|
244
540
|
mcpServers: undefined,
|
|
541
|
+
// Executable code must never be enabled by ambient shell state. The file
|
|
542
|
+
// and its provenance are the reviewable source of this authority.
|
|
543
|
+
plugins: undefined,
|
|
245
544
|
sandbox: undefined,
|
|
246
545
|
// Deliberately not env-settable. A `NAMZU_TELEMETRY_SESSION_EXPORT=/tmp/x`
|
|
247
546
|
// in a shell profile would start exporting conversation content with
|
|
248
547
|
// nothing in the config file to show for it — the disclosure would be
|
|
249
548
|
// honest and the *reason* would be invisible.
|
|
250
549
|
telemetry: undefined,
|
|
550
|
+
// Terminal notifications are an interactive UI choice. An environment
|
|
551
|
+
// variable in a shell profile must not start producing them invisibly.
|
|
552
|
+
tui: undefined,
|
|
251
553
|
};
|
|
252
554
|
function readEnv(env) {
|
|
253
555
|
const config = {};
|
|
@@ -255,7 +557,10 @@ function readEnv(env) {
|
|
|
255
557
|
const formatVar = ENV_VARIABLE_NAMES.format;
|
|
256
558
|
if (formatVar) {
|
|
257
559
|
const format = env[formatVar];
|
|
258
|
-
if (format
|
|
560
|
+
if (format !== undefined) {
|
|
561
|
+
if (!isFormatName(format)) {
|
|
562
|
+
throw new ConfigValueError({ kind: 'environment', variable: formatVar }, 'format', 'must be one of "text", "json", or "yaml"');
|
|
563
|
+
}
|
|
259
564
|
config.format = format;
|
|
260
565
|
variables.format = formatVar;
|
|
261
566
|
}
|
|
@@ -263,28 +568,53 @@ function readEnv(env) {
|
|
|
263
568
|
const quietVar = ENV_VARIABLE_NAMES.quiet;
|
|
264
569
|
if (quietVar) {
|
|
265
570
|
const quiet = env[quietVar];
|
|
266
|
-
if (quiet
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
config.quiet = false;
|
|
571
|
+
if (quiet !== undefined) {
|
|
572
|
+
if (quiet !== '1' && quiet !== 'true' && quiet !== '0' && quiet !== 'false') {
|
|
573
|
+
throw new ConfigValueError({ kind: 'environment', variable: quietVar }, 'quiet', 'must be one of "1", "true", "0", or "false"');
|
|
574
|
+
}
|
|
575
|
+
config.quiet = quiet === '1' || quiet === 'true';
|
|
272
576
|
variables.quiet = quietVar;
|
|
273
577
|
}
|
|
274
578
|
}
|
|
275
579
|
return { config, variables };
|
|
276
580
|
}
|
|
277
|
-
function sanitize(value) {
|
|
581
|
+
function sanitize(value, source, prefix = [], allowProfiles = true) {
|
|
278
582
|
const v = value;
|
|
279
583
|
const out = {};
|
|
280
584
|
for (const key of Object.keys(CONFIG_READERS)) {
|
|
281
|
-
if (!(key
|
|
585
|
+
if (!Object.hasOwn(v, key))
|
|
282
586
|
continue;
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
587
|
+
if (!allowProfiles && (key === 'profiles' || key === 'plugins')) {
|
|
588
|
+
throw new ConfigValueError(source, formatSettingPath([...prefix, key]), key === 'plugins'
|
|
589
|
+
? 'cannot be declared inside a profile because profiles may be selected by the environment'
|
|
590
|
+
: 'cannot be declared inside a profile');
|
|
591
|
+
}
|
|
592
|
+
const parsed = CONFIG_READERS[key](v[key], {
|
|
593
|
+
source,
|
|
594
|
+
path: [...prefix, key],
|
|
595
|
+
});
|
|
596
|
+
out[key] = parsed;
|
|
597
|
+
}
|
|
598
|
+
return out;
|
|
599
|
+
}
|
|
600
|
+
function isConfigMapping(value) {
|
|
601
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
602
|
+
}
|
|
603
|
+
function invalidConfigValue(context, suffix, message) {
|
|
604
|
+
throw new ConfigValueError(context.source, formatSettingPath([...context.path, ...suffix]), message);
|
|
605
|
+
}
|
|
606
|
+
function formatSettingPath(segments) {
|
|
607
|
+
let out = '';
|
|
608
|
+
for (const segment of segments) {
|
|
609
|
+
if (typeof segment === 'number') {
|
|
610
|
+
out += `[${segment}]`;
|
|
611
|
+
continue;
|
|
612
|
+
}
|
|
613
|
+
if (/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(segment)) {
|
|
614
|
+
out += out === '' ? segment : `.${segment}`;
|
|
615
|
+
continue;
|
|
616
|
+
}
|
|
617
|
+
out += `[${configMetadataLiteral(segment)}]`;
|
|
288
618
|
}
|
|
289
619
|
return out;
|
|
290
620
|
}
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|