@relayflows/sdk 2.0.37 → 2.0.39
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/dist/agent-reaper.d.ts +1 -1
- package/dist/agent-reaper.d.ts.map +1 -1
- package/dist/agent-reaper.js +6 -4
- package/dist/agent-reaper.js.map +1 -1
- package/dist/authored-budget.d.ts +26 -1
- package/dist/authored-budget.d.ts.map +1 -1
- package/dist/authored-budget.js +72 -2
- package/dist/authored-budget.js.map +1 -1
- package/dist/authored-flow-error.d.ts +7 -1
- package/dist/authored-flow-error.d.ts.map +1 -1
- package/dist/authored-flow-error.js.map +1 -1
- package/dist/authored-node-runner.d.ts.map +1 -1
- package/dist/authored-node-runner.js +3 -2
- package/dist/authored-node-runner.js.map +1 -1
- package/dist/authored-root.d.ts.map +1 -1
- package/dist/authored-root.js +141 -6
- package/dist/authored-root.js.map +1 -1
- package/dist/authored-worker-step.js +1 -0
- package/dist/authored-worker-step.js.map +1 -1
- package/dist/child-stop.d.ts +3 -1
- package/dist/child-stop.d.ts.map +1 -1
- package/dist/child-stop.js +42 -2
- package/dist/child-stop.js.map +1 -1
- package/dist/cli/add-extension.js +1 -1
- package/dist/cli/add-extension.js.map +1 -1
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +25 -7
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/cli-probe.d.ts +1 -0
- package/dist/cli/cli-probe.d.ts.map +1 -1
- package/dist/cli/cli-probe.js +72 -36
- package/dist/cli/cli-probe.js.map +1 -1
- package/dist/cli/cloud-deploy.d.ts +9 -1
- package/dist/cli/cloud-deploy.d.ts.map +1 -1
- package/dist/cli/cloud-deploy.js +24 -5
- package/dist/cli/cloud-deploy.js.map +1 -1
- package/dist/cli/cloud-versions.d.ts +22 -0
- package/dist/cli/cloud-versions.d.ts.map +1 -0
- package/dist/cli/cloud-versions.js +96 -0
- package/dist/cli/cloud-versions.js.map +1 -0
- package/dist/cli/direct-run.d.ts.map +1 -1
- package/dist/cli/direct-run.js +4 -1
- package/dist/cli/direct-run.js.map +1 -1
- package/dist/cli/pinned-cli-alias.d.ts +13 -0
- package/dist/cli/pinned-cli-alias.d.ts.map +1 -0
- package/dist/cli/pinned-cli-alias.js +58 -0
- package/dist/cli/pinned-cli-alias.js.map +1 -0
- package/dist/cli/run.d.ts +8 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +91 -8
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/step-failure.d.ts.map +1 -1
- package/dist/cli/step-failure.js +18 -0
- package/dist/cli/step-failure.js.map +1 -1
- package/dist/cli-commands.d.ts +27 -0
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +18 -0
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloud-deploy.d.ts +17 -0
- package/dist/cloud-deploy.d.ts.map +1 -1
- package/dist/cloud-deploy.js +8 -1
- package/dist/cloud-deploy.js.map +1 -1
- package/dist/cloud-run.d.ts.map +1 -1
- package/dist/cloud-run.js +9 -2
- package/dist/cloud-run.js.map +1 -1
- package/dist/cloud-versions-wire.d.ts +25 -0
- package/dist/cloud-versions-wire.d.ts.map +1 -0
- package/dist/cloud-versions-wire.js +39 -0
- package/dist/cloud-versions-wire.js.map +1 -0
- package/dist/cloud-versions.d.ts +47 -0
- package/dist/cloud-versions.d.ts.map +1 -0
- package/dist/cloud-versions.js +131 -0
- package/dist/cloud-versions.js.map +1 -0
- package/dist/communication/worker.d.ts.map +1 -1
- package/dist/communication/worker.js +24 -6
- package/dist/communication/worker.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +16 -7
- package/dist/compile.js.map +1 -1
- package/dist/failure-kinds.d.ts +9 -1
- package/dist/failure-kinds.d.ts.map +1 -1
- package/dist/failure-kinds.js +6 -0
- package/dist/failure-kinds.js.map +1 -1
- package/dist/flow-extension-loader.d.ts +1 -1
- package/dist/flow-extension-loader.d.ts.map +1 -1
- package/dist/flow-extension-loader.js +143 -14
- package/dist/flow-extension-loader.js.map +1 -1
- package/dist/flow-extension-manifest.d.ts +1 -0
- package/dist/flow-extension-manifest.d.ts.map +1 -1
- package/dist/flow-extension-manifest.js +12 -3
- package/dist/flow-extension-manifest.js.map +1 -1
- package/dist/hosted-extension-manifest.d.ts.map +1 -1
- package/dist/hosted-extension-manifest.js +25 -4
- package/dist/hosted-extension-manifest.js.map +1 -1
- package/dist/hosted-extension-runtime.js +1 -1
- package/dist/hosted-extension-sandbox.js +2 -2
- package/dist/llm-worker.d.ts.map +1 -1
- package/dist/llm-worker.js +4 -2
- package/dist/llm-worker.js.map +1 -1
- package/dist/mcp-stdio.d.ts +2 -1
- package/dist/mcp-stdio.d.ts.map +1 -1
- package/dist/mcp-stdio.js +38 -21
- package/dist/mcp-stdio.js.map +1 -1
- package/dist/preflight.d.ts +2 -0
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js.map +1 -1
- package/dist/protocol.d.ts +9 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/resolved-cli-identity.d.ts +14 -0
- package/dist/resolved-cli-identity.d.ts.map +1 -0
- package/dist/resolved-cli-identity.js +19 -0
- package/dist/resolved-cli-identity.js.map +1 -0
- package/dist/worker-cli.d.ts +3 -1
- package/dist/worker-cli.d.ts.map +1 -1
- package/dist/worker-cli.js +116 -40
- package/dist/worker-cli.js.map +1 -1
- package/dist/worker-lease.d.ts +3 -1
- package/dist/worker-lease.d.ts.map +1 -1
- package/dist/worker-lease.js +47 -9
- package/dist/worker-lease.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +4 -2
- package/dist/worker.js.map +1 -1
- package/dist/wrapper-session.d.ts +3 -1
- package/dist/wrapper-session.d.ts.map +1 -1
- package/dist/wrapper-session.js +93 -53
- package/dist/wrapper-session.js.map +1 -1
- package/package.json +2 -2
- package/src/agent-reaper.ts +7 -4
- package/src/authored-budget.ts +73 -1
- package/src/authored-flow-error.ts +6 -0
- package/src/authored-node-runner.ts +3 -2
- package/src/authored-root.ts +150 -7
- package/src/authored-worker-step.ts +1 -0
- package/src/child-stop.ts +40 -1
- package/src/cli/add-extension.ts +1 -1
- package/src/cli/check.ts +25 -4
- package/src/cli/cli-probe.ts +73 -37
- package/src/cli/cloud-deploy.ts +21 -7
- package/src/cli/cloud-versions.ts +103 -0
- package/src/cli/direct-run.ts +4 -1
- package/src/cli/pinned-cli-alias.ts +74 -0
- package/src/cli/run.ts +103 -7
- package/src/cli/step-failure.ts +18 -0
- package/src/cli-commands.ts +18 -0
- package/src/cli.ts +15 -0
- package/src/cloud-deploy.ts +24 -3
- package/src/cloud-run.ts +9 -2
- package/src/cloud-versions-wire.ts +58 -0
- package/src/cloud-versions.ts +179 -0
- package/src/communication/worker.ts +24 -9
- package/src/compile.ts +28 -13
- package/src/failure-kinds.ts +14 -0
- package/src/flow-extension-loader.ts +154 -14
- package/src/flow-extension-manifest.ts +6 -3
- package/src/hosted-extension-manifest.ts +28 -5
- package/src/hosted-extension-runtime.ts +1 -1
- package/src/hosted-extension-sandbox.ts +2 -2
- package/src/llm-worker.ts +6 -4
- package/src/mcp-stdio.ts +34 -20
- package/src/preflight.ts +2 -0
- package/src/protocol.ts +9 -0
- package/src/resolved-cli-identity.ts +42 -0
- package/src/worker-cli.ts +123 -37
- package/src/worker-lease.ts +50 -9
- package/src/worker.ts +6 -4
- package/src/wrapper-session.ts +89 -56
package/dist/wrapper-session.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import {
|
|
2
|
+
import { childStop, ownsProcessGroup } from './child-stop.js';
|
|
3
|
+
import { reapOnExit } from './agent-reaper.js';
|
|
3
4
|
import { WRAPPER_EXECUTE_TOKEN, WRAPPER_IDENTIFY_ARG, WRAPPER_IDENTIFY_TOKEN, } from './cli-adapter.js';
|
|
4
5
|
import { captureWrapperIdentity, sameWrapperIdentity, } from './wrapper-runtime.js';
|
|
6
|
+
import { basename } from 'node:path';
|
|
7
|
+
import { pinCliAlias } from './cli/pinned-cli-alias.js';
|
|
5
8
|
const DEFAULT_LIMITS = {
|
|
6
9
|
handshakeTimeoutMs: 10_000,
|
|
7
10
|
executionTimeoutMs: 0,
|
|
@@ -14,7 +17,6 @@ const HANDSHAKE_OUTPUT_LIMIT = 8_192;
|
|
|
14
17
|
* descendant of the wrapper can withhold forever. Resolution therefore may
|
|
15
18
|
* not depend on `'close'`: past this point the reader settles regardless.
|
|
16
19
|
*/
|
|
17
|
-
const SETTLE_AFTER_KILL_MS = 250;
|
|
18
20
|
/**
|
|
19
21
|
* How long a session with NO execution deadline waits, after the wrapper
|
|
20
22
|
* process itself is gone, for its stdio to finish draining.
|
|
@@ -34,7 +36,9 @@ const DRAIN_AFTER_EXIT_MS = 250;
|
|
|
34
36
|
*/
|
|
35
37
|
export function runWrapperSession(cli, instruction, wakeContext, model, env, overrides = {}, signal,
|
|
36
38
|
/** Working directory for the wrapper process; the artifact scanner uses the same root. */
|
|
37
|
-
cwd
|
|
39
|
+
cwd,
|
|
40
|
+
/** Authored invocation basename retained while executing pinned canonical bytes. */
|
|
41
|
+
argv0) {
|
|
38
42
|
if (signal?.aborted)
|
|
39
43
|
return Promise.reject(signal.reason);
|
|
40
44
|
if (signal !== undefined && process.platform === 'win32') {
|
|
@@ -60,18 +64,36 @@ cwd) {
|
|
|
60
64
|
catch (error) {
|
|
61
65
|
return Promise.resolve(failure(`CLI ${JSON.stringify(cli)} wrapper identity could not be pinned: ${String(error)}`));
|
|
62
66
|
}
|
|
63
|
-
return executePinnedWrapper(cli, identity, request, env, limits, signal, cwd);
|
|
67
|
+
return executePinnedWrapper(cli, identity, request, env, limits, signal, cwd, argv0);
|
|
64
68
|
}
|
|
65
|
-
function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
async function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd, argv0) {
|
|
70
|
+
let pinned;
|
|
71
|
+
try {
|
|
72
|
+
pinned = await pinCliAlias(identity.executable, argv0 ?? basename(cli));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return failure(`CLI ${JSON.stringify(cli)} wrapper invocation alias could not be pinned: ${String(error)}`);
|
|
76
|
+
}
|
|
77
|
+
if (signal?.aborted) {
|
|
78
|
+
pinned.release();
|
|
79
|
+
return failure('Agent execution aborted: lease ownership lost.');
|
|
80
|
+
}
|
|
81
|
+
const ownsGroup = ownsProcessGroup(signal);
|
|
82
|
+
let child;
|
|
83
|
+
try {
|
|
84
|
+
child = spawn(pinned.executable, [WRAPPER_IDENTIFY_ARG], {
|
|
69
85
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
70
86
|
env,
|
|
71
87
|
detached: ownsGroup,
|
|
88
|
+
...(argv0 === undefined ? {} : { argv0 }),
|
|
72
89
|
...(cwd === undefined ? {} : { cwd }),
|
|
73
90
|
});
|
|
74
|
-
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
pinned.release();
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
return new Promise((resolve) => {
|
|
75
97
|
const stdout = [];
|
|
76
98
|
const stderr = [];
|
|
77
99
|
let handshakePending = '';
|
|
@@ -85,31 +107,53 @@ function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd)
|
|
|
85
107
|
let exitCode = null;
|
|
86
108
|
/** The handshake deadline, then the execution deadline if there is one. */
|
|
87
109
|
let lifecycleTimer;
|
|
88
|
-
/** `terminate`'s own settle deadline. */
|
|
89
|
-
let settleTimer;
|
|
90
110
|
/** The post-exit drain grace, armed only when execution is unlimited. */
|
|
91
111
|
let drainTimer;
|
|
92
|
-
/** The settle deadline the drain's own stop owes, after its escalation. */
|
|
93
|
-
let drainSettleTimer;
|
|
94
|
-
// Each deadline owns its own handle. They can be armed at the same time —
|
|
95
|
-
// a drain grace can be running when an over-limit final line terminates
|
|
96
|
-
// the session — and a shared variable would drop the only reference to
|
|
97
|
-
// one of them and leave it pending past the settle.
|
|
98
112
|
const finish = (result) => {
|
|
99
113
|
if (settled)
|
|
100
114
|
return;
|
|
101
115
|
settled = true;
|
|
102
116
|
if (lifecycleTimer !== undefined)
|
|
103
117
|
clearTimeout(lifecycleTimer);
|
|
104
|
-
if (settleTimer !== undefined)
|
|
105
|
-
clearTimeout(settleTimer);
|
|
106
118
|
if (drainTimer !== undefined)
|
|
107
119
|
clearTimeout(drainTimer);
|
|
108
|
-
if (drainSettleTimer !== undefined)
|
|
109
|
-
clearTimeout(drainSettleTimer);
|
|
110
120
|
signal?.removeEventListener('abort', onAbort);
|
|
111
121
|
resolve(result);
|
|
112
122
|
};
|
|
123
|
+
let pendingStopResult;
|
|
124
|
+
let releaseReaper = () => { };
|
|
125
|
+
const stop = childStop(child, ownsGroup, undefined, (stopError) => {
|
|
126
|
+
if (stopError !== undefined) {
|
|
127
|
+
finish(failure(stopError.message));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
pinned.release();
|
|
132
|
+
releaseReaper();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
finish(failure(`CLI ${JSON.stringify(cli)} wrapper invocation alias cleanup failed: ${String(error)}`));
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (pendingStopResult !== undefined)
|
|
139
|
+
finish(pendingStopResult.result);
|
|
140
|
+
});
|
|
141
|
+
releaseReaper = ownsGroup ? reapOnExit(stop, () => {
|
|
142
|
+
try {
|
|
143
|
+
pinned.release();
|
|
144
|
+
}
|
|
145
|
+
catch { /* host exit cannot report another result */ }
|
|
146
|
+
}) : () => { };
|
|
147
|
+
const finishAfterStop = (result, action, priority = 'normal') => {
|
|
148
|
+
// Lease loss is authoritative. It may replace a protocol/drain result
|
|
149
|
+
// whose stop is still being proved, but no later timer may replace it.
|
|
150
|
+
if (pendingStopResult !== undefined) {
|
|
151
|
+
if (pendingStopResult.priority === 'abort' || priority === 'normal')
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
pendingStopResult = { result, priority };
|
|
155
|
+
stop[action]();
|
|
156
|
+
};
|
|
113
157
|
/**
|
|
114
158
|
* INVARIANT: a session may not settle until either the process group is
|
|
115
159
|
* confirmed dead or the escalation has actually run.
|
|
@@ -121,22 +165,26 @@ function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd)
|
|
|
121
165
|
* one. Every child-level settle therefore goes through
|
|
122
166
|
* `maySettleOnChildExit`, which is the one place that asks the GROUP.
|
|
123
167
|
*
|
|
124
|
-
* When it says no,
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* so refusing here can defer a settle but can never strand one.
|
|
168
|
+
* When it says no, the shared stop callback settles instead, with the
|
|
169
|
+
* pending result or a fail-closed group-confirmation error. Every stop is
|
|
170
|
+
* bounded, so refusing here can defer a settle but can never strand one.
|
|
128
171
|
*/
|
|
129
172
|
const finishOnChildExit = (result) => {
|
|
130
173
|
// Asked before `finish`, and asked even once we have already settled:
|
|
131
174
|
// this is also the only place a pointless escalation is refunded, and a
|
|
132
|
-
// session
|
|
175
|
+
// session whose result is pending on `terminate` still owes that refund.
|
|
133
176
|
if (!stop.maySettleOnChildExit())
|
|
134
177
|
return;
|
|
135
178
|
finish(result);
|
|
136
179
|
};
|
|
137
180
|
const onAbort = () => {
|
|
138
|
-
|
|
139
|
-
|
|
181
|
+
if (lifecycleTimer !== undefined)
|
|
182
|
+
clearTimeout(lifecycleTimer);
|
|
183
|
+
lifecycleTimer = undefined;
|
|
184
|
+
if (drainTimer !== undefined)
|
|
185
|
+
clearTimeout(drainTimer);
|
|
186
|
+
drainTimer = undefined;
|
|
187
|
+
finishAfterStop(failure('Agent execution aborted: lease ownership lost.'), 'kill', 'abort');
|
|
140
188
|
};
|
|
141
189
|
signal?.addEventListener('abort', onAbort, { once: true });
|
|
142
190
|
if (signal?.aborted) {
|
|
@@ -151,24 +199,18 @@ function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd)
|
|
|
151
199
|
clearTimeout(lifecycleTimer);
|
|
152
200
|
lifecycleTimer = undefined;
|
|
153
201
|
// A refusal wins over a drain that was going to report the wrapper's own
|
|
154
|
-
// exit as a success: from here this settle belongs to the
|
|
155
|
-
//
|
|
202
|
+
// exit as a success: from here this settle belongs to the shared stop
|
|
203
|
+
// callback, and a drain that still fired would stop the tree a second time.
|
|
156
204
|
if (drainTimer !== undefined)
|
|
157
205
|
clearTimeout(drainTimer);
|
|
158
206
|
drainTimer = undefined;
|
|
159
207
|
// Same reach as an abort, only gentler first: this stop must find the
|
|
160
208
|
// whole group, or a descendant outlives the session still holding the
|
|
161
209
|
// stdio it inherited.
|
|
162
|
-
stop.
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
// `completionReason` at all. Settle on our own deadline instead — the
|
|
167
|
-
// same shape `spawnInvocation` uses in worker-cli.ts, where the timer
|
|
168
|
-
// resolves rather than delegating to a child-controlled event. The
|
|
169
|
-
// result is byte-identical to the one the `'close'` path would build
|
|
170
|
-
// for this `protocolError`, so this changes only WHEN we settle.
|
|
171
|
-
settleTimer = setTimeout(() => finish(failure(message)), FORCE_KILL_DELAY_MS + SETTLE_AFTER_KILL_MS);
|
|
210
|
+
// The shared stop owns both the liveness bound and settlement. Its
|
|
211
|
+
// callback preserves this refusal once group death is proved, or
|
|
212
|
+
// replaces it with a fail-closed confirmation error when it is not.
|
|
213
|
+
finishAfterStop(failure(message), 'terminate');
|
|
172
214
|
};
|
|
173
215
|
const startExecutionTimer = () => {
|
|
174
216
|
if (lifecycleTimer !== undefined)
|
|
@@ -287,24 +329,22 @@ function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd)
|
|
|
287
329
|
drainTimer = undefined;
|
|
288
330
|
if (settled)
|
|
289
331
|
return;
|
|
290
|
-
|
|
291
|
-
//
|
|
292
|
-
//
|
|
293
|
-
|
|
294
|
-
// deadlines racing for one settle.
|
|
295
|
-
if (settleTimer !== undefined)
|
|
332
|
+
// A protocol stop or lease abort already owns settlement. In particular,
|
|
333
|
+
// a drain timer armed before abort may not replace the abort while group
|
|
334
|
+
// death is still being confirmed.
|
|
335
|
+
if (pendingStopResult !== undefined)
|
|
296
336
|
return;
|
|
337
|
+
const result = executionResult(exitCode);
|
|
297
338
|
// The wrapper is gone and `'close'` has still not arrived, so something
|
|
298
339
|
// it left behind is holding stdio it inherited. Stop what is reachable —
|
|
299
340
|
// a settle that releases no pipes lets the step complete while
|
|
300
|
-
// `flows run` never exits
|
|
301
|
-
//
|
|
302
|
-
// group
|
|
303
|
-
|
|
304
|
-
drainSettleTimer = setTimeout(() => finish(executionResult(exitCode)), FORCE_KILL_DELAY_MS + SETTLE_AFTER_KILL_MS);
|
|
341
|
+
// `flows run` never exits. A descendant that escaped into its own group
|
|
342
|
+
// before the wrapper died is not traceable to this spawn, but every
|
|
343
|
+
// group the stop can address must be proved gone before this result wins.
|
|
344
|
+
finishAfterStop(result, 'terminate');
|
|
305
345
|
// Settle now if the stop turned out to have nothing to reach; otherwise
|
|
306
|
-
//
|
|
307
|
-
// group is empty may still settle earlier.
|
|
346
|
+
// its confirmation callback owns the result, and a `'close'` that arrives
|
|
347
|
+
// once the group is empty may still settle earlier.
|
|
308
348
|
finishOnChildExit(result);
|
|
309
349
|
};
|
|
310
350
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper-session.js","sourceRoot":"","sources":["../src/wrapper-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrapper-session.js","sourceRoot":"","sources":["../src/wrapper-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAsBxD,MAAM,cAAc,GAAyB;IAC3C,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,CAAC;IACrB,cAAc,EAAE,SAAS;CAC1B,CAAC;AACF,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC;;;;;GAKG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,WAAmB,EACnB,WAAoB,EACpB,KAAyB,EACzB,GAAsB,EACtB,YAA2C,EAAE,EAC7C,MAAoB;AACpB,0FAA0F;AAC1F,GAAY;AACZ,oFAAoF;AACpF,KAAc;IAEd,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC,CAAC;IAChJ,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACvB,QAAQ,EAAE,sBAAsB;YAChC,WAAW;YACX,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAC5B,0DAA0D,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,QAAyB,EACzB,OAAe,EACf,GAAsB,EACtB,MAA4B,EAC5B,MAAoB,EACpB,GAAY,EACZ,KAAc;IAEd,IAAI,MAA+C,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CACZ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kDAAkD,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,gDAAgD,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,EAAE;YACvD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG;YACH,QAAQ,EAAE,SAAS;YACnB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAAmC,UAAU,CAAC;QACvD,IAAI,aAAiC,CAAC;QACtC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,2EAA2E;QAC3E,IAAI,cAA0C,CAAC;QAC/C,yEAAyE;QACzE,IAAI,UAAsC,CAAC;QAE3C,MAAM,MAAM,GAAG,CAAC,MAA4B,EAAQ,EAAE;YACpD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,cAAc,KAAK,SAAS;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/D,IAAI,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,IAAI,iBAA6F,CAAC;QAClG,IAAI,aAAa,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;YAChE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,6CAA6C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxG,OAAO;YACT,CAAC;YACD,IAAI,iBAAiB,KAAK,SAAS;gBAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;YAChD,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QACd,MAAM,eAAe,GAAG,CACtB,MAA4B,EAC5B,MAA4B,EAC5B,WAA+B,QAAQ,EACjC,EAAE;YACR,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,iBAAiB,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ;oBAAE,OAAO;YAC9E,CAAC;YACD,iBAAiB,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,CAAC,CAAC;QACF;;;;;;;;;;;;;;WAcG;QACH,MAAM,iBAAiB,GAAG,CAAC,MAA4B,EAAQ,EAAE;YAC/D,sEAAsE;YACtE,wEAAwE;YACxE,yEAAyE;YACzE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAAE,OAAO;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,cAAc,KAAK,SAAS;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/D,cAAc,GAAG,SAAS,CAAC;YAC3B,IAAI,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,UAAU,GAAG,SAAS,CAAC;YACvB,eAAe,CAAC,OAAO,CAAC,gDAAgD,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,CAAC,OAAe,EAAQ,EAAE;YAC1C,IAAI,aAAa,KAAK,SAAS;gBAAE,OAAO;YACxC,aAAa,GAAG,OAAO,CAAC;YACxB,IAAI,cAAc,KAAK,SAAS;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/D,cAAc,GAAG,SAAS,CAAC;YAC3B,yEAAyE;YACzE,sEAAsE;YACtE,4EAA4E;YAC5E,IAAI,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,UAAU,GAAG,SAAS,CAAC;YACvB,sEAAsE;YACtE,sEAAsE;YACtE,sBAAsB;YACtB,mEAAmE;YACnE,iEAAiE;YACjE,oEAAoE;YACpE,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,GAAS,EAAE;YACrC,IAAI,cAAc,KAAK,SAAS;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/D,cAAc,GAAG,SAAS,CAAC;YAC3B,uDAAuD;YACvD,qEAAqE;YACrE,yEAAyE;YACzE,yEAAyE;YACzE,0CAA0C;YAC1C,IAAI,MAAM,CAAC,kBAAkB,IAAI,CAAC;gBAAE,OAAO;YAC3C,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,kBAAkB,KAAK,CACvF,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,CAAC,eAAuB,EAAW,EAAE;YAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,aAAa,GAAG,YAAY,GAAG,eAAe,IAAI,MAAM,CAAC,cAAc;gBAAE,OAAO,KAAK,CAAC;YAC1F,SAAS,CACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,cAAc,SAAS,CACnG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAQ,EAAE;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvC,aAAa,IAAI,KAAK,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAQ,EAAE;YACjD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzB,IAAI,UAAU,KAAK,sBAAsB,EAAE,CAAC;oBAC1C,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,sBAAsB,uBAAuB,CAAC,CAAC;oBAC3G,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC7C,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;oBAClG,OAAO;gBACT,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC;gBACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACpB,IAAI,UAAU,KAAK,qBAAqB,EAAE,CAAC;oBACzC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,sBAAsB,kCAAkC,CAAC,CAAC;oBACrH,OAAO;gBACT,CAAC;gBACD,KAAK,GAAG,SAAS,CAAC;gBAClB,mBAAmB,EAAE,CAAC;gBACtB,wEAAwE;gBACxE,qEAAqE;gBACrE,uEAAuE;gBACvE,kEAAkE;gBAClE,0BAA0B;gBAC1B,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAQ,EAAE;YAClD,gBAAgB,IAAI,KAAK,CAAC;YAC1B,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBAAE,OAAO;YAClC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,CAAC;oBAAE,OAAO;gBACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAChD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,qBAAqB,EAAE,CAAC;oBAClD,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;oBACpF,OAAO;gBACT,CAAC;gBACD,YAAY,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QACF,MAAM,iBAAiB,GAAG,GAAY,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;QAC7D;;;;;;;;WAQG;QACH,MAAM,cAAc,GAAG,GAAS,EAAE;YAChC,IAAI,eAAe;gBAAE,OAAO;YAC5B,eAAe,GAAG,IAAI,CAAC;YACvB,IAAI,aAAa,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtF,IAAI,aAAa,CAAC,gBAAgB,CAAC,KAAK,qBAAqB,EAAE,CAAC;oBAC9D,aAAa,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,8CAA8C,CAAC;gBAC3F,CAAC;qBAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,gBAAgB,GAAG,EAAE,CAAC;QACxB,CAAC,CAAC;QACF;;;;WAIG;QACH,MAAM,eAAe,GAAG,CAAC,IAAmB,EAAwB,EAAE;YACpE,cAAc,EAAE,CAAC;YACjB,IAAI,aAAa,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvD,OAAO,OAAO,CACZ,aAAa;uBACR,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iCAAiC,sBAAsB,0BAA0B,CACjH,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpD,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,UAAU,GAAG,SAAS,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO;YACpB,yEAAyE;YACzE,yEAAyE;YACzE,kCAAkC;YAClC,IAAI,iBAAiB,KAAK,SAAS;gBAAE,OAAO;YAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACzC,wEAAwE;YACxE,yEAAyE;YACzE,+DAA+D;YAC/D,wEAAwE;YACxE,oEAAoE;YACpE,0EAA0E;YAC1E,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACrC,wEAAwE;YACxE,0EAA0E;YAC1E,oDAAoD;YACpD,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF;;;;;WAKG;QACH,MAAM,eAAe,GAAG,GAAS,EAAE;YACjC,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC;gBAAE,OAAO;YAC1C,IAAI,CAAC,WAAW,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChD,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS;gBAAE,OAAO;YAC/E,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,sBAAsB,WAAW,MAAM,CAAC,kBAAkB,KAAK,CAClH,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAE9B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,iEAAiE;YACjE,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,IAAI,aAAa,KAAK,SAAS,IAAI,eAAe;gBAAE,OAAO;YAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,gBAAgB,IAAI,KAAK,CAAC;YAC1B,sEAAsE;YACtE,qEAAqE;YACrE,oEAAoE;YACpE,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,mEAAmE;YACnE,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,CAAC;oBAAE,MAAM;gBACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAChD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,aAAa,KAAK,SAAS;oBAAE,OAAO;YAC1C,CAAC;YACD,IAAI,iBAAiB,EAAE,EAAE,CAAC;gBACxB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,SAAS,GAAG,gBAAgB,CAAC;oBACnC,gBAAgB,GAAG,EAAE,CAAC;oBACtB,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,mCAAmC;YACnC,IAAI,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,EAAE,CAAC;gBACjE,SAAS,CACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,4CAA4C,sBAAsB,gCAAgC,sBAAsB,aAAa,CAChK,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,IAAI,aAAa,KAAK,SAAS,IAAI,eAAe,IAAI,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;gBAAE,OAAO;YACnG,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,2EAA2E;QAC7E,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,2EAA2E;QAC3E,oEAAoE;QACpE,0EAA0E;QAC1E,gEAAgE;QAChE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,WAAW,GAAG,IAAI,CAAC;YACnB,QAAQ,GAAG,IAAI,CAAC;YAChB,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,SAAwC;IAC7D,OAAO;QACL,kBAAkB,EAAE,aAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,CAAC;QAClG,kBAAkB,EAAE,aAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,CAAC;QAClG,cAAc,EAAE,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,SAAS,aAAa,CAAC,KAAyB,EAAE,QAAgB;IAChE,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5F,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAyB,EAAE,QAAgB;IAChE,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,OAAO,CAAC,WAAmB;IAClC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;AAC3D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relayflows/sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.39",
|
|
4
4
|
"description": "TypeScript-first authoring SDK for Relayflows. Compiles specs; speaks the journal protocol.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
50
50
|
"@relayfile/adapter-core": "0.6.2",
|
|
51
51
|
"@relayfile/relay-helpers": "0.4.12",
|
|
52
|
-
"@relayflows/surface": "2.0.
|
|
52
|
+
"@relayflows/surface": "2.0.39",
|
|
53
53
|
"@types/js-yaml": "^4.0.9",
|
|
54
54
|
"acorn": "^8.18.0",
|
|
55
55
|
"ai-hist": "0.4.1",
|
package/src/agent-reaper.ts
CHANGED
|
@@ -16,11 +16,14 @@ import type { ChildStop } from './child-stop.js';
|
|
|
16
16
|
*
|
|
17
17
|
* Nothing survives a SIGKILL of this process; that needs a supervisor.
|
|
18
18
|
*/
|
|
19
|
-
const live = new
|
|
19
|
+
const live = new Map<ChildStop, () => void>();
|
|
20
20
|
const FATAL_SIGNALS: readonly NodeJS.Signals[] = ['SIGINT', 'SIGTERM', 'SIGHUP'];
|
|
21
21
|
|
|
22
22
|
function killAll(): void {
|
|
23
|
-
for (const stop of live)
|
|
23
|
+
for (const [stop, releaseOnExit] of live) {
|
|
24
|
+
stop.kill();
|
|
25
|
+
releaseOnExit();
|
|
26
|
+
}
|
|
24
27
|
live.clear();
|
|
25
28
|
}
|
|
26
29
|
|
|
@@ -42,9 +45,9 @@ function uninstall(): void {
|
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
/** Kill this agent tree if the process ends first. Returns the release. */
|
|
45
|
-
export function reapOnExit(stop: ChildStop): () => void {
|
|
48
|
+
export function reapOnExit(stop: ChildStop, releaseOnExit: () => void = () => {}): () => void {
|
|
46
49
|
if (live.size === 0) install();
|
|
47
|
-
live.
|
|
50
|
+
live.set(stop, releaseOnExit);
|
|
48
51
|
return () => {
|
|
49
52
|
if (!live.delete(stop)) return;
|
|
50
53
|
if (live.size === 0) uninstall();
|
package/src/authored-budget.ts
CHANGED
|
@@ -21,6 +21,76 @@ interface Charge {
|
|
|
21
21
|
unmetered: boolean;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
type Total = Omit<Charge, 'day'>;
|
|
25
|
+
|
|
26
|
+
/** `ms` as the budget header writes durations (`45s`, `2h`, `132.9m`), with the value that text denotes. */
|
|
27
|
+
function duration(ms: bigint): {text: string; shown: number} {
|
|
28
|
+
const n = Number(ms);
|
|
29
|
+
if (n < 60_000) { const s = Number((n / 1000).toFixed(1)); return {text: `${s}s`, shown: s * 1000}; }
|
|
30
|
+
if (n % 3_600_000 === 0) return {text: `${n / 3_600_000}h`, shown: n};
|
|
31
|
+
const m = Number((n / 60_000).toFixed(1));
|
|
32
|
+
return {text: `${m}m`, shown: m * 60_000};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const usd = (micro: bigint): string => `$${micro / 1_000_000n}.${String(micro % 1_000_000n).padStart(6, '0').replace(/0{1,4}$/, '')}`;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Whether `micro` microdollars exceeds the decimal `limit`, compared exactly at
|
|
39
|
+
* the limit's own precision (legacy `maxDollars` may carry more than six
|
|
40
|
+
* decimals, which the kernel compares as written). Undefined if the limit is
|
|
41
|
+
* not a plain decimal.
|
|
42
|
+
*/
|
|
43
|
+
function dollarsOver(micro: bigint, limit: string): boolean | undefined {
|
|
44
|
+
const match = /^(\d+)(?:\.(\d+))?$/.exec(limit);
|
|
45
|
+
if (match === null) return undefined;
|
|
46
|
+
const scale = Math.max(6, match[2]?.length ?? 0);
|
|
47
|
+
const limitScaled = BigInt(match[1]! + (match[2] ?? '').padEnd(scale, '0'));
|
|
48
|
+
return micro * 10n ** BigInt(scale - 6) > limitScaled;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Both durations, exact to the millisecond whenever rounding would make the
|
|
53
|
+
* overrun invisible: the displayed spend must itself read as over the
|
|
54
|
+
* displayed limit, compared as quantities so `120m` against `2h` counts too.
|
|
55
|
+
*/
|
|
56
|
+
function durations(used: bigint, limit: bigint): [string, string] {
|
|
57
|
+
const [u, l] = [duration(used), duration(limit)];
|
|
58
|
+
return u.shown > l.shown ? [u.text, l.text] : [`${used}ms`, `${limit}ms`];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The kernel refuses admission with only `budget_exceeded`; name which
|
|
63
|
+
* declared limit the carried spend crossed and by how much, using the same
|
|
64
|
+
* strict comparisons as `machine/budget.rs`. The kernel stays the authority: a
|
|
65
|
+
* refusal this accumulator cannot explain keeps the generic wording.
|
|
66
|
+
*/
|
|
67
|
+
export function budgetExceededMessage(limit: KernelBudgetSpec, total: Total, spec?: KernelRunSpec): string {
|
|
68
|
+
const crossed: string[] = [];
|
|
69
|
+
if (limit.max_wallclock_ms !== undefined && total.ms > BigInt(limit.max_wallclock_ms)) {
|
|
70
|
+
const [used, declared] = durations(total.ms, BigInt(limit.max_wallclock_ms));
|
|
71
|
+
crossed.push(`wallclock ${used} used of ${declared} declared`);
|
|
72
|
+
}
|
|
73
|
+
if (limit.max_dollars !== undefined && dollarsOver(total.micro, limit.max_dollars) === true) {
|
|
74
|
+
const exact = /^(\d+)(?:\.(\d{1,6}))?$/.exec(limit.max_dollars);
|
|
75
|
+
const declared = exact === null ? `$${limit.max_dollars}`
|
|
76
|
+
: usd(BigInt(exact[1]!) * 1_000_000n + BigInt((exact[2] ?? '').padEnd(6, '0')));
|
|
77
|
+
crossed.push(`dollars ${usd(total.micro)}${total.unmetered ? ' metered (some steps unmetered)' : ''} used of ${declared} declared`);
|
|
78
|
+
}
|
|
79
|
+
if (limit.max_tokens !== undefined && total.input + total.output > BigInt(limit.max_tokens)) {
|
|
80
|
+
crossed.push(`tokens ${total.input + total.output} used of ${limit.max_tokens} declared`);
|
|
81
|
+
}
|
|
82
|
+
if (limit.max_tokens_in !== undefined && total.input > BigInt(limit.max_tokens_in)) {
|
|
83
|
+
crossed.push(`input tokens ${total.input} used of ${limit.max_tokens_in} declared`);
|
|
84
|
+
}
|
|
85
|
+
if (limit.max_tokens_out !== undefined && total.output > BigInt(limit.max_tokens_out)) {
|
|
86
|
+
crossed.push(`output tokens ${total.output} used of ${limit.max_tokens_out} declared`);
|
|
87
|
+
}
|
|
88
|
+
const next = spec?.steps.length === 1 && typeof spec.steps[0]?.id === 'string' ? `step "${spec.steps[0].id}"` : 'the next step';
|
|
89
|
+
if (crossed.length === 0) return `Flow budget exceeded before ${next}.`;
|
|
90
|
+
const scope = limit.window === 'day' ? "in today's window of the flow's budget header" : "in the flow's budget header";
|
|
91
|
+
return `Flow budget exceeded before ${next}: ${crossed.join('; ')} ${scope}.`;
|
|
92
|
+
}
|
|
93
|
+
|
|
24
94
|
/** Serialized admission for the internal authored runner's separate step runs. */
|
|
25
95
|
export class AuthoredBudget {
|
|
26
96
|
private readonly limit: KernelBudgetSpec | undefined;
|
|
@@ -66,7 +136,9 @@ export class AuthoredBudget {
|
|
|
66
136
|
};
|
|
67
137
|
const outcome = await journal.runStart({ ...spec, budget: { ...this.limit, prior_spend: priorSpend } }, undefined, admissionKey);
|
|
68
138
|
try {
|
|
69
|
-
if (outcome.completion_reason === 'budget_exceeded')
|
|
139
|
+
if (outcome.completion_reason === 'budget_exceeded') {
|
|
140
|
+
throw new AuthoredFlowExecutionError('step_failed', budgetExceededMessage(this.limit!, total, spec), 'budget_exceeded', outcome.run_id);
|
|
141
|
+
}
|
|
70
142
|
return await consume(outcome);
|
|
71
143
|
} finally {
|
|
72
144
|
let seq = 1;
|
|
@@ -30,6 +30,12 @@ export type AuthoredFlowExecutionErrorCode =
|
|
|
30
30
|
| 'operation_callback_failed'
|
|
31
31
|
| 'step_failed'
|
|
32
32
|
| 'lease_exceeded'
|
|
33
|
+
/**
|
|
34
|
+
* The CLI lost the authored root's worker lease and the kernel did not
|
|
35
|
+
* re-dispatch the root to it. The run is not failed: completed steps are
|
|
36
|
+
* journaled and `flows resume <rootRunId>` continues it.
|
|
37
|
+
*/
|
|
38
|
+
| 'root_lease_lost'
|
|
33
39
|
| 'unsupported_completion'
|
|
34
40
|
| 'unsupported_gate'
|
|
35
41
|
| 'gate_failed'
|
|
@@ -83,7 +83,7 @@ export async function runAuthoredInNode(
|
|
|
83
83
|
await writeFile(entry, source, { mode: 0o400, flag: 'wx' });
|
|
84
84
|
if (hash(await readFile(entry)) !== runtime.payloadSha256) throw refusal();
|
|
85
85
|
const child = spawn(authority.path, ['--experimental-transform-types', entry, String(process.pid)], {
|
|
86
|
-
cwd: process.cwd(),
|
|
86
|
+
cwd: process.cwd(),
|
|
87
87
|
stdio: ['pipe', 'inherit', 'inherit', 'pipe'],
|
|
88
88
|
});
|
|
89
89
|
const result = await new Promise<AuthoredFlowExecutionResult>((resolve, reject) => {
|
|
@@ -240,7 +240,8 @@ export function stepFailedFrame(value: unknown): StepFailedDetails | undefined {
|
|
|
240
240
|
for (const [key, parsed] of [
|
|
241
241
|
['stepId', frameText(frame, 'stepId')], ['stepType', frameText(frame, 'stepType')],
|
|
242
242
|
['completionReason', frameText(frame, 'completionReason')], ['attempt', frameCount(frame, 'attempt')],
|
|
243
|
-
['maxIterations', frameCount(frame, 'maxIterations')],
|
|
243
|
+
['maxIterations', frameCount(frame, 'maxIterations')],
|
|
244
|
+
['unchargedAttempts', frameCount(frame, 'unchargedAttempts')], ['exitCode', frameCount(frame, 'exitCode')],
|
|
244
245
|
['stdoutTail', frameText(frame, 'stdoutTail')], ['stderrTail', frameText(frame, 'stderrTail')],
|
|
245
246
|
['detail', frameText(frame, 'detail')], ['transcriptPath', frameText(frame, 'transcriptPath')],
|
|
246
247
|
['attempts', attemptFrames(frame['attempts'])],
|