@dungle-scrubs/harness-cli-normalizer 0.3.0 → 0.4.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 +70 -86
- package/dist/cli/args.d.ts +11 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +23 -5
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config.d.ts +25 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +139 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +35 -1
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/render.d.ts.map +1 -1
- package/dist/cli/render.js +10 -1
- package/dist/cli/render.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +134 -4
- package/dist/cli/run.js.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/execution/failure.d.ts +21 -4
- package/dist/execution/failure.d.ts.map +1 -1
- package/dist/execution/failure.js +26 -3
- package/dist/execution/failure.js.map +1 -1
- package/dist/execution/stream-turn.d.ts +7 -1
- package/dist/execution/stream-turn.d.ts.map +1 -1
- package/dist/execution/stream-turn.js +43 -20
- package/dist/execution/stream-turn.js.map +1 -1
- package/dist/interpretation/argv.d.ts +1 -0
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +13 -19
- package/dist/interpretation/argv.js.map +1 -1
- package/dist/interpretation/hints.d.ts +22 -0
- package/dist/interpretation/hints.d.ts.map +1 -0
- package/dist/interpretation/hints.js +59 -0
- package/dist/interpretation/hints.js.map +1 -0
- package/dist/interpretation/refusal.d.ts +25 -4
- package/dist/interpretation/refusal.d.ts.map +1 -1
- package/dist/interpretation/refusal.js +16 -0
- package/dist/interpretation/refusal.js.map +1 -1
- package/dist/interpretation/resolve-options.d.ts +42 -0
- package/dist/interpretation/resolve-options.d.ts.map +1 -0
- package/dist/interpretation/resolve-options.js +140 -0
- package/dist/interpretation/resolve-options.js.map +1 -0
- package/dist/interpretation/store.js +1 -1
- package/dist/interpretation/support.d.ts +32 -0
- package/dist/interpretation/support.d.ts.map +1 -0
- package/dist/interpretation/support.js +107 -0
- package/dist/interpretation/support.js.map +1 -0
- package/dist/interpretation/tool-selection.d.ts +29 -0
- package/dist/interpretation/tool-selection.d.ts.map +1 -0
- package/dist/interpretation/tool-selection.js +122 -0
- package/dist/interpretation/tool-selection.js.map +1 -0
- package/dist/interpretation/turn-options.d.ts.map +1 -1
- package/dist/interpretation/turn-options.js +4 -0
- package/dist/interpretation/turn-options.js.map +1 -1
- package/dist/knowledge/claude-code.d.ts +2 -2
- package/dist/knowledge/claude-code.d.ts.map +1 -1
- package/dist/knowledge/claude-code.js +37 -4
- package/dist/knowledge/claude-code.js.map +1 -1
- package/dist/knowledge/codex.d.ts.map +1 -1
- package/dist/knowledge/codex.js +19 -0
- package/dist/knowledge/codex.js.map +1 -1
- package/dist/knowledge/descriptor.d.ts +32 -0
- package/dist/knowledge/descriptor.d.ts.map +1 -1
- package/dist/knowledge/muse.d.ts.map +1 -1
- package/dist/knowledge/muse.js +22 -0
- package/dist/knowledge/muse.js.map +1 -1
- package/dist/knowledge/pi.d.ts +1 -1
- package/dist/knowledge/pi.d.ts.map +1 -1
- package/dist/knowledge/pi.js +29 -6
- package/dist/knowledge/pi.js.map +1 -1
- package/dist/knowledge/profile.d.ts +13 -0
- package/dist/knowledge/profile.d.ts.map +1 -0
- package/dist/knowledge/profile.js +31 -0
- package/dist/knowledge/profile.js.map +1 -0
- package/package.json +2 -23
- package/src/cli/args.ts +31 -1
- package/src/cli/config.ts +166 -0
- package/src/cli/index.ts +25 -12
- package/src/cli/inspect.ts +34 -1
- package/src/cli/render.ts +10 -1
- package/src/cli/run.ts +161 -5
- package/src/execution/failure.ts +44 -5
- package/src/execution/stream-turn.ts +43 -14
- package/src/interpretation/argv.ts +14 -19
- package/src/interpretation/hints.ts +99 -0
- package/src/interpretation/refusal.ts +32 -3
- package/src/interpretation/resolve-options.ts +190 -0
- package/src/interpretation/store.ts +1 -1
- package/src/interpretation/support.ts +119 -0
- package/src/interpretation/tool-selection.ts +161 -0
- package/src/interpretation/turn-options.ts +4 -0
- package/src/knowledge/claude-code.ts +37 -4
- package/src/knowledge/codex.ts +19 -0
- package/src/knowledge/descriptor.ts +32 -0
- package/src/knowledge/muse.ts +22 -0
- package/src/knowledge/pi.ts +29 -6
- package/src/knowledge/profile.ts +33 -0
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/src/index.ts +0 -7
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@ One stable interface to four coding-agent CLIs.
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/dungle-scrubs/harness-cli-normalizer/actions/workflows/ci.yml) [](https://www.npmjs.com/package/@dungle-scrubs/harness-cli-normalizer) [](LICENSE)
|
|
6
6
|
|
|
7
|
-
<!-- D-001 -->
|
|
8
|
-
harness-cli-normalizer
|
|
7
|
+
<!-- D-001 / v1: CLI-only -->
|
|
8
|
+
harness-cli-normalizer is a CLI, `hcn`, that normalizes four coding-agent harnesses - Claude Code, Codex, pi, and Muse - into one surface: normalized flags, ratified behavior defaults, a single `HarnessEvent` NDJSON stream, and one exit-code contract. It normalizes the interface and the defaults, and reports divergence where a harness cannot express a dimension - it does not pretend parity. There is no library API; the `hcn` binary is the product. Descriptors are pinned to their verified CLI version and a weekly check flags when a harness has moved ahead (npm harnesses via registry; `muse` via local `muse --version`, skipped in CI where not installed - see Version-pinning and drift).
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
pnpm add @dungle-scrubs/harness-cli-normalizer
|
|
@@ -22,47 +22,9 @@ pnpm add @dungle-scrubs/harness-cli-normalizer
|
|
|
22
22
|
The repository uses pnpm and Bun for development and its dual-runtime test lane. Consumers do not
|
|
23
23
|
need either one unless their application runs on Bun.
|
|
24
24
|
|
|
25
|
-
## Use it
|
|
26
|
-
|
|
27
|
-
One-shot headless turn, the simplest path:
|
|
28
|
-
|
|
29
|
-
```ts
|
|
30
|
-
import {
|
|
31
|
-
claudeCode,
|
|
32
|
-
nodeRunnerDeps,
|
|
33
|
-
streamTurn,
|
|
34
|
-
} from "@dungle-scrubs/harness-cli-normalizer";
|
|
35
|
-
|
|
36
|
-
for await (const event of streamTurn(
|
|
37
|
-
claudeCode,
|
|
38
|
-
{ prompt: "explain a monad in one sentence", cwd: process.cwd() },
|
|
39
|
-
nodeRunnerDeps(),
|
|
40
|
-
)) {
|
|
41
|
-
if (event.kind === "message") console.log(event.text);
|
|
42
|
-
if (event.kind === "done") console.log(`exit: ${event.cause}`);
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Swap `claudeCode` for `codexCli`, `piCli`, or `museCode` and the consumer code does not change. The
|
|
47
|
-
three layers are also available as `@dungle-scrubs/harness-cli-normalizer/knowledge`,
|
|
48
|
-
`@dungle-scrubs/harness-cli-normalizer/interpretation`, and
|
|
49
|
-
`@dungle-scrubs/harness-cli-normalizer/execution` for narrower imports.
|
|
50
|
-
|
|
51
|
-
To watch the normalized stream render live against a real harness:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
bun run demo claude "explain a monad in one sentence"
|
|
55
|
-
bun run demo codex "what is 2+2"
|
|
56
|
-
bun run demo pi "name three primes"
|
|
57
|
-
bun run demo muse "say hi"
|
|
58
|
-
bun run demo --chat claude # interactive session (claude only)
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
For a multi-turn session you drive yourself, `openSession` returns a handle whose `turns` you iterate and whose `send()` you call between turns. See `scripts/demo.ts` for the working pattern.
|
|
62
|
-
|
|
63
25
|
## CLI
|
|
64
26
|
|
|
65
|
-
The package ships a `hcn` binary for shell and CI use. Install it with your package manager or run it ad-hoc with `npx`:
|
|
27
|
+
The package ships a `hcn` binary for shell and CI use. This is the primary interface - use it for one-off turns, sessions, and inspection without writing TypeScript. Install it with your package manager or run it ad-hoc with `npx`:
|
|
66
28
|
|
|
67
29
|
```bash
|
|
68
30
|
pnpm add @dungle-scrubs/harness-cli-normalizer
|
|
@@ -113,7 +75,9 @@ Flag table (maps to `TurnOptions` / `TurnRunOptions`):
|
|
|
113
75
|
| `--effort <value>` | `effort` | Validated via `validateEffort` |
|
|
114
76
|
| `--sandbox <value>` | `sandbox` | Codex only |
|
|
115
77
|
| `--provider <value>` | `provider` | pi only |
|
|
116
|
-
| `--tools <a,b>` | `tools` |
|
|
78
|
+
| `--tools <a,b>` | `tools` | Per-tool allowlist; claude and pi (pi strict, claude via grant + deny-complement). A bare name matching a configured toolset expands to it |
|
|
79
|
+
| `--exclude-tools <a,b>` | `excludeTools` | Complement over known tool names; mutually exclusive with `--tools` |
|
|
80
|
+
| `-- <harness args>` | `passthrough` | Verbatim harness tokens; failures surface as labeled native errors (hcn exit 1, native exit code as data) |
|
|
117
81
|
| `--autonomy` / `--no-autonomy` | `autonomy` | |
|
|
118
82
|
| `--write` / `--no-write` | `write` | Muse |
|
|
119
83
|
| `--shell` / `--no-shell` | `shell` | Muse |
|
|
@@ -126,62 +90,69 @@ Flag table (maps to `TurnOptions` / `TurnRunOptions`):
|
|
|
126
90
|
|
|
127
91
|
For development, `bun run demo claude "hi"` remains as a live-rendering alternative.
|
|
128
92
|
|
|
129
|
-
##
|
|
93
|
+
## Defaults, config, provenance
|
|
130
94
|
|
|
131
|
-
|
|
95
|
+
Every launch resolves through one precedence chain:
|
|
132
96
|
|
|
133
|
-
|
|
97
|
+
```
|
|
98
|
+
args > .hcn/config.json (git root, auto-discovered) > ~/.config/hcn/config.json (XDG) > built-in profile > harness default
|
|
99
|
+
```
|
|
134
100
|
|
|
135
|
-
|
|
101
|
+
The built-in profile pins the ratified defaults: effort `medium` (the only
|
|
102
|
+
value in all four ladders), sandbox `workspace-write` (codex-only; reported
|
|
103
|
+
as divergence elsewhere), discovery fully on, autonomy off. A dimension a
|
|
104
|
+
harness cannot express is reported as divergence, never a silent skip and
|
|
105
|
+
never a refusal. Resume turns bypass resolution entirely - a session keeps
|
|
106
|
+
its own settings.
|
|
136
107
|
|
|
108
|
+
User config (`~/.config/hcn/config.json`, `$XDG_CONFIG_HOME` respected):
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{ "version": 1, "effort": "high" }
|
|
137
112
|
```
|
|
138
|
-
|
|
113
|
+
|
|
114
|
+
Project config (`.hcn/config.json` at the git root, code-reviewed with the
|
|
115
|
+
repo) also carries tool floors and named toolsets:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"version": 1,
|
|
120
|
+
"effort": "low",
|
|
121
|
+
"tools": ["read", "grep", "find", "ls"],
|
|
122
|
+
"toolsets": { "review": ["read", "grep"] }
|
|
123
|
+
}
|
|
139
124
|
```
|
|
140
125
|
|
|
141
|
-
|
|
126
|
+
The project `tools` key is both the default grant and the FLOOR: a `--tools`
|
|
127
|
+
arg exceeding it refuses with exit 2 naming both sets - never a silent
|
|
128
|
+
clamp. An empty floor refuses every grant (the turn-everything-off
|
|
129
|
+
workflow). Config parsing is hard-fail: unknown keys, malformed JSON, or a
|
|
130
|
+
version mismatch exit 2 naming the offender.
|
|
142
131
|
|
|
143
|
-
|
|
132
|
+
Every resolved setting prints its provenance to stderr:
|
|
144
133
|
|
|
145
|
-
|
|
134
|
+
```
|
|
135
|
+
provenance: effort = "high" (user-config)
|
|
136
|
+
provenance: discovery = {"tools":true,...} (profile)
|
|
137
|
+
divergence: profile "sandbox" not expressible on pi; harness default applies
|
|
138
|
+
```
|
|
146
139
|
|
|
147
|
-
##
|
|
140
|
+
## Concepts
|
|
148
141
|
|
|
149
|
-
|
|
142
|
+
Three layers, one direction: `knowledge` (frozen descriptors - facts about
|
|
143
|
+
each CLI, stamped to `verifiedAgainst`) feeds `interpretation` (pure
|
|
144
|
+
functions - argv construction, validation, refusals, option resolution)
|
|
145
|
+
feeds `execution` (process lifecycle - the only impure layer, through an
|
|
146
|
+
injected `{ spawn, clock, signal }` adapter). The source is public and the
|
|
147
|
+
layers are real, but they are internal structure, not an install surface:
|
|
148
|
+
from 1.0 the `hcn` CLI is the only supported interface.
|
|
150
149
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
discovery: { tools: false, instructionFiles: false, extensions: false, skills: false }, // -nt/-nc/-ne/-ns (pi) or --setting-sources project (claude)
|
|
157
|
-
write: false, // --disable-write (muse)
|
|
158
|
-
shell: false, // --disable-shell (muse)
|
|
159
|
-
maxSteps: 50, // --max-model-steps (muse)
|
|
160
|
-
sandbox: "read-only", // --sandbox (codex, launch only)
|
|
161
|
-
}, deps);
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Support matrix (anything not marked refuses with a typed `ArgvRefusalError` naming what the harness does support):
|
|
165
|
-
|
|
166
|
-
| Option | claude | codex | pi | muse |
|
|
167
|
-
| --- | --- | --- | --- | --- |
|
|
168
|
-
| `effort` | `--effort` | `-c model_reasoning_effort=` | `--thinking` | `--reasoning-effort` |
|
|
169
|
-
| `sandbox` | - | `--sandbox` (launch only) | - | - |
|
|
170
|
-
| `provider` | - | - | `--provider` | - |
|
|
171
|
-
| `discovery.tools` | - | - | `-nt` | - |
|
|
172
|
-
| `discovery.instructionFiles` | - | - | `-nc` | - |
|
|
173
|
-
| `discovery.extensions` | `--setting-sources project` | - | `-ne` | - |
|
|
174
|
-
| `discovery.skills` | `--setting-sources project` | - | `-ns` | - |
|
|
175
|
-
| `write` | - | - | - | `--disable-write` |
|
|
176
|
-
| `shell` | - | - | - | `--disable-shell` |
|
|
177
|
-
| `maxSteps` | - | - | - | `--max-model-steps` |
|
|
178
|
-
| `tools` | `--allowedTools` | - | - | - |
|
|
179
|
-
|
|
180
|
-
Per-call `env` is merged over the parent environment (`""` deletes) and never appears in logs:
|
|
150
|
+
A harness that cannot express an option REFUSES rather than guessing -
|
|
151
|
+
refusals carry structured fields (`supportedBy`: which harnesses express
|
|
152
|
+
it, with native spellings; `hint`: the nearest alternative on your current
|
|
153
|
+
harness). A native flag typed before `--` is recognized and redirected to
|
|
154
|
+
its normalized spelling.
|
|
181
155
|
|
|
182
|
-
```ts
|
|
183
|
-
streamTurn(harness, { prompt, env: { FOO: "bar", OLD: "" } }, deps);
|
|
184
|
-
```
|
|
185
156
|
|
|
186
157
|
## Failure taxonomy
|
|
187
158
|
|
|
@@ -229,7 +200,20 @@ See [CONTRIBUTING.md](CONTRIBUTING.md). The short version: run `pnpm check` befo
|
|
|
229
200
|
|
|
230
201
|
## Status
|
|
231
202
|
|
|
232
|
-
|
|
203
|
+
1.0. CLI-only surface. Four harnesses are described (Claude Code, Codex,
|
|
204
|
+
pi, Muse); one-shot turns are normalized across all four with a ratified
|
|
205
|
+
defaults profile, user and project config tiers, tool selection
|
|
206
|
+
(include/exclude with floors and named toolsets), passthrough with native
|
|
207
|
+
error labeling, and provenance on every resolved setting. Persistent
|
|
208
|
+
sessions (`hcn session`) remain Claude-only. Drift detection runs weekly
|
|
209
|
+
in CI for the three npm harnesses; Muse is `installed` and only checked
|
|
210
|
+
locally via `muse --version`. Re-verifying a descriptor's capability
|
|
211
|
+
claims against a new CLI version is a local, manual step
|
|
212
|
+
(`bun run smoke:seven`) plus fixture re-capture, not CI. Authentication
|
|
213
|
+
and usage-limit signals are parsed from each harness's stream, but hcn
|
|
214
|
+
never holds or ships credentials; each harness authenticates under the
|
|
215
|
+
end user's own session.
|
|
216
|
+
|
|
233
217
|
|
|
234
218
|
## Prior art
|
|
235
219
|
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -68,6 +68,17 @@ export declare const detectPositionalPromptInjection: (argv: string[]) => string
|
|
|
68
68
|
* Wrapper around node:util parseArgs for the common flag table.
|
|
69
69
|
* Throws with exit code 2 on unknown flag.
|
|
70
70
|
*/
|
|
71
|
+
export interface SplitPassthrough {
|
|
72
|
+
/** Tokens before the separator - hcn's normalized surface. */
|
|
73
|
+
readonly normalized: string[];
|
|
74
|
+
/** Tokens after the separator - verbatim passthrough to the harness,
|
|
75
|
+
* empty when no separator was present. */
|
|
76
|
+
readonly passthrough: readonly string[];
|
|
77
|
+
}
|
|
78
|
+
/** D6: split argv at the first bare `--`. Everything after it belongs to
|
|
79
|
+
* the harness, not to hcn - wrong-harness flags there fail in the harness
|
|
80
|
+
* itself and surface as native errors, never as hcn refusals. */
|
|
81
|
+
export declare const splitPassthrough: (argv: readonly string[]) => SplitPassthrough;
|
|
71
82
|
export declare const parseCommonFlags: (argv: string[], opts?: {
|
|
72
83
|
strict?: boolean;
|
|
73
84
|
}) => ReturnType<typeof parseArgs>;
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG/E,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,cAAe,SAAQ,WAAW;CAElD;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AASD;;GAEG;AACH,eAAO,MAAM,eAAe,YACjB,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,KACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SA4B3B,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;CAkCvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAgB;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;CAAE,CAiCjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/args.js
CHANGED
|
@@ -130,6 +130,10 @@ export const parseTurnOptions = (values) => {
|
|
|
130
130
|
const raw = String(values.tools);
|
|
131
131
|
opts.tools = raw.length === 0 ? [] : raw.split(",").map((s) => s.trim());
|
|
132
132
|
}
|
|
133
|
+
if (values["exclude-tools"] !== undefined) {
|
|
134
|
+
const raw = String(values["exclude-tools"]);
|
|
135
|
+
opts.excludeTools = raw.length === 0 ? [] : raw.split(",").map((s) => s.trim());
|
|
136
|
+
}
|
|
133
137
|
if (values.autonomy === true)
|
|
134
138
|
opts.autonomy = true;
|
|
135
139
|
else if (values["no-autonomy"] === true)
|
|
@@ -204,6 +208,7 @@ const KNOWN_FLAGS = new Set([
|
|
|
204
208
|
"--sandbox",
|
|
205
209
|
"--provider",
|
|
206
210
|
"--tools",
|
|
211
|
+
"--exclude-tools",
|
|
207
212
|
"--autonomy",
|
|
208
213
|
"--no-autonomy",
|
|
209
214
|
"--write",
|
|
@@ -234,6 +239,7 @@ const FLAGS_WITH_VALUE = new Set([
|
|
|
234
239
|
"--sandbox",
|
|
235
240
|
"--provider",
|
|
236
241
|
"--tools",
|
|
242
|
+
"--exclude-tools",
|
|
237
243
|
"--max-steps",
|
|
238
244
|
"--cwd",
|
|
239
245
|
"--env",
|
|
@@ -295,12 +301,23 @@ const preprocessPromptArgs = (argv) => {
|
|
|
295
301
|
}
|
|
296
302
|
return out;
|
|
297
303
|
};
|
|
298
|
-
/**
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
|
|
304
|
+
/** D6: split argv at the first bare `--`. Everything after it belongs to
|
|
305
|
+
* the harness, not to hcn - wrong-harness flags there fail in the harness
|
|
306
|
+
* itself and surface as native errors, never as hcn refusals. */
|
|
307
|
+
export const splitPassthrough = (argv) => {
|
|
308
|
+
const idx = argv.indexOf("--");
|
|
309
|
+
if (idx === -1)
|
|
310
|
+
return { normalized: [...argv], passthrough: [] };
|
|
311
|
+
return {
|
|
312
|
+
normalized: argv.slice(0, idx),
|
|
313
|
+
passthrough: argv.slice(idx + 1),
|
|
314
|
+
};
|
|
315
|
+
};
|
|
302
316
|
export const parseCommonFlags = (argv, opts = {}) => {
|
|
303
|
-
|
|
317
|
+
// The separator itself never reaches parseArgs: passthrough tokens may
|
|
318
|
+
// be unknown to hcn by design (that is their purpose).
|
|
319
|
+
const { normalized: withoutPassthrough } = splitPassthrough(argv);
|
|
320
|
+
const normalized = preprocessPromptArgs(withoutPassthrough);
|
|
304
321
|
const config = {
|
|
305
322
|
allowPositionals: true,
|
|
306
323
|
strict: opts.strict ?? true,
|
|
@@ -312,6 +329,7 @@ export const parseCommonFlags = (argv, opts = {}) => {
|
|
|
312
329
|
sandbox: { type: "string" },
|
|
313
330
|
provider: { type: "string" },
|
|
314
331
|
tools: { type: "string" },
|
|
332
|
+
"exclude-tools": { type: "string" },
|
|
315
333
|
autonomy: { type: "boolean" },
|
|
316
334
|
"no-autonomy": { type: "boolean" },
|
|
317
335
|
write: { type: "boolean" },
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TurnOptions } from "../interpretation/argv.js";
|
|
2
|
+
export declare class ConfigError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare const userConfigPath: () => string;
|
|
6
|
+
/** Project config: `.hcn/config.json` at the git root (P4 ratified as A -
|
|
7
|
+
* auto-discover, no trust gate; the config is code-reviewed like AGENTS.md
|
|
8
|
+
* and every project-tier provenance line names its path). Null outside a
|
|
9
|
+
* repo or when the repo declares none. */
|
|
10
|
+
export declare const projectConfigPath: (startDir?: string) => string | null;
|
|
11
|
+
/** Parse + validate config text. Throws ConfigError with the offending key
|
|
12
|
+
* named on any violation - never warns and continues. */
|
|
13
|
+
export declare const parseUserConfig: (text: string) => Partial<TurnOptions>;
|
|
14
|
+
/** Load the user config if the file exists; absent file is an empty config
|
|
15
|
+
* (no tiers engaged), unreadable or invalid file is a hard error. */
|
|
16
|
+
export declare const loadUserConfig: () => {
|
|
17
|
+
config: Partial<TurnOptions>;
|
|
18
|
+
path: string;
|
|
19
|
+
} | null;
|
|
20
|
+
/** Load the project config (git-root auto-discovery, ratified A). */
|
|
21
|
+
export declare const loadProjectConfig: (startDir?: string) => {
|
|
22
|
+
config: Partial<TurnOptions>;
|
|
23
|
+
path: string;
|
|
24
|
+
} | null;
|
|
25
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D,qBAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,eAAO,MAAM,cAAc,QAAO,MAK/B,CAAC;AAEJ;;;0CAG0C;AAC1C,eAAO,MAAM,iBAAiB,cAAc,MAAM,KAAmB,MAAM,GAAG,IAY7E,CAAC;AAuBF;yDACyD;AACzD,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,OAAO,CAAC,WAAW,CAiEjE,CAAC;AAEF;qEACqE;AACrE,eAAO,MAAM,cAAc,QAAO;IAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IACnD,CAAC;AAEjC,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,cACjB,MAAM,KAChB;IAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAInD,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-level config: ~/.config/hcn/config.json (or $HCN_CONFIG_DIR for
|
|
3
|
+
* tests). Hard-fail discipline: unknown keys, malformed JSON, and schema
|
|
4
|
+
* version mismatches exit 2 naming the offender - a config that silently
|
|
5
|
+
* no-ops is a safety hole in a tool whose config can tighten a sandbox.
|
|
6
|
+
*
|
|
7
|
+
* Schema is intentionally minimal and mirrors the normalized option
|
|
8
|
+
* surface; it grows as dimensions ratify. The parser validates SHAPE
|
|
9
|
+
* (key known, value type plausible); value legality (effort in ladder,
|
|
10
|
+
* model in vocabulary) is enforced by the same renderers as args, so
|
|
11
|
+
* config and CLI can never disagree about what is legal.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
14
|
+
import { homedir } from "node:os";
|
|
15
|
+
import { dirname, join, resolve } from "node:path";
|
|
16
|
+
const SCHEMA_VERSION = 1;
|
|
17
|
+
export class ConfigError extends Error {
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = "ConfigError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const userConfigPath = () => join(process.env.HCN_CONFIG_DIR ??
|
|
24
|
+
join(process.env.XDG_CONFIG_HOME ?? join(homedir(), ".config"), "hcn"), "config.json");
|
|
25
|
+
/** Project config: `.hcn/config.json` at the git root (P4 ratified as A -
|
|
26
|
+
* auto-discover, no trust gate; the config is code-reviewed like AGENTS.md
|
|
27
|
+
* and every project-tier provenance line names its path). Null outside a
|
|
28
|
+
* repo or when the repo declares none. */
|
|
29
|
+
export const projectConfigPath = (startDir = process.cwd()) => {
|
|
30
|
+
let dir = resolve(startDir);
|
|
31
|
+
for (;;) {
|
|
32
|
+
if (existsSync(join(dir, ".hcn", "config.json")))
|
|
33
|
+
return join(dir, ".hcn", "config.json");
|
|
34
|
+
const parent = dirname(dir);
|
|
35
|
+
if (parent === dir)
|
|
36
|
+
return null;
|
|
37
|
+
// stop at the git root: above it is not this project
|
|
38
|
+
if (existsSync(join(dir, ".git")) && !existsSync(join(parent, ".git"))) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
dir = parent;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const KNOWN_KEYS = new Set([
|
|
45
|
+
"effort",
|
|
46
|
+
"model",
|
|
47
|
+
"provider",
|
|
48
|
+
"sandbox",
|
|
49
|
+
"tools",
|
|
50
|
+
"excludeTools",
|
|
51
|
+
"autonomy",
|
|
52
|
+
"write",
|
|
53
|
+
"shell",
|
|
54
|
+
"maxSteps",
|
|
55
|
+
"toolsets",
|
|
56
|
+
]);
|
|
57
|
+
const LIST_KEYS = new Set(["tools", "excludeTools"]);
|
|
58
|
+
const BOOL_KEYS = new Set(["autonomy", "write", "shell"]);
|
|
59
|
+
/** Parse + validate config text. Throws ConfigError with the offending key
|
|
60
|
+
* named on any violation - never warns and continues. */
|
|
61
|
+
export const parseUserConfig = (text) => {
|
|
62
|
+
let raw;
|
|
63
|
+
try {
|
|
64
|
+
raw = JSON.parse(text);
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
throw new ConfigError(`config is not valid JSON: ${e.message}`);
|
|
68
|
+
}
|
|
69
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
70
|
+
throw new ConfigError("config root must be a JSON object");
|
|
71
|
+
}
|
|
72
|
+
const obj = raw;
|
|
73
|
+
if (obj.version === undefined) {
|
|
74
|
+
throw new ConfigError("config missing required field: version");
|
|
75
|
+
}
|
|
76
|
+
if (obj.version !== SCHEMA_VERSION) {
|
|
77
|
+
throw new ConfigError(`config version ${JSON.stringify(obj.version)} not supported (expected ${SCHEMA_VERSION})`);
|
|
78
|
+
}
|
|
79
|
+
delete obj.version;
|
|
80
|
+
const out = {};
|
|
81
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
82
|
+
if (!KNOWN_KEYS.has(key)) {
|
|
83
|
+
throw new ConfigError(`unknown config key: ${JSON.stringify(key)}`);
|
|
84
|
+
}
|
|
85
|
+
if (key === "toolsets") {
|
|
86
|
+
if (typeof value !== "object" ||
|
|
87
|
+
value === null ||
|
|
88
|
+
Array.isArray(value) ||
|
|
89
|
+
Object.entries(value).some(([, v]) => !Array.isArray(v) || v.some((t) => typeof t !== "string" || t.trim() === ""))) {
|
|
90
|
+
throw new ConfigError('config key "toolsets" must be an object of name -> non-empty string array');
|
|
91
|
+
}
|
|
92
|
+
out[key] = value;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (LIST_KEYS.has(key)) {
|
|
96
|
+
if (!Array.isArray(value) || value.some((v) => typeof v !== "string")) {
|
|
97
|
+
throw new ConfigError(`config key ${JSON.stringify(key)} must be an array of strings`);
|
|
98
|
+
}
|
|
99
|
+
out[key] = value;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (BOOL_KEYS.has(key)) {
|
|
103
|
+
if (typeof value !== "boolean") {
|
|
104
|
+
throw new ConfigError(`config key ${JSON.stringify(key)} must be a boolean`);
|
|
105
|
+
}
|
|
106
|
+
out[key] = value;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (typeof value !== "string" && typeof value !== "number") {
|
|
110
|
+
throw new ConfigError(`config key ${JSON.stringify(key)} must be a string or number, got ${typeof value}`);
|
|
111
|
+
}
|
|
112
|
+
out[key] = value;
|
|
113
|
+
}
|
|
114
|
+
return out;
|
|
115
|
+
};
|
|
116
|
+
/** Load the user config if the file exists; absent file is an empty config
|
|
117
|
+
* (no tiers engaged), unreadable or invalid file is a hard error. */
|
|
118
|
+
export const loadUserConfig = () => loadConfigAt(userConfigPath());
|
|
119
|
+
/** Load the project config (git-root auto-discovery, ratified A). */
|
|
120
|
+
export const loadProjectConfig = (startDir) => {
|
|
121
|
+
const path = projectConfigPath(startDir);
|
|
122
|
+
if (path === null)
|
|
123
|
+
return null;
|
|
124
|
+
return loadConfigAt(path);
|
|
125
|
+
};
|
|
126
|
+
const loadConfigAt = (path) => {
|
|
127
|
+
let text;
|
|
128
|
+
try {
|
|
129
|
+
text = readFileSync(path, "utf8");
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
const code = e.code;
|
|
133
|
+
if (code === "ENOENT")
|
|
134
|
+
return null;
|
|
135
|
+
throw new ConfigError(`cannot read config at ${path}: ${e.message}`);
|
|
136
|
+
}
|
|
137
|
+
return { config: parseUserConfig(text), path };
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
export declare const failUnknownHarness: (name: string) => never;
|
|
3
3
|
export declare const dispatch: (raw: string[]) => Promise<void>;
|
|
4
|
+
export declare const main: () => Promise<void>;
|
|
5
|
+
export declare const run: () => void;
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AA2BA,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,KAQjD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAe,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAyH1D,CAAC;AAEF,eAAO,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,CAEzC,CAAC;AAIF,eAAO,MAAM,GAAG,QAAO,IAOtB,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
2
5
|
import { TOP_LEVEL_HELP } from "./help.js";
|
|
3
6
|
import { getVersion } from "./version.js";
|
|
4
7
|
const SUPPORTED = ["claude", "codex", "pi", "muse"];
|
|
@@ -149,22 +152,35 @@ export const dispatch = async (raw) => {
|
|
|
149
152
|
}
|
|
150
153
|
}
|
|
151
154
|
};
|
|
152
|
-
const main = async () => {
|
|
155
|
+
export const main = async () => {
|
|
153
156
|
await dispatch(process.argv.slice(2));
|
|
154
157
|
};
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
})();
|
|
159
|
-
if (shouldAutoRun) {
|
|
158
|
+
// The bin entry invokes this directly. Auto-run below covers direct
|
|
159
|
+
// execution of this module itself (node dist/cli/index.js, bun src/cli/index.ts).
|
|
160
|
+
export const run = () => {
|
|
160
161
|
main().catch((err) => {
|
|
161
162
|
const message = err instanceof Error ? err.message : String(err);
|
|
162
163
|
process.stderr.write(`fatal: ${message}\n`);
|
|
163
164
|
if (err instanceof Error && err.stack)
|
|
164
165
|
process.stderr.write(`${err.stack}\n`);
|
|
165
166
|
process.exitCode = 1;
|
|
166
|
-
if (process.exitCode === 0)
|
|
167
|
-
process.exitCode = 1;
|
|
168
167
|
});
|
|
169
|
-
}
|
|
168
|
+
};
|
|
169
|
+
// Run only when this module is the process main entry. process.argv[1] is
|
|
170
|
+
// the path as invoked - a bin symlink such as npm's `hcn` keeps its link
|
|
171
|
+
// name - while import.meta.url is this file's realpath, so resolving argv[1]
|
|
172
|
+
// the same way survives symlinks. Filename suffix sniffing cannot (issue #33).
|
|
173
|
+
const isMainEntry = (() => {
|
|
174
|
+
const entry = process.argv[1];
|
|
175
|
+
if (!entry)
|
|
176
|
+
return false;
|
|
177
|
+
try {
|
|
178
|
+
return import.meta.url === pathToFileURL(realpathSync(resolve(entry))).href;
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
})();
|
|
184
|
+
if (isMainEntry)
|
|
185
|
+
run();
|
|
170
186
|
//# sourceMappingURL=index.js.map
|