@dungle-scrubs/harness-cli-normalizer 0.6.0 → 0.6.1
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 +18 -6
- package/dist/cli/args.d.ts +9 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +31 -26
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/check.d.ts +14 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +10 -3
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/config.d.ts +4 -4
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +6 -6
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/exit-codes.d.ts +0 -1
- package/dist/cli/exit-codes.d.ts.map +1 -1
- package/dist/cli/exit-codes.js +0 -1
- package/dist/cli/exit-codes.js.map +1 -1
- package/dist/cli/help.d.ts +2 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +6 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +84 -265
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/plan-turn.d.ts +68 -0
- package/dist/cli/plan-turn.d.ts.map +1 -0
- package/dist/cli/plan-turn.js +266 -0
- package/dist/cli/plan-turn.js.map +1 -0
- package/dist/cli/refuse.d.ts.map +1 -1
- package/dist/cli/refuse.js +2 -1
- package/dist/cli/refuse.js.map +1 -1
- package/dist/cli/resolve-harness.d.ts.map +1 -1
- package/dist/cli/resolve-harness.js +2 -3
- package/dist/cli/resolve-harness.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +33 -367
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/session-json.d.ts +1 -1
- package/dist/cli/session-json.d.ts.map +1 -1
- package/dist/cli/session-json.js +1 -3
- package/dist/cli/session-json.js.map +1 -1
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +25 -44
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/skills-root.d.ts +1 -1
- package/dist/cli/skills-root.d.ts.map +1 -1
- package/dist/cli/skills-root.js +1 -1
- package/dist/cli/skills-root.js.map +1 -1
- package/dist/execution/decode.d.ts.map +1 -1
- package/dist/execution/decode.js +11 -36
- package/dist/execution/decode.js.map +1 -1
- package/dist/execution/events.d.ts +4 -1
- package/dist/execution/events.d.ts.map +1 -1
- package/dist/execution/events.js.map +1 -1
- package/dist/execution/failure.d.ts +3 -1
- package/dist/execution/failure.d.ts.map +1 -1
- package/dist/execution/failure.js +14 -11
- package/dist/execution/failure.js.map +1 -1
- package/dist/execution/open-session.d.ts +1 -1
- package/dist/execution/open-session.d.ts.map +1 -1
- package/dist/execution/open-session.js +150 -223
- package/dist/execution/open-session.js.map +1 -1
- package/dist/execution/stream-turn.d.ts +9 -14
- package/dist/execution/stream-turn.d.ts.map +1 -1
- package/dist/execution/stream-turn.js +85 -188
- package/dist/execution/stream-turn.js.map +1 -1
- package/dist/execution/supervisor.d.ts +71 -0
- package/dist/execution/supervisor.d.ts.map +1 -0
- package/dist/execution/supervisor.js +127 -0
- package/dist/execution/supervisor.js.map +1 -0
- package/dist/interpretation/argv.d.ts +38 -12
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +26 -20
- package/dist/interpretation/argv.js.map +1 -1
- package/dist/interpretation/content.d.ts +10 -1
- package/dist/interpretation/content.d.ts.map +1 -1
- package/dist/interpretation/content.js +20 -11
- package/dist/interpretation/content.js.map +1 -1
- package/dist/interpretation/hints.d.ts +1 -1
- package/dist/interpretation/hints.d.ts.map +1 -1
- package/dist/interpretation/hints.js +10 -11
- package/dist/interpretation/hints.js.map +1 -1
- package/dist/interpretation/index.d.ts +0 -1
- package/dist/interpretation/index.d.ts.map +1 -1
- package/dist/interpretation/index.js +0 -1
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/limits.d.ts +2 -5
- package/dist/interpretation/limits.d.ts.map +1 -1
- package/dist/interpretation/limits.js +8 -62
- package/dist/interpretation/limits.js.map +1 -1
- package/dist/interpretation/question.d.ts +27 -0
- package/dist/interpretation/question.d.ts.map +1 -1
- package/dist/interpretation/question.js +28 -0
- package/dist/interpretation/question.js.map +1 -1
- package/dist/interpretation/refusal.d.ts +10 -5
- package/dist/interpretation/refusal.d.ts.map +1 -1
- package/dist/interpretation/refusal.js +24 -15
- package/dist/interpretation/refusal.js.map +1 -1
- package/dist/interpretation/resolve-options.d.ts +36 -2
- package/dist/interpretation/resolve-options.d.ts.map +1 -1
- package/dist/interpretation/resolve-options.js +38 -21
- package/dist/interpretation/resolve-options.js.map +1 -1
- package/dist/interpretation/session-input.d.ts +44 -1
- package/dist/interpretation/session-input.d.ts.map +1 -1
- package/dist/interpretation/session-input.js +59 -4
- package/dist/interpretation/session-input.js.map +1 -1
- package/dist/interpretation/shape.d.ts +1 -0
- package/dist/interpretation/shape.d.ts.map +1 -1
- package/dist/interpretation/shape.js +10 -0
- package/dist/interpretation/shape.js.map +1 -1
- package/dist/interpretation/skills-selection.d.ts +25 -33
- package/dist/interpretation/skills-selection.d.ts.map +1 -1
- package/dist/interpretation/skills-selection.js +41 -48
- package/dist/interpretation/skills-selection.js.map +1 -1
- package/dist/interpretation/support.d.ts.map +1 -1
- package/dist/interpretation/support.js +23 -8
- package/dist/interpretation/support.js.map +1 -1
- package/dist/interpretation/tool-selection.d.ts +7 -6
- package/dist/interpretation/tool-selection.d.ts.map +1 -1
- package/dist/interpretation/tool-selection.js +54 -116
- package/dist/interpretation/tool-selection.js.map +1 -1
- package/dist/interpretation/tool-vocabulary.d.ts +31 -12
- package/dist/interpretation/tool-vocabulary.d.ts.map +1 -1
- package/dist/interpretation/tool-vocabulary.js +19 -41
- package/dist/interpretation/tool-vocabulary.js.map +1 -1
- package/dist/interpretation/turn-options.d.ts +4 -0
- package/dist/interpretation/turn-options.d.ts.map +1 -1
- package/dist/interpretation/turn-options.js +105 -241
- package/dist/interpretation/turn-options.js.map +1 -1
- package/dist/interpretation/vocabulary.d.ts +8 -6
- package/dist/interpretation/vocabulary.d.ts.map +1 -1
- package/dist/interpretation/vocabulary.js +22 -9
- package/dist/interpretation/vocabulary.js.map +1 -1
- package/dist/knowledge/claude-code.js +3 -3
- package/dist/knowledge/claude-code.js.map +1 -1
- package/dist/knowledge/codex.d.ts.map +1 -1
- package/dist/knowledge/codex.js +31 -7
- package/dist/knowledge/codex.js.map +1 -1
- package/dist/knowledge/descriptor.d.ts +67 -36
- package/dist/knowledge/descriptor.d.ts.map +1 -1
- package/dist/knowledge/descriptor.js +49 -15
- package/dist/knowledge/descriptor.js.map +1 -1
- package/dist/knowledge/matchers.d.ts +12 -0
- package/dist/knowledge/matchers.d.ts.map +1 -1
- package/dist/knowledge/matchers.js +34 -0
- package/dist/knowledge/matchers.js.map +1 -1
- package/dist/knowledge/muse.d.ts.map +1 -1
- package/dist/knowledge/muse.js +7 -5
- package/dist/knowledge/muse.js.map +1 -1
- package/dist/knowledge/overrides.d.ts.map +1 -1
- package/dist/knowledge/overrides.js +9 -20
- package/dist/knowledge/overrides.js.map +1 -1
- package/dist/knowledge/pi.d.ts.map +1 -1
- package/dist/knowledge/pi.js +8 -6
- package/dist/knowledge/pi.js.map +1 -1
- package/dist/knowledge/profile.d.ts +1 -0
- package/dist/knowledge/profile.d.ts.map +1 -1
- package/dist/knowledge/profile.js +1 -0
- package/dist/knowledge/profile.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/args.ts +35 -27
- package/src/cli/check.ts +10 -3
- package/src/cli/config.ts +12 -11
- package/src/cli/exit-codes.ts +0 -2
- package/src/cli/help.ts +6 -2
- package/src/cli/index.ts +3 -1
- package/src/cli/inspect.ts +88 -269
- package/src/cli/plan-turn.ts +346 -0
- package/src/cli/refuse.ts +2 -1
- package/src/cli/resolve-harness.ts +4 -5
- package/src/cli/run.ts +36 -399
- package/src/cli/session-json.ts +1 -6
- package/src/cli/session.ts +34 -44
- package/src/cli/skills-root.ts +1 -4
- package/src/execution/decode.ts +10 -36
- package/src/execution/events.ts +4 -1
- package/src/execution/failure.ts +18 -11
- package/src/execution/open-session.ts +154 -228
- package/src/execution/stream-turn.ts +90 -193
- package/src/execution/supervisor.ts +199 -0
- package/src/interpretation/argv.ts +62 -34
- package/src/interpretation/content.ts +30 -13
- package/src/interpretation/hints.ts +2 -12
- package/src/interpretation/index.ts +0 -1
- package/src/interpretation/limits.ts +14 -75
- package/src/interpretation/question.ts +46 -0
- package/src/interpretation/refusal.ts +28 -18
- package/src/interpretation/resolve-options.ts +85 -32
- package/src/interpretation/session-input.ts +88 -5
- package/src/interpretation/shape.ts +10 -0
- package/src/interpretation/skills-selection.ts +70 -74
- package/src/interpretation/support.ts +19 -6
- package/src/interpretation/tool-selection.ts +67 -122
- package/src/interpretation/tool-vocabulary.ts +48 -53
- package/src/interpretation/turn-options.ts +123 -220
- package/src/interpretation/vocabulary.ts +15 -10
- package/src/knowledge/claude-code.ts +3 -3
- package/src/knowledge/codex.ts +31 -7
- package/src/knowledge/descriptor.ts +105 -49
- package/src/knowledge/matchers.ts +35 -0
- package/src/knowledge/muse.ts +7 -5
- package/src/knowledge/overrides.ts +17 -32
- package/src/knowledge/pi.ts +8 -6
- package/src/knowledge/profile.ts +1 -0
- package/dist/interpretation/dimensions.d.ts +0 -11
- package/dist/interpretation/dimensions.d.ts.map +0 -1
- package/dist/interpretation/dimensions.js +0 -4
- package/dist/interpretation/dimensions.js.map +0 -1
- package/src/interpretation/dimensions.ts +0 -14
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The turn supervisor: the one owner of the supervising policies
|
|
3
|
+
* CONTEXT.md names (RFC-02 change 5), composed by both runners instead of
|
|
4
|
+
* written into each. It owns the stall clock, the SIGTERM-then-SIGKILL
|
|
5
|
+
* escalation, the classification of every stderr line, the tracking of
|
|
6
|
+
* the last assistant message, and the turn close that turns a detected
|
|
7
|
+
* hcn-question block into events. It emits through the callbacks its
|
|
8
|
+
* runner hands it and knows nothing about channels or turns.
|
|
9
|
+
*/
|
|
10
|
+
import { detectAuthFailureInLine, detectLimitInLine } from "../interpretation/limits.js";
|
|
11
|
+
import { questionEventOf, } from "../interpretation/question.js";
|
|
12
|
+
import { failureFromAuth, failureFromLimit, failureFromTask, } from "./failure.js";
|
|
13
|
+
/** SIGTERM -> SIGKILL escalation budget for a child that ignores the first
|
|
14
|
+
* signal. */
|
|
15
|
+
export const KILL_GRACE_MS = 5_000;
|
|
16
|
+
/** Bounded tail of unmatched stderr - the crash context a nonzero exit is
|
|
17
|
+
* explained by (v1 kept the turn's output slice for exactly this). */
|
|
18
|
+
export class StderrTail {
|
|
19
|
+
lines = [];
|
|
20
|
+
bytes = 0;
|
|
21
|
+
push(line) {
|
|
22
|
+
this.lines.push(line);
|
|
23
|
+
this.bytes += line.length;
|
|
24
|
+
while (this.lines.length > 20 || (this.bytes > 4096 && this.lines.length > 1)) {
|
|
25
|
+
const dropped = this.lines.shift();
|
|
26
|
+
this.bytes -= dropped?.length ?? 0;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
snapshot() {
|
|
30
|
+
return [...this.lines];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export const superviseTurn = (h, questionMode, io) => {
|
|
34
|
+
let settled = false;
|
|
35
|
+
let killTimer = null;
|
|
36
|
+
let stallTimer = null;
|
|
37
|
+
let turnOpen = false;
|
|
38
|
+
let lastAssistantText = null;
|
|
39
|
+
const signal = (sig) => {
|
|
40
|
+
if (!settled)
|
|
41
|
+
io.signal(sig);
|
|
42
|
+
};
|
|
43
|
+
const disarm = () => {
|
|
44
|
+
if (stallTimer !== null)
|
|
45
|
+
io.clock.clearTimeout(stallTimer);
|
|
46
|
+
stallTimer = null;
|
|
47
|
+
turnOpen = false;
|
|
48
|
+
};
|
|
49
|
+
const escalate = () => {
|
|
50
|
+
if (settled || killTimer !== null)
|
|
51
|
+
return;
|
|
52
|
+
signal("SIGTERM");
|
|
53
|
+
killTimer = io.clock.setTimeout(() => {
|
|
54
|
+
killTimer = null;
|
|
55
|
+
signal("SIGKILL");
|
|
56
|
+
}, KILL_GRACE_MS);
|
|
57
|
+
};
|
|
58
|
+
const armStall = () => {
|
|
59
|
+
if (io.stallMs === undefined || !turnOpen)
|
|
60
|
+
return;
|
|
61
|
+
if (stallTimer !== null)
|
|
62
|
+
io.clock.clearTimeout(stallTimer);
|
|
63
|
+
stallTimer = io.clock.setTimeout(() => {
|
|
64
|
+
stallTimer = null;
|
|
65
|
+
// The turn may have ended between the timer firing and this callback
|
|
66
|
+
// running; a closed turn is never reported as a stall.
|
|
67
|
+
if (!turnOpen)
|
|
68
|
+
return;
|
|
69
|
+
io.onStall();
|
|
70
|
+
escalate();
|
|
71
|
+
}, io.stallMs);
|
|
72
|
+
};
|
|
73
|
+
return {
|
|
74
|
+
beginTurn() {
|
|
75
|
+
lastAssistantText = null;
|
|
76
|
+
turnOpen = true;
|
|
77
|
+
armStall();
|
|
78
|
+
},
|
|
79
|
+
rearm() {
|
|
80
|
+
armStall();
|
|
81
|
+
},
|
|
82
|
+
disarm,
|
|
83
|
+
escalate,
|
|
84
|
+
settle() {
|
|
85
|
+
settled = true;
|
|
86
|
+
if (killTimer !== null)
|
|
87
|
+
io.clock.clearTimeout(killTimer);
|
|
88
|
+
killTimer = null;
|
|
89
|
+
disarm();
|
|
90
|
+
},
|
|
91
|
+
async stderrLine(line) {
|
|
92
|
+
const limit = detectLimitInLine(h, line);
|
|
93
|
+
if (limit !== null) {
|
|
94
|
+
await io.emit({ kind: "limit", code: limit, message: `limit wall detected (${limit})` });
|
|
95
|
+
await io.fail(failureFromLimit(limit));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const auth = detectAuthFailureInLine(h, line);
|
|
99
|
+
if (auth !== null) {
|
|
100
|
+
await io.fail(failureFromAuth(auth));
|
|
101
|
+
await io.emit({ kind: "error", message: `auth wall: ${auth}` });
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
io.tail.push(line);
|
|
105
|
+
},
|
|
106
|
+
noteEvent(event) {
|
|
107
|
+
if (questionMode === "ask" && event.kind === "message" && event.role === "assistant") {
|
|
108
|
+
lastAssistantText = event.text;
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
close() {
|
|
112
|
+
const found = questionEventOf(lastAssistantText, questionMode);
|
|
113
|
+
if (found.detection === "malformed") {
|
|
114
|
+
void io.emit({ kind: "error", message: found.malformed });
|
|
115
|
+
void io.fail(failureFromTask(`malformed hcn-question block: ${found.malformed}`));
|
|
116
|
+
return { detection: "malformed", asked: false };
|
|
117
|
+
}
|
|
118
|
+
if (found.detection === "block") {
|
|
119
|
+
io.onQuestion(found.event.options.length);
|
|
120
|
+
void io.emit(found.event);
|
|
121
|
+
return { detection: "block", asked: true };
|
|
122
|
+
}
|
|
123
|
+
return { detection: "none", asked: false };
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/execution/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,25 @@
|
|
|
4
4
|
* prompt before tool grants) and the spawn-boundary refusals live here so
|
|
5
5
|
* no caller re-derives them.
|
|
6
6
|
*/
|
|
7
|
-
import type { HarnessDescriptor, StreamingGranularity } from "../knowledge/descriptor.js";
|
|
7
|
+
import type { AccessValue, HarnessDescriptor, StreamingGranularity } from "../knowledge/descriptor.js";
|
|
8
|
+
import { type SkillsSelection } from "./skills-selection.js";
|
|
9
|
+
import type { ToolMap } from "./tool-vocabulary.js";
|
|
8
10
|
export type { RefusalIssue } from "./refusal.js";
|
|
9
11
|
export { ArgvRefusalError, buildRefusalMessage, REFUSAL_ISSUES } from "./refusal.js";
|
|
12
|
+
/** A prompt carries its own provenance (RFC-02 change 13): a plain string
|
|
13
|
+
* is an implicit, positional prompt; the object form came from an explicit
|
|
14
|
+
* flag or file, so a leading dash is the caller's intent, not a flag. */
|
|
15
|
+
export type Prompt = string | {
|
|
16
|
+
readonly text: string;
|
|
17
|
+
readonly explicit: boolean;
|
|
18
|
+
};
|
|
19
|
+
/** The one accessor for the prompt's text, for builders, the runner, and
|
|
20
|
+
* redaction alike. */
|
|
21
|
+
export declare const promptTextOf: (opts: {
|
|
22
|
+
readonly prompt: Prompt;
|
|
23
|
+
}) => string;
|
|
24
|
+
/** The same prompt with new text: the composed form keeps its provenance. */
|
|
25
|
+
export declare const withPromptText: (prompt: Prompt, text: string) => Prompt;
|
|
10
26
|
export interface DiscoveryOptions {
|
|
11
27
|
readonly tools?: boolean;
|
|
12
28
|
readonly instructionFiles?: boolean;
|
|
@@ -14,18 +30,19 @@ export interface DiscoveryOptions {
|
|
|
14
30
|
readonly skills?: boolean;
|
|
15
31
|
}
|
|
16
32
|
export interface TurnOptions {
|
|
17
|
-
readonly prompt:
|
|
33
|
+
readonly prompt: Prompt;
|
|
18
34
|
readonly tools?: readonly string[];
|
|
19
35
|
readonly excludeTools?: readonly string[];
|
|
20
|
-
/** Caller-directed skills allowlist: resolved
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* and
|
|
24
|
-
readonly skills?:
|
|
36
|
+
/** Caller-directed skills allowlist: the resolved picks and the
|
|
37
|
+
* registry's known names. Rendered per descriptor by
|
|
38
|
+
* renderSkillsSelection (pi loads each pick with discovery off; claude
|
|
39
|
+
* and codex turn the complement off); muse refuses. */
|
|
40
|
+
readonly skills?: SkillsSelection;
|
|
25
41
|
readonly model?: string;
|
|
26
42
|
readonly autonomy?: boolean;
|
|
27
43
|
readonly effort?: string;
|
|
28
44
|
readonly sandbox?: string;
|
|
45
|
+
readonly contextWindow?: number;
|
|
29
46
|
readonly provider?: string;
|
|
30
47
|
readonly discovery?: DiscoveryOptions;
|
|
31
48
|
readonly write?: boolean;
|
|
@@ -43,11 +60,10 @@ export interface TurnOptions {
|
|
|
43
60
|
* harness argv; the CLI layer turns it into the prompt preamble and
|
|
44
61
|
* arms question-block detection. Undefined means the default: "ask". */
|
|
45
62
|
readonly questions?: import("./question.js").QuestionMode;
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
readonly
|
|
50
|
-
readonly access?: "read" | "write";
|
|
63
|
+
/** The merged toolMap (every harness, native plus tier), the one shape
|
|
64
|
+
* past option resolution (RFC-02 change 8). */
|
|
65
|
+
readonly toolMap?: ToolMap;
|
|
66
|
+
readonly access?: AccessValue;
|
|
51
67
|
}
|
|
52
68
|
export interface ResumeOptions extends TurnOptions {
|
|
53
69
|
readonly sessionId: string;
|
|
@@ -55,6 +71,16 @@ export interface ResumeOptions extends TurnOptions {
|
|
|
55
71
|
export type LaunchOptions = TurnOptions;
|
|
56
72
|
export declare const buildLaunchArgv: (h: HarnessDescriptor, opts: LaunchOptions) => string[];
|
|
57
73
|
export declare const buildResumeArgv: (h: HarnessDescriptor, opts: ResumeOptions) => string[];
|
|
74
|
+
/** What a spawn needs beyond the turn options: the session to resume, if
|
|
75
|
+
* any, and the raw passthrough tail (ADR 0003). */
|
|
76
|
+
export interface SpawnArgvOptions extends TurnOptions {
|
|
77
|
+
readonly resume?: string;
|
|
78
|
+
readonly passthrough?: readonly string[];
|
|
79
|
+
}
|
|
80
|
+
/** The argv a turn spawns: launch or resume per `resume`, then the
|
|
81
|
+
* passthrough tail after a bare separator. One owner, so the CLI's preview
|
|
82
|
+
* and the runner's spawn agree by construction (RFC-02 change 10). */
|
|
83
|
+
export declare const buildSpawnArgv: (h: HarnessDescriptor, opts: SpawnArgvOptions) => string[];
|
|
58
84
|
export interface SessionOptions {
|
|
59
85
|
readonly sessionId: string;
|
|
60
86
|
readonly model?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,20 @@ import { renderToolSelection } from "./tool-selection.js";
|
|
|
7
7
|
import { renderTurnOptions } from "./turn-options.js";
|
|
8
8
|
import { validateModel } from "./vocabulary.js";
|
|
9
9
|
export { ArgvRefusalError, buildRefusalMessage, REFUSAL_ISSUES } from "./refusal.js";
|
|
10
|
-
/**
|
|
10
|
+
/** The one accessor for the prompt's text, for builders, the runner, and
|
|
11
|
+
* redaction alike. */
|
|
12
|
+
export const promptTextOf = (opts) => typeof opts.prompt === "string" ? opts.prompt : opts.prompt.text;
|
|
13
|
+
/** The same prompt with new text: the composed form keeps its provenance. */
|
|
14
|
+
export const withPromptText = (prompt, text) => typeof prompt === "string" ? text : { ...prompt, text };
|
|
15
|
+
/** One guard for every builder that places a positional prompt: an
|
|
16
|
+
* implicit prompt may not start with '-' (it would be parsed as a flag),
|
|
17
|
+
* while an explicit one - `hcn run --prompt "-bad"` - passes. Selector
|
|
11
18
|
* hygiene (session ids) lives in session-id.ts; model selectors go through
|
|
12
19
|
* validateModel - both refuse, never sanitize. */
|
|
13
20
|
const assertCleanPrompt = (h, prompt) => {
|
|
14
|
-
if (prompt
|
|
21
|
+
if (typeof prompt !== "string" && prompt.explicit)
|
|
22
|
+
return;
|
|
23
|
+
if (promptTextOf({ prompt }).startsWith("-")) {
|
|
15
24
|
throw new ArgvRefusalError({
|
|
16
25
|
issue: "prompt-flag-injection",
|
|
17
26
|
harness: h.name,
|
|
@@ -20,25 +29,12 @@ const assertCleanPrompt = (h, prompt) => {
|
|
|
20
29
|
});
|
|
21
30
|
}
|
|
22
31
|
};
|
|
23
|
-
/**
|
|
24
|
-
* Variant that allows a leading '-' when the caller explicitly opted in via
|
|
25
|
-
* --prompt / --prompt-file. The positional guard still applies for implicit
|
|
26
|
-
* positional prompts, but an explicit opt-in bypasses it so `hcn run --prompt "-bad"`
|
|
27
|
-
* succeeds while `hcn run "-bad"` refuses. The caller must set
|
|
28
|
-
* `__explicitPrompt: true` on the options object when the prompt came from an
|
|
29
|
-
* explicit flag.
|
|
30
|
-
*/
|
|
31
|
-
const assertCleanPromptMaybe = (h, prompt, explicit) => {
|
|
32
|
-
if (explicit)
|
|
33
|
-
return;
|
|
34
|
-
assertCleanPrompt(h, prompt);
|
|
35
|
-
};
|
|
36
32
|
/** The shared tail of every headless-turn argv: prompt, stream flags, then
|
|
37
33
|
* validated selections, with the variadic tools flag LAST and fed exactly
|
|
38
34
|
* one joined token so nothing after it can be swallowed as a tool name. */
|
|
39
35
|
const turnTail = (h, opts) => {
|
|
40
|
-
|
|
41
|
-
const tail = [opts
|
|
36
|
+
assertCleanPrompt(h, opts.prompt);
|
|
37
|
+
const tail = [promptTextOf(opts), ...h.launch.streamFlags];
|
|
42
38
|
if (opts.model !== undefined) {
|
|
43
39
|
const validated = validateModel(h, opts.model);
|
|
44
40
|
if (!validated.ok) {
|
|
@@ -66,15 +62,14 @@ const turnTail = (h, opts) => {
|
|
|
66
62
|
tail.push(h.autonomy.flag);
|
|
67
63
|
}
|
|
68
64
|
if (opts.tools !== undefined || opts.excludeTools !== undefined) {
|
|
69
|
-
const perHarnessMap = opts.toolMap?.[h.name];
|
|
70
65
|
const rendered = renderToolSelection(h, {
|
|
71
66
|
include: opts.tools,
|
|
72
67
|
exclude: opts.excludeTools,
|
|
73
|
-
toolMap:
|
|
68
|
+
toolMap: opts.toolMap,
|
|
74
69
|
});
|
|
75
70
|
tail.push(...rendered.tokens);
|
|
76
71
|
}
|
|
77
|
-
if (opts.skills !== undefined
|
|
72
|
+
if (opts.skills !== undefined) {
|
|
78
73
|
tail.push(...renderSkillsSelection(h, opts.skills));
|
|
79
74
|
}
|
|
80
75
|
return tail;
|
|
@@ -123,6 +118,17 @@ export const buildResumeArgv = (h, opts) => {
|
|
|
123
118
|
...turnTail(h, opts),
|
|
124
119
|
];
|
|
125
120
|
};
|
|
121
|
+
/** The argv a turn spawns: launch or resume per `resume`, then the
|
|
122
|
+
* passthrough tail after a bare separator. One owner, so the CLI's preview
|
|
123
|
+
* and the runner's spawn agree by construction (RFC-02 change 10). */
|
|
124
|
+
export const buildSpawnArgv = (h, opts) => {
|
|
125
|
+
const base = opts.resume === undefined
|
|
126
|
+
? buildLaunchArgv(h, opts)
|
|
127
|
+
: buildResumeArgv(h, { ...opts, sessionId: opts.resume });
|
|
128
|
+
return opts.passthrough !== undefined && opts.passthrough.length > 0
|
|
129
|
+
? [...base, "--", ...opts.passthrough]
|
|
130
|
+
: base;
|
|
131
|
+
};
|
|
126
132
|
export const buildSessionArgv = (h, opts) => {
|
|
127
133
|
if (!h.sessionMode) {
|
|
128
134
|
const supported = Object.values(defaultDescriptors())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* payload-discriminated records - for the flat match/field spec that
|
|
11
11
|
* identity decoding uses.)
|
|
12
12
|
*/
|
|
13
|
-
import type { HarnessName } from "../knowledge/descriptor.js";
|
|
13
|
+
import type { HarnessName, LimitCode } from "../knowledge/descriptor.js";
|
|
14
14
|
export type ContentEvent = {
|
|
15
15
|
readonly kind: "token";
|
|
16
16
|
readonly text: string;
|
|
@@ -36,6 +36,15 @@ export type ContentEvent = {
|
|
|
36
36
|
} | {
|
|
37
37
|
readonly kind: "budget";
|
|
38
38
|
readonly detail: string;
|
|
39
|
+
}
|
|
40
|
+
/** A structured limit record on the stream (claude's rate_limit_event);
|
|
41
|
+
* the runner turns it into a limit-class failure. `resetsAt` is epoch
|
|
42
|
+
* milliseconds when the harness reported one. */
|
|
43
|
+
| {
|
|
44
|
+
readonly kind: "limit";
|
|
45
|
+
readonly code: LimitCode;
|
|
46
|
+
readonly detail: string;
|
|
47
|
+
readonly resetsAt?: number;
|
|
39
48
|
};
|
|
40
49
|
export declare const contentEventsOf: (harness: HarnessName, raw: unknown) => ContentEvent[];
|
|
41
50
|
//# sourceMappingURL=content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/interpretation/content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/interpretation/content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGzE,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACvD;;yCAEyC;GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACtD;;iDAEiD;GAC/C;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AA2LN,eAAO,MAAM,eAAe,YAAa,WAAW,OAAO,OAAO,KAAG,YAAY,EAIhF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asRecord } from "./shape.js";
|
|
1
|
+
import { asRecord, readPath as at } from "./shape.js";
|
|
2
2
|
/** Text of an array of `{type:"text", text}` content blocks. */
|
|
3
3
|
const textOfBlocks = (content) => Array.isArray(content)
|
|
4
4
|
? content
|
|
@@ -7,16 +7,6 @@ const textOfBlocks = (content) => Array.isArray(content)
|
|
|
7
7
|
.map((b) => (typeof b.text === "string" ? b.text : ""))
|
|
8
8
|
.join("")
|
|
9
9
|
: "";
|
|
10
|
-
const at = (record, path) => {
|
|
11
|
-
let cursor = record;
|
|
12
|
-
for (const seg of path.split(".")) {
|
|
13
|
-
const inner = asRecord(cursor);
|
|
14
|
-
if (inner === null)
|
|
15
|
-
return undefined;
|
|
16
|
-
cursor = inner[seg];
|
|
17
|
-
}
|
|
18
|
-
return cursor;
|
|
19
|
-
};
|
|
20
10
|
const claude = (r) => {
|
|
21
11
|
const events = [];
|
|
22
12
|
if (r.type === "assistant") {
|
|
@@ -53,6 +43,25 @@ const claude = (r) => {
|
|
|
53
43
|
const sub = typeof r.subtype === "string" ? r.subtype : "result error";
|
|
54
44
|
events.push({ kind: "error", message: `turn failed: ${sub}`, terminal: true });
|
|
55
45
|
}
|
|
46
|
+
else if (r.type === "rate_limit_event") {
|
|
47
|
+
// Only "rejected" is a limit; "allowed_warning" still serves the request.
|
|
48
|
+
// overageStatus is a separate billing signal, not a rate limit.
|
|
49
|
+
// resetsAt arrives in seconds; the event carries milliseconds. No wall
|
|
50
|
+
// clock is read.
|
|
51
|
+
const info = asRecord(r.rate_limit_info);
|
|
52
|
+
const status = info?.status;
|
|
53
|
+
if (status === "rejected") {
|
|
54
|
+
const raw = info?.resetsAt;
|
|
55
|
+
const milliseconds = typeof raw === "number" ? raw * 1000 : Number.NaN;
|
|
56
|
+
const resetsAt = Number.isFinite(milliseconds) && milliseconds > 0 ? milliseconds : undefined;
|
|
57
|
+
events.push({
|
|
58
|
+
kind: "limit",
|
|
59
|
+
code: "rate-limit",
|
|
60
|
+
detail: `rate_limit_event status=${String(status)}`,
|
|
61
|
+
...(resetsAt !== undefined ? { resetsAt } : {}),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
56
65
|
return events;
|
|
57
66
|
};
|
|
58
67
|
// codex item types that are NOT tool activity - everything else on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/interpretation/content.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/interpretation/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* stay-on-harness suggestion first. Wording is locked verbatim; unit tests
|
|
7
7
|
* pin every string.
|
|
8
8
|
*/
|
|
9
|
-
import type
|
|
9
|
+
import { type HarnessDescriptor } from "../knowledge/descriptor.js";
|
|
10
10
|
import type { RefusalOption } from "./refusal.js";
|
|
11
11
|
/** The confirmed hint for a refused option on a harness, or undefined. */
|
|
12
12
|
export declare const hintFor: (harness: string, option: RefusalOption) => string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../src/interpretation/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../src/interpretation/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA6ElD,0EAA0E;AAC1E,eAAO,MAAM,OAAO,YAAa,MAAM,UAAU,aAAa,KAAG,MAAM,GAAG,SAChD,CAAC;AAE3B;4BAC4B;AAC5B,eAAO,MAAM,QAAQ,QAAO,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM1F,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,MACzB,iBAAiB,UACZ,aAAa,KACpB,MAAM,GAAG,SAAoC,CAAC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Curated refusal hints (D8), confirmed in review 2026-08-18
|
|
3
|
+
* (test/fixtures/phase0/hints-confirmed.md is the durable record). A hint
|
|
4
|
+
* is the nearest-alternative control for the CURRENT harness, shown before
|
|
5
|
+
* the cross-harness support list so a scanning caller meets the
|
|
6
|
+
* stay-on-harness suggestion first. Wording is locked verbatim; unit tests
|
|
7
|
+
* pin every string.
|
|
8
|
+
*/
|
|
9
|
+
import { deepFreeze } from "../knowledge/descriptor.js";
|
|
10
|
+
const HINTS = deepFreeze({
|
|
2
11
|
claude: {
|
|
3
12
|
sandbox: "claude has no sandbox modes; approximate with a per-tool allowlist (--tools Read,Bash) or --disallowedTools to keep tools out, and run untrusted work in a disposable directory or container",
|
|
4
13
|
write: "claude has no write toggle; keep the Write tool out with --tools that omits it, or --disallowedTools Write for the deny-complement spelling",
|
|
@@ -41,16 +50,6 @@ const HINTS = deepFreezeSafe({
|
|
|
41
50
|
appendSystemPrompt: "muse has no system-prompt surface; its built-in prompt always applies - there is no replacement or append spelling (structural: nothing to approximate with)",
|
|
42
51
|
},
|
|
43
52
|
});
|
|
44
|
-
/** deepFreeze without importing the descriptor's (which carries extra
|
|
45
|
-
* machinery); structure is plain JSON so Object.freeze all the way down. */
|
|
46
|
-
function deepFreezeSafe(value) {
|
|
47
|
-
if (typeof value === "object" && value !== null) {
|
|
48
|
-
for (const v of Object.values(value))
|
|
49
|
-
deepFreezeSafe(v);
|
|
50
|
-
Object.freeze(value);
|
|
51
|
-
}
|
|
52
|
-
return value;
|
|
53
|
-
}
|
|
54
53
|
/** The confirmed hint for a refused option on a harness, or undefined. */
|
|
55
54
|
export const hintFor = (harness, option) => HINTS[harness]?.[option];
|
|
56
55
|
/** All hints - for the unit test that pins every string against the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hints.js","sourceRoot":"","sources":["../../src/interpretation/hints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hints.js","sourceRoot":"","sources":["../../src/interpretation/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAA0B,MAAM,4BAA4B,CAAC;AAGhF,MAAM,KAAK,GAA+D,UAAU,CAAC;IACnF,MAAM,EAAE;QACN,OAAO,EACL,8LAA8L;QAChM,KAAK,EACH,6IAA6I;QAC/I,KAAK,EACH,+JAA+J;QACjK,QAAQ,EACN,+IAA+I;QACjJ,QAAQ,EACN,mJAAmJ;QACrJ,iBAAiB,EACf,gIAAgI;QAClI,4BAA4B,EAC1B,2MAA2M;KAC9M;IACD,KAAK,EAAE;QACL,KAAK,EACH,wJAAwJ;QAC1J,YAAY,EACV,kHAAkH;QACpH,KAAK,EACH,iHAAiH;QACnH,oDAAoD;QACpD,kBAAkB,EAChB,4JAA4J;QAC9J,KAAK,EACH,wHAAwH;QAC1H,QAAQ,EACN,wGAAwG;QAC1G,QAAQ,EACN,iIAAiI;QACnI,iBAAiB,EACf,qHAAqH;QACvH,4BAA4B,EAC1B,0IAA0I;QAC5I,sBAAsB,EACpB,gIAAgI;QAClI,kBAAkB,EAChB,sNAAsN;KACzN;IACD,EAAE,EAAE;QACF,OAAO,EACL,oLAAoL;QACtL,KAAK,EACH,4GAA4G;QAC9G,KAAK,EACH,2GAA2G;QAC7G,QAAQ,EACN,oGAAoG;KACvG;IACD,IAAI,EAAE;QACJ,KAAK,EACH,oIAAoI;QACtI,YAAY,EACV,8HAA8H;QAChI,OAAO,EACL,wNAAwN;QAC1N,QAAQ,EACN,gHAAgH;QAClH,iBAAiB,EACf,6GAA6G;QAC/G,4BAA4B,EAC1B,uKAAuK;QACzK,kBAAkB,EAChB,iLAAiL;QACnL,yEAAyE;QACzE,YAAY,EACV,8JAA8J;QAChK,kBAAkB,EAChB,8JAA8J;KACjK;CACF,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,MAAqB,EAAsB,EAAE,CACpF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAE3B;4BAC4B;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAqE,EAAE;IAC7F,MAAM,GAAG,GAAwD,EAAE,CAAC;IACpE,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,CAAoB,EACpB,MAAqB,EACD,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interpretation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interpretation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interpretation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interpretation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -19,13 +19,10 @@
|
|
|
19
19
|
import type { AuthFailureKind, AuthMatcher, HarnessDescriptor, LimitCode, LimitMatcher } from "../knowledge/descriptor.js";
|
|
20
20
|
export declare const compileLimitMatchers: (matchers: ReadonlyArray<LimitMatcher>) => ReadonlyArray<readonly [RegExp, LimitCode]>;
|
|
21
21
|
export declare const compileAuthMatchers: (matchers: ReadonlyArray<AuthMatcher>) => ReadonlyArray<readonly [RegExp, AuthFailureKind]>;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
/** Per-line entry point for streaming readers: O(1) per line, no rescans.
|
|
23
|
+
* Both runners feed lines as they arrive; there is no batch form. */
|
|
24
24
|
export declare const detectLimitInLine: (h: HarnessDescriptor, line: string) => LimitCode | null;
|
|
25
|
-
/** Batch convenience over a turn's tail, bounded and bottom-up. */
|
|
26
|
-
export declare const detectLimit: (h: HarnessDescriptor, output: string) => LimitCode | null;
|
|
27
25
|
export declare const detectAuthFailureInLine: (h: HarnessDescriptor, line: string) => AuthFailureKind | null;
|
|
28
|
-
export declare const detectAuthFailure: (h: HarnessDescriptor, output: string) => AuthFailureKind | null;
|
|
29
26
|
/** A network or gateway fault between the harness and its provider. */
|
|
30
27
|
export declare const detectTransportInLine: (line: string) => boolean;
|
|
31
28
|
/** A provider that answered but cannot serve the requested model. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/interpretation/limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,YAAY,EAEb,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/interpretation/limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAsBpC,eAAO,MAAM,oBAAoB,aACrB,aAAa,CAAC,YAAY,CAAC,KACpC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAS5C,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,aAAa,CAAC,WAAW,CAAC,KACnC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CASlD,CAAC;AAcF;qEACqE;AACrE,eAAO,MAAM,iBAAiB,MAAO,iBAAiB,QAAQ,MAAM,KAAG,SAAS,GAAG,IACrB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,MAC/B,iBAAiB,QACd,MAAM,KACX,eAAe,GAAG,IAAkE,CAAC;AAoBxF,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,OACA,CAAC;AAEtD,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,SAAU,MAAM,KAAG,OACA,CAAC"}
|