@dungle-scrubs/harness-cli-normalizer 0.4.4 → 0.4.6
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 +23 -8
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +16 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +4 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +10 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +74 -24
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/provenance.d.ts +3 -0
- package/dist/cli/provenance.d.ts.map +1 -0
- package/dist/cli/provenance.js +11 -0
- package/dist/cli/provenance.js.map +1 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +135 -85
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +3 -3
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/skills-root.d.ts +2 -1
- package/dist/cli/skills-root.d.ts.map +1 -1
- package/dist/cli/skills-root.js +6 -4
- package/dist/cli/skills-root.js.map +1 -1
- package/dist/execution/decode.d.ts +3 -3
- package/dist/execution/decode.d.ts.map +1 -1
- package/dist/execution/decode.js +46 -13
- package/dist/execution/decode.js.map +1 -1
- package/dist/execution/deps.d.ts +4 -1
- package/dist/execution/deps.d.ts.map +1 -1
- package/dist/execution/deps.js +1 -1
- package/dist/execution/events.d.ts +7 -2
- package/dist/execution/events.d.ts.map +1 -1
- package/dist/execution/events.js.map +1 -1
- package/dist/execution/failure.d.ts +5 -1
- package/dist/execution/failure.d.ts.map +1 -1
- package/dist/execution/failure.js +12 -0
- package/dist/execution/failure.js.map +1 -1
- package/dist/execution/index.d.ts +2 -2
- package/dist/execution/index.js +2 -2
- package/dist/execution/node-deps.d.ts.map +1 -1
- package/dist/execution/node-deps.js +1 -0
- package/dist/execution/node-deps.js.map +1 -1
- package/dist/execution/open-session.d.ts.map +1 -1
- package/dist/execution/open-session.js +54 -8
- package/dist/execution/open-session.js.map +1 -1
- package/dist/execution/stream-turn.d.ts +4 -0
- package/dist/execution/stream-turn.d.ts.map +1 -1
- package/dist/execution/stream-turn.js +147 -33
- package/dist/execution/stream-turn.js.map +1 -1
- package/dist/interpretation/argv.d.ts +7 -0
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +28 -5
- package/dist/interpretation/argv.js.map +1 -1
- package/dist/interpretation/capabilities.d.ts.map +1 -1
- package/dist/interpretation/capabilities.js +4 -1
- package/dist/interpretation/capabilities.js.map +1 -1
- package/dist/interpretation/content.d.ts +9 -1
- package/dist/interpretation/content.d.ts.map +1 -1
- package/dist/interpretation/content.js +16 -4
- package/dist/interpretation/content.js.map +1 -1
- package/dist/interpretation/hints.d.ts.map +1 -1
- package/dist/interpretation/hints.js +5 -0
- package/dist/interpretation/hints.js.map +1 -1
- package/dist/interpretation/limits.d.ts +1 -0
- package/dist/interpretation/limits.d.ts.map +1 -1
- package/dist/interpretation/limits.js +22 -0
- package/dist/interpretation/limits.js.map +1 -1
- package/dist/interpretation/resolve-options.d.ts.map +1 -1
- package/dist/interpretation/resolve-options.js +16 -0
- package/dist/interpretation/resolve-options.js.map +1 -1
- package/dist/interpretation/tool-selection.d.ts.map +1 -1
- package/dist/interpretation/tool-selection.js +25 -0
- package/dist/interpretation/tool-selection.js.map +1 -1
- package/dist/interpretation/turn-options.d.ts.map +1 -1
- package/dist/interpretation/turn-options.js +35 -3
- package/dist/interpretation/turn-options.js.map +1 -1
- package/dist/interpretation/versions.d.ts +1 -1
- package/dist/interpretation/versions.d.ts.map +1 -1
- package/dist/knowledge/claude-code.d.ts.map +1 -1
- package/dist/knowledge/claude-code.js +21 -0
- package/dist/knowledge/claude-code.js.map +1 -1
- package/dist/knowledge/codex.d.ts.map +1 -1
- package/dist/knowledge/codex.js +9 -0
- package/dist/knowledge/codex.js.map +1 -1
- package/dist/knowledge/descriptor.d.ts +25 -10
- package/dist/knowledge/descriptor.d.ts.map +1 -1
- package/dist/knowledge/descriptor.js +6 -0
- package/dist/knowledge/descriptor.js.map +1 -1
- package/dist/knowledge/index.d.ts +1 -1
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/index.js.map +1 -1
- package/dist/knowledge/matchers.d.ts +2 -1
- package/dist/knowledge/matchers.d.ts.map +1 -1
- package/dist/knowledge/matchers.js +23 -1
- package/dist/knowledge/matchers.js.map +1 -1
- package/dist/knowledge/pi.d.ts.map +1 -1
- package/dist/knowledge/pi.js +24 -1
- package/dist/knowledge/pi.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/args.ts +15 -0
- package/src/cli/config.ts +4 -0
- package/src/cli/help.ts +10 -0
- package/src/cli/inspect.ts +70 -22
- package/src/cli/provenance.ts +19 -0
- package/src/cli/run.ts +172 -91
- package/src/cli/session.ts +4 -3
- package/src/cli/skills-root.ts +11 -4
- package/src/execution/decode.ts +46 -12
- package/src/execution/deps.ts +4 -1
- package/src/execution/events.ts +5 -2
- package/src/execution/failure.ts +17 -1
- package/src/execution/index.ts +2 -2
- package/src/execution/node-deps.ts +1 -0
- package/src/execution/open-session.ts +63 -6
- package/src/execution/stream-turn.ts +150 -31
- package/src/interpretation/argv.ts +34 -5
- package/src/interpretation/capabilities.ts +4 -1
- package/src/interpretation/content.ts +22 -5
- package/src/interpretation/hints.ts +8 -0
- package/src/interpretation/limits.ts +29 -0
- package/src/interpretation/resolve-options.ts +17 -0
- package/src/interpretation/tool-selection.ts +25 -0
- package/src/interpretation/turn-options.ts +31 -3
- package/src/interpretation/versions.ts +1 -1
- package/src/knowledge/claude-code.ts +21 -0
- package/src/knowledge/codex.ts +9 -0
- package/src/knowledge/descriptor.ts +33 -10
- package/src/knowledge/index.ts +5 -1
- package/src/knowledge/matchers.ts +25 -2
- package/src/knowledge/pi.ts +24 -1
|
@@ -47,12 +47,16 @@ export interface AuthMatcher {
|
|
|
47
47
|
readonly flags?: string;
|
|
48
48
|
readonly kind: AuthFailureKind;
|
|
49
49
|
}
|
|
50
|
+
export interface TransportMatcher {
|
|
51
|
+
readonly pattern: string;
|
|
52
|
+
readonly flags?: string;
|
|
53
|
+
}
|
|
50
54
|
/** The turn-option vocabulary is closed for the same reason `LimitCode` is:
|
|
51
55
|
* a descriptor must not invent an option a consumer has no field for. Every
|
|
52
56
|
* key here maps to a field on `TurnOptions`; adding a key without a consumer
|
|
53
57
|
* arm would be dead data that can only drift. Render order is the tuple
|
|
54
58
|
* order, so argv is deterministic regardless of caller field order. */
|
|
55
|
-
export declare const TURN_OPTION_KEYS: readonly ["effort", "sandbox", "provider", "discovery", "write", "shell", "maxSteps"];
|
|
59
|
+
export declare const TURN_OPTION_KEYS: readonly ["effort", "sandbox", "provider", "discovery", "write", "shell", "maxSteps", "systemPrompt", "appendSystemPrompt"];
|
|
56
60
|
export type TurnOptionKey = (typeof TURN_OPTION_KEYS)[number];
|
|
57
61
|
/** Discovery facets are closed for the same reason as `TurnOptionKey`: each
|
|
58
62
|
* maps to a field on `DiscoveryOptions` and a concrete flag spelling per
|
|
@@ -62,10 +66,13 @@ export type TurnOptionKey = (typeof TURN_OPTION_KEYS)[number];
|
|
|
62
66
|
export declare const DISCOVERY_FACETS: readonly ["tools", "instructionFiles", "extensions", "skills"];
|
|
63
67
|
export type DiscoveryFacet = (typeof DISCOVERY_FACETS)[number];
|
|
64
68
|
export type OptionRender =
|
|
65
|
-
/** `--flag <value
|
|
69
|
+
/** `--flag <value>`; `extraFlags` are fixed companion tokens emitted
|
|
70
|
+
* before the value pair (claude's --system-prompt pairs with
|
|
71
|
+
* --exclude-dynamic-system-prompt-sections - issue #48). */
|
|
66
72
|
{
|
|
67
73
|
readonly kind: "flag-value";
|
|
68
74
|
readonly flag: string;
|
|
75
|
+
readonly extraFlags?: readonly string[];
|
|
69
76
|
}
|
|
70
77
|
/** `-c key=value` - codex's config-override grammar. Permitted only for
|
|
71
78
|
* closed-vocabulary specs, so no value can need escaping. */
|
|
@@ -101,6 +108,12 @@ export type TurnOptionSpec =
|
|
|
101
108
|
| (SpecBase & {
|
|
102
109
|
readonly kind: "selector";
|
|
103
110
|
})
|
|
111
|
+
/** Free-form prompt text (issue #48): systemPrompt / appendSystemPrompt.
|
|
112
|
+
* Values are prose, never a closed vocabulary - no validation beyond
|
|
113
|
+
* non-emptiness, rendering is verbatim. */
|
|
114
|
+
| (SpecBase & {
|
|
115
|
+
readonly kind: "prompt-text";
|
|
116
|
+
})
|
|
104
117
|
/** `polarity: "disables"` emits the render when the caller asks for FALSE. */
|
|
105
118
|
| (SpecBase & {
|
|
106
119
|
readonly kind: "toggle";
|
|
@@ -206,14 +219,16 @@ export interface HarnessDescriptor {
|
|
|
206
219
|
* harness. */
|
|
207
220
|
readonly onMissing: "error" | "create";
|
|
208
221
|
};
|
|
209
|
-
/** Persistent headless session support: the
|
|
210
|
-
* lucid-owned process serving many turns, or null
|
|
211
|
-
* such mode.
|
|
212
|
-
*
|
|
213
|
-
* `
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
222
|
+
/** Persistent headless session support: the complete flag list that follows
|
|
223
|
+
* the binary to open one lucid-owned process serving many turns, or null
|
|
224
|
+
* when the harness has no such mode. This is the entire argv prefix after
|
|
225
|
+
* the binary - no launch flags are prepended. `idFlag` pins the
|
|
226
|
+
* caller-assigned session identity. `turnEnd` is the stdout record that
|
|
227
|
+
* delimits one turn (claude: the `result` record; pi rpc:
|
|
228
|
+
* `agent_settled`). `identityProbe`, when present, names a command the
|
|
229
|
+
* runner writes at spawn whose response carries the session id - pi rpc
|
|
230
|
+
* is identity-silent at startup (spike evidence:
|
|
231
|
+
* test/fixtures/pi-rpc-spike), so identity needs a round trip. */
|
|
217
232
|
readonly sessionMode: {
|
|
218
233
|
readonly flags: readonly string[];
|
|
219
234
|
/** Pin an EXISTING session id; null when the harness only accepts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,aAAa,YAAI,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AACxE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;mCAEmC;AACnC,uEAAuE;AACvE,eAAO,MAAM,UAAU,QAAoE,CAAC;AAE5F,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,CAAC,KAAG,CAMxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE/E,eAAO,MAAM,mBAAmB,YAAI,yBAAyB,EAAE,eAAe,CAAU,CAAC;AACzF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC;AAED;;uCAEuC;AACvC,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,eAAe,GACf,cAAc,GACd,SAAS,GACT,OAAO,GACP,YAAY,CAAC;AAEjB;;mDAEmD;AACnD,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,CAAC;AAE1E;;;;;6BAK6B;AAC7B,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAChC;AAED;;;;uEAIuE;AACvE,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,12 @@ export const TURN_OPTION_KEYS = deepFreeze([
|
|
|
36
36
|
"write",
|
|
37
37
|
"shell",
|
|
38
38
|
"maxSteps",
|
|
39
|
+
// issue #48 (ratified 2026-08-20): the payload-stripping dimensions.
|
|
40
|
+
// systemPrompt replaces the built-in prompt; appendSystemPrompt adds to
|
|
41
|
+
// it. Both are opt-in-only (arg/config, no profile entry) - a default
|
|
42
|
+
// that strips the payload changes every bare run's semantics.
|
|
43
|
+
"systemPrompt",
|
|
44
|
+
"appendSystemPrompt",
|
|
39
45
|
]);
|
|
40
46
|
/** Discovery facets are closed for the same reason as `TurnOptionKey`: each
|
|
41
47
|
* maps to a field on `DiscoveryOptions` and a concrete flag spelling per
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAGxE;;mCAEmC;AACnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAE5F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAQ,EAAK,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,yBAAyB,EAAE,eAAe,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAGxE;;mCAEmC;AACnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAE5F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAQ,EAAK,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,yBAAyB,EAAE,eAAe,CAAU,CAAC;AA8CzF;;;;uEAIuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,QAAQ;IACR,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,UAAU;IACV,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,8DAA8D;IAC9D,cAAc;IACd,oBAAoB;CACZ,CAAC,CAAC;AAGZ;;;;aAIa;AACb,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,OAAO;IACP,kBAAkB;IAClB,YAAY;IACZ,QAAQ;CACA,CAAC,CAAC;AAoDZ;;;;;;6DAM6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,KAA0B,EAAuB,EAAE;IAC/F,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IAC3C,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;AAC1C,CAAC,CAAC;AAEF;;8CAE8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAuB,EAAE,CACzE,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEhC;;;8CAG8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAoB,EACpB,KAA0B,EACL,EAAE;IACvB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
export { claudeCode } from "./claude-code.js";
|
|
13
13
|
export { codexCli } from "./codex.js";
|
|
14
14
|
export * from "./descriptor.js";
|
|
15
|
-
export { SHARED_AUTH_MATCHERS, SHARED_LIMIT_MATCHERS } from "./matchers.js";
|
|
15
|
+
export { SHARED_AUTH_MATCHERS, SHARED_LIMIT_MATCHERS, SHARED_TRANSPORT_MATCHERS, } from "./matchers.js";
|
|
16
16
|
export { museCode } from "./muse.js";
|
|
17
17
|
export { type DescriptorSet, defaultDescriptors, OverrideRefusalError, parseOverrides, } from "./overrides.js";
|
|
18
18
|
export { piCli } from "./pi.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,KAAK,aAAa,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/knowledge/index.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
export { claudeCode } from "./claude-code.js";
|
|
13
13
|
export { codexCli } from "./codex.js";
|
|
14
14
|
export * from "./descriptor.js";
|
|
15
|
-
export { SHARED_AUTH_MATCHERS, SHARED_LIMIT_MATCHERS } from "./matchers.js";
|
|
15
|
+
export { SHARED_AUTH_MATCHERS, SHARED_LIMIT_MATCHERS, SHARED_TRANSPORT_MATCHERS, } from "./matchers.js";
|
|
16
16
|
export { museCode } from "./muse.js";
|
|
17
17
|
export { defaultDescriptors, OverrideRefusalError, parseOverrides, } from "./overrides.js";
|
|
18
18
|
export { piCli } from "./pi.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* or a provider 401 must classify no matter which CLI printed it. Each
|
|
5
5
|
* descriptor spreads these after its harness-specific phrasings.
|
|
6
6
|
*/
|
|
7
|
-
import type { AuthMatcher, LimitMatcher } from "./descriptor.js";
|
|
7
|
+
import type { AuthMatcher, LimitMatcher, TransportMatcher } from "./descriptor.js";
|
|
8
8
|
export declare const SHARED_LIMIT_MATCHERS: ReadonlyArray<LimitMatcher>;
|
|
9
9
|
export declare const SHARED_AUTH_MATCHERS: ReadonlyArray<AuthMatcher>;
|
|
10
|
+
export declare const SHARED_TRANSPORT_MATCHERS: ReadonlyArray<TransportMatcher>;
|
|
10
11
|
//# sourceMappingURL=matchers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/knowledge/matchers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/knowledge/matchers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,YAAY,CAyB7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,WAAW,CAG3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,gBAAgB,CAcrE,CAAC"}
|
|
@@ -12,7 +12,14 @@ export const SHARED_LIMIT_MATCHERS = [
|
|
|
12
12
|
code: "quota",
|
|
13
13
|
},
|
|
14
14
|
// Rate-limit patterns are last so a line with both a usage wall and a 429 keeps usage-limit (first-match-wins, documented cost)
|
|
15
|
-
|
|
15
|
+
// 429 only next to an HTTP status word: a bare digit run inside an id, a
|
|
16
|
+
// byte count, or a timing must never read as a wall. "429 Too Many
|
|
17
|
+
// Requests" is covered by the next matcher.
|
|
18
|
+
{
|
|
19
|
+
pattern: "\\b(?:HTTP|status(?:[_ ]?code)?|code)\\b\\W*[:=]?\\W*429\\b",
|
|
20
|
+
flags: "i",
|
|
21
|
+
code: "rate-limit",
|
|
22
|
+
},
|
|
16
23
|
{ pattern: "Too Many Requests", flags: "i", code: "rate-limit" },
|
|
17
24
|
{ pattern: "rate limit(?:ed|ing)?", flags: "i", code: "rate-limit" },
|
|
18
25
|
{ pattern: "Retry-After", flags: "i", code: "rate-limit" },
|
|
@@ -21,4 +28,19 @@ export const SHARED_AUTH_MATCHERS = [
|
|
|
21
28
|
{ pattern: "401 unauthorized", flags: "i", kind: "expired" },
|
|
22
29
|
{ pattern: "invalid api key", flags: "i", kind: "invalid-key" },
|
|
23
30
|
];
|
|
31
|
+
export const SHARED_TRANSPORT_MATCHERS = [
|
|
32
|
+
{ pattern: "connection error", flags: "i" },
|
|
33
|
+
{ pattern: "ECONNREFUSED", flags: "i" },
|
|
34
|
+
{ pattern: "ECONNRESET", flags: "i" },
|
|
35
|
+
{ pattern: "ENOTFOUND", flags: "i" },
|
|
36
|
+
{ pattern: "EAI_AGAIN", flags: "i" },
|
|
37
|
+
{ pattern: "ETIMEDOUT", flags: "i" },
|
|
38
|
+
{ pattern: "fetch failed", flags: "i" },
|
|
39
|
+
{ pattern: "socket hang up", flags: "i" },
|
|
40
|
+
{ pattern: "network error", flags: "i" },
|
|
41
|
+
{ pattern: "service unavailable", flags: "i" },
|
|
42
|
+
{ pattern: "bad gateway", flags: "i" },
|
|
43
|
+
{ pattern: "gateway time-?out", flags: "i" },
|
|
44
|
+
{ pattern: "\\b(?:HTTP|status(?:[_ ]?code)?|code)\\b\\W*[:=]?\\W*50[234]\\b", flags: "i" },
|
|
45
|
+
];
|
|
24
46
|
//# sourceMappingURL=matchers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/knowledge/matchers.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IAChE,EAAE,OAAO,EAAE,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;IAC5E,EAAE,OAAO,EAAE,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;IAChF;QACE,OAAO,EAAE,2DAA2D;QACpE,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;KAChB;IACD;QACE,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;KACd;IACD,gIAAgI;IAChI,
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/knowledge/matchers.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IAChE,EAAE,OAAO,EAAE,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;IAC5E,EAAE,OAAO,EAAE,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;IAChF;QACE,OAAO,EAAE,2DAA2D;QACpE,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;KAChB;IACD;QACE,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;KACd;IACD,gIAAgI;IAChI,yEAAyE;IACzE,mEAAmE;IACnE,4CAA4C;IAC5C;QACE,OAAO,EAAE,6DAA6D;QACtE,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,YAAY;KACnB;IACD,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;IAChE,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;IACpE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA+B;IAC9D,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5D,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAoC;IACxE,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE;IAC3C,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;IACpC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;IACpC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;IACpC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE;IACzC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE;IACxC,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9C,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE;IACtC,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE;IAC5C,EAAE,OAAO,EAAE,iEAAiE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC3F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAGjF,eAAO,MAAM,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAGjF,eAAO,MAAM,KAAK,EAAE,iBAwKlB,CAAC"}
|
package/dist/knowledge/pi.js
CHANGED
|
@@ -29,6 +29,15 @@ export const piCli = deepFreeze({
|
|
|
29
29
|
// Caller-assigned: the same --session-id re-enters the session. Resume
|
|
30
30
|
// carries the same structured-output flags launch does, or a resumed
|
|
31
31
|
// turn would stream plain text the runner cannot decode.
|
|
32
|
+
// Verified 2026-08-21 on pi 0.84.2: a session id minted by `pi --mode rpc`
|
|
33
|
+
// via the get_state probe (01a022e3-9afb-7ce5-88f5-07ad0e9ac8fa) resumed
|
|
34
|
+
// after close through the one-shot grammar `pi --session-id <id> -p
|
|
35
|
+
// --mode json` (flag --session-id, extraFlags -p --mode json), exit 0,
|
|
36
|
+
// 207 lines, and the reply recalled the codeword "otter" (evidence at
|
|
37
|
+
// test/fixtures/pi-rpc-spike/06-resume-after-close/: rpc-turn.ndjson,
|
|
38
|
+
// resume.argv.json, resume.ndjson, README.md). If the resume had not
|
|
39
|
+
// recalled the codeword, this comment would say so and the descriptor
|
|
40
|
+
// would not be changed here.
|
|
32
41
|
style: "flag",
|
|
33
42
|
flag: "--session-id",
|
|
34
43
|
aliases: [],
|
|
@@ -68,7 +77,10 @@ export const piCli = deepFreeze({
|
|
|
68
77
|
announce: { match: { type: "session" }, idField: "id" },
|
|
69
78
|
},
|
|
70
79
|
limitMatchers: [...SHARED_LIMIT_MATCHERS],
|
|
71
|
-
authMatchers: [
|
|
80
|
+
authMatchers: [
|
|
81
|
+
{ pattern: "No API key found for", flags: "i", kind: "not-logged-in" },
|
|
82
|
+
...SHARED_AUTH_MATCHERS,
|
|
83
|
+
],
|
|
72
84
|
autonomy: null,
|
|
73
85
|
vocabulary: {
|
|
74
86
|
modelFlag: "--model",
|
|
@@ -109,6 +121,17 @@ export const piCli = deepFreeze({
|
|
|
109
121
|
turnOptions: {
|
|
110
122
|
effort: { kind: "effort", render: { kind: "flag-value", flag: "--thinking" } },
|
|
111
123
|
provider: { kind: "selector", render: { kind: "flag-value", flag: "--provider" } },
|
|
124
|
+
// issue #48, live-verified 0.84.2: pi's --system-prompt replaces the
|
|
125
|
+
// default coding-assistant prompt (PI-NAKED probe). No dynamic-section
|
|
126
|
+
// exclusion exists - pi injects no such sections into a replaced prompt.
|
|
127
|
+
systemPrompt: {
|
|
128
|
+
kind: "prompt-text",
|
|
129
|
+
render: { kind: "flag-value", flag: "--system-prompt" },
|
|
130
|
+
},
|
|
131
|
+
appendSystemPrompt: {
|
|
132
|
+
kind: "prompt-text",
|
|
133
|
+
render: { kind: "flag-value", flag: "--append-system-prompt" },
|
|
134
|
+
},
|
|
112
135
|
discovery: {
|
|
113
136
|
kind: "discovery",
|
|
114
137
|
facets: {
|
package/dist/knowledge/pi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,CAAC,MAAM,KAAK,GAAsB,UAAU,CAAC;IACjD,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE;IAC1E,MAAM,EAAE;QACN,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,yDAAyD;QACzD,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;QACnC,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACN,uEAAuE;QACvE,qEAAqE;QACrE,yDAAyD;QACzD,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;KACrC;IACD,yEAAyE;IACzE,oDAAoD;IACpD,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,oEAAoE;IACpE,uEAAuE;IACvE,WAAW,EAAE;QACX,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;QACxB,oEAAoE;QACpE,mEAAmE;QACnE,qDAAqD;QACrD,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QAChC,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QAClC,aAAa,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;KACxC;IACD,MAAM,EAAE;QACN,mEAAmE;QACnE,uEAAuE;QACvE,4DAA4D;QAC5D,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAC3D,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,EAAE;KAChB;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,iBAAiB;QAC5B,wEAAwE;QACxE,0EAA0E;QAC1E,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACxD;IACD,aAAa,EAAE,CAAC,GAAG,qBAAqB,CAAC;IACzC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/args.ts
CHANGED
|
@@ -181,6 +181,9 @@ export const parseTurnOptions = (values: Record<string, unknown>): TurnOptions =
|
|
|
181
181
|
else if (values["no-shell"] === true) opts.shell = false;
|
|
182
182
|
if (values["escalate-questions"] === true) opts.escalateQuestions = true;
|
|
183
183
|
else if (values["no-escalate-questions"] === true) opts.escalateQuestions = false;
|
|
184
|
+
if (values["system-prompt"] !== undefined) opts.systemPrompt = String(values["system-prompt"]);
|
|
185
|
+
if (values["append-system-prompt"] !== undefined)
|
|
186
|
+
opts.appendSystemPrompt = String(values["append-system-prompt"]);
|
|
184
187
|
|
|
185
188
|
if (values["max-steps"] !== undefined) {
|
|
186
189
|
const n = Number(values["max-steps"]);
|
|
@@ -249,6 +252,14 @@ export const parseRunExtra = (
|
|
|
249
252
|
extra.timeoutSeconds = n;
|
|
250
253
|
}
|
|
251
254
|
if (values.cwd !== undefined) extra.cwd = String(values.cwd);
|
|
255
|
+
if (values.resume !== undefined && values["session-id"] !== undefined) {
|
|
256
|
+
throw new ArgvRefusalError({
|
|
257
|
+
issue: "mutually-exclusive-options",
|
|
258
|
+
harness: "claude",
|
|
259
|
+
supported: ["--resume or --session-id, not both (--session-id is an alias for --resume)"],
|
|
260
|
+
detail: "both --resume and --session-id given",
|
|
261
|
+
});
|
|
262
|
+
}
|
|
252
263
|
if (values.resume !== undefined) extra.resume = String(values.resume);
|
|
253
264
|
if (values["session-id"] !== undefined) extra.resume = String(values["session-id"]);
|
|
254
265
|
if (values.env !== undefined) {
|
|
@@ -281,6 +292,8 @@ const KNOWN_FLAGS = new Set([
|
|
|
281
292
|
"--no-shell",
|
|
282
293
|
"--escalate-questions",
|
|
283
294
|
"--no-escalate-questions",
|
|
295
|
+
"--system-prompt",
|
|
296
|
+
"--append-system-prompt",
|
|
284
297
|
"--max-steps",
|
|
285
298
|
"--no-tools",
|
|
286
299
|
"--no-instruction-files",
|
|
@@ -427,6 +440,8 @@ export const parseCommonFlags = (
|
|
|
427
440
|
"no-shell": { type: "boolean" as const },
|
|
428
441
|
"escalate-questions": { type: "boolean" as const },
|
|
429
442
|
"no-escalate-questions": { type: "boolean" as const },
|
|
443
|
+
"system-prompt": { type: "string" as const },
|
|
444
|
+
"append-system-prompt": { type: "string" as const },
|
|
430
445
|
"max-steps": { type: "string" as const },
|
|
431
446
|
"no-tools": { type: "boolean" as const },
|
|
432
447
|
"no-instruction-files": { type: "boolean" as const },
|
package/src/cli/config.ts
CHANGED
|
@@ -69,6 +69,10 @@ const KNOWN_KEYS = new Set([
|
|
|
69
69
|
// issue #41: question escalation (behavior instruction, not a turn
|
|
70
70
|
// option - it rides the prompt preamble, never a harness flag).
|
|
71
71
|
"escalateQuestions",
|
|
72
|
+
// issue #48: payload-stripping dimensions (opt-in-only, no profile
|
|
73
|
+
// entry by ratification).
|
|
74
|
+
"systemPrompt",
|
|
75
|
+
"appendSystemPrompt",
|
|
72
76
|
]);
|
|
73
77
|
|
|
74
78
|
const LIST_KEYS = new Set(["tools", "excludeTools"]);
|
package/src/cli/help.ts
CHANGED
|
@@ -48,12 +48,20 @@ Options:
|
|
|
48
48
|
done cause "awaiting-input", exit 0)
|
|
49
49
|
--no-escalate-questions Worker never asks: it states the assumption it
|
|
50
50
|
proceeded under and continues
|
|
51
|
+
--system-prompt <text> Replace the built-in system prompt (claude, pi:
|
|
52
|
+
flag; codex: -c instructions=<text-or-path>;
|
|
53
|
+
muse refuses. claude pairs the dynamic-section
|
|
54
|
+
exclusion automatically. Opt-in; no default)
|
|
55
|
+
--append-system-prompt <text>
|
|
56
|
+
Append to the built-in prompt (claude, pi only)
|
|
51
57
|
--max-steps <n> Max steps (muse, 1-10000)
|
|
52
58
|
--timeout <seconds> Wall-clock budget for the run (all harnesses,
|
|
53
59
|
hcn-enforced; 0 disables; no default)
|
|
54
60
|
--no-tools Disable tools discovery facet
|
|
55
61
|
--no-instruction-files Disable instructionFiles discovery facet
|
|
56
62
|
--no-extensions Disable extensions discovery facet
|
|
63
|
+
--skills <a,b> Skill allowlist (names resolved against $HCN_SKILLS_ROOT
|
|
64
|
+
or ~/.agents/skills; pi loads, claude narrows)
|
|
57
65
|
--no-skills Disable skills discovery facet
|
|
58
66
|
--cwd <path> Working directory for spawn
|
|
59
67
|
--env KEY=VAL Environment (repeatable; KEY= deletes)
|
|
@@ -62,6 +70,8 @@ Options:
|
|
|
62
70
|
answer as the prompt; id continuity per
|
|
63
71
|
harness (claude stable, pi/muse caller-assigned,
|
|
64
72
|
codex minted via identity event)
|
|
73
|
+
Note: pi and muse create a new session when the id is unknown - verify it exists
|
|
74
|
+
--session-id <uuid> Alias for --resume (mutually exclusive with --resume)
|
|
65
75
|
-- Passthrough: native harness args verbatim
|
|
66
76
|
(failures surface as labeled native errors)
|
|
67
77
|
--json NDJSON HarnessEvent to stdout
|
package/src/cli/inspect.ts
CHANGED
|
@@ -74,6 +74,8 @@ export const inspect = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
74
74
|
modelFlag: h.vocabulary.modelFlag,
|
|
75
75
|
},
|
|
76
76
|
turnOptions: h.turnOptions,
|
|
77
|
+
limitMatchers: h.limitMatchers,
|
|
78
|
+
authMatchers: h.authMatchers,
|
|
77
79
|
};
|
|
78
80
|
process.stdout.write(`${JSON.stringify(out, null, 2)}\n`);
|
|
79
81
|
return;
|
|
@@ -124,6 +126,69 @@ export const inspect = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
124
126
|
throw err;
|
|
125
127
|
}
|
|
126
128
|
|
|
129
|
+
// Mirror run.ts skills resolution (F-16): resolve names and build claude tokens
|
|
130
|
+
const rawSkills = (turnOpts as unknown as { skills?: string[] }).skills;
|
|
131
|
+
if (rawSkills !== undefined && rawSkills.length > 0) {
|
|
132
|
+
try {
|
|
133
|
+
const { resolveSkillNames, listKnownSkills } = await import("./skills-root.js");
|
|
134
|
+
const resolvedSkills = resolveSkillNames(rawSkills, h.name);
|
|
135
|
+
const claudeTokens: string[] = [];
|
|
136
|
+
if (h.name === "claude") {
|
|
137
|
+
const { claudeSkillOverridesArg } = await import("../interpretation/skills-selection.js");
|
|
138
|
+
claudeTokens.push(...claudeSkillOverridesArg(listKnownSkills(), resolvedSkills));
|
|
139
|
+
}
|
|
140
|
+
(turnOpts as unknown as Record<string, unknown>).skills = resolvedSkills;
|
|
141
|
+
(turnOpts as unknown as Record<string, unknown>).__claudeSkillTokens = claudeTokens;
|
|
142
|
+
} catch (err) {
|
|
143
|
+
if (err instanceof ArgvRefusalError) {
|
|
144
|
+
process.stderr.write(`${err.message}\n`);
|
|
145
|
+
if (err.supported.length) process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
|
|
146
|
+
process.exitCode = 2;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
throw err;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Resume previews from unresolved options, mirroring run.ts launch-only rule (F-15)
|
|
154
|
+
if (values.resume !== undefined || values["session-id"] !== undefined) {
|
|
155
|
+
if (values.resume !== undefined && values["session-id"] !== undefined) {
|
|
156
|
+
const err = new ArgvRefusalError({
|
|
157
|
+
issue: "mutually-exclusive-options",
|
|
158
|
+
harness: h.name,
|
|
159
|
+
supported: ["--resume or --session-id, not both (--session-id is an alias for --resume)"],
|
|
160
|
+
detail: "both --resume and --session-id given",
|
|
161
|
+
});
|
|
162
|
+
process.stderr.write(`${err.message}\n`);
|
|
163
|
+
if (err.supported.length) process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
|
|
164
|
+
process.exitCode = 2;
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const { buildResumeArgv } = await import("../interpretation/argv.js");
|
|
168
|
+
const resumeId = String(values.resume ?? values["session-id"]);
|
|
169
|
+
try {
|
|
170
|
+
const resumeOpts = {
|
|
171
|
+
...(turnOpts as object),
|
|
172
|
+
prompt,
|
|
173
|
+
sessionId: resumeId,
|
|
174
|
+
...(promptSource !== "positional" ? { __explicitPrompt: true as const } : {}),
|
|
175
|
+
} as Parameters<typeof buildResumeArgv>[1];
|
|
176
|
+
const resumeArgv = buildResumeArgv(h, resumeOpts);
|
|
177
|
+
const redactedResume = redactArgv(resumeArgv, prompt);
|
|
178
|
+
process.stdout.write(`${JSON.stringify(redactedResume)}\n`);
|
|
179
|
+
process.stderr.write(`argv: ${redactedResume.join(" ")}\n`);
|
|
180
|
+
return;
|
|
181
|
+
} catch (err) {
|
|
182
|
+
if (err instanceof ArgvRefusalError) {
|
|
183
|
+
process.stderr.write(`${err.message}\n`);
|
|
184
|
+
if (err.supported.length) process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
|
|
185
|
+
process.exitCode = 2;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
throw err;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
127
192
|
// Inspect resolves exactly as a launch would: profile + user config,
|
|
128
193
|
// launch-only semantics, so --argv previews the truth of a bare run.
|
|
129
194
|
const { loadUserConfig, loadProjectConfig, ConfigError } = await import("./config.js");
|
|
@@ -155,6 +220,8 @@ export const inspect = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
155
220
|
}
|
|
156
221
|
throw resErr;
|
|
157
222
|
}
|
|
223
|
+
const { writeProvenance } = await import("./provenance.js");
|
|
224
|
+
writeProvenance(h.name, resolved.provenance, resolved.unrenderable);
|
|
158
225
|
const { prompt: _p, ...effectiveRest } = resolved.options as { prompt: string };
|
|
159
226
|
const fullOpts = {
|
|
160
227
|
...(effectiveRest as object),
|
|
@@ -165,6 +232,9 @@ export const inspect = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
165
232
|
let argv: string[];
|
|
166
233
|
try {
|
|
167
234
|
argv = buildLaunchArgv(h, fullOpts);
|
|
235
|
+
const claudeTokens = (effectiveRest as unknown as { __claudeSkillTokens?: string[] })
|
|
236
|
+
.__claudeSkillTokens;
|
|
237
|
+
if (claudeTokens !== undefined && claudeTokens.length > 0) argv.push(...claudeTokens);
|
|
168
238
|
} catch (err) {
|
|
169
239
|
if (err instanceof ArgvRefusalError) {
|
|
170
240
|
process.stderr.write(`${err.message}\n`);
|
|
@@ -177,28 +247,6 @@ export const inspect = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
177
247
|
|
|
178
248
|
// Redact prompt for display, but keep structure
|
|
179
249
|
const redacted = redactArgv(argv, prompt);
|
|
180
|
-
// Also handle --resume case: need to use buildResumeArgv if resume present
|
|
181
|
-
if (values.resume !== undefined || values["session-id"] !== undefined) {
|
|
182
|
-
// For inspect --argv with --resume, show resume argv
|
|
183
|
-
const { buildResumeArgv } = await import("../interpretation/argv.js");
|
|
184
|
-
const resumeId = String(values.resume ?? values["session-id"]);
|
|
185
|
-
try {
|
|
186
|
-
const resumeOpts = { ...fullOpts, sessionId: resumeId };
|
|
187
|
-
const resumeArgv = buildResumeArgv(h, resumeOpts);
|
|
188
|
-
const redactedResume = redactArgv(resumeArgv, prompt);
|
|
189
|
-
process.stdout.write(`${JSON.stringify(redactedResume)}\n`);
|
|
190
|
-
process.stderr.write(`argv: ${redactedResume.join(" ")}\n`);
|
|
191
|
-
return;
|
|
192
|
-
} catch (err) {
|
|
193
|
-
if (err instanceof ArgvRefusalError) {
|
|
194
|
-
process.stderr.write(`${err.message}\n`);
|
|
195
|
-
if (err.supported.length) process.stderr.write(`supported: ${err.supported.join(", ")}\n`);
|
|
196
|
-
process.exitCode = 2;
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
throw err;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
250
|
|
|
203
251
|
process.stdout.write(`${JSON.stringify(redacted)}\n`);
|
|
204
252
|
process.stderr.write(`argv: ${redacted.join(" ")}\n`);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ProvenanceEntry } from "../interpretation/resolve-options.js";
|
|
2
|
+
|
|
3
|
+
export const writeProvenance = (
|
|
4
|
+
harnessName: string,
|
|
5
|
+
provenance: readonly ProvenanceEntry[],
|
|
6
|
+
unrenderable: readonly string[],
|
|
7
|
+
): void => {
|
|
8
|
+
if (provenance.length === 0 && unrenderable.length === 0) return;
|
|
9
|
+
for (const entry of provenance) {
|
|
10
|
+
process.stderr.write(
|
|
11
|
+
`provenance: ${entry.key} = ${JSON.stringify(entry.value)} (${entry.tier})\n`,
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
for (const key of unrenderable) {
|
|
15
|
+
process.stderr.write(
|
|
16
|
+
`divergence: profile ${JSON.stringify(key)} not expressible on ${harnessName}; harness default applies\n`,
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
};
|