@dungle-scrubs/harness-cli-normalizer 0.6.0 → 0.6.2
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 +33 -6
- package/dist/cli/args.d.ts +9 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +36 -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 +8 -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 +10 -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 +268 -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 +35 -43
- 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 +39 -12
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +28 -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/isolation.d.ts +10 -0
- package/dist/interpretation/isolation.d.ts.map +1 -0
- package/dist/interpretation/isolation.js +30 -0
- package/dist/interpretation/isolation.js.map +1 -0
- 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 +53 -22
- 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 +25 -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 +107 -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.d.ts +3 -1
- package/dist/knowledge/claude-code.d.ts.map +1 -1
- package/dist/knowledge/claude-code.js +17 -4
- 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 +50 -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 +13 -6
- 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 +39 -27
- package/src/cli/check.ts +10 -3
- package/src/cli/config.ts +14 -11
- package/src/cli/exit-codes.ts +0 -2
- package/src/cli/help.ts +10 -2
- package/src/cli/index.ts +3 -1
- package/src/cli/inspect.ts +88 -269
- package/src/cli/plan-turn.ts +350 -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 +51 -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 +65 -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/isolation.ts +39 -0
- 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 +98 -33
- 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 +21 -6
- package/src/interpretation/tool-selection.ts +67 -122
- package/src/interpretation/tool-vocabulary.ts +48 -53
- package/src/interpretation/turn-options.ts +125 -220
- package/src/interpretation/vocabulary.ts +15 -10
- package/src/knowledge/claude-code.ts +17 -4
- package/src/knowledge/codex.ts +31 -7
- package/src/knowledge/descriptor.ts +106 -49
- package/src/knowledge/matchers.ts +35 -0
- package/src/knowledge/muse.ts +13 -6
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-turn.d.ts","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"stream-turn.d.ts","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAmBrB;4BAC4B;AAC5B,eAAO,MAAM,aAAa,OAAQ,CAAC;AAWnC;;;;wDAIwD;AACxD,eAAO,MAAM,UAAU,SAAU,SAAS,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,EAQ3E,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;uDAEmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;kEAE8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;yEACqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC;;gDAE4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,wBAAuB,UAAU,CAC/B,CAAC,EAAE,iBAAiB,EACpB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,UAAU,GACf,aAAa,CAAC,YAAY,CAAC,CAwgB7B"}
|
|
@@ -8,24 +8,29 @@
|
|
|
8
8
|
* evidence, not diagnostics. An abandoned turn (consumer breaks early)
|
|
9
9
|
* closes backpressure, disposes output, stops the child, and awaits both
|
|
10
10
|
* pumps before it returns.
|
|
11
|
+
*
|
|
12
|
+
* The supervising policies - stall clock, signal escalation, stderr
|
|
13
|
+
* classification, question detection at close - are the turn supervisor's
|
|
14
|
+
* (RFC-02 change 5); this runner composes it and owns only what is
|
|
15
|
+
* particular to one-shot turns: the wall-clock deadline, the exit
|
|
16
|
+
* classification, and the identity-first event buffer.
|
|
11
17
|
*/
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { composeEscalatedPrompt, detectQuestionBlock, } from "../interpretation/question.js";
|
|
18
|
+
import { buildSpawnArgv, promptTextOf, streamingGranularityOf, withPromptText, } from "../interpretation/argv.js";
|
|
19
|
+
import { detectTransportInLine, detectUnavailableInLine } from "../interpretation/limits.js";
|
|
20
|
+
import { composeEscalatedPrompt } from "../interpretation/question.js";
|
|
16
21
|
import { ArgvRefusalError } from "../interpretation/refusal.js";
|
|
17
22
|
import { matcherOverridesOf } from "../knowledge/overrides.js";
|
|
18
23
|
import { AsyncChannel } from "./channel.js";
|
|
19
24
|
import { decodeLine, freshDecodeState } from "./decode.js";
|
|
20
|
-
import {
|
|
25
|
+
import { DROPPABLE_KINDS, } from "./events.js";
|
|
26
|
+
import { failureFromLimit, failureFromNative, failureFromRejected, failureFromTerminalError, failureFromTimeout, failureFromTransport, failureFromUnavailable, reduceFailures, } from "./failure.js";
|
|
21
27
|
import { LineBuffer } from "./lines.js";
|
|
28
|
+
import { StderrTail, superviseTurn } from "./supervisor.js";
|
|
22
29
|
/** Fallback correlation when the host does not mint turn ids: monotonic per
|
|
23
30
|
* process. Hosts that need cross-process uniqueness pass deps.turnId. */
|
|
24
31
|
let turnCounter = 0;
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* after the process itself exited. */
|
|
28
|
-
export const KILL_GRACE_MS = 5_000;
|
|
32
|
+
/** The grace allowed for pipes still held open (by a grandchild) after the
|
|
33
|
+
* process itself exited. */
|
|
29
34
|
export const PIPE_GRACE_MS = 2_000;
|
|
30
35
|
const OUTPUT_STREAMS = ["stdout", "stderr"];
|
|
31
36
|
const pumpFailureMessage = (stream, cause) => `${stream} pump failed: ${cause instanceof Error ? cause.message : String(cause)}`;
|
|
@@ -48,24 +53,6 @@ export const redactArgv = (argv, prompt) => {
|
|
|
48
53
|
return token;
|
|
49
54
|
});
|
|
50
55
|
};
|
|
51
|
-
/** Bounded tail of unmatched stderr - the crash context a nonzero exit is
|
|
52
|
-
* explained by (v1 kept the turn's output slice for exactly this). Shared
|
|
53
|
-
* with the session runner. */
|
|
54
|
-
export class StderrTail {
|
|
55
|
-
lines = [];
|
|
56
|
-
bytes = 0;
|
|
57
|
-
push(line) {
|
|
58
|
-
this.lines.push(line);
|
|
59
|
-
this.bytes += line.length;
|
|
60
|
-
while (this.lines.length > 20 || (this.bytes > 4096 && this.lines.length > 1)) {
|
|
61
|
-
const dropped = this.lines.shift();
|
|
62
|
-
this.bytes -= dropped?.length ?? 0;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
snapshot() {
|
|
66
|
-
return [...this.lines];
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
56
|
export async function* streamTurn(h, opts, deps) {
|
|
70
57
|
const turnId = deps.turnId ?? `turn-${++turnCounter}`;
|
|
71
58
|
const log = deps.log ?? (() => { });
|
|
@@ -73,11 +60,9 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
73
60
|
const questionMode = opts.questions ?? "ask";
|
|
74
61
|
const effective = {
|
|
75
62
|
...opts,
|
|
76
|
-
prompt:
|
|
63
|
+
prompt: withPromptText(opts.prompt, composeEscalatedPrompt(promptTextOf(opts), questionMode)),
|
|
77
64
|
};
|
|
78
|
-
|
|
79
|
-
// hcn-question block lives. Tracked only when detection is armed.
|
|
80
|
-
let lastAssistantText = null;
|
|
65
|
+
const promptText = promptTextOf(effective);
|
|
81
66
|
let asked = false;
|
|
82
67
|
let escalationDetection = "none";
|
|
83
68
|
// Validate env before building argv so an invalid env is a refusal, not a spawn
|
|
@@ -102,7 +87,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
102
87
|
harness: h.name,
|
|
103
88
|
issue: refusal.issue,
|
|
104
89
|
supported: refusal.supported,
|
|
105
|
-
argv: redactArgv([],
|
|
90
|
+
argv: redactArgv([], promptText),
|
|
106
91
|
});
|
|
107
92
|
yield { kind: "failure", ...failure };
|
|
108
93
|
yield {
|
|
@@ -119,19 +104,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
119
104
|
let argv;
|
|
120
105
|
let granularity;
|
|
121
106
|
try {
|
|
122
|
-
argv =
|
|
123
|
-
effective.resume === undefined
|
|
124
|
-
? buildLaunchArgv(h, effective)
|
|
125
|
-
: buildResumeArgv(h, { ...effective, sessionId: effective.resume });
|
|
126
|
-
if (effective.passthrough !== undefined && effective.passthrough.length > 0) {
|
|
127
|
-
argv = [...argv, "--", ...effective.passthrough];
|
|
128
|
-
}
|
|
129
|
-
// issue #38: claude/codex render the skills allowlist as complement-off
|
|
130
|
-
// tokens at the argv tail (claude: settings JSON; codex: -c skills.config).
|
|
131
|
-
const skillTokens = opts.__skillTokens;
|
|
132
|
-
if (skillTokens !== undefined && skillTokens.length > 0) {
|
|
133
|
-
argv = [...argv, ...skillTokens];
|
|
134
|
-
}
|
|
107
|
+
argv = buildSpawnArgv(h, effective);
|
|
135
108
|
granularity = streamingGranularityOf(h, argv);
|
|
136
109
|
}
|
|
137
110
|
catch (e) {
|
|
@@ -148,7 +121,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
148
121
|
// No process spawned on a refusal - log rejected instead of spawn
|
|
149
122
|
let argvForLog = [];
|
|
150
123
|
try {
|
|
151
|
-
argvForLog = redactArgv([],
|
|
124
|
+
argvForLog = redactArgv([], promptText);
|
|
152
125
|
}
|
|
153
126
|
catch { }
|
|
154
127
|
log({
|
|
@@ -179,7 +152,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
179
152
|
event: "spawn",
|
|
180
153
|
turnId,
|
|
181
154
|
harness: h.name,
|
|
182
|
-
argv: redactArgv(argv,
|
|
155
|
+
argv: redactArgv(argv, promptText),
|
|
183
156
|
granularity,
|
|
184
157
|
...(matcherOverrides ? { matcherOverrides } : {}),
|
|
185
158
|
...(envKeys?.length ? { envKeys } : {}),
|
|
@@ -194,7 +167,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
194
167
|
let proc;
|
|
195
168
|
try {
|
|
196
169
|
proc = deps.spawn(argv, {
|
|
197
|
-
stdin:
|
|
170
|
+
stdin: h.stdin === "close-required" ? "close" : "inherit",
|
|
198
171
|
...(effective.cwd !== undefined ? { cwd: effective.cwd } : {}),
|
|
199
172
|
...(effective.env !== undefined ? { env: effective.env } : {}),
|
|
200
173
|
});
|
|
@@ -237,37 +210,6 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
237
210
|
let pipesOpenAtExit = false;
|
|
238
211
|
let cancelled = false;
|
|
239
212
|
let terminalEventReached = false;
|
|
240
|
-
const safeSignal = (sig) => {
|
|
241
|
-
if (!exited)
|
|
242
|
-
deps.signal(proc, sig);
|
|
243
|
-
};
|
|
244
|
-
let escalationTimer = null;
|
|
245
|
-
const escalate = () => {
|
|
246
|
-
if (exited || escalationTimer !== null)
|
|
247
|
-
return;
|
|
248
|
-
safeSignal("SIGTERM");
|
|
249
|
-
escalationTimer = deps.clock.setTimeout(() => {
|
|
250
|
-
escalationTimer = null;
|
|
251
|
-
safeSignal("SIGKILL");
|
|
252
|
-
}, KILL_GRACE_MS);
|
|
253
|
-
};
|
|
254
|
-
let abortHandler = null;
|
|
255
|
-
if (opts.signal) {
|
|
256
|
-
const onAbort = () => {
|
|
257
|
-
if (killedByAbort)
|
|
258
|
-
return;
|
|
259
|
-
killedByAbort = true;
|
|
260
|
-
escalate();
|
|
261
|
-
};
|
|
262
|
-
if (opts.signal.aborted) {
|
|
263
|
-
killedByAbort = true;
|
|
264
|
-
escalate();
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
opts.signal.addEventListener("abort", onAbort, { once: true });
|
|
268
|
-
abortHandler = onAbort;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
213
|
const failures = [];
|
|
272
214
|
const pushFailure = async (f) => {
|
|
273
215
|
// Suppress a failure identical in class and message to the previous one
|
|
@@ -277,23 +219,27 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
277
219
|
failures.push(f);
|
|
278
220
|
await queue.push({ kind: "failure", ...f });
|
|
279
221
|
};
|
|
280
|
-
|
|
222
|
+
// The wall-clock deadline is this runner's own: a session has none.
|
|
281
223
|
let turnDeadline = null;
|
|
282
224
|
let watchdogReason = null;
|
|
283
|
-
const
|
|
284
|
-
if (watchdog !== null)
|
|
285
|
-
deps.clock.clearTimeout(watchdog);
|
|
286
|
-
watchdog = null;
|
|
225
|
+
const disarmDeadline = () => {
|
|
287
226
|
if (turnDeadline !== null)
|
|
288
227
|
deps.clock.clearTimeout(turnDeadline);
|
|
289
228
|
turnDeadline = null;
|
|
290
229
|
};
|
|
291
|
-
const
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
230
|
+
const sup = superviseTurn(h, questionMode, {
|
|
231
|
+
clock: deps.clock,
|
|
232
|
+
stallMs: deps.stallMs,
|
|
233
|
+
signal: (sig) => deps.signal(proc, sig),
|
|
234
|
+
emit: async (event) => {
|
|
235
|
+
// A wall read on stderr counts like one decoded from stdout.
|
|
236
|
+
if (event.kind === "limit")
|
|
237
|
+
state.limitSeen = true;
|
|
238
|
+
await queue.push(event);
|
|
239
|
+
},
|
|
240
|
+
fail: pushFailure,
|
|
241
|
+
tail: stderrTail,
|
|
242
|
+
onStall: () => {
|
|
297
243
|
killedByWatchdog = true;
|
|
298
244
|
watchdogReason = "inactivity";
|
|
299
245
|
log({
|
|
@@ -304,15 +250,31 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
304
250
|
budgetMs: deps.stallMs,
|
|
305
251
|
});
|
|
306
252
|
// Disarm the other budget
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
253
|
+
disarmDeadline();
|
|
254
|
+
},
|
|
255
|
+
onQuestion: (options) => {
|
|
256
|
+
log({ event: "question", turnId, harness: h.name, options });
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
let abortHandler = null;
|
|
260
|
+
if (opts.signal) {
|
|
261
|
+
const onAbort = () => {
|
|
262
|
+
if (killedByAbort)
|
|
263
|
+
return;
|
|
264
|
+
killedByAbort = true;
|
|
265
|
+
sup.escalate();
|
|
266
|
+
};
|
|
267
|
+
if (opts.signal.aborted) {
|
|
268
|
+
killedByAbort = true;
|
|
269
|
+
sup.escalate();
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
opts.signal.addEventListener("abort", onAbort, { once: true });
|
|
273
|
+
abortHandler = onAbort;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
314
276
|
// Arm both budgets
|
|
315
|
-
|
|
277
|
+
sup.beginTurn();
|
|
316
278
|
if (deps.turnTimeoutMs !== undefined) {
|
|
317
279
|
turnDeadline = deps.clock.setTimeout(() => {
|
|
318
280
|
killedByWatchdog = true;
|
|
@@ -324,23 +286,19 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
324
286
|
reason: "turn-deadline",
|
|
325
287
|
budgetMs: deps.turnTimeoutMs,
|
|
326
288
|
});
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
watchdog = null;
|
|
330
|
-
}
|
|
331
|
-
escalate();
|
|
289
|
+
sup.disarm();
|
|
290
|
+
sup.escalate();
|
|
332
291
|
}, deps.turnTimeoutMs);
|
|
333
292
|
}
|
|
334
293
|
let pipeGrace = null;
|
|
335
294
|
void proc.exited.then((code) => {
|
|
336
295
|
exited = true;
|
|
337
296
|
exitCode = code;
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
disarm();
|
|
297
|
+
// The process is gone: no signal, no pending escalation, no stall
|
|
298
|
+
// clock - a fire after this point would flip a completed turn to
|
|
299
|
+
// "stall".
|
|
300
|
+
sup.settle();
|
|
301
|
+
disarmDeadline();
|
|
344
302
|
// Pipes held open past exit (a grandchild inherited the fd) must not
|
|
345
303
|
// hang the turn forever - close out with the exit code in hand.
|
|
346
304
|
if (cancelled)
|
|
@@ -355,7 +313,6 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
355
313
|
let identitySeen = false;
|
|
356
314
|
const droppableBuffer = [];
|
|
357
315
|
const BUFFER_CAP = 256;
|
|
358
|
-
const isDroppable = (kind) => kind === "progress" || kind === "token" || kind === "context";
|
|
359
316
|
const flushDroppable = async () => {
|
|
360
317
|
for (const e of droppableBuffer)
|
|
361
318
|
await queue.push(e);
|
|
@@ -369,7 +326,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
369
326
|
await flushDroppable();
|
|
370
327
|
return;
|
|
371
328
|
}
|
|
372
|
-
if (
|
|
329
|
+
if (DROPPABLE_KINDS.has(event.kind)) {
|
|
373
330
|
if (droppableBuffer.length >= BUFFER_CAP)
|
|
374
331
|
droppableBuffer.shift();
|
|
375
332
|
droppableBuffer.push(event);
|
|
@@ -396,17 +353,14 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
396
353
|
await pushFailure(failureFromTerminalError(h, event.message));
|
|
397
354
|
return;
|
|
398
355
|
}
|
|
399
|
-
|
|
400
|
-
lastAssistantText = event.text;
|
|
401
|
-
}
|
|
356
|
+
sup.noteEvent(event);
|
|
402
357
|
await queue.push(event);
|
|
403
358
|
};
|
|
404
359
|
for await (const chunk of proc.stdout) {
|
|
405
360
|
if (cancelled)
|
|
406
361
|
break;
|
|
407
362
|
// Any output chunk rearms the inactivity budget, but not the wall-clock deadline
|
|
408
|
-
|
|
409
|
-
rearm();
|
|
363
|
+
sup.rearm();
|
|
410
364
|
for (const line of lines.push(chunk)) {
|
|
411
365
|
for (const event of decodeLine(h, line, state, opts.model ?? "", granularity)) {
|
|
412
366
|
await handleEvent(event);
|
|
@@ -424,76 +378,14 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
424
378
|
await flushDroppable();
|
|
425
379
|
}
|
|
426
380
|
};
|
|
427
|
-
/** issue #41: scan the last assistant message for the hcn-question
|
|
428
|
-
* block. Structured-first - the block's fields become the event; no
|
|
429
|
-
* prose parsing. Runs after the pumps settle (the last message is only
|
|
430
|
-
* last then) and only when detection is armed (questions ask).
|
|
431
|
-
* A malformed block surfaces as an error event, never a silent
|
|
432
|
-
* no-op. */
|
|
433
|
-
const emitQuestionIfAsked = async () => {
|
|
434
|
-
if (questionMode !== "ask" || lastAssistantText === null) {
|
|
435
|
-
escalationDetection = "none";
|
|
436
|
-
return;
|
|
437
|
-
}
|
|
438
|
-
const detection = detectQuestionBlock(lastAssistantText);
|
|
439
|
-
if (detection === null) {
|
|
440
|
-
escalationDetection = "none";
|
|
441
|
-
return;
|
|
442
|
-
}
|
|
443
|
-
if ("malformed" in detection) {
|
|
444
|
-
escalationDetection = "malformed";
|
|
445
|
-
await queue.push({ kind: "error", message: detection.malformed });
|
|
446
|
-
await pushFailure(failureFromTask(`malformed hcn-question block: ${detection.malformed}`));
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
escalationDetection = "block";
|
|
450
|
-
log({
|
|
451
|
-
event: "question",
|
|
452
|
-
turnId,
|
|
453
|
-
harness: h.name,
|
|
454
|
-
options: detection.block.options.length,
|
|
455
|
-
});
|
|
456
|
-
asked = true;
|
|
457
|
-
await queue.push({
|
|
458
|
-
kind: "question",
|
|
459
|
-
question: detection.block.question,
|
|
460
|
-
options: detection.block.options,
|
|
461
|
-
...(detection.block.recommended !== undefined
|
|
462
|
-
? { recommended: detection.block.recommended }
|
|
463
|
-
: {}),
|
|
464
|
-
});
|
|
465
|
-
};
|
|
466
381
|
const pumpStderr = async () => {
|
|
467
382
|
const lines = new LineBuffer();
|
|
468
383
|
for await (const chunk of proc.stderr) {
|
|
469
384
|
if (cancelled)
|
|
470
385
|
break;
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
const limit = detectLimitInLine(h, line);
|
|
475
|
-
if (limit !== null) {
|
|
476
|
-
state.limitSeen = true;
|
|
477
|
-
const failure = failureFromLimit(limit);
|
|
478
|
-
// Emit both limit (for 0.1.3 compat) and failure
|
|
479
|
-
await queue.push({
|
|
480
|
-
kind: "limit",
|
|
481
|
-
code: limit,
|
|
482
|
-
message: `limit wall detected (${limit})`,
|
|
483
|
-
});
|
|
484
|
-
await pushFailure(failure);
|
|
485
|
-
continue;
|
|
486
|
-
}
|
|
487
|
-
const auth = detectAuthFailureInLine(h, line);
|
|
488
|
-
if (auth !== null) {
|
|
489
|
-
const failure = failureFromAuth(auth);
|
|
490
|
-
await pushFailure(failure);
|
|
491
|
-
// Emit error alongside failure for 0.1.3 compat
|
|
492
|
-
await queue.push({ kind: "error", message: `auth wall: ${auth}` });
|
|
493
|
-
continue;
|
|
494
|
-
}
|
|
495
|
-
stderrTail.push(line);
|
|
496
|
-
}
|
|
386
|
+
sup.rearm();
|
|
387
|
+
for (const line of lines.push(chunk))
|
|
388
|
+
await sup.stderrLine(line);
|
|
497
389
|
}
|
|
498
390
|
};
|
|
499
391
|
const observePump = async (stream, pump) => {
|
|
@@ -510,7 +402,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
510
402
|
});
|
|
511
403
|
await queue.push({ kind: "error", message: pumpFailureMessage(stream, cause) });
|
|
512
404
|
await pushFailure(failureFromTransport(pumpFailureMessage(stream, cause)));
|
|
513
|
-
escalate();
|
|
405
|
+
sup.escalate();
|
|
514
406
|
await proc.exited;
|
|
515
407
|
proc.disposeOutput();
|
|
516
408
|
}
|
|
@@ -519,8 +411,14 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
519
411
|
observePump("stdout", pumpStdout()),
|
|
520
412
|
observePump("stderr", pumpStderr()),
|
|
521
413
|
]);
|
|
414
|
+
// issue #41: the turn closes after the pumps settle (the last message is
|
|
415
|
+
// only last then); the supervisor detects the block and emits it.
|
|
522
416
|
void Promise.all([proc.exited, pumpSettlements])
|
|
523
|
-
.then(() =>
|
|
417
|
+
.then(() => {
|
|
418
|
+
const close = sup.close();
|
|
419
|
+
escalationDetection = close.detection;
|
|
420
|
+
asked = close.asked;
|
|
421
|
+
})
|
|
524
422
|
.then(() => queue.close());
|
|
525
423
|
try {
|
|
526
424
|
for await (const event of queue)
|
|
@@ -647,11 +545,12 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
647
545
|
const abandoned = !terminalEventReached;
|
|
648
546
|
cancelled = true;
|
|
649
547
|
queue.close();
|
|
650
|
-
disarm();
|
|
548
|
+
sup.disarm();
|
|
549
|
+
disarmDeadline();
|
|
651
550
|
if (abandoned) {
|
|
652
551
|
log({ event: "abandoned", turnId, harness: h.name });
|
|
653
552
|
if (!exited)
|
|
654
|
-
escalate();
|
|
553
|
+
sup.escalate();
|
|
655
554
|
}
|
|
656
555
|
proc.disposeOutput();
|
|
657
556
|
const [settledExit] = await Promise.all([proc.exited, pumpSettlements]);
|
|
@@ -659,9 +558,7 @@ export async function* streamTurn(h, opts, deps) {
|
|
|
659
558
|
if (pipeGrace !== null)
|
|
660
559
|
deps.clock.clearTimeout(pipeGrace);
|
|
661
560
|
pipeGrace = null;
|
|
662
|
-
|
|
663
|
-
deps.clock.clearTimeout(escalationTimer);
|
|
664
|
-
escalationTimer = null;
|
|
561
|
+
sup.settle();
|
|
665
562
|
if (abandoned) {
|
|
666
563
|
log({
|
|
667
564
|
event: "abandonment_settled",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-turn.js","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stream-turn.js","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type QuestionDetectionKind, type QuestionMode } from "../interpretation/question.js";
|
|
2
|
+
import type { HarnessDescriptor } from "../knowledge/descriptor.js";
|
|
3
|
+
import type { Clock, SignalName } from "./deps.js";
|
|
4
|
+
import type { HarnessEvent } from "./events.js";
|
|
5
|
+
import { type FailureSummary } from "./failure.js";
|
|
6
|
+
/** SIGTERM -> SIGKILL escalation budget for a child that ignores the first
|
|
7
|
+
* signal. */
|
|
8
|
+
export declare const KILL_GRACE_MS = 5000;
|
|
9
|
+
/** Bounded tail of unmatched stderr - the crash context a nonzero exit is
|
|
10
|
+
* explained by (v1 kept the turn's output slice for exactly this). */
|
|
11
|
+
export declare class StderrTail {
|
|
12
|
+
private readonly lines;
|
|
13
|
+
private bytes;
|
|
14
|
+
push(line: string): void;
|
|
15
|
+
snapshot(): readonly string[];
|
|
16
|
+
}
|
|
17
|
+
export interface SupervisorIo {
|
|
18
|
+
readonly clock: Clock;
|
|
19
|
+
/** Inactivity budget; undefined means no stall clock at all. */
|
|
20
|
+
readonly stallMs: number | undefined;
|
|
21
|
+
/** Signal the supervised process. The supervisor never signals after
|
|
22
|
+
* `settle()`. */
|
|
23
|
+
readonly signal: (sig: SignalName) => void;
|
|
24
|
+
/** Deliver an event to the turn's consumer. */
|
|
25
|
+
readonly emit: (event: HarnessEvent) => Promise<void>;
|
|
26
|
+
/** Record a failure for the turn's done AND deliver it as an event. */
|
|
27
|
+
readonly fail: (summary: FailureSummary) => Promise<void>;
|
|
28
|
+
/** Where unclassified stderr goes. */
|
|
29
|
+
readonly tail: StderrTail;
|
|
30
|
+
/** The stall clock fired: the runner records its own cause and ends the
|
|
31
|
+
* turn; the supervisor has already begun escalation. */
|
|
32
|
+
readonly onStall: () => void;
|
|
33
|
+
/** A question was detected at close, with its option count (for the
|
|
34
|
+
* runner's boundary log). */
|
|
35
|
+
readonly onQuestion: (optionCount: number) => void;
|
|
36
|
+
}
|
|
37
|
+
export interface TurnClose {
|
|
38
|
+
readonly detection: QuestionDetectionKind;
|
|
39
|
+
/** True when the turn ended by asking: a successful turn, cause
|
|
40
|
+
* awaiting-input. */
|
|
41
|
+
readonly asked: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface TurnSupervisor {
|
|
44
|
+
/** Start a turn: reset per-turn state and arm the stall clock. */
|
|
45
|
+
beginTurn(): void;
|
|
46
|
+
/** Any output chunk arrived: restart the inactivity budget, if a turn is
|
|
47
|
+
* open and a budget exists. */
|
|
48
|
+
rearm(): void;
|
|
49
|
+
/** The turn ended, or the process did: stop the stall clock. */
|
|
50
|
+
disarm(): void;
|
|
51
|
+
/** SIGTERM now, SIGKILL after KILL_GRACE_MS unless the process exits.
|
|
52
|
+
* Idempotent while an escalation is pending. */
|
|
53
|
+
escalate(): void;
|
|
54
|
+
/** The process is gone: no further signals, no pending escalation, no
|
|
55
|
+
* stall clock. */
|
|
56
|
+
settle(): void;
|
|
57
|
+
/** Classify one stderr line: a limit wall becomes a limit event plus a
|
|
58
|
+
* failure, an auth wall a failure plus an error event, anything else
|
|
59
|
+
* goes to the tail. Returns the limit code when the line was a limit. */
|
|
60
|
+
stderrLine(line: string): Promise<void>;
|
|
61
|
+
/** A decoded event passed by: the last assistant message is where the
|
|
62
|
+
* protocol says the hcn-question block lives (tracked in ask mode). */
|
|
63
|
+
noteEvent(event: HarnessEvent): void;
|
|
64
|
+
/** At turn end: detect the block in the last assistant message, emit the
|
|
65
|
+
* question (or the malformation as an error plus a task failure), and
|
|
66
|
+
* report what was found. Synchronous: the events are enqueued, not
|
|
67
|
+
* awaited, so a runner can close a turn from a timer callback. */
|
|
68
|
+
close(): TurnClose;
|
|
69
|
+
}
|
|
70
|
+
export declare const superviseTurn: (h: HarnessDescriptor, questionMode: QuestionMode, io: SupervisorIo) => TurnSupervisor;
|
|
71
|
+
//# sourceMappingURL=supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/execution/supervisor.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAe,MAAM,WAAW,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,cAAc,CAAC;AAEtB;aACa;AACb,eAAO,MAAM,aAAa,OAAQ,CAAC;AAEnC;sEACsE;AACtE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOvB;IACD,QAAQ,IAAI,SAAS,MAAM,EAAE,CAE5B;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;qBACiB;IACjB,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;4DACwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B;iCAC6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C;yBACqB;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,SAAS,IAAI,IAAI,CAAC;IAClB;mCAC+B;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,gEAAgE;IAChE,MAAM,IAAI,IAAI,CAAC;IACf;oDACgD;IAChD,QAAQ,IAAI,IAAI,CAAC;IACjB;sBACkB;IAClB,MAAM,IAAI,IAAI,CAAC;IACf;;6EAEyE;IACzE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC;2EACuE;IACvE,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC;;;sEAGkE;IAClE,KAAK,IAAI,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,MACrB,iBAAiB,gBACN,YAAY,MACtB,YAAY,KACf,cA2FF,CAAC"}
|