@dungle-scrubs/harness-cli-normalizer 0.5.7 → 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 +25 -8
- 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 +3 -3
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +9 -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 +27 -45
- 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 +6 -1
- package/dist/execution/open-session.d.ts.map +1 -1
- package/dist/execution/open-session.js +151 -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 +44 -12
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +38 -24
- 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 +9 -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 +36 -45
- 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 +160 -228
- package/src/execution/stream-turn.ts +90 -193
- package/src/execution/supervisor.ts +199 -0
- package/src/interpretation/argv.ts +86 -38
- 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
|
@@ -10,17 +10,24 @@
|
|
|
10
10
|
* silently dropped. Structured lifecycle events (session open/close, turn
|
|
11
11
|
* start/end, send dispositions, drops) are always-on evidence with
|
|
12
12
|
* sessionId + turnId correlation.
|
|
13
|
+
*
|
|
14
|
+
* The supervising policies - stall clock, signal escalation, stderr
|
|
15
|
+
* classification, question detection at close - are the turn supervisor's
|
|
16
|
+
* (RFC-02 change 5), composed once per session and begun per turn. This
|
|
17
|
+
* runner owns only what is particular to sessions: turn delimiting, the
|
|
18
|
+
* send correlation, and the close-versus-abandon distinction.
|
|
13
19
|
*/
|
|
14
20
|
import { buildSessionArgv } from "../interpretation/argv.js";
|
|
15
21
|
import { capabilitiesOf } from "../interpretation/capabilities.js";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { encodeSessionInput, resolveSessionInput, SessionInputRefusalError, } from "../interpretation/session-input.js";
|
|
22
|
+
import { composeEscalatedPrompt } from "../interpretation/question.js";
|
|
23
|
+
import { decodeSessionRecord, encodeIdentityProbe, encodeSessionInput, resolveSessionInput, SessionInputRefusalError, } from "../interpretation/session-input.js";
|
|
19
24
|
import { AsyncChannel } from "./channel.js";
|
|
20
|
-
import { decodeParsed, freshDecodeState } from "./decode.js";
|
|
21
|
-
import {
|
|
25
|
+
import { decodeLine, decodeParsed, freshDecodeState } from "./decode.js";
|
|
26
|
+
import { DROPPABLE_KINDS, } from "./events.js";
|
|
27
|
+
import { failureFromLimit, failureFromTerminalError, failureFromTransport, reduceFailures, } from "./failure.js";
|
|
22
28
|
import { LineBuffer } from "./lines.js";
|
|
23
|
-
import {
|
|
29
|
+
import { PIPE_GRACE_MS, redactArgv } from "./stream-turn.js";
|
|
30
|
+
import { StderrTail, superviseTurn } from "./supervisor.js";
|
|
24
31
|
/** Grace after stdin EOF before concluding the child will not exit on its
|
|
25
32
|
* own and escalating signals. */
|
|
26
33
|
export const CLOSE_GRACE_MS = 5_000;
|
|
@@ -42,6 +49,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
42
49
|
const argv = buildSessionArgv(h, {
|
|
43
50
|
sessionId: opts.sessionId,
|
|
44
51
|
...(opts.model !== undefined ? { model: opts.model } : {}),
|
|
52
|
+
...(opts.effort !== undefined ? { effort: opts.effort } : {}),
|
|
45
53
|
...(opts.provider !== undefined ? { provider: opts.provider } : {}),
|
|
46
54
|
...(opts.isResume !== undefined ? { isResume: opts.isResume } : {}),
|
|
47
55
|
});
|
|
@@ -113,42 +121,25 @@ export const openSession = (h, opts, deps) => {
|
|
|
113
121
|
let turnLimitSeen = false;
|
|
114
122
|
let turnFailures = [];
|
|
115
123
|
let pumpError = null;
|
|
116
|
-
// issue #44: the active turn
|
|
117
|
-
//
|
|
118
|
-
let lastAssistantText = null;
|
|
124
|
+
// issue #44: whether the active turn ended by asking, and what its close
|
|
125
|
+
// detected.
|
|
119
126
|
let turnAsked = false;
|
|
120
127
|
let turnEscalationDetection = "none";
|
|
121
128
|
let identityAnnounced = false;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
deps.signal(proc, sig);
|
|
125
|
-
};
|
|
126
|
-
const escalate = () => {
|
|
127
|
-
safeSignal("SIGTERM");
|
|
128
|
-
deps.clock.setTimeout(() => safeSignal("SIGKILL"), KILL_GRACE_MS);
|
|
129
|
-
};
|
|
130
|
-
// Per-turn inactivity budget. A session turn can hang with the process
|
|
131
|
-
// alive and the pipes open, which no exit code reports; without this the
|
|
132
|
-
// consumer waits forever. Armed at turn start, rearmed on any output
|
|
133
|
-
// chunk, disarmed at turn end and at exit - the same discipline
|
|
134
|
-
// streamTurn uses, scoped to the turn rather than the process.
|
|
135
|
-
let stallTimer = null;
|
|
129
|
+
// A stall killed the process on purpose, so the signal death it caused
|
|
130
|
+
// reports as "stall", not "killed".
|
|
136
131
|
let stalled = false;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
// running. Without this guard a clean turn that finished near the
|
|
149
|
-
// budget would be reported as a stall and the child signalled.
|
|
150
|
-
if (activeTurn === null)
|
|
151
|
-
return;
|
|
132
|
+
// The supervisor spans the session; each turn begins and ends on it. A
|
|
133
|
+
// session turn can hang with the process alive and the pipes open, which
|
|
134
|
+
// no exit code reports; the stall clock is what bounds that wait.
|
|
135
|
+
const sup = superviseTurn(h, questionMode, {
|
|
136
|
+
clock: deps.clock,
|
|
137
|
+
stallMs: deps.stallMs,
|
|
138
|
+
signal: (sig) => deps.signal(proc, sig),
|
|
139
|
+
emit: (event) => routeEvent(event),
|
|
140
|
+
fail: (summary) => pushFailure(summary),
|
|
141
|
+
tail: stderrTail,
|
|
142
|
+
onStall: () => {
|
|
152
143
|
stalled = true;
|
|
153
144
|
log({
|
|
154
145
|
event: "stall",
|
|
@@ -162,9 +153,17 @@ export const openSession = (h, opts, deps) => {
|
|
|
162
153
|
// the exit path then closes the session with the same cause.
|
|
163
154
|
void pushFailure(failureFromTransport("stalled: inactivity"));
|
|
164
155
|
endTurn({ kind: "done", exitCode: null, cause: "stall" });
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
156
|
+
},
|
|
157
|
+
onQuestion: (options) => {
|
|
158
|
+
log({
|
|
159
|
+
event: "question",
|
|
160
|
+
sessionId: opts.sessionId,
|
|
161
|
+
turnId: activeTurnId,
|
|
162
|
+
harness: h.name,
|
|
163
|
+
options,
|
|
164
|
+
});
|
|
165
|
+
},
|
|
166
|
+
});
|
|
168
167
|
const writeUser = (text) => {
|
|
169
168
|
try {
|
|
170
169
|
stdin.write(encodeSessionInput(sessionInput, composeEscalatedPrompt(text, questionMode, "session")));
|
|
@@ -177,7 +176,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
177
176
|
// very signal that stops it. The exit path then finalizes as usual.
|
|
178
177
|
void routeEvent({ kind: "error", message: "send failed: session stdin is gone" });
|
|
179
178
|
closing = true;
|
|
180
|
-
escalate();
|
|
179
|
+
sup.escalate();
|
|
181
180
|
return false;
|
|
182
181
|
}
|
|
183
182
|
};
|
|
@@ -191,7 +190,6 @@ export const openSession = (h, opts, deps) => {
|
|
|
191
190
|
turnFailures = [];
|
|
192
191
|
turnAsked = false;
|
|
193
192
|
turnEscalationDetection = "none";
|
|
194
|
-
lastAssistantText = null;
|
|
195
193
|
activeTurn = new AsyncChannel();
|
|
196
194
|
activeTurnId = `${opts.sessionId}:turn-${++turnCounter}`;
|
|
197
195
|
// Tag the turn with the id of the send that opened it, so the consumer
|
|
@@ -206,57 +204,21 @@ export const openSession = (h, opts, deps) => {
|
|
|
206
204
|
activeTurn.push(held);
|
|
207
205
|
}
|
|
208
206
|
turnsChannel.push(activeTurn);
|
|
209
|
-
|
|
210
|
-
};
|
|
211
|
-
/** issue #44: at a turn boundary, scan the last assistant message for
|
|
212
|
-
* the hcn-question block - same structured-first discipline and
|
|
213
|
-
* last-message rule as streamTurn. The question event lands in the
|
|
214
|
-
* turn stream right before its done; a malformed block surfaces as an
|
|
215
|
-
* error event, never a silent no-op. */
|
|
216
|
-
const emitQuestionIfAsked = () => {
|
|
217
|
-
if (questionMode !== "ask" || lastAssistantText === null) {
|
|
218
|
-
turnEscalationDetection = "none";
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
const detection = detectQuestionBlock(lastAssistantText);
|
|
222
|
-
if (detection === null) {
|
|
223
|
-
turnEscalationDetection = "none";
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if ("malformed" in detection) {
|
|
227
|
-
turnEscalationDetection = "malformed";
|
|
228
|
-
activeTurn?.push({ kind: "error", message: detection.malformed });
|
|
229
|
-
const failure = failureFromTask(`malformed hcn-question block: ${detection.malformed}`);
|
|
230
|
-
turnFailures.push(failure);
|
|
231
|
-
void activeTurn?.push({ kind: "failure", ...failure });
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
turnEscalationDetection = "block";
|
|
235
|
-
turnAsked = true;
|
|
236
|
-
log({
|
|
237
|
-
event: "question",
|
|
238
|
-
sessionId: opts.sessionId,
|
|
239
|
-
turnId: activeTurnId,
|
|
240
|
-
harness: h.name,
|
|
241
|
-
options: detection.block.options.length,
|
|
242
|
-
});
|
|
243
|
-
activeTurn?.push({
|
|
244
|
-
kind: "question",
|
|
245
|
-
question: detection.block.question,
|
|
246
|
-
options: detection.block.options,
|
|
247
|
-
...(detection.block.recommended !== undefined
|
|
248
|
-
? { recommended: detection.block.recommended }
|
|
249
|
-
: {}),
|
|
250
|
-
});
|
|
207
|
+
sup.beginTurn();
|
|
251
208
|
};
|
|
252
209
|
const endTurn = (done) => {
|
|
253
210
|
if (activeTurn === null)
|
|
254
211
|
return;
|
|
255
|
-
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
|
|
212
|
+
sup.disarm();
|
|
213
|
+
// issue #44: the supervisor scans the last assistant message for the
|
|
214
|
+
// hcn-question block; the question event lands in the turn stream
|
|
215
|
+
// right before its done. Asking is a successful turn: the session
|
|
216
|
+
// semantic is "blocked on answer, session alive" - the done stays
|
|
217
|
+
// TURN-scoped (exitCode null in sessions) and the caller answers with
|
|
218
|
+
// the next send().
|
|
219
|
+
const close = sup.close();
|
|
220
|
+
turnEscalationDetection = close.detection;
|
|
221
|
+
turnAsked = close.asked;
|
|
260
222
|
if (turnAsked && done.cause === "clean")
|
|
261
223
|
done = { ...done, cause: "awaiting-input" };
|
|
262
224
|
// RFC-01 every turn end carries the escalation record
|
|
@@ -303,9 +265,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
303
265
|
state.limitSeen = true;
|
|
304
266
|
turnLimitSeen = true;
|
|
305
267
|
}
|
|
306
|
-
|
|
307
|
-
lastAssistantText = event.text;
|
|
308
|
-
}
|
|
268
|
+
sup.noteEvent(event);
|
|
309
269
|
if (activeTurn !== null) {
|
|
310
270
|
// Awaited by the pumps: past the channel's high water mark this
|
|
311
271
|
// blocks the pump, so OS pipe backpressure reaches the child.
|
|
@@ -315,7 +275,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
315
275
|
// droppable events go first, then oldest.
|
|
316
276
|
preTurnEvents.push(event);
|
|
317
277
|
if (preTurnEvents.length > PRETURN_MAX) {
|
|
318
|
-
const droppableAt = preTurnEvents.findIndex((e) =>
|
|
278
|
+
const droppableAt = preTurnEvents.findIndex((e) => DROPPABLE_KINDS.has(e.kind));
|
|
319
279
|
preTurnEvents.splice(droppableAt === -1 ? 0 : droppableAt, 1);
|
|
320
280
|
}
|
|
321
281
|
return Promise.resolve();
|
|
@@ -324,30 +284,63 @@ export const openSession = (h, opts, deps) => {
|
|
|
324
284
|
turnFailures.push(f);
|
|
325
285
|
return routeEvent({ kind: "failure", ...f });
|
|
326
286
|
};
|
|
327
|
-
/** A decoded event other than a failure: a
|
|
328
|
-
*
|
|
287
|
+
/** A decoded event other than a failure: a limit also records the
|
|
288
|
+
* failure it stands for, and so does a terminal error, the way
|
|
289
|
+
* streamTurn does. */
|
|
329
290
|
const routeDecoded = async (event) => {
|
|
291
|
+
if (event.kind === "failure") {
|
|
292
|
+
await pushFailure(summaryOf(event));
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
330
295
|
await routeEvent(event);
|
|
296
|
+
if (event.kind === "limit")
|
|
297
|
+
await pushFailure(failureFromLimit(event.code));
|
|
331
298
|
if (event.kind === "error" && event.terminal === true) {
|
|
332
299
|
await pushFailure(failureFromTerminalError(h, event.message));
|
|
333
300
|
}
|
|
334
301
|
};
|
|
302
|
+
/** The probe answered: bind the announced id under the descriptor's
|
|
303
|
+
* authority, or surface a rotation. */
|
|
304
|
+
const announceIdentity = async (announced) => {
|
|
305
|
+
if (identityAnnounced)
|
|
306
|
+
return;
|
|
307
|
+
if (sessionInputMode?.idFlag === null) {
|
|
308
|
+
// Harness-MINTED identity (pi rpc: `--session` refuses unknown ids,
|
|
309
|
+
// so fresh sessions omit the flag). The minted id IS the identity;
|
|
310
|
+
// opts.sessionId stays the caller-side handle.
|
|
311
|
+
identityAnnounced = true;
|
|
312
|
+
state.lastSeenId = announced;
|
|
313
|
+
await routeEvent({
|
|
314
|
+
kind: "identity",
|
|
315
|
+
sessionId: announced,
|
|
316
|
+
authority: "harness-minted",
|
|
317
|
+
capabilities: capabilitiesOf(h, opts.model ?? "", "headless-session"),
|
|
318
|
+
});
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (announced === opts.sessionId) {
|
|
322
|
+
identityAnnounced = true;
|
|
323
|
+
await routeEvent({
|
|
324
|
+
kind: "identity",
|
|
325
|
+
sessionId: announced,
|
|
326
|
+
authority: "caller-assigned",
|
|
327
|
+
capabilities: capabilitiesOf(h, opts.model ?? "", "headless-session"),
|
|
328
|
+
});
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
await routeEvent({
|
|
332
|
+
kind: "error",
|
|
333
|
+
message: `identity rotated: session announced ${JSON.stringify(announced)} but ${opts.sessionId} was requested`,
|
|
334
|
+
});
|
|
335
|
+
};
|
|
335
336
|
const pumpStdout = async () => {
|
|
336
337
|
const lines = new LineBuffer();
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
return true;
|
|
343
|
-
};
|
|
344
|
-
// issue #44: pi rpc is identity-silent at startup; the probe round
|
|
345
|
-
// trip is the only way to read the id (spike fixtures). The response
|
|
346
|
-
// echoes our marker id, so it cannot be confused with a user-visible
|
|
347
|
-
// get_state response.
|
|
348
|
-
if (sessionInputMode?.identityProbe !== null && sessionInputMode !== null) {
|
|
338
|
+
// issue #44: a harness that is identity-silent at startup gets the
|
|
339
|
+
// probe its descriptor declares; interpretation encodes it (ADR 0005).
|
|
340
|
+
const probe = encodeIdentityProbe(h);
|
|
341
|
+
if (probe !== null) {
|
|
349
342
|
try {
|
|
350
|
-
stdin.write(
|
|
343
|
+
stdin.write(probe);
|
|
351
344
|
}
|
|
352
345
|
catch {
|
|
353
346
|
// stdin already gone; the exited handler will surface the death.
|
|
@@ -359,105 +352,58 @@ export const openSession = (h, opts, deps) => {
|
|
|
359
352
|
parsed = JSON.parse(line);
|
|
360
353
|
}
|
|
361
354
|
catch {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
await
|
|
355
|
+
// Not a record: the shared decoder reads the one signal a plain
|
|
356
|
+
// line can carry (a wall) and nothing else.
|
|
357
|
+
for (const event of decodeLine(h, line, state, opts.model ?? "")) {
|
|
358
|
+
await routeDecoded(event);
|
|
366
359
|
}
|
|
367
360
|
return;
|
|
368
361
|
}
|
|
369
|
-
//
|
|
370
|
-
//
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
typeof parsed.command === "string" &&
|
|
376
|
-
parsed.command === sessionInputMode?.identityProbe?.command &&
|
|
377
|
-
parsed.success === true) {
|
|
378
|
-
const data = parsed.data;
|
|
379
|
-
const announced = data?.sessionId;
|
|
380
|
-
if (typeof announced !== "string") {
|
|
381
|
-
await routeEvent({
|
|
382
|
-
kind: "error",
|
|
383
|
-
message: "identity probe response carried no sessionId",
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
else if (sessionInputMode.idFlag === null) {
|
|
387
|
-
// Harness-MINTED identity (pi rpc: `--session` refuses unknown
|
|
388
|
-
// ids, so fresh sessions omit the flag). The minted id IS the
|
|
389
|
-
// identity; opts.sessionId stays the caller-side handle.
|
|
390
|
-
if (!identityAnnounced) {
|
|
391
|
-
identityAnnounced = true;
|
|
392
|
-
state.lastSeenId = announced;
|
|
393
|
-
await routeEvent({
|
|
394
|
-
kind: "identity",
|
|
395
|
-
sessionId: announced,
|
|
396
|
-
authority: "harness-minted",
|
|
397
|
-
capabilities: capabilitiesOf(h, opts.model ?? "", "headless-session"),
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
else if (announced === opts.sessionId) {
|
|
402
|
-
if (!identityAnnounced) {
|
|
403
|
-
identityAnnounced = true;
|
|
404
|
-
await routeEvent({
|
|
405
|
-
kind: "identity",
|
|
406
|
-
sessionId: announced,
|
|
407
|
-
authority: "caller-assigned",
|
|
408
|
-
capabilities: capabilitiesOf(h, opts.model ?? "", "headless-session"),
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
else {
|
|
413
|
-
await routeEvent({
|
|
414
|
-
kind: "error",
|
|
415
|
-
message: `identity rotated: session announced ${JSON.stringify(announced)} but ${opts.sessionId} was requested`,
|
|
416
|
-
});
|
|
417
|
-
}
|
|
362
|
+
// Interpretation says what the record means; this runner only routes
|
|
363
|
+
// on the kind (ADR 0005: no harness field names here).
|
|
364
|
+
const record = decodeSessionRecord(h, parsed);
|
|
365
|
+
switch (record.kind) {
|
|
366
|
+
case "identity":
|
|
367
|
+
await announceIdentity(record.sessionId);
|
|
418
368
|
return;
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
await routeEvent({
|
|
422
|
-
|
|
423
|
-
|
|
369
|
+
case "probe-failed":
|
|
370
|
+
case "command-failed":
|
|
371
|
+
await routeEvent({ kind: "error", message: record.message });
|
|
372
|
+
return;
|
|
373
|
+
case "ignored":
|
|
374
|
+
return;
|
|
375
|
+
case "turn-end": {
|
|
376
|
+
// The turn-end record still feeds identity dedupe (claude includes
|
|
377
|
+
// session_id on result - a rotation announced there must not be
|
|
378
|
+
// missed) and content decoding, which already surfaces a failed
|
|
379
|
+
// result as an error event; the flag here only classifies the
|
|
380
|
+
// done cause.
|
|
381
|
+
for (const event of decodeParsed(h, parsed, state, opts.model ?? "")) {
|
|
382
|
+
await routeDecoded(event);
|
|
383
|
+
}
|
|
384
|
+
if (record.isError)
|
|
385
|
+
resultError = true;
|
|
386
|
+
endTurn({
|
|
387
|
+
kind: "done",
|
|
388
|
+
exitCode: null,
|
|
389
|
+
cause: turnLimitSeen ? "limit" : resultError ? "crash" : "clean",
|
|
424
390
|
});
|
|
391
|
+
return;
|
|
425
392
|
}
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
// The turn-end record still feeds identity dedupe (claude includes
|
|
429
|
-
// session_id on result - a rotation announced there must not be
|
|
430
|
-
// missed).
|
|
431
|
-
const events = decodeParsed(h, parsed, state, opts.model ?? "");
|
|
432
|
-
const isTurnEnd = sessionInputMode !== null && matches(parsed, sessionInputMode.turnEnd);
|
|
433
|
-
if (isTurnEnd) {
|
|
434
|
-
// decodeParsed already surfaces the is_error case as an error event
|
|
435
|
-
// (content.ts claude reader); routing the events is enough - we only
|
|
436
|
-
// still track resultError here to classify the done cause.
|
|
437
|
-
for (const event of events) {
|
|
438
|
-
if (event.kind === "failure")
|
|
439
|
-
await pushFailure(summaryOf(event));
|
|
440
|
-
else
|
|
393
|
+
case "content": {
|
|
394
|
+
for (const event of decodeParsed(h, parsed, state, opts.model ?? "")) {
|
|
441
395
|
await routeDecoded(event);
|
|
396
|
+
}
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
default: {
|
|
400
|
+
const exhaustive = record;
|
|
401
|
+
return exhaustive;
|
|
442
402
|
}
|
|
443
|
-
if (parsed.is_error === true)
|
|
444
|
-
resultError = true;
|
|
445
|
-
endTurn({
|
|
446
|
-
kind: "done",
|
|
447
|
-
exitCode: null,
|
|
448
|
-
cause: turnLimitSeen ? "limit" : resultError ? "crash" : "clean",
|
|
449
|
-
});
|
|
450
|
-
return;
|
|
451
|
-
}
|
|
452
|
-
for (const event of events) {
|
|
453
|
-
if (event.kind === "failure")
|
|
454
|
-
await pushFailure(summaryOf(event));
|
|
455
|
-
else
|
|
456
|
-
await routeDecoded(event);
|
|
457
403
|
}
|
|
458
404
|
};
|
|
459
405
|
for await (const chunk of proc.stdout) {
|
|
460
|
-
|
|
406
|
+
sup.rearm();
|
|
461
407
|
for (const line of lines.push(chunk))
|
|
462
408
|
await handleLine(line);
|
|
463
409
|
}
|
|
@@ -468,26 +414,9 @@ export const openSession = (h, opts, deps) => {
|
|
|
468
414
|
const pumpStderr = async () => {
|
|
469
415
|
const lines = new LineBuffer();
|
|
470
416
|
for await (const chunk of proc.stderr) {
|
|
471
|
-
|
|
472
|
-
for (const line of lines.push(chunk))
|
|
473
|
-
|
|
474
|
-
if (limit !== null) {
|
|
475
|
-
await routeEvent({
|
|
476
|
-
kind: "limit",
|
|
477
|
-
code: limit,
|
|
478
|
-
message: `limit wall detected (${limit})`,
|
|
479
|
-
});
|
|
480
|
-
await pushFailure(failureFromLimit(limit));
|
|
481
|
-
continue;
|
|
482
|
-
}
|
|
483
|
-
const auth = detectAuthFailureInLine(h, line);
|
|
484
|
-
if (auth !== null) {
|
|
485
|
-
await pushFailure(failureFromAuth(auth));
|
|
486
|
-
await routeEvent({ kind: "error", message: `auth wall: ${auth}` });
|
|
487
|
-
continue;
|
|
488
|
-
}
|
|
489
|
-
stderrTail.push(line);
|
|
490
|
-
}
|
|
417
|
+
sup.rearm();
|
|
418
|
+
for (const line of lines.push(chunk))
|
|
419
|
+
await sup.stderrLine(line);
|
|
491
420
|
}
|
|
492
421
|
};
|
|
493
422
|
const pumping = Promise.allSettled([pumpStdout(), pumpStderr()]).then((settlements) => {
|
|
@@ -502,8 +431,6 @@ export const openSession = (h, opts, deps) => {
|
|
|
502
431
|
if (finalized)
|
|
503
432
|
return;
|
|
504
433
|
finalized = true;
|
|
505
|
-
// A stall killed the process on purpose, so the signal death it caused
|
|
506
|
-
// reports as "stall", not "killed".
|
|
507
434
|
const cause = stalled
|
|
508
435
|
? "stall"
|
|
509
436
|
: state.limitSeen
|
|
@@ -534,7 +461,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
534
461
|
pendingLengths.length = 0;
|
|
535
462
|
}
|
|
536
463
|
endTurn({ kind: "done", exitCode, cause });
|
|
537
|
-
if (preTurnEvents.some((e) =>
|
|
464
|
+
if (preTurnEvents.some((e) => !DROPPABLE_KINDS.has(e.kind))) {
|
|
538
465
|
log({
|
|
539
466
|
event: "preturn_events_dropped",
|
|
540
467
|
sessionId: opts.sessionId,
|
|
@@ -561,8 +488,9 @@ export const openSession = (h, opts, deps) => {
|
|
|
561
488
|
turnSettled = null;
|
|
562
489
|
release();
|
|
563
490
|
}
|
|
564
|
-
// The process is gone:
|
|
565
|
-
|
|
491
|
+
// The process is gone: no signal, no pending escalation, no stall
|
|
492
|
+
// clock - a later fire would flip a finished turn to stall.
|
|
493
|
+
sup.settle();
|
|
566
494
|
// Pipes held open past exit (a grandchild) must not hang the session.
|
|
567
495
|
const pipeGrace = deps.clock.setTimeout(() => {
|
|
568
496
|
pipesOpenAtExit = true;
|
|
@@ -599,7 +527,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
599
527
|
// stdin may already be gone - escalation below still bounds close.
|
|
600
528
|
}
|
|
601
529
|
// A child that does not exit on stdin EOF gets signalled after grace.
|
|
602
|
-
const closeGrace = deps.clock.setTimeout(() => escalate(), CLOSE_GRACE_MS);
|
|
530
|
+
const closeGrace = deps.clock.setTimeout(() => sup.escalate(), CLOSE_GRACE_MS);
|
|
603
531
|
await shutdown;
|
|
604
532
|
deps.clock.clearTimeout(closeGrace);
|
|
605
533
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-session.js","sourceRoot":"","sources":["../../src/execution/open-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"open-session.js","sourceRoot":"","sources":["../../src/execution/open-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,16 +8,20 @@
|
|
|
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
18
|
import { type LaunchOptions } from "../interpretation/argv.js";
|
|
13
19
|
import { type QuestionMode } from "../interpretation/question.js";
|
|
14
20
|
import type { HarnessDescriptor } from "../knowledge/descriptor.js";
|
|
15
21
|
import type { RunnerDeps } from "./deps.js";
|
|
16
|
-
import type
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
* after the process itself exited. */
|
|
20
|
-
export declare const KILL_GRACE_MS = 5000;
|
|
22
|
+
import { type HarnessEvent } from "./events.js";
|
|
23
|
+
/** The grace allowed for pipes still held open (by a grandchild) after the
|
|
24
|
+
* process itself exited. */
|
|
21
25
|
export declare const PIPE_GRACE_MS = 2000;
|
|
22
26
|
/** Redact by POSITION, not shape: the prompt is a known argv slot and is
|
|
23
27
|
* masked wholesale (content never reaches a log line - v1 D-005); every
|
|
@@ -25,15 +29,6 @@ export declare const PIPE_GRACE_MS = 2000;
|
|
|
25
29
|
* positional slot is masked, so a one-word prompt that equals a flag
|
|
26
30
|
* value does not cause that flag value to be masked. */
|
|
27
31
|
export declare const redactArgv: (argv: readonly string[], prompt?: string) => string[];
|
|
28
|
-
/** Bounded tail of unmatched stderr - the crash context a nonzero exit is
|
|
29
|
-
* explained by (v1 kept the turn's output slice for exactly this). Shared
|
|
30
|
-
* with the session runner. */
|
|
31
|
-
export declare class StderrTail {
|
|
32
|
-
private readonly lines;
|
|
33
|
-
private bytes;
|
|
34
|
-
push(line: string): void;
|
|
35
|
-
snapshot(): readonly string[];
|
|
36
|
-
}
|
|
37
32
|
export interface TurnRunOptions extends LaunchOptions {
|
|
38
33
|
/** Resume this session id instead of launching fresh - the turn spawns
|
|
39
34
|
* with the descriptor's resume grammar, and identity decoding treats a
|