@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
|
@@ -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;
|
|
@@ -114,42 +121,25 @@ export const openSession = (h, opts, deps) => {
|
|
|
114
121
|
let turnLimitSeen = false;
|
|
115
122
|
let turnFailures = [];
|
|
116
123
|
let pumpError = null;
|
|
117
|
-
// issue #44: the active turn
|
|
118
|
-
//
|
|
119
|
-
let lastAssistantText = null;
|
|
124
|
+
// issue #44: whether the active turn ended by asking, and what its close
|
|
125
|
+
// detected.
|
|
120
126
|
let turnAsked = false;
|
|
121
127
|
let turnEscalationDetection = "none";
|
|
122
128
|
let identityAnnounced = false;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
deps.signal(proc, sig);
|
|
126
|
-
};
|
|
127
|
-
const escalate = () => {
|
|
128
|
-
safeSignal("SIGTERM");
|
|
129
|
-
deps.clock.setTimeout(() => safeSignal("SIGKILL"), KILL_GRACE_MS);
|
|
130
|
-
};
|
|
131
|
-
// Per-turn inactivity budget. A session turn can hang with the process
|
|
132
|
-
// alive and the pipes open, which no exit code reports; without this the
|
|
133
|
-
// consumer waits forever. Armed at turn start, rearmed on any output
|
|
134
|
-
// chunk, disarmed at turn end and at exit - the same discipline
|
|
135
|
-
// streamTurn uses, scoped to the turn rather than the process.
|
|
136
|
-
let stallTimer = null;
|
|
129
|
+
// A stall killed the process on purpose, so the signal death it caused
|
|
130
|
+
// reports as "stall", not "killed".
|
|
137
131
|
let stalled = false;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
// running. Without this guard a clean turn that finished near the
|
|
150
|
-
// budget would be reported as a stall and the child signalled.
|
|
151
|
-
if (activeTurn === null)
|
|
152
|
-
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: () => {
|
|
153
143
|
stalled = true;
|
|
154
144
|
log({
|
|
155
145
|
event: "stall",
|
|
@@ -163,9 +153,17 @@ export const openSession = (h, opts, deps) => {
|
|
|
163
153
|
// the exit path then closes the session with the same cause.
|
|
164
154
|
void pushFailure(failureFromTransport("stalled: inactivity"));
|
|
165
155
|
endTurn({ kind: "done", exitCode: null, cause: "stall" });
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
+
});
|
|
169
167
|
const writeUser = (text) => {
|
|
170
168
|
try {
|
|
171
169
|
stdin.write(encodeSessionInput(sessionInput, composeEscalatedPrompt(text, questionMode, "session")));
|
|
@@ -178,7 +176,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
178
176
|
// very signal that stops it. The exit path then finalizes as usual.
|
|
179
177
|
void routeEvent({ kind: "error", message: "send failed: session stdin is gone" });
|
|
180
178
|
closing = true;
|
|
181
|
-
escalate();
|
|
179
|
+
sup.escalate();
|
|
182
180
|
return false;
|
|
183
181
|
}
|
|
184
182
|
};
|
|
@@ -192,7 +190,6 @@ export const openSession = (h, opts, deps) => {
|
|
|
192
190
|
turnFailures = [];
|
|
193
191
|
turnAsked = false;
|
|
194
192
|
turnEscalationDetection = "none";
|
|
195
|
-
lastAssistantText = null;
|
|
196
193
|
activeTurn = new AsyncChannel();
|
|
197
194
|
activeTurnId = `${opts.sessionId}:turn-${++turnCounter}`;
|
|
198
195
|
// Tag the turn with the id of the send that opened it, so the consumer
|
|
@@ -207,57 +204,21 @@ export const openSession = (h, opts, deps) => {
|
|
|
207
204
|
activeTurn.push(held);
|
|
208
205
|
}
|
|
209
206
|
turnsChannel.push(activeTurn);
|
|
210
|
-
|
|
211
|
-
};
|
|
212
|
-
/** issue #44: at a turn boundary, scan the last assistant message for
|
|
213
|
-
* the hcn-question block - same structured-first discipline and
|
|
214
|
-
* last-message rule as streamTurn. The question event lands in the
|
|
215
|
-
* turn stream right before its done; a malformed block surfaces as an
|
|
216
|
-
* error event, never a silent no-op. */
|
|
217
|
-
const emitQuestionIfAsked = () => {
|
|
218
|
-
if (questionMode !== "ask" || lastAssistantText === null) {
|
|
219
|
-
turnEscalationDetection = "none";
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
const detection = detectQuestionBlock(lastAssistantText);
|
|
223
|
-
if (detection === null) {
|
|
224
|
-
turnEscalationDetection = "none";
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
if ("malformed" in detection) {
|
|
228
|
-
turnEscalationDetection = "malformed";
|
|
229
|
-
activeTurn?.push({ kind: "error", message: detection.malformed });
|
|
230
|
-
const failure = failureFromTask(`malformed hcn-question block: ${detection.malformed}`);
|
|
231
|
-
turnFailures.push(failure);
|
|
232
|
-
void activeTurn?.push({ kind: "failure", ...failure });
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
turnEscalationDetection = "block";
|
|
236
|
-
turnAsked = true;
|
|
237
|
-
log({
|
|
238
|
-
event: "question",
|
|
239
|
-
sessionId: opts.sessionId,
|
|
240
|
-
turnId: activeTurnId,
|
|
241
|
-
harness: h.name,
|
|
242
|
-
options: detection.block.options.length,
|
|
243
|
-
});
|
|
244
|
-
activeTurn?.push({
|
|
245
|
-
kind: "question",
|
|
246
|
-
question: detection.block.question,
|
|
247
|
-
options: detection.block.options,
|
|
248
|
-
...(detection.block.recommended !== undefined
|
|
249
|
-
? { recommended: detection.block.recommended }
|
|
250
|
-
: {}),
|
|
251
|
-
});
|
|
207
|
+
sup.beginTurn();
|
|
252
208
|
};
|
|
253
209
|
const endTurn = (done) => {
|
|
254
210
|
if (activeTurn === null)
|
|
255
211
|
return;
|
|
256
|
-
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
//
|
|
260
|
-
|
|
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;
|
|
261
222
|
if (turnAsked && done.cause === "clean")
|
|
262
223
|
done = { ...done, cause: "awaiting-input" };
|
|
263
224
|
// RFC-01 every turn end carries the escalation record
|
|
@@ -304,9 +265,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
304
265
|
state.limitSeen = true;
|
|
305
266
|
turnLimitSeen = true;
|
|
306
267
|
}
|
|
307
|
-
|
|
308
|
-
lastAssistantText = event.text;
|
|
309
|
-
}
|
|
268
|
+
sup.noteEvent(event);
|
|
310
269
|
if (activeTurn !== null) {
|
|
311
270
|
// Awaited by the pumps: past the channel's high water mark this
|
|
312
271
|
// blocks the pump, so OS pipe backpressure reaches the child.
|
|
@@ -316,7 +275,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
316
275
|
// droppable events go first, then oldest.
|
|
317
276
|
preTurnEvents.push(event);
|
|
318
277
|
if (preTurnEvents.length > PRETURN_MAX) {
|
|
319
|
-
const droppableAt = preTurnEvents.findIndex((e) =>
|
|
278
|
+
const droppableAt = preTurnEvents.findIndex((e) => DROPPABLE_KINDS.has(e.kind));
|
|
320
279
|
preTurnEvents.splice(droppableAt === -1 ? 0 : droppableAt, 1);
|
|
321
280
|
}
|
|
322
281
|
return Promise.resolve();
|
|
@@ -325,30 +284,63 @@ export const openSession = (h, opts, deps) => {
|
|
|
325
284
|
turnFailures.push(f);
|
|
326
285
|
return routeEvent({ kind: "failure", ...f });
|
|
327
286
|
};
|
|
328
|
-
/** A decoded event other than a failure: a
|
|
329
|
-
*
|
|
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. */
|
|
330
290
|
const routeDecoded = async (event) => {
|
|
291
|
+
if (event.kind === "failure") {
|
|
292
|
+
await pushFailure(summaryOf(event));
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
331
295
|
await routeEvent(event);
|
|
296
|
+
if (event.kind === "limit")
|
|
297
|
+
await pushFailure(failureFromLimit(event.code));
|
|
332
298
|
if (event.kind === "error" && event.terminal === true) {
|
|
333
299
|
await pushFailure(failureFromTerminalError(h, event.message));
|
|
334
300
|
}
|
|
335
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
|
+
};
|
|
336
336
|
const pumpStdout = async () => {
|
|
337
337
|
const lines = new LineBuffer();
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}
|
|
343
|
-
return true;
|
|
344
|
-
};
|
|
345
|
-
// issue #44: pi rpc is identity-silent at startup; the probe round
|
|
346
|
-
// trip is the only way to read the id (spike fixtures). The response
|
|
347
|
-
// echoes our marker id, so it cannot be confused with a user-visible
|
|
348
|
-
// get_state response.
|
|
349
|
-
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) {
|
|
350
342
|
try {
|
|
351
|
-
stdin.write(
|
|
343
|
+
stdin.write(probe);
|
|
352
344
|
}
|
|
353
345
|
catch {
|
|
354
346
|
// stdin already gone; the exited handler will surface the death.
|
|
@@ -360,105 +352,58 @@ export const openSession = (h, opts, deps) => {
|
|
|
360
352
|
parsed = JSON.parse(line);
|
|
361
353
|
}
|
|
362
354
|
catch {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
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);
|
|
367
359
|
}
|
|
368
360
|
return;
|
|
369
361
|
}
|
|
370
|
-
//
|
|
371
|
-
//
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
typeof parsed.command === "string" &&
|
|
377
|
-
parsed.command === sessionInputMode?.identityProbe?.command &&
|
|
378
|
-
parsed.success === true) {
|
|
379
|
-
const data = parsed.data;
|
|
380
|
-
const announced = data?.sessionId;
|
|
381
|
-
if (typeof announced !== "string") {
|
|
382
|
-
await routeEvent({
|
|
383
|
-
kind: "error",
|
|
384
|
-
message: "identity probe response carried no sessionId",
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
else if (sessionInputMode.idFlag === null) {
|
|
388
|
-
// Harness-MINTED identity (pi rpc: `--session` refuses unknown
|
|
389
|
-
// ids, so fresh sessions omit the flag). The minted id IS the
|
|
390
|
-
// identity; opts.sessionId stays the caller-side handle.
|
|
391
|
-
if (!identityAnnounced) {
|
|
392
|
-
identityAnnounced = true;
|
|
393
|
-
state.lastSeenId = announced;
|
|
394
|
-
await routeEvent({
|
|
395
|
-
kind: "identity",
|
|
396
|
-
sessionId: announced,
|
|
397
|
-
authority: "harness-minted",
|
|
398
|
-
capabilities: capabilitiesOf(h, opts.model ?? "", "headless-session"),
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
else if (announced === opts.sessionId) {
|
|
403
|
-
if (!identityAnnounced) {
|
|
404
|
-
identityAnnounced = true;
|
|
405
|
-
await routeEvent({
|
|
406
|
-
kind: "identity",
|
|
407
|
-
sessionId: announced,
|
|
408
|
-
authority: "caller-assigned",
|
|
409
|
-
capabilities: capabilitiesOf(h, opts.model ?? "", "headless-session"),
|
|
410
|
-
});
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
else {
|
|
414
|
-
await routeEvent({
|
|
415
|
-
kind: "error",
|
|
416
|
-
message: `identity rotated: session announced ${JSON.stringify(announced)} but ${opts.sessionId} was requested`,
|
|
417
|
-
});
|
|
418
|
-
}
|
|
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);
|
|
419
368
|
return;
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
await routeEvent({
|
|
423
|
-
|
|
424
|
-
|
|
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",
|
|
425
390
|
});
|
|
391
|
+
return;
|
|
426
392
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
// The turn-end record still feeds identity dedupe (claude includes
|
|
430
|
-
// session_id on result - a rotation announced there must not be
|
|
431
|
-
// missed).
|
|
432
|
-
const events = decodeParsed(h, parsed, state, opts.model ?? "");
|
|
433
|
-
const isTurnEnd = sessionInputMode !== null && matches(parsed, sessionInputMode.turnEnd);
|
|
434
|
-
if (isTurnEnd) {
|
|
435
|
-
// decodeParsed already surfaces the is_error case as an error event
|
|
436
|
-
// (content.ts claude reader); routing the events is enough - we only
|
|
437
|
-
// still track resultError here to classify the done cause.
|
|
438
|
-
for (const event of events) {
|
|
439
|
-
if (event.kind === "failure")
|
|
440
|
-
await pushFailure(summaryOf(event));
|
|
441
|
-
else
|
|
393
|
+
case "content": {
|
|
394
|
+
for (const event of decodeParsed(h, parsed, state, opts.model ?? "")) {
|
|
442
395
|
await routeDecoded(event);
|
|
396
|
+
}
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
default: {
|
|
400
|
+
const exhaustive = record;
|
|
401
|
+
return exhaustive;
|
|
443
402
|
}
|
|
444
|
-
if (parsed.is_error === true)
|
|
445
|
-
resultError = true;
|
|
446
|
-
endTurn({
|
|
447
|
-
kind: "done",
|
|
448
|
-
exitCode: null,
|
|
449
|
-
cause: turnLimitSeen ? "limit" : resultError ? "crash" : "clean",
|
|
450
|
-
});
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
for (const event of events) {
|
|
454
|
-
if (event.kind === "failure")
|
|
455
|
-
await pushFailure(summaryOf(event));
|
|
456
|
-
else
|
|
457
|
-
await routeDecoded(event);
|
|
458
403
|
}
|
|
459
404
|
};
|
|
460
405
|
for await (const chunk of proc.stdout) {
|
|
461
|
-
|
|
406
|
+
sup.rearm();
|
|
462
407
|
for (const line of lines.push(chunk))
|
|
463
408
|
await handleLine(line);
|
|
464
409
|
}
|
|
@@ -469,26 +414,9 @@ export const openSession = (h, opts, deps) => {
|
|
|
469
414
|
const pumpStderr = async () => {
|
|
470
415
|
const lines = new LineBuffer();
|
|
471
416
|
for await (const chunk of proc.stderr) {
|
|
472
|
-
|
|
473
|
-
for (const line of lines.push(chunk))
|
|
474
|
-
|
|
475
|
-
if (limit !== null) {
|
|
476
|
-
await routeEvent({
|
|
477
|
-
kind: "limit",
|
|
478
|
-
code: limit,
|
|
479
|
-
message: `limit wall detected (${limit})`,
|
|
480
|
-
});
|
|
481
|
-
await pushFailure(failureFromLimit(limit));
|
|
482
|
-
continue;
|
|
483
|
-
}
|
|
484
|
-
const auth = detectAuthFailureInLine(h, line);
|
|
485
|
-
if (auth !== null) {
|
|
486
|
-
await pushFailure(failureFromAuth(auth));
|
|
487
|
-
await routeEvent({ kind: "error", message: `auth wall: ${auth}` });
|
|
488
|
-
continue;
|
|
489
|
-
}
|
|
490
|
-
stderrTail.push(line);
|
|
491
|
-
}
|
|
417
|
+
sup.rearm();
|
|
418
|
+
for (const line of lines.push(chunk))
|
|
419
|
+
await sup.stderrLine(line);
|
|
492
420
|
}
|
|
493
421
|
};
|
|
494
422
|
const pumping = Promise.allSettled([pumpStdout(), pumpStderr()]).then((settlements) => {
|
|
@@ -503,8 +431,6 @@ export const openSession = (h, opts, deps) => {
|
|
|
503
431
|
if (finalized)
|
|
504
432
|
return;
|
|
505
433
|
finalized = true;
|
|
506
|
-
// A stall killed the process on purpose, so the signal death it caused
|
|
507
|
-
// reports as "stall", not "killed".
|
|
508
434
|
const cause = stalled
|
|
509
435
|
? "stall"
|
|
510
436
|
: state.limitSeen
|
|
@@ -535,7 +461,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
535
461
|
pendingLengths.length = 0;
|
|
536
462
|
}
|
|
537
463
|
endTurn({ kind: "done", exitCode, cause });
|
|
538
|
-
if (preTurnEvents.some((e) =>
|
|
464
|
+
if (preTurnEvents.some((e) => !DROPPABLE_KINDS.has(e.kind))) {
|
|
539
465
|
log({
|
|
540
466
|
event: "preturn_events_dropped",
|
|
541
467
|
sessionId: opts.sessionId,
|
|
@@ -562,8 +488,9 @@ export const openSession = (h, opts, deps) => {
|
|
|
562
488
|
turnSettled = null;
|
|
563
489
|
release();
|
|
564
490
|
}
|
|
565
|
-
// The process is gone:
|
|
566
|
-
|
|
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();
|
|
567
494
|
// Pipes held open past exit (a grandchild) must not hang the session.
|
|
568
495
|
const pipeGrace = deps.clock.setTimeout(() => {
|
|
569
496
|
pipesOpenAtExit = true;
|
|
@@ -600,7 +527,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
600
527
|
// stdin may already be gone - escalation below still bounds close.
|
|
601
528
|
}
|
|
602
529
|
// A child that does not exit on stdin EOF gets signalled after grace.
|
|
603
|
-
const closeGrace = deps.clock.setTimeout(() => escalate(), CLOSE_GRACE_MS);
|
|
530
|
+
const closeGrace = deps.clock.setTimeout(() => sup.escalate(), CLOSE_GRACE_MS);
|
|
604
531
|
await shutdown;
|
|
605
532
|
deps.clock.clearTimeout(closeGrace);
|
|
606
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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAqB,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EACL,eAAe,GAIhB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D;iCACiC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,MAAM,WAAW,GAAG,GAAG,CAAC;AAuDxB,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C;QACE,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe,EAAE,KAAc;QACzC,KAAK,CACH,qBAAqB,OAAO,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAoB,EACpB,IAAwB,EACxB,IAAgB,EACD,EAAE;IACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,EAAE;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,IAAI,YAAkC,CAAC;IACvC,IAAI,CAAC;QACH,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,wBAAwB,CAAC;YAAE,MAAM,KAAK,CAAC;QAC9D,GAAG,CAAC;YACF,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,IAAoB,CAAC;IACzB,IAAI,CAAC;QACH,kEAAkE;QAClE,mEAAmE;QACnE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,KAAK,EAAE,MAAM;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,mEAAmE;QACnE,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,GAAG,CAAC;QACF,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,CAAC,CAAC,IAAI;QACf,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,YAAY,EAAe,CAAC;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAiB,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IAC3D,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAsC,IAAI,CAAC;IACzD,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,oEAAoE;IACpE,0EAA0E;IAC1E,oEAAoE;IACpE,uEAAuE;IACvE,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,WAAW,GAAwB,IAAI,CAAC;IAC5C,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,YAAY,GAAqB,EAAE,CAAC;IACxC,IAAI,SAAS,GAAY,IAAI,CAAC;IAC9B,yEAAyE;IACzE,YAAY;IACZ,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,uBAAuB,GAAwB,MAAM,CAAC;IAC1D,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,uEAAuE;IACvE,oCAAoC;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,uEAAuE;IACvE,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE;QACzC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;QACvC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAClC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;QACvC,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,GAAG,IAAI,CAAC;YACf,GAAG,CAAC;gBACF,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,IAAI,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,mEAAmE;YACnE,6DAA6D;YAC7D,KAAK,WAAW,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;YACtB,GAAG,CAAC;gBACF,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO;aACR,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE;QAC1C,IAAI,CAAC;YACH,KAAK,CAAC,KAAK,CACT,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CACxF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,KAAK,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;YAClF,OAAO,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,yEAAyE;IACzE,MAAM,SAAS,GAAG,CAAC,KAAyC,EAAkB,EAAE;QAC9E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC3C,aAAa,GAAG,KAAK,CAAC;QACtB,YAAY,GAAG,EAAE,CAAC;QAClB,SAAS,GAAG,KAAK,CAAC;QAClB,uBAAuB,GAAG,MAAM,CAAC;QACjC,UAAU,GAAG,IAAI,YAAY,EAAgB,CAAC;QAC9C,YAAY,GAAG,GAAG,IAAI,CAAC,SAAS,SAAS,EAAE,WAAW,EAAE,CAAC;QACzD,uEAAuE;QACvE,6DAA6D;QAC7D,yCAAyC;QACxC,UAAoD,CAAC,OAAO,GAAG,OAAO,CAAC;QACvE,UAAoD,CAAC,MAAM,GAAG,YAAY,CAAC;QAC5E,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,UAAyB,CAAC,CAAC;QAC7C,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAyD,EAAQ,EAAE;QAClF,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO;QAChC,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,qEAAqE;QACrE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,sEAAsE;QACtE,mBAAmB;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,uBAAuB,GAAG,KAAK,CAAC,SAAS,CAAC;QAC1C,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;YAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QACrF,sDAAsD;QACtD,IAAI,QAAQ,GAAoC;YAC9C,GAAG,IAAI;YACP,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE;SACpC,CAAC;QACrC,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO;gBAAE,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;;gBACzF,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpD,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,GAAG,CAAC;YACF,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;QAClB,WAAW,GAAG,KAAK,CAAC;QACpB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,WAAW,CAAC;YAC5B,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,IAAI,OAAO;YAAE,OAAO;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,qEAAqE;QACrE,8CAA8C;QAC9C,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,KAAmB,EAAiB,EAAE;QACxD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,gEAAgE;YAChE,8DAA8D;YAC9D,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,oEAAoE;QACpE,0CAA0C;QAC1C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,aAAa,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,aAAa,CAAC,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAiB,EAAiB,EAAE;QACvD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF;;0BAEsB;IACtB,MAAM,YAAY,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;QAChE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,WAAW,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;IAEF;2CACuC;IACvC,MAAM,gBAAgB,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;QAClE,IAAI,iBAAiB;YAAE,OAAO;QAC9B,IAAI,gBAAgB,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;YACtC,oEAAoE;YACpE,mEAAmE;YACnE,+CAA+C;YAC/C,iBAAiB,GAAG,IAAI,CAAC;YACzB,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YAC7B,MAAM,UAAU,CAAC;gBACf,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,gBAAgB;gBAC3B,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,kBAAkB,CAAC;aACtE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,UAAU,CAAC;gBACf,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,iBAAiB;gBAC5B,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,kBAAkB,CAAC;aACtE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,UAAU,CAAC;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,uCAAuC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,gBAAgB;SAChH,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAmB,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,mEAAmE;QACnE,uEAAuE;QACvE,MAAM,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;YACnE,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;YACvD,IAAI,MAAM,GAAmC,IAAI,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,gEAAgE;gBAChE,4CAA4C;gBAC5C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;oBACjE,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO;YACT,CAAC;YACD,qEAAqE;YACrE,uDAAuD;YACvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,UAAU;oBACb,MAAM,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACzC,OAAO;gBACT,KAAK,cAAc,CAAC;gBACpB,KAAK,gBAAgB;oBACnB,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7D,OAAO;gBACT,KAAK,SAAS;oBACZ,OAAO;gBACT,KAAK,UAAU,EAAE,CAAC;oBAChB,mEAAmE;oBACnE,gEAAgE;oBAChE,gEAAgE;oBAChE,8DAA8D;oBAC9D,cAAc;oBACd,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;wBACrE,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBACD,IAAI,MAAM,CAAC,OAAO;wBAAE,WAAW,GAAG,IAAI,CAAC;oBACvC,OAAO,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;qBACjE,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,KAAK,SAAS,EAAE,CAAC;oBACf,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;wBACrE,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,SAAS,CAAC;oBACR,MAAM,UAAU,GAAU,MAAM,CAAC;oBACjC,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAmB,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QACpF,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,IAAI,gBAAgB,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC7C,gBAAgB,GAAG,OAAO,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,KAAK,GAAc,OAAO;YAC9B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK,CAAC,SAAS;gBACf,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ,KAAK,CAAC;oBACd,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,QAAQ,KAAK,IAAI;wBACjB,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,OAAO,CAAC;QAClB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,KAAK,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;YAC3C,KAAK,UAAU,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,2CAA2C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAChG,CAAC,CAAC;YACH,GAAG,CAAC;gBACF,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YACH,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC;gBACF,KAAK,EAAE,wBAAwB;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,GAAG,CAAC;YACF,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ;YACR,KAAK;YACL,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F,CAAC,CAAC;QACH,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,GAAG,IAAI,CAAC;QACZ,QAAQ,GAAG,IAAI,CAAC;QAChB,gEAAgE;QAChE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,WAAW,CAAC;YAC5B,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,kEAAkE;QAClE,4DAA4D;QAC5D,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,sEAAsE;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;YAC3C,eAAe,GAAG,IAAI,CAAC;YACvB,UAAU,EAAE,mBAAmB,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC,EAAE,aAAa,CAAC,CAAC;QAClB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACnC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI,EAAiB,EAAE;QAClD,IAAI,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC;QACf,oEAAoE;QACpE,qEAAqE;QACrE,gEAAgE;QAChE,IAAI,KAAK,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;QACD,sEAAsE;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,QAAQ,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO;QACL,kEAAkE;QAClE,uEAAuE;QACvE,4CAA4C;QAC5C,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY;oBAAE,MAAM,IAAI,CAAC;YACpD,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;oBAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,EAAE;QACJ,IAAI,CAAC,KAAmB;YACtB,IAAI,IAAI,IAAI,OAAO;gBAAE,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,KAAK,IAAI,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC;oBACF,KAAK,EAAE,MAAM;oBACb,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAC;gBACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;YAC7D,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;YACD,GAAG,CAAC;gBACF,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QACpC,CAAC;QACD,KAAK;KACN,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -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
|