@dungle-scrubs/harness-cli-normalizer 0.5.3 → 0.5.5
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 +111 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +8 -0
- package/dist/cli/args.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 +16 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +21 -0
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/refuse.d.ts +7 -1
- package/dist/cli/refuse.d.ts.map +1 -1
- package/dist/cli/refuse.js +16 -5
- package/dist/cli/refuse.js.map +1 -1
- package/dist/cli/render.d.ts +15 -1
- package/dist/cli/render.d.ts.map +1 -1
- package/dist/cli/render.js +18 -2
- package/dist/cli/render.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +4 -2
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/session-json.d.ts +25 -0
- package/dist/cli/session-json.d.ts.map +1 -0
- package/dist/cli/session-json.js +224 -0
- package/dist/cli/session-json.js.map +1 -0
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +93 -11
- package/dist/cli/session.js.map +1 -1
- package/dist/execution/open-session.d.ts +24 -3
- package/dist/execution/open-session.d.ts.map +1 -1
- package/dist/execution/open-session.js +106 -19
- package/dist/execution/open-session.js.map +1 -1
- package/dist/interpretation/argv.d.ts +3 -0
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +5 -0
- package/dist/interpretation/argv.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/args.ts +8 -0
- package/src/cli/help.ts +16 -0
- package/src/cli/inspect.ts +26 -0
- package/src/cli/refuse.ts +31 -12
- package/src/cli/render.ts +18 -1
- package/src/cli/run.ts +4 -2
- package/src/cli/session-json.ts +262 -0
- package/src/cli/session.ts +103 -12
- package/src/execution/open-session.ts +132 -23
- package/src/interpretation/argv.ts +8 -0
|
@@ -20,7 +20,7 @@ import { composeEscalatedPrompt, detectQuestionBlock } from "../interpretation/q
|
|
|
20
20
|
import { encodeSessionInput, resolveSessionInput, SessionInputRefusalError, } from "../interpretation/session-input.js";
|
|
21
21
|
import { AsyncChannel } from "./channel.js";
|
|
22
22
|
import { decodeParsed, freshDecodeState } from "./decode.js";
|
|
23
|
-
import { failureFromAuth, failureFromLimit, failureFromTask, failureFromTerminalError, reduceFailures, } from "./failure.js";
|
|
23
|
+
import { failureFromAuth, failureFromLimit, failureFromTask, failureFromTerminalError, failureFromTransport, reduceFailures, } from "./failure.js";
|
|
24
24
|
import { LineBuffer } from "./lines.js";
|
|
25
25
|
import { KILL_GRACE_MS, PIPE_GRACE_MS, redactArgv, StderrTail } from "./stream-turn.js";
|
|
26
26
|
/** Grace after stdin EOF before concluding the child will not exit on its
|
|
@@ -44,6 +44,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
44
44
|
const argv = buildSessionArgv(h, {
|
|
45
45
|
sessionId: opts.sessionId,
|
|
46
46
|
...(opts.model !== undefined ? { model: opts.model } : {}),
|
|
47
|
+
...(opts.provider !== undefined ? { provider: opts.provider } : {}),
|
|
47
48
|
});
|
|
48
49
|
let sessionInput;
|
|
49
50
|
try {
|
|
@@ -118,13 +119,57 @@ export const openSession = (h, opts, deps) => {
|
|
|
118
119
|
safeSignal("SIGTERM");
|
|
119
120
|
deps.clock.setTimeout(() => safeSignal("SIGKILL"), KILL_GRACE_MS);
|
|
120
121
|
};
|
|
122
|
+
// Per-turn inactivity budget. A session turn can hang with the process
|
|
123
|
+
// alive and the pipes open, which no exit code reports; without this the
|
|
124
|
+
// consumer waits forever. Armed at turn start, rearmed on any output
|
|
125
|
+
// chunk, disarmed at turn end and at exit - the same discipline
|
|
126
|
+
// streamTurn uses, scoped to the turn rather than the process.
|
|
127
|
+
let stallTimer = null;
|
|
128
|
+
let stalled = false;
|
|
129
|
+
const disarmStall = () => {
|
|
130
|
+
if (stallTimer !== null)
|
|
131
|
+
deps.clock.clearTimeout(stallTimer);
|
|
132
|
+
stallTimer = null;
|
|
133
|
+
};
|
|
134
|
+
const rearmStall = () => {
|
|
135
|
+
if (deps.stallMs === undefined || activeTurn === null)
|
|
136
|
+
return;
|
|
137
|
+
disarmStall();
|
|
138
|
+
stallTimer = deps.clock.setTimeout(() => {
|
|
139
|
+
// The turn may have ended between the timer firing and this callback
|
|
140
|
+
// running. Without this guard a clean turn that finished near the
|
|
141
|
+
// budget would be reported as a stall and the child signalled.
|
|
142
|
+
if (activeTurn === null)
|
|
143
|
+
return;
|
|
144
|
+
stalled = true;
|
|
145
|
+
log({
|
|
146
|
+
event: "stall",
|
|
147
|
+
sessionId: opts.sessionId,
|
|
148
|
+
turnId: activeTurnId,
|
|
149
|
+
harness: h.name,
|
|
150
|
+
reason: "inactivity",
|
|
151
|
+
budgetMs: deps.stallMs,
|
|
152
|
+
});
|
|
153
|
+
// The turn is owed its own terminal event before the process dies;
|
|
154
|
+
// the exit path then closes the session with the same cause.
|
|
155
|
+
void pushFailure(failureFromTransport("stalled: inactivity"));
|
|
156
|
+
endTurn({ kind: "done", exitCode: null, cause: "stall" });
|
|
157
|
+
escalate();
|
|
158
|
+
}, deps.stallMs);
|
|
159
|
+
};
|
|
121
160
|
const writeUser = (text) => {
|
|
122
161
|
try {
|
|
123
162
|
stdin.write(encodeSessionInput(sessionInput, composeEscalatedPrompt(text, escalateQuestions, "session")));
|
|
124
163
|
return true;
|
|
125
164
|
}
|
|
126
165
|
catch {
|
|
127
|
-
|
|
166
|
+
// A broken stdin pipe ends the session: there is no way to drive the
|
|
167
|
+
// child any more. Surface it as its own event, stop accepting sends,
|
|
168
|
+
// and END the child - marking it dead here instead would suppress the
|
|
169
|
+
// very signal that stops it. The exit path then finalizes as usual.
|
|
170
|
+
void routeEvent({ kind: "error", message: "send failed: session stdin is gone" });
|
|
171
|
+
closing = true;
|
|
172
|
+
escalate();
|
|
128
173
|
return false;
|
|
129
174
|
}
|
|
130
175
|
};
|
|
@@ -133,13 +178,18 @@ export const openSession = (h, opts, deps) => {
|
|
|
133
178
|
const { kind: _kind, ...summary } = event;
|
|
134
179
|
return summary;
|
|
135
180
|
};
|
|
136
|
-
const startTurn = () => {
|
|
181
|
+
const startTurn = (inputId) => {
|
|
137
182
|
turnLimitSeen = false;
|
|
138
183
|
turnFailures = [];
|
|
139
184
|
turnAsked = false;
|
|
140
185
|
lastAssistantText = null;
|
|
141
186
|
activeTurn = new AsyncChannel();
|
|
142
187
|
activeTurnId = `${opts.sessionId}:turn-${++turnCounter}`;
|
|
188
|
+
// Tag the turn with the id of the send that opened it, so the consumer
|
|
189
|
+
// correlates a queued input to its turn by reading the tag, not by
|
|
190
|
+
// shadowing the runner's delivery order.
|
|
191
|
+
activeTurn.inputId = inputId;
|
|
192
|
+
activeTurn.turnId = activeTurnId;
|
|
143
193
|
log({ event: "turn_start", sessionId: opts.sessionId, turnId: activeTurnId });
|
|
144
194
|
for (const held of preTurnEvents.splice(0)) {
|
|
145
195
|
if (held.kind === "failure")
|
|
@@ -147,6 +197,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
147
197
|
activeTurn.push(held);
|
|
148
198
|
}
|
|
149
199
|
turnsChannel.push(activeTurn);
|
|
200
|
+
rearmStall();
|
|
150
201
|
};
|
|
151
202
|
/** issue #44: at a turn boundary, scan the last assistant message for
|
|
152
203
|
* the hcn-question block - same structured-first discipline and
|
|
@@ -186,6 +237,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
186
237
|
const endTurn = (done) => {
|
|
187
238
|
if (activeTurn === null)
|
|
188
239
|
return;
|
|
240
|
+
disarmStall();
|
|
189
241
|
// Asking is a successful turn: the session semantic is "blocked on
|
|
190
242
|
// answer, session alive" - the done stays TURN-scoped (exitCode null
|
|
191
243
|
// in sessions) and the caller answers with the next send().
|
|
@@ -215,8 +267,22 @@ export const openSession = (h, opts, deps) => {
|
|
|
215
267
|
if (dead || closing)
|
|
216
268
|
return;
|
|
217
269
|
const next = pendingSends.shift();
|
|
218
|
-
if (next
|
|
219
|
-
|
|
270
|
+
if (next === undefined)
|
|
271
|
+
return;
|
|
272
|
+
if (writeUser(next.text)) {
|
|
273
|
+
startTurn(next.id);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
// The queue was shifted but the write failed: report the id that was
|
|
277
|
+
// accepted as queued and never delivered, instead of dropping it.
|
|
278
|
+
log({
|
|
279
|
+
event: "sends_dropped",
|
|
280
|
+
sessionId: opts.sessionId,
|
|
281
|
+
count: 1,
|
|
282
|
+
ids: [next.id],
|
|
283
|
+
reason: "write-failed",
|
|
284
|
+
lengths: [next.text.length],
|
|
285
|
+
});
|
|
220
286
|
};
|
|
221
287
|
const routeEvent = (event) => {
|
|
222
288
|
if (event.kind === "limit") {
|
|
@@ -377,6 +443,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
377
443
|
}
|
|
378
444
|
};
|
|
379
445
|
for await (const chunk of proc.stdout) {
|
|
446
|
+
rearmStall();
|
|
380
447
|
for (const line of lines.push(chunk))
|
|
381
448
|
await handleLine(line);
|
|
382
449
|
}
|
|
@@ -387,6 +454,7 @@ export const openSession = (h, opts, deps) => {
|
|
|
387
454
|
const pumpStderr = async () => {
|
|
388
455
|
const lines = new LineBuffer();
|
|
389
456
|
for await (const chunk of proc.stderr) {
|
|
457
|
+
rearmStall();
|
|
390
458
|
for (const line of lines.push(chunk)) {
|
|
391
459
|
const limit = detectLimitInLine(h, line);
|
|
392
460
|
if (limit !== null) {
|
|
@@ -420,28 +488,34 @@ export const openSession = (h, opts, deps) => {
|
|
|
420
488
|
if (finalized)
|
|
421
489
|
return;
|
|
422
490
|
finalized = true;
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
491
|
+
// A stall killed the process on purpose, so the signal death it caused
|
|
492
|
+
// reports as "stall", not "killed".
|
|
493
|
+
const cause = stalled
|
|
494
|
+
? "stall"
|
|
495
|
+
: state.limitSeen
|
|
496
|
+
? "limit"
|
|
497
|
+
: exitCode === 0
|
|
498
|
+
? "clean"
|
|
499
|
+
: exitCode === null
|
|
500
|
+
? "killed"
|
|
501
|
+
: "crash";
|
|
430
502
|
if (pumpError !== null) {
|
|
431
503
|
void routeEvent({ kind: "error", message: `session pump failed: ${String(pumpError)}` });
|
|
432
504
|
}
|
|
433
505
|
if (pendingSends.length > 0) {
|
|
434
506
|
// "queued" was an accepted disposition - the loss must be visible to
|
|
435
507
|
// both the log and the consumer, never silent.
|
|
508
|
+
const droppedIds = pendingSends.map((s) => s.id);
|
|
436
509
|
void routeEvent({
|
|
437
510
|
kind: "error",
|
|
438
|
-
message: `${pendingSends.length} queued send(s) died with the session`,
|
|
511
|
+
message: `${pendingSends.length} queued send(s) died with the session: ${droppedIds.join(", ")}`,
|
|
439
512
|
});
|
|
440
513
|
log({
|
|
441
514
|
event: "sends_dropped",
|
|
442
515
|
sessionId: opts.sessionId,
|
|
443
516
|
count: pendingSends.length,
|
|
444
|
-
|
|
517
|
+
ids: droppedIds,
|
|
518
|
+
lengths: pendingSends.map((s) => s.text.length),
|
|
445
519
|
});
|
|
446
520
|
pendingSends.length = 0;
|
|
447
521
|
}
|
|
@@ -467,6 +541,8 @@ export const openSession = (h, opts, deps) => {
|
|
|
467
541
|
void proc.exited.then((code) => {
|
|
468
542
|
dead = true;
|
|
469
543
|
exitCode = code;
|
|
544
|
+
// The process is gone: a later fire would flip a finished turn to stall.
|
|
545
|
+
disarmStall();
|
|
470
546
|
// Pipes held open past exit (a grandchild) must not hang the session.
|
|
471
547
|
const pipeGrace = deps.clock.setTimeout(() => {
|
|
472
548
|
pipesOpenAtExit = true;
|
|
@@ -508,26 +584,37 @@ export const openSession = (h, opts, deps) => {
|
|
|
508
584
|
void close();
|
|
509
585
|
}
|
|
510
586
|
})(),
|
|
511
|
-
send(
|
|
587
|
+
send(input) {
|
|
512
588
|
if (dead || closing)
|
|
513
589
|
throw new SessionClosedError();
|
|
514
590
|
if (activeTurn !== null) {
|
|
515
|
-
pendingSends.push(
|
|
591
|
+
pendingSends.push(input);
|
|
516
592
|
log({
|
|
517
593
|
event: "send",
|
|
518
594
|
sessionId: opts.sessionId,
|
|
519
595
|
turnId: activeTurnId,
|
|
596
|
+
inputId: input.id,
|
|
520
597
|
disposition: "queued",
|
|
521
598
|
});
|
|
522
599
|
return { disposition: "queued" };
|
|
523
600
|
}
|
|
524
|
-
if (!writeUser(text))
|
|
525
|
-
|
|
526
|
-
|
|
601
|
+
if (!writeUser(input.text)) {
|
|
602
|
+
log({
|
|
603
|
+
event: "send",
|
|
604
|
+
sessionId: opts.sessionId,
|
|
605
|
+
turnId: activeTurnId,
|
|
606
|
+
inputId: input.id,
|
|
607
|
+
disposition: "rejected",
|
|
608
|
+
reason: "write-failed",
|
|
609
|
+
});
|
|
610
|
+
return { disposition: "rejected", reason: "write-failed" };
|
|
611
|
+
}
|
|
612
|
+
startTurn(input.id);
|
|
527
613
|
log({
|
|
528
614
|
event: "send",
|
|
529
615
|
sessionId: opts.sessionId,
|
|
530
616
|
turnId: activeTurnId,
|
|
617
|
+
inputId: input.id,
|
|
531
618
|
disposition: "started",
|
|
532
619
|
});
|
|
533
620
|
return { disposition: "started" };
|
|
@@ -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;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI7D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAExF;iCACiC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,MAAM,WAAW,GAAG,GAAG,CAAC;AAkDxB,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,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,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,KAAK,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,YAAY,GAAmB,EAAE,CAAC;IACxC,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,iEAAiE;IACjE,kEAAkE;IAClE,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAC5C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,GAA0B,EAAQ,EAAE;QACtD,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,gEAAgE;IAChE,+DAA+D;IAC/D,IAAI,UAAU,GAAuB,IAAI,CAAC;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,IAAI,UAAU,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7D,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO;QAC9D,WAAW,EAAE,CAAC;QACd,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;YACtC,qEAAqE;YACrE,kEAAkE;YAClE,+DAA+D;YAC/D,IAAI,UAAU,KAAK,IAAI;gBAAE,OAAO;YAChC,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;YAC1D,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE;QAC1C,IAAI,CAAC;YACH,KAAK,CAAC,KAAK,CACT,kBAAkB,CAChB,YAAY,EACZ,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAC3D,CACF,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,QAAQ,EAAE,CAAC;YACX,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,iBAAiB,GAAG,IAAI,CAAC;QACzB,UAAU,GAAG,IAAI,YAAY,EAAgB,CAAC;QAC9C,YAAY,GAAG,GAAG,IAAI,CAAC,SAAS,SAAS,EAAE,WAAW,EAAE,CAAC;QACzD,uEAAuE;QACvE,mEAAmE;QACnE,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,UAAU,EAAE,CAAC;IACf,CAAC,CAAC;IAEF;;;;4CAIwC;IACxC,MAAM,mBAAmB,GAAG,GAAS,EAAE;QACrC,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,KAAK,IAAI;YAAE,OAAO;QAC7D,MAAM,SAAS,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAC/B,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC7B,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,eAAe,CAAC,iCAAiC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,KAAK,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;QACjB,GAAG,CAAC;YACF,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;SACxC,CAAC,CAAC;QACH,UAAU,EAAE,IAAI,CAAC;YACf,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ;YAClC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO;YAChC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBAC3C,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAqC,EAAQ,EAAE;QAC9D,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO;QAChC,WAAW,EAAE,CAAC;QACd,mEAAmE;QACnE,qEAAqE;QACrE,4DAA4D;QAC5D,mBAAmB,EAAE,CAAC;QACtB,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;YAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QACrF,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;gBAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;;gBAC7E,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5C,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,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,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;QAClB,WAAW,GAAG,KAAK,CAAC;QACpB,kEAAkE;QAClE,IAAI,IAAI,IAAI,OAAO;YAAE,OAAO;QAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QACD,qEAAqE;QACrE,kEAAkE;QAClE,GAAG,CAAC;YACF,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;IACL,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,IAAI,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChF,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,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,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAC3E,CAAC;YACF,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;6DACyD;IACzD,MAAM,YAAY,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;QAChE,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,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,MAAM,UAAU,GAAG,KAAK,IAAmB,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,CACd,MAA+B,EAC/B,IAAsC,EAC7B,EAAE;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;YAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,mEAAmE;QACnE,qEAAqE;QACrE,qEAAqE;QACrE,sBAAsB;QACtB,IAAI,gBAAgB,EAAE,aAAa,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,CACT,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,CAC5F,CAAC;YACJ,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,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,IAAI,GAAG,EAAE,CAAC,CAAC;oBACpF,MAAM,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO;YACT,CAAC;YACD,+DAA+D;YAC/D,mEAAmE;YACnE,gEAAgE;YAChE,qEAAqE;YACrE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,IACE,MAAM,CAAC,EAAE,KAAK,cAAc;oBAC5B,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;oBAClC,MAAM,CAAC,OAAO,KAAK,gBAAgB,EAAE,aAAa,EAAE,OAAO;oBAC3D,MAAM,CAAC,OAAO,KAAK,IAAI,EACvB,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAA2C,CAAC;oBAChE,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;oBAClC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAClC,MAAM,UAAU,CAAC;4BACf,IAAI,EAAE,OAAO;4BACb,OAAO,EAAE,8CAA8C;yBACxD,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,gBAAgB,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBAC5C,+DAA+D;wBAC/D,8DAA8D;wBAC9D,yDAAyD;wBACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACvB,iBAAiB,GAAG,IAAI,CAAC;4BACzB,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;4BAC7B,MAAM,UAAU,CAAC;gCACf,IAAI,EAAE,UAAU;gCAChB,SAAS,EAAE,SAAS;gCACpB,SAAS,EAAE,gBAAgB;gCAC3B,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,kBAAkB,CAAC;6BACtE,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;wBACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACvB,iBAAiB,GAAG,IAAI,CAAC;4BACzB,MAAM,UAAU,CAAC;gCACf,IAAI,EAAE,UAAU;gCAChB,SAAS,EAAE,SAAS;gCACpB,SAAS,EAAE,iBAAiB;gCAC5B,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,kBAAkB,CAAC;6BACtE,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,UAAU,CAAC;4BACf,IAAI,EAAE,OAAO;4BACb,OAAO,EAAE,uCAAuC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,gBAAgB;yBAChH,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC7B,MAAM,UAAU,CAAC;wBACf,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,EAAE;qBACtH,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YACD,mEAAmE;YACnE,gEAAgE;YAChE,WAAW;YACX,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,gBAAgB,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzF,IAAI,SAAS,EAAE,CAAC;gBACd,oEAAoE;gBACpE,qEAAqE;gBACrE,2DAA2D;gBAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;wBAAE,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;;wBAC7D,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBACD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;oBAAE,WAAW,GAAG,IAAI,CAAC;gBACjD,OAAO,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;iBACjE,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;;oBAC7D,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC;QACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,UAAU,EAAE,CAAC;YACb,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,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,MAAM,UAAU,CAAC;wBACf,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,wBAAwB,KAAK,GAAG;qBAC1C,CAAC,CAAC;oBACH,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,MAAM,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnE,SAAS;gBACX,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,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,uEAAuE;QACvE,oCAAoC;QACpC,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,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,qEAAqE;YACrE,+CAA+C;YAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjD,KAAK,UAAU,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,0CAA0C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACjG,CAAC,CAAC;YACH,GAAG,CAAC;gBACF,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;aAChD,CAAC,CAAC;YACH,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,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,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YAC3E,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,yEAAyE;QACzE,WAAW,EAAE,CAAC;QACd,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,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC;QACf,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,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;QAC3E,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,EAAE,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,EAAE;QACJ,IAAI,CAAC,KAAmB;YACtB,IAAI,IAAI,IAAI,OAAO;gBAAE,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACpD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,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,QAAQ;iBACtB,CAAC,CAAC;gBACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;YACnC,CAAC;YACD,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,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpB,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"}
|
|
@@ -58,6 +58,9 @@ export declare const buildResumeArgv: (h: HarnessDescriptor, opts: ResumeOptions
|
|
|
58
58
|
export interface SessionOptions {
|
|
59
59
|
readonly sessionId: string;
|
|
60
60
|
readonly model?: string;
|
|
61
|
+
/** Provider selector (pi). A harness with no provider selector refuses,
|
|
62
|
+
* the same way a one-shot turn does. */
|
|
63
|
+
readonly provider?: string;
|
|
61
64
|
}
|
|
62
65
|
export declare const buildSessionArgv: (h: HarnessDescriptor, opts: SessionOptions) => string[];
|
|
63
66
|
/** The granularity an invocation will actually emit: pins are checked in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAU1F,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6BrF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;8DAG0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;4BAGwB;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC;;;4CAGwC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,oGAAoG;IACpG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAiDxC,eAAO,MAAM,eAAe,MAAO,iBAAiB,QAAQ,aAAa,KAAG,MAAM,EAKjF,CAAC;AAsBF,eAAO,MAAM,eAAe,MAAO,iBAAiB,QAAQ,aAAa,KAAG,MAAM,EAgBjF,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAU1F,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6BrF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;8DAG0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;4BAGwB;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC;;;4CAGwC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,oGAAoG;IACpG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAiDxC,eAAO,MAAM,eAAe,MAAO,iBAAiB,QAAQ,aAAa,KAAG,MAAM,EAKjF,CAAC;AAsBF,eAAO,MAAM,eAAe,MAAO,iBAAiB,QAAQ,aAAa,KAAG,MAAM,EAgBjF,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;4CACwC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,MAAO,iBAAiB,QAAQ,cAAc,KAAG,MAAM,EAsCnF,CAAC;AAiDF;;;uCAGuC;AACvC,eAAO,MAAM,sBAAsB,MAC9B,iBAAiB,QACd,SAAS,MAAM,EAAE,KACtB,oBAOF,CAAC"}
|
|
@@ -155,6 +155,11 @@ export const buildSessionArgv = (h, opts) => {
|
|
|
155
155
|
}
|
|
156
156
|
argv.push(h.vocabulary.modelFlag, validated.id);
|
|
157
157
|
}
|
|
158
|
+
if (opts.provider !== undefined) {
|
|
159
|
+
// One dimension, rendered by the same code path a launch argv uses, so
|
|
160
|
+
// the flag spelling and the refusal (with supportedBy) stay identical.
|
|
161
|
+
argv.push(...renderTurnOptions(h, { provider: opts.provider }, "launch"));
|
|
162
|
+
}
|
|
158
163
|
return argv;
|
|
159
164
|
};
|
|
160
165
|
/** Canonicalize an argv into a last-wins flag map: `--flag=value` splits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAErF;;kDAEkD;AAClD,MAAM,iBAAiB,GAAG,CAAC,CAAoB,EAAE,MAAc,EAAQ,EAAE;IACvE,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,gBAAgB,CAAC;YACzB,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,SAAS,EAAE,CAAC,gCAAgC,CAAC;YAC7C,MAAM,EAAE,mCAAmC,CAAC,CAAC,GAAG,EAAE;SACnD,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAoB,EAAE,MAAc,EAAE,QAAkB,EAAQ,EAAE;IAChG,IAAI,QAAQ;QAAE,OAAO;IACrB,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AAoDF;;2EAE2E;AAC3E,MAAM,QAAQ,GAAG,CAAC,CAAoB,EAAE,IAAiB,EAAY,EAAE;IACrE,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,gBAAgB,CAAC;gBACzB,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAC/D,MAAM,EAAE,IAAI,CAAC,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,WAAW,CAAC,kBAAkB,EAAE,EAAE,UAAU,CAAC,CAAC;YACzD,MAAM,IAAI,gBAAgB,CAAC;gBACzB,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACtD,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,gIAAgI;aACvI,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,EAAE;YACtC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAoB,EAAE,IAAmB,EAAY,EAAE,CAAC;IACtF,CAAC,CAAC,GAAG;IACL,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS;IACrB,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC;IACvC,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF;;2EAE2E;AAC3E,MAAM,uBAAuB,GAAG,CAAC,CAAoB,EAAE,SAAiB,EAAQ,EAAE;IAChF,IAAI,CAAC;QACH,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,qBAAqB,CAAC;YAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,gBAAgB,CAAC;YACzB,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,OAAO,EAAE;YAC/C,SAAS,EAAE;gBACT,2GAA2G,cAAc,QAAQ;aAClI;YACD,MAAM,EAAE,CAAC,CAAC,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAoB,EAAE,IAAmB,EAAY,EAAE;IACrF,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,qEAAqE;IACrE,oEAAoE;IACpE,2DAA2D;IAC3D,qEAAqE;IACrE,qDAAqD;IACrD,OAAO;QACL,CAAC,CAAC,GAAG;QACL,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW;QACvB,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,IAAI,CAAC,SAAS;QACd,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU;QACtB,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC;QACvC,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;KACrB,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAoB,EAAE,IAAoB,EAAY,EAAE;IACvF,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC;aAChF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,gBAAgB,CAAC;YACzB,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IACD,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG;QACX,CAAC,CAAC,GAAG;QACL,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK;QACtB,kEAAkE;QAClE,kEAAkE;QAClE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,gBAAgB,CAAC;gBACzB,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAC/D,MAAM,EAAE,IAAI,CAAC,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;yCAMyC;AACzC,MAAM,SAAS,GAAG,CAAC,CAAoB,EAAE,IAAuB,EAA8B,EAAE;IAC9F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5D,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,GAAsB,EACtB,KAAyC,EAChC,EAAE;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;uCAGuC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,CAAoB,EACpB,IAAuB,EACD,EAAE;IACxB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,WAAW,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACxB,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/cli/args.ts
CHANGED
|
@@ -308,6 +308,9 @@ const KNOWN_FLAGS = new Set([
|
|
|
308
308
|
"--session-id",
|
|
309
309
|
"--json",
|
|
310
310
|
"--argv",
|
|
311
|
+
"--capabilities",
|
|
312
|
+
"--mode",
|
|
313
|
+
"--stall",
|
|
311
314
|
"--help",
|
|
312
315
|
"-h",
|
|
313
316
|
"--version",
|
|
@@ -330,6 +333,8 @@ const FLAGS_WITH_VALUE = new Set([
|
|
|
330
333
|
"--resume",
|
|
331
334
|
"--session-id",
|
|
332
335
|
"--timeout",
|
|
336
|
+
"--mode",
|
|
337
|
+
"--stall",
|
|
333
338
|
]);
|
|
334
339
|
|
|
335
340
|
export const detectPositionalPromptInjection = (argv: string[]): string | null => {
|
|
@@ -459,6 +464,9 @@ export const parseCommonFlags = (
|
|
|
459
464
|
timeout: { type: "string" as const },
|
|
460
465
|
json: { type: "boolean" as const },
|
|
461
466
|
argv: { type: "boolean" as const },
|
|
467
|
+
capabilities: { type: "boolean" as const },
|
|
468
|
+
mode: { type: "string" as const },
|
|
469
|
+
stall: { type: "string" as const },
|
|
462
470
|
help: { type: "boolean" as const },
|
|
463
471
|
version: { type: "boolean" as const },
|
|
464
472
|
},
|
package/src/cli/help.ts
CHANGED
|
@@ -117,6 +117,17 @@ Arguments:
|
|
|
117
117
|
<harness> claude | pi (others have no sessionMode)
|
|
118
118
|
|
|
119
119
|
Options:
|
|
120
|
+
--json Machine surface: NDJSON events on stdout, NDJSON
|
|
121
|
+
commands on stdin ({"op":"send","id":..,"text":..},
|
|
122
|
+
"answer", "close"). Every send is answered with one
|
|
123
|
+
disposition (started | queued | rejected); a queued
|
|
124
|
+
send's id rides to the turn that consumes it. The
|
|
125
|
+
stream opens with a session event and ends with a
|
|
126
|
+
closed event. Exit 0 clean, 1 otherwise, 2 refusal.
|
|
127
|
+
--stall <seconds> Per-turn inactivity budget; the turn ends and the
|
|
128
|
+
session closes reporting a stall. 0 disables
|
|
129
|
+
(default: no limit)
|
|
130
|
+
--provider <value> Provider (pi only)
|
|
120
131
|
--model <id> Model for the session
|
|
121
132
|
--session-id <uuid> Session id (UUID, else random; re-enters an
|
|
122
133
|
existing session)
|
|
@@ -138,6 +149,11 @@ Arguments:
|
|
|
138
149
|
|
|
139
150
|
Options:
|
|
140
151
|
--argv Preview argv that would be spawned
|
|
152
|
+
--capabilities Print the capability record (vision, images,
|
|
153
|
+
streaming, session, source) as one JSON line
|
|
154
|
+
--mode <mode> Mode for --capabilities:
|
|
155
|
+
headless-turn | headless-session | interactive
|
|
156
|
+
(default headless-turn)
|
|
141
157
|
--prompt <text> Prompt for argv preview
|
|
142
158
|
--prompt-file <path|-> Read prompt from file
|
|
143
159
|
--model <id> Model
|
package/src/cli/inspect.ts
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { redactArgv } from "../execution/stream-turn.js";
|
|
2
2
|
import { buildLaunchArgv } from "../interpretation/argv.js";
|
|
3
|
+
import { capabilitiesOf } from "../interpretation/capabilities.js";
|
|
3
4
|
import { ArgvRefusalError } from "../interpretation/refusal.js";
|
|
4
5
|
import { FloorExceededError, resolveEffectiveOptions } from "../interpretation/resolve-options.js";
|
|
5
6
|
import { canonicalTable, mergeToolMaps } from "../interpretation/tool-vocabulary.js";
|
|
7
|
+
import type { HarnessMode } from "../knowledge/descriptor.js";
|
|
6
8
|
import { defaultDescriptors } from "../knowledge/overrides.js";
|
|
7
9
|
import { parseTurnOptions, resolvePromptAsync } from "./args.js";
|
|
8
10
|
import { ConfigError, loadProjectConfig, loadUserConfig } from "./config.js";
|
|
11
|
+
import { EXIT_REFUSAL } from "./exit-codes.js";
|
|
9
12
|
import { refusalOf, refuse } from "./refuse.js";
|
|
10
13
|
import { resolveHarness } from "./resolve-harness.js";
|
|
11
14
|
|
|
15
|
+
const HARNESS_MODES = ["headless-turn", "headless-session", "interactive"] as const;
|
|
16
|
+
|
|
12
17
|
export const inspect = async (harnessName: string, rawArgs: string[]): Promise<void> => {
|
|
13
18
|
const h = resolveHarness(harnessName);
|
|
14
19
|
|
|
@@ -52,6 +57,27 @@ export const inspect = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
52
57
|
const values = parsed.values as Record<string, unknown>;
|
|
53
58
|
const wantArgv = values.argv === true;
|
|
54
59
|
|
|
60
|
+
// --capabilities path: pure capability record, no spawn, no config, no prompt
|
|
61
|
+
if (values.capabilities === true) {
|
|
62
|
+
if (wantArgv) {
|
|
63
|
+
process.stderr.write(`--capabilities and --argv are mutually exclusive; pick one\n`);
|
|
64
|
+
process.exitCode = EXIT_REFUSAL;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const mode = values.mode === undefined ? "headless-turn" : String(values.mode);
|
|
68
|
+
if (!(HARNESS_MODES as readonly string[]).includes(mode)) {
|
|
69
|
+
process.stderr.write(
|
|
70
|
+
`invalid --mode ${JSON.stringify(mode)}; supported: ${HARNESS_MODES.join(", ")}\n`,
|
|
71
|
+
);
|
|
72
|
+
process.exitCode = EXIT_REFUSAL;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const model = values.model === undefined ? "" : String(values.model);
|
|
76
|
+
const caps = capabilitiesOf(h, model, mode as HarnessMode);
|
|
77
|
+
process.stdout.write(`${JSON.stringify(caps)}\n`);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
55
81
|
// Load config once at top and reuse for both paths
|
|
56
82
|
let rawUserMap: Record<string, Record<string, string>> | undefined;
|
|
57
83
|
let rawProjectMap: Record<string, Record<string, string>> | undefined;
|
package/src/cli/refuse.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FailureSummary } from "../execution/failure.js";
|
|
1
2
|
import { failureFromRejected } from "../execution/failure.js";
|
|
2
3
|
import type { ArgvRefusalError, RefusalIssue } from "../interpretation/refusal.js";
|
|
3
4
|
import { writeEventNdjson } from "./render.js";
|
|
@@ -23,7 +24,24 @@ export const refusalOf = (err: ArgvRefusalError): Refusal => ({
|
|
|
23
24
|
hint: err.hint,
|
|
24
25
|
});
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
/** Write the terminal pair a --json stream is owed when it ends before the
|
|
28
|
+
* runner produced one: the failure, then the stream's terminal event. A
|
|
29
|
+
* one-shot turn ends with `done`; a session ends with `closed`. Shared so
|
|
30
|
+
* both surfaces stay identical apart from that kind. */
|
|
31
|
+
export const writeFailurePair = (
|
|
32
|
+
summary: FailureSummary,
|
|
33
|
+
terminal: "done" | "closed" = "done",
|
|
34
|
+
): void => {
|
|
35
|
+
writeEventNdjson({ kind: "failure", ...summary });
|
|
36
|
+
writeEventNdjson({
|
|
37
|
+
kind: terminal,
|
|
38
|
+
exitCode: null,
|
|
39
|
+
cause: "failed",
|
|
40
|
+
failure: summary,
|
|
41
|
+
} as never);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const refuse = (r: Refusal, json: boolean, terminal: "done" | "closed" = "done"): void => {
|
|
27
45
|
process.stderr.write(`${r.message}\n`);
|
|
28
46
|
if (r.hint) process.stderr.write(`hint: ${r.hint}\n`);
|
|
29
47
|
if (r.supportedBy?.length) {
|
|
@@ -34,17 +52,18 @@ export const refuse = (r: Refusal, json: boolean): void => {
|
|
|
34
52
|
if (r.supported?.length) process.stderr.write(`supported: ${r.supported.join(", ")}\n`);
|
|
35
53
|
for (const line of r.trailer ?? []) process.stderr.write(`${line}\n`);
|
|
36
54
|
if (json) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
55
|
+
writeFailurePair(
|
|
56
|
+
failureFromRejected({
|
|
57
|
+
issue: r.issue,
|
|
58
|
+
option: r.option,
|
|
59
|
+
facet: r.facet,
|
|
60
|
+
supported: r.supported,
|
|
61
|
+
supportedBy: r.supportedBy,
|
|
62
|
+
hint: r.hint,
|
|
63
|
+
detail: r.message,
|
|
64
|
+
}),
|
|
65
|
+
terminal,
|
|
66
|
+
);
|
|
48
67
|
}
|
|
49
68
|
process.exitCode = 2;
|
|
50
69
|
};
|
package/src/cli/render.ts
CHANGED
|
@@ -81,6 +81,23 @@ export const renderEvent = (event: HarnessEvent, state: RenderState): void => {
|
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
/** Write one NDJSON event, reporting whether stdout took it immediately.
|
|
85
|
+
*
|
|
86
|
+
* `false` means the kernel buffer is full and the bytes are queued in the
|
|
87
|
+
* process. A caller streaming a turn MUST wait for `drain` before writing
|
|
88
|
+
* again (see `writeEventNdjsonAsync`); a caller writing one terminal pair on
|
|
89
|
+
* the way out may ignore it, because Node flushes pending stdout writes
|
|
90
|
+
* before it exits. */
|
|
91
|
+
export const writeEventNdjson = (event: HarnessEvent): boolean =>
|
|
85
92
|
process.stdout.write(`${JSON.stringify(event)}\n`);
|
|
93
|
+
|
|
94
|
+
/** The streaming form: resolves once stdout has taken the line.
|
|
95
|
+
*
|
|
96
|
+
* Without this a slow reader is absorbed by the process rather than pushed
|
|
97
|
+
* back on: hcn keeps pulling from the harness and buffering, so memory grows
|
|
98
|
+
* with the turn instead of the harness being stalled. RFC-01 rule 8 names
|
|
99
|
+
* both hops; this is the hcn-to-consumer one. */
|
|
100
|
+
export const writeEventNdjsonAsync = async (event: HarnessEvent): Promise<void> => {
|
|
101
|
+
if (writeEventNdjson(event)) return;
|
|
102
|
+
await new Promise<void>((resolve) => process.stdout.once("drain", resolve));
|
|
86
103
|
};
|
package/src/cli/run.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { recognizeNativeSpelling, supportedBy } from "../interpretation/support.
|
|
|
9
9
|
import { defaultDescriptors } from "../knowledge/overrides.js";
|
|
10
10
|
import { parseRunExtra, parseTurnOptions, resolvePromptAsync } from "./args.js";
|
|
11
11
|
import { refusalOf, refuse } from "./refuse.js";
|
|
12
|
-
import { createRenderState, renderEvent,
|
|
12
|
+
import { createRenderState, renderEvent, writeEventNdjsonAsync } from "./render.js";
|
|
13
13
|
import { resolveHarness } from "./resolve-harness.js";
|
|
14
14
|
import { resumeStore } from "./resume-guard.js";
|
|
15
15
|
|
|
@@ -465,7 +465,9 @@ export const run = async (harnessName: string, rawArgs: string[]): Promise<void>
|
|
|
465
465
|
for await (const event of events) {
|
|
466
466
|
lastEvent = event;
|
|
467
467
|
if (wantJson) {
|
|
468
|
-
|
|
468
|
+
// Await the write: a consumer that stops reading must stall the
|
|
469
|
+
// harness, not be absorbed into this process's memory.
|
|
470
|
+
await writeEventNdjsonAsync(event);
|
|
469
471
|
} else {
|
|
470
472
|
renderEvent(event, state);
|
|
471
473
|
}
|