@descryy/runtime-orchestrator 0.3.0 → 0.4.0
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/LICENSE +6 -0
- package/dist/attach-to-running-jvm-process.d.ts +45 -98
- package/dist/attach-to-running-jvm-process.d.ts.map +1 -1
- package/dist/attach-to-running-jvm-process.js +206 -136
- package/dist/attach-to-running-jvm-process.js.map +1 -1
- package/dist/attach-to-running-node-process.d.ts +45 -103
- package/dist/attach-to-running-node-process.d.ts.map +1 -1
- package/dist/attach-to-running-node-process.js +90 -115
- package/dist/attach-to-running-node-process.js.map +1 -1
- package/dist/attach-to-running-process.d.ts +32 -70
- package/dist/attach-to-running-process.d.ts.map +1 -1
- package/dist/attach-to-running-process.js +26 -54
- package/dist/attach-to-running-process.js.map +1 -1
- package/dist/cdp-client.d.ts +8 -18
- package/dist/cdp-client.d.ts.map +1 -1
- package/dist/cdp-client.js +9 -22
- package/dist/cdp-client.js.map +1 -1
- package/dist/cgroup-partial-restriction.d.ts +42 -89
- package/dist/cgroup-partial-restriction.d.ts.map +1 -1
- package/dist/cgroup-partial-restriction.js +44 -91
- package/dist/cgroup-partial-restriction.js.map +1 -1
- package/dist/collector-version.d.ts +3 -8
- package/dist/collector-version.d.ts.map +1 -1
- package/dist/collector-version.js +3 -8
- package/dist/collector-version.js.map +1 -1
- package/dist/instrumented-execution.d.ts +30 -73
- package/dist/instrumented-execution.d.ts.map +1 -1
- package/dist/instrumented-execution.js +103 -251
- package/dist/instrumented-execution.js.map +1 -1
- package/dist/jvm-agent/build.d.ts +29 -53
- package/dist/jvm-agent/build.d.ts.map +1 -1
- package/dist/jvm-agent/build.js +34 -61
- package/dist/jvm-agent/build.js.map +1 -1
- package/dist/polling-output-source.d.ts +8 -19
- package/dist/polling-output-source.d.ts.map +1 -1
- package/dist/polling-output-source.js +14 -31
- package/dist/polling-output-source.js.map +1 -1
- package/dist/profile-backend-observation.d.ts +26 -53
- package/dist/profile-backend-observation.d.ts.map +1 -1
- package/dist/profile-backend-observation.js +26 -55
- package/dist/profile-backend-observation.js.map +1 -1
- package/dist/respawn-and-supervise.d.ts +39 -72
- package/dist/respawn-and-supervise.d.ts.map +1 -1
- package/dist/respawn-and-supervise.js +43 -84
- package/dist/respawn-and-supervise.js.map +1 -1
- package/package.json +14 -9
|
@@ -1,30 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The assembly wiring the runtime's pieces together in production code (previously
|
|
3
|
+
* only connected ad hoc by tests). Runs an `ExecutionController` over a `services`
|
|
4
|
+
* configuration; wraps each spawned process in a live `ProcessOutputSource`
|
|
5
|
+
* (polls the buffer, yields each line once); builds a `CollectorContext` with a
|
|
6
|
+
* real `resolveSourceRoot` closed over the execution's own processes; starts,
|
|
7
|
+
* drains and stops the adapter's collectors; writes every emitted item through
|
|
8
|
+
* `EvidenceStore` so redaction runs (plan §28).
|
|
3
9
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* could build collectors, `resolveServiceRootForOrigin` could map an origin
|
|
7
|
-
* to a source root, and `EvidenceStore` could persist. Only tests ever
|
|
8
|
-
* connected them, each in its own way, which meant the thing the product
|
|
9
|
-
* actually does had no single implementation to be right or wrong.
|
|
10
|
-
*
|
|
11
|
-
* This module is that implementation. It:
|
|
12
|
-
*
|
|
13
|
-
* 1. runs an `ExecutionController` over a `services` configuration;
|
|
14
|
-
* 2. wraps each spawned process in a **live** `ProcessOutputSource` that
|
|
15
|
-
* polls the accumulated buffer and yields each line exactly once;
|
|
16
|
-
* 3. builds a `CollectorContext` carrying a real `resolveSourceRoot`,
|
|
17
|
-
* closed over the execution's own processes — the channel RT-033 added
|
|
18
|
-
* and RT-029 built the lookup for, which until now nothing populated;
|
|
19
|
-
* 4. starts the adapter's collectors, drains them, stops them;
|
|
20
|
-
* 5. writes every emitted item through `EvidenceStore`, so redaction runs
|
|
21
|
-
* rather than being assumed (plan §28).
|
|
22
|
-
*
|
|
23
|
-
* **What it deliberately does not do.** It does not decide whether a
|
|
24
|
-
* finding exists, does not correlate to graph nodes, and does not drive a
|
|
25
|
-
* browser. Those are separate stages with separate contracts, and folding
|
|
26
|
-
* them in here would make the one place that assembles the runtime also the
|
|
27
|
-
* place that judges it.
|
|
10
|
+
* Deliberately does not decide whether a finding exists, correlate to graph
|
|
11
|
+
* nodes, or drive a browser — separate stages, separate contracts.
|
|
28
12
|
*/
|
|
29
13
|
import { delimiter } from "node:path";
|
|
30
14
|
import { resolveServiceRootForOrigin } from "@descryy/runtime-contracts";
|
|
@@ -36,13 +20,9 @@ import { createPollingProcessOutputSource } from "./polling-output-source.js";
|
|
|
36
20
|
import { COLLECTOR_VERSION } from "./collector-version.js";
|
|
37
21
|
/**
|
|
38
22
|
* Builds the origin → source-root lookup a collector reads through
|
|
39
|
-
* `CollectorContext.resolveSourceRoot`.
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* lookup and nothing called it; RT-033 added the channel and nothing filled
|
|
43
|
-
* it. It closes over the execution's *own* processes, which is what makes
|
|
44
|
-
* the port→service join possible at all — under ephemeral ports the
|
|
45
|
-
* configuration cannot know the port, so only the running process can say.
|
|
23
|
+
* `CollectorContext.resolveSourceRoot`. Closes over the execution's own
|
|
24
|
+
* processes, which is what makes the port→service join possible at all — under
|
|
25
|
+
* ephemeral ports only the running process knows its own port.
|
|
46
26
|
*/
|
|
47
27
|
export function createSourceRootResolver(processes, configuration) {
|
|
48
28
|
return (origin) => resolveServiceRootForOrigin(origin, { processes, configuration });
|
|
@@ -66,9 +46,8 @@ export function applyOutboundLaunch(execution, launch) {
|
|
|
66
46
|
const prepend = new Set(launch.prependToExisting ?? []);
|
|
67
47
|
const env = { ...service.env };
|
|
68
48
|
for (const [key, value] of Object.entries(launch.env ?? {})) {
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
// finding its own modules, which is breaking it in order to watch it.
|
|
49
|
+
// extend, don't replace, a variable the target relies on (PYTHONPATH is the
|
|
50
|
+
// live case) -- replacing it breaks the app's own module resolution
|
|
72
51
|
const existing = prepend.has(key) ? (service.env?.[key] ?? process.env[key] ?? "") : "";
|
|
73
52
|
env[key] = existing === "" ? value : `${value}${delimiter}${existing}`;
|
|
74
53
|
}
|
|
@@ -83,35 +62,19 @@ export function applyOutboundLaunch(execution, launch) {
|
|
|
83
62
|
return { ...execution, configuration: { ...execution.configuration, services } };
|
|
84
63
|
}
|
|
85
64
|
export async function runInstrumentedExecution(input) {
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
// `createBackendCollectors` and nothing else, so no production path
|
|
91
|
-
// observed an outbound call at all.
|
|
65
|
+
// outbound observation needs two things: a collector to read the marker lines,
|
|
66
|
+
// and a launch that installs client instrumentation before app code can capture
|
|
67
|
+
// an unpatched client. The launch is adapter-declared and language-specific; an
|
|
68
|
+
// adapter that declares nothing gets neither.
|
|
92
69
|
//
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
// before any application code can capture an unpatched client. The second
|
|
96
|
-
// is language-specific, so it is declared on the adapter and merely applied
|
|
97
|
-
// here. An adapter that declares nothing gets neither -- the run proceeds,
|
|
98
|
-
// no outbound collector is started, and nothing claims one was.
|
|
99
|
-
// The budget clock starts here, not at `controller.run()`. The controller
|
|
100
|
-
// arms its own timer for the same number a few statements later, so this
|
|
101
|
-
// deadline is the marginally earlier — and therefore the conservative — of
|
|
102
|
-
// the two; a caller who declared a bound never waits past it because this
|
|
103
|
-
// function took some of it before the controller was even created.
|
|
70
|
+
// budget clock starts here, not at controller.run() -- marginally earlier than
|
|
71
|
+
// the controller's own timer, so a caller never waits past its declared bound
|
|
104
72
|
const budgetStartedAt = Date.now();
|
|
105
73
|
const outboundLaunch = input.adapter.outboundHttpLaunch?.() ?? null;
|
|
106
74
|
const launchedExecution = outboundLaunch === null ? input.execution : applyOutboundLaunch(input.execution, outboundLaunch);
|
|
107
75
|
const configuration = launchedExecution.configuration;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
* clock. Written as a closure rather than repeated at each `return` because
|
|
111
|
-
* there are four of them and the failure mode of the alternative — one
|
|
112
|
-
* return that quietly reports a different number — is exactly the class of
|
|
113
|
-
* bug this whole field exists to make visible.
|
|
114
|
-
*/
|
|
76
|
+
// closure, not repeated per-return: there are four returns, and one quietly
|
|
77
|
+
// reporting a different number is the bug this field exists to catch
|
|
115
78
|
const budgetOutcome = (observedForMs) => {
|
|
116
79
|
const elapsedMs = Date.now() - budgetStartedAt;
|
|
117
80
|
return {
|
|
@@ -141,20 +104,12 @@ export async function runInstrumentedExecution(input) {
|
|
|
141
104
|
commit: controller.execution.commit,
|
|
142
105
|
configuration: controller.execution.configuration,
|
|
143
106
|
});
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
// trail" shape RT-219 already fixed one layer up for `collector.start()`.
|
|
151
|
-
// Caught the same way: written through the same `EvidenceStore`, tagged
|
|
152
|
-
// `source: "harness"`. `controller.execution` and
|
|
153
|
-
// `controller.serviceStartResults` are both real at this point (`run()`
|
|
154
|
-
// mutates its private state, including a call to its own `#finish()`,
|
|
155
|
-
// before it ever throws) so the run resolves with what actually happened
|
|
156
|
-
// rather than rejecting the caller's own promise -- the same "resolves
|
|
157
|
-
// normally" contract RT-219 already established.
|
|
107
|
+
// RT-219: controller.run()'s one throw path (spawnProcess catch/rethrow, after
|
|
108
|
+
// recording the failure in serviceStartResults) used to reject this whole
|
|
109
|
+
// function uncaught -- zero evidence trail. Caught here and written through
|
|
110
|
+
// EvidenceStore tagged "harness", same "resolves normally" contract RT-219
|
|
111
|
+
// established for collector.start(). controller.execution/serviceStartResults
|
|
112
|
+
// are both already real at this point (run() mutates state before it throws).
|
|
158
113
|
let execution;
|
|
159
114
|
try {
|
|
160
115
|
execution = await controller.run(input.runOptions);
|
|
@@ -198,34 +153,23 @@ export async function runInstrumentedExecution(input) {
|
|
|
198
153
|
budget: budgetOutcome(0),
|
|
199
154
|
};
|
|
200
155
|
}
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
//
|
|
204
|
-
// Declared before the sources close over it: each generator polls until
|
|
205
|
-
// this flips, and the flip is what lets `stop()` finish rather than wait
|
|
206
|
-
// forever on a source still watching a live buffer.
|
|
156
|
+
// a handle with no serviceName can't be attributed to a config entry -- skipped
|
|
157
|
+
// declared before the sources close over it: the flip lets stop() finish rather
|
|
158
|
+
// than wait forever on a source still watching a live buffer
|
|
207
159
|
let finished = false;
|
|
208
160
|
const sources = [];
|
|
209
|
-
//
|
|
210
|
-
//
|
|
211
|
-
//
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
// exactly once, so two collectors sharing one source do not both see the
|
|
215
|
-
// output -- they race for it, and the first consumer wins. Sharing it made
|
|
216
|
-
// the backend log collector eat every `DESCRY_EXTERNAL_REQUEST` line and
|
|
217
|
-
// the outbound collector report nothing, which reads exactly like a service
|
|
218
|
-
// that made no outbound calls.
|
|
161
|
+
// second, independent source per process -- NOT shared with the backend
|
|
162
|
+
// collector's: createPollingProcessOutputSource yields each line exactly once,
|
|
163
|
+
// so sharing means two collectors race for it. Measured: sharing made the
|
|
164
|
+
// backend log collector eat every DESCRY_EXTERNAL_REQUEST line and the outbound
|
|
165
|
+
// collector report nothing, reading as "no outbound calls".
|
|
219
166
|
const namedSources = [];
|
|
220
167
|
for (const handle of execution.processes) {
|
|
221
168
|
if (handle.serviceName === null)
|
|
222
169
|
continue;
|
|
223
170
|
const serviceName = handle.serviceName;
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
// by the time a collector's evidence reaches `correlateExecution` that
|
|
227
|
-
// association is gone — a row in a store and no handle in scope — which is
|
|
228
|
-
// what made the gap permanent rather than recoverable.
|
|
171
|
+
// stamped here, at construction -- by the time evidence reaches
|
|
172
|
+
// correlateExecution the handle is out of scope and this association is gone
|
|
229
173
|
sources.push(createPollingProcessOutputSource({
|
|
230
174
|
processId: handle.processId,
|
|
231
175
|
serviceName,
|
|
@@ -243,14 +187,10 @@ export async function runInstrumentedExecution(input) {
|
|
|
243
187
|
});
|
|
244
188
|
}
|
|
245
189
|
const backendCollectors = input.adapter.createBackendCollectors(sources);
|
|
246
|
-
//
|
|
247
|
-
//
|
|
248
|
-
//
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
// `createExternalRequestCollector` itself names no language; the only
|
|
252
|
-
// language-specific value it needs is the adapter's own stack parser, which
|
|
253
|
-
// is what turns a captured call site into a file and a line.
|
|
190
|
+
// only started when the launch above actually installed instrumentation --
|
|
191
|
+
// otherwise it would report "no outbound calls" for a service making them,
|
|
192
|
+
// worse than declining to look. createExternalRequestCollector names no
|
|
193
|
+
// language itself; the adapter's stack parser is the only language-specific bit.
|
|
254
194
|
const outboundCollectors = outboundLaunch === null
|
|
255
195
|
? []
|
|
256
196
|
: namedSources.map(({ source, serviceName }) => createExternalRequestCollector({
|
|
@@ -259,26 +199,14 @@ export async function runInstrumentedExecution(input) {
|
|
|
259
199
|
stackTraceParser: input.adapter.stackTraceParser,
|
|
260
200
|
}));
|
|
261
201
|
const emitted = [];
|
|
262
|
-
//
|
|
263
|
-
//
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
//
|
|
267
|
-
// service's own domain source, so a reader can tell "the project's
|
|
268
|
-
// declared versions don't match what actually ran" from an observation of
|
|
269
|
-
// the application itself without inspecting payload text. Run once per
|
|
270
|
-
// spawned service (each has its own `cwd`, and therefore potentially its
|
|
271
|
-
// own lockfile/`engines.node`), unconditionally -- "cheap, always
|
|
272
|
-
// available, no rerun needed" per the ruling -- but only ever emitted as
|
|
273
|
-
// evidence when an actual mismatch is found, the same "silence must not
|
|
274
|
-
// manufacture evidence" discipline `"harness"` already observes.
|
|
202
|
+
// dependency/environment version-mismatch checks (DEC-NEXT-fault-layer-empirical-
|
|
203
|
+
// confirmation.md): tagged "dependency-check"/"environment-check" rather than the
|
|
204
|
+
// service's own source, so a reader can tell version drift from an app
|
|
205
|
+
// observation. Run once per service (own cwd/lockfile/engines.node),
|
|
206
|
+
// unconditionally, but only emitted as evidence on an actual mismatch.
|
|
275
207
|
//
|
|
276
|
-
//
|
|
277
|
-
//
|
|
278
|
-
// once by `captureEnvironmentMetadata` during `controller.run()` above,
|
|
279
|
-
// never re-probed here. It is non-null whenever `validationError` is
|
|
280
|
-
// null (the early return above already excluded the one case where it
|
|
281
|
-
// would not be).
|
|
208
|
+
// observedNodeVersion is process.version captured once during controller.run();
|
|
209
|
+
// never re-probed here.
|
|
282
210
|
const observedNodeVersion = execution.environmentMetadata?.nodeVersion ?? process.version;
|
|
283
211
|
for (const handle of execution.processes) {
|
|
284
212
|
if (handle.serviceName === null)
|
|
@@ -337,12 +265,9 @@ export async function runInstrumentedExecution(input) {
|
|
|
337
265
|
}));
|
|
338
266
|
}
|
|
339
267
|
}
|
|
340
|
-
//
|
|
341
|
-
//
|
|
342
|
-
//
|
|
343
|
-
// service's own readiness answer already exists in
|
|
344
|
-
// `controller.serviceStartResults` -- this loop reads that answer, it
|
|
345
|
-
// never re-derives or re-checks it itself.
|
|
268
|
+
// opt-in InboundProxy wiring (RT-192, DEC-271), see frontWithInboundProxy's doc.
|
|
269
|
+
// Built after controller.run() returns, so readiness already exists in
|
|
270
|
+
// serviceStartResults -- this loop reads that answer, never re-derives it.
|
|
346
271
|
const proxies = [];
|
|
347
272
|
if (input.frontWithInboundProxy !== undefined) {
|
|
348
273
|
for (const handle of execution.processes) {
|
|
@@ -353,11 +278,8 @@ export async function runInstrumentedExecution(input) {
|
|
|
353
278
|
continue;
|
|
354
279
|
const readinessOutcome = controller.serviceStartResults.find((result) => result.serviceName === serviceName && result.stage === "readiness");
|
|
355
280
|
if (readinessOutcome?.succeeded !== true || handle.port === null) {
|
|
356
|
-
//
|
|
357
|
-
//
|
|
358
|
-
// in this function gets, rather than a silent no-proxy fallback
|
|
359
|
-
// ("we did not observe this" vs "there was nothing to observe",
|
|
360
|
-
// plan §17, applies here too).
|
|
281
|
+
// requested but never proven live -- reported as COLLECTOR_ERROR, not a
|
|
282
|
+
// silent no-proxy fallback (plan §17: "not observed" vs "nothing there")
|
|
361
283
|
emitted.push(input.store.write({
|
|
362
284
|
executionId: execution.executionId,
|
|
363
285
|
timestamp: new Date().toISOString(),
|
|
@@ -395,28 +317,19 @@ export async function runInstrumentedExecution(input) {
|
|
|
395
317
|
const context = {
|
|
396
318
|
executionId: execution.executionId,
|
|
397
319
|
configuration,
|
|
398
|
-
//
|
|
399
|
-
//
|
|
400
|
-
// array without having been through it (plan §28).
|
|
320
|
+
// redaction runs here, on the way in -- EvidenceStore.write() is the only
|
|
321
|
+
// path that sets redactionStatus (plan §28)
|
|
401
322
|
emit: (evidenceInput) => {
|
|
402
323
|
emitted.push(input.store.write({ ...evidenceInput, executionId: execution.executionId }));
|
|
403
324
|
},
|
|
404
325
|
resolveSourceRoot: createSourceRootResolver(execution.processes, configuration),
|
|
405
326
|
};
|
|
406
|
-
// RT-219
|
|
407
|
-
//
|
|
408
|
-
//
|
|
409
|
-
//
|
|
410
|
-
//
|
|
411
|
-
//
|
|
412
|
-
// that throw rejects this Promise.all and `runInstrumentedExecution`
|
|
413
|
-
// aborts uncaught -- zero evidence trail for why, the exact "collector
|
|
414
|
-
// failure mistaken for absence of failure" shape plan §17 forbids,
|
|
415
|
-
// applied to the harness's own code instead of the application's.
|
|
416
|
-
// Caught here and written through the same EvidenceStore, tagged
|
|
417
|
-
// `source: "harness"` rather than the collector's domain source, so a
|
|
418
|
-
// reader can tell "our own observer broke" from "the observed system
|
|
419
|
-
// did" without inspecting payload text.
|
|
327
|
+
// RT-219: collector.start()'s documented failure path resolves {available:
|
|
328
|
+
// false, reason}, handled below. A collector that instead THROWS out of
|
|
329
|
+
// start() is a different claim -- the harness's own machinery breaking, not
|
|
330
|
+
// "I looked and could not" -- so it's caught here and tagged "harness" rather
|
|
331
|
+
// than the collector's domain source, instead of aborting this Promise.all
|
|
332
|
+
// uncaught with zero evidence trail.
|
|
420
333
|
const startOutcomes = await Promise.all(collectors.map(async (collector) => {
|
|
421
334
|
try {
|
|
422
335
|
return { collector, result: await collector.start(context), threw: false };
|
|
@@ -447,14 +360,10 @@ export async function runInstrumentedExecution(input) {
|
|
|
447
360
|
return { collector, result: { available: false, reason: `start() threw: ${detail}` }, threw: true };
|
|
448
361
|
}
|
|
449
362
|
}));
|
|
450
|
-
//
|
|
451
|
-
//
|
|
452
|
-
// `source: "backend-process"` by the loop below, which would collide
|
|
453
|
-
// the two tags on what is really one failure.
|
|
363
|
+
// a thrown start() was already reported above under "harness" -- excluded here
|
|
364
|
+
// to avoid double-reporting the same failure under "backend-process"
|
|
454
365
|
const unavailable = startOutcomes.filter((entry) => !entry.threw && !entry.result.available);
|
|
455
|
-
//
|
|
456
|
-
// "we did not observe this" and "there was nothing to observe" are
|
|
457
|
-
// different claims (plan §17).
|
|
366
|
+
// reported, never silently absent (plan §17: "not observed" vs "nothing there")
|
|
458
367
|
for (const entry of unavailable) {
|
|
459
368
|
emitted.push(input.store.write({
|
|
460
369
|
executionId: execution.executionId,
|
|
@@ -477,78 +386,44 @@ export async function runInstrumentedExecution(input) {
|
|
|
477
386
|
collectorVersion: COLLECTOR_VERSION,
|
|
478
387
|
}));
|
|
479
388
|
}
|
|
480
|
-
//
|
|
481
|
-
// `available: false` above never reaches here -- its port stayed null on
|
|
482
|
-
// that codepath, matching `InboundProxy.port()`'s own contract).
|
|
389
|
+
// proxies with available:false above never reach here -- port stayed null
|
|
483
390
|
const proxyPorts = {};
|
|
484
391
|
for (const entry of proxies) {
|
|
485
392
|
const port = entry.proxy.port();
|
|
486
393
|
if (port !== null)
|
|
487
394
|
proxyPorts[entry.serviceName] = port;
|
|
488
395
|
}
|
|
489
|
-
//
|
|
490
|
-
//
|
|
491
|
-
//
|
|
492
|
-
//
|
|
493
|
-
//
|
|
494
|
-
//
|
|
495
|
-
//
|
|
496
|
-
// made: when `onReady` threw, `finished = true`, the collector `stop()` loop
|
|
497
|
-
// and `controller.stop()` were all skipped, so the polling output sources
|
|
498
|
-
// kept polling a live buffer, the spawned child was never killed, and the
|
|
499
|
-
// controller's timer held the event loop open. Measured: the call rejects in
|
|
500
|
-
// 270ms with the caller's own error, and the process then never exits.
|
|
501
|
-
//
|
|
502
|
-
// The exception still propagates, uncaught by any handler that changes it,
|
|
503
|
-
// to the same caller with the same stack — the documented contract is
|
|
504
|
-
// untouched. Only the leak goes away.
|
|
396
|
+
// Wrapped because a throw above teardown used to leak the whole execution.
|
|
397
|
+
// onReady is caller code, documented not to be caught -- but "not caught" and
|
|
398
|
+
// "not cleaned up" are different promises: when onReady threw, finished stayed
|
|
399
|
+
// false, so collector.stop()/controller.stop() were skipped, sources kept
|
|
400
|
+
// polling, the spawned child was never killed, and the timer held the event
|
|
401
|
+
// loop open. Measured: rejects in 270ms, process then never exits. Exception
|
|
402
|
+
// still propagates unchanged to the caller; only the leak goes away.
|
|
505
403
|
//
|
|
506
|
-
// Found the
|
|
507
|
-
//
|
|
508
|
-
//
|
|
509
|
-
// `scripts/preflight.mjs` predicts that dependency gap and calls its worst
|
|
510
|
-
// case "a readiness timeout that looks like a slow boot" — milder than what
|
|
511
|
-
// actually happened, which is what makes this a defect rather than an
|
|
512
|
-
// inconvenience: a guard whose stated worst case is better than reality
|
|
513
|
-
// teaches people to trust it less than they should.
|
|
404
|
+
// Found the hard way: a worktree missing node_modules made a test's onReady
|
|
405
|
+
// throw after a correctly bounded readiness wait, then the suite hung for
|
|
406
|
+
// twenty minutes.
|
|
514
407
|
let observationMs = 0;
|
|
515
408
|
let bodyFailure = null;
|
|
516
409
|
let teardownFailure = null;
|
|
517
410
|
try {
|
|
518
411
|
await input.onReady?.({ execution, proxyPorts });
|
|
519
|
-
//
|
|
520
|
-
//
|
|
521
|
-
//
|
|
522
|
-
//
|
|
523
|
-
//
|
|
524
|
-
//
|
|
525
|
-
// every process at the deadline, so the remainder of the window watched
|
|
526
|
-
// dead processes and produced nothing. Measured — a 1500ms budget with a
|
|
527
|
-
// 12000ms window returned after 12288ms with zero evidence.
|
|
528
|
-
//
|
|
529
|
-
// Clamped rather than aborted. There is real work left after this point
|
|
530
|
-
// (draining collectors, reaping children) that owns OS resources and must
|
|
531
|
-
// still run; cancelling it to hit the number exactly would leak the
|
|
532
|
-
// processes the budget exists to bound. So the deadline decides how long we
|
|
533
|
-
// *watch*, and the overshoot from teardown is reported rather than hidden —
|
|
534
|
-
// `budget.exceeded` is what says the run finished past its own bound.
|
|
412
|
+
// observation window is bounded by the declared budget, not just observeForMs
|
|
413
|
+
// -- unconditionally sleeping the full window used to leave timeoutMs bounding
|
|
414
|
+
// only the service, not the wait; measured, a 1500ms budget with a 12000ms
|
|
415
|
+
// window returned after 12288ms with zero evidence (services dead the whole
|
|
416
|
+
// remainder). Clamped rather than aborted: teardown still owns OS resources
|
|
417
|
+
// and must run; the overshoot is reported via budget.exceeded, not hidden.
|
|
535
418
|
const remainingMs = budgetStartedAt + configuration.timeoutMs - Date.now();
|
|
536
419
|
observationMs = Math.max(0, Math.min(input.observeForMs, remainingMs));
|
|
537
420
|
if (observationMs > 0) {
|
|
538
421
|
await new Promise((resolve) => setTimeout(resolve, observationMs));
|
|
539
422
|
}
|
|
540
|
-
//
|
|
541
|
-
//
|
|
542
|
-
//
|
|
543
|
-
// stopped
|
|
544
|
-
// budget expired before the controller ever armed (or after it had already
|
|
545
|
-
// completed) leaves no trace in the state at all.
|
|
546
|
-
//
|
|
547
|
-
// Tagged `source: "harness"` with `COLLECTOR_ERROR`: this is the runtime
|
|
548
|
-
// observing itself rather than any watched domain, and the event type's own
|
|
549
|
-
// documented purpose is to keep "found nothing" apart from "stopped
|
|
550
|
-
// looking". A truncated window is precisely the second one, so it needs no
|
|
551
|
-
// new event type of its own.
|
|
423
|
+
// rule 7: cut-short window is a labelled degradation. execution.state's
|
|
424
|
+
// TIMED_OUT says the services stopped early, not that observation did --
|
|
425
|
+
// tagged "harness"/COLLECTOR_ERROR to keep "found nothing" apart from
|
|
426
|
+
// "stopped looking".
|
|
552
427
|
if (observationMs < input.observeForMs) {
|
|
553
428
|
emitted.push(input.store.write({
|
|
554
429
|
executionId: execution.executionId,
|
|
@@ -576,35 +451,22 @@ export async function runInstrumentedExecution(input) {
|
|
|
576
451
|
}
|
|
577
452
|
}
|
|
578
453
|
catch (error) {
|
|
579
|
-
//
|
|
580
|
-
// `finally` has run.
|
|
454
|
+
// held, not handled -- rethrown below, unchanged, once teardown has run
|
|
581
455
|
bodyFailure = { error };
|
|
582
456
|
}
|
|
583
457
|
finally {
|
|
584
|
-
//
|
|
585
|
-
//
|
|
586
|
-
// still polling a live buffer.
|
|
458
|
+
// order matters: sources must be told the process is done before stop()
|
|
459
|
+
// awaits their drain, or it waits forever on a generator polling a live buffer
|
|
587
460
|
finished = true;
|
|
588
461
|
try {
|
|
589
462
|
await Promise.all(collectors.map((collector) => collector.stop()));
|
|
590
|
-
//
|
|
591
|
-
//
|
|
592
|
-
//
|
|
593
|
-
//
|
|
594
|
-
//
|
|
595
|
-
//
|
|
596
|
-
//
|
|
597
|
-
// happened, and teardown regularly won: measured `TIMED_OUT` at 1534ms and
|
|
598
|
-
// `COMPLETED` at 1515ms for the same case, with the second surfacing only
|
|
599
|
-
// under a loaded full-suite run.
|
|
600
|
-
//
|
|
601
|
-
// That is the one field `descry-core`'s `observe_runtime` reads to choose
|
|
602
|
-
// between `ok` and `timed_out`, so losing the race turned a disclosed
|
|
603
|
-
// degradation into a silent one — a run that returns on time and reports
|
|
604
|
-
// nothing was cut short. This function already knows: `observationMs <
|
|
605
|
-
// input.observeForMs` is exactly the condition it wrote the truncation
|
|
606
|
-
// evidence under. It says so directly rather than hoping to lose a race
|
|
607
|
-
// it set up itself.
|
|
463
|
+
// timeout() vs stop() is decided here, not left to whichever of this
|
|
464
|
+
// function's clamp or the controller's own timer fires first -- measured
|
|
465
|
+
// TIMED_OUT at 1534ms and COMPLETED at 1515ms for the same case under load.
|
|
466
|
+
// descry-core's observe_runtime reads this to choose ok vs timed_out, so
|
|
467
|
+
// losing that race silently hid a real truncation; this function already
|
|
468
|
+
// knows the answer (observationMs < input.observeForMs) and states it
|
|
469
|
+
// directly instead.
|
|
608
470
|
if (observationMs < input.observeForMs) {
|
|
609
471
|
await controller.timeout();
|
|
610
472
|
}
|
|
@@ -613,24 +475,16 @@ export async function runInstrumentedExecution(input) {
|
|
|
613
475
|
}
|
|
614
476
|
}
|
|
615
477
|
catch (teardownError) {
|
|
616
|
-
//
|
|
617
|
-
//
|
|
618
|
-
// below rather than thrown from inside the `finally`, which is the one
|
|
619
|
-
// place a throw really can discard an in-flight exception.
|
|
478
|
+
// held and rethrown below rather than thrown inside finally, which can
|
|
479
|
+
// discard an in-flight exception
|
|
620
480
|
if (bodyFailure === null) {
|
|
621
481
|
teardownFailure = { error: teardownError };
|
|
622
482
|
}
|
|
623
483
|
else {
|
|
624
|
-
//
|
|
625
|
-
//
|
|
626
|
-
//
|
|
627
|
-
//
|
|
628
|
-
// So it is written to the evidence store instead of thrown, tagged
|
|
629
|
-
// `harness` (RT-219) because it is the runtime's own machinery
|
|
630
|
-
// breaking rather than anything about the observed application. It is
|
|
631
|
-
// not in the returned array — there is no return on this path — but
|
|
632
|
-
// the store is durable and is what `evidencePath` points at, so the
|
|
633
|
-
// record survives the throw.
|
|
484
|
+
// caller's error is the actionable one; a teardown failure must not
|
|
485
|
+
// silently replace it -- written to the evidence store instead (tagged
|
|
486
|
+
// "harness", RT-219) rather than thrown. Not in the returned array, but
|
|
487
|
+
// the store is durable so the record survives the throw.
|
|
634
488
|
input.store.write({
|
|
635
489
|
executionId: execution.executionId,
|
|
636
490
|
timestamp: new Date().toISOString(),
|
|
@@ -655,9 +509,7 @@ export async function runInstrumentedExecution(input) {
|
|
|
655
509
|
}
|
|
656
510
|
}
|
|
657
511
|
}
|
|
658
|
-
//
|
|
659
|
-
// caller. The caller's own failure wins over a teardown failure when both
|
|
660
|
-
// happened, because it is the one they can act on.
|
|
512
|
+
// rethrown untouched, same object/stack; caller's failure wins over teardown's
|
|
661
513
|
if (bodyFailure !== null)
|
|
662
514
|
throw bodyFailure.error;
|
|
663
515
|
if (teardownFailure !== null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumented-execution.js","sourceRoot":"","sources":["../src/instrumented-execution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instrumented-execution.js","sourceRoot":"","sources":["../src/instrumented-execution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAUtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EACL,mBAAmB,EAGnB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA4E3D;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAmC,EACnC,aAAqC;IAErC,OAAO,CAAC,MAAc,EAAE,EAAE,CAAC,2BAA2B,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAA+B,EAC/B,MAA0B;IAE1B,MAAM,QAAQ,GAA+D,EAAE,CAAC;IAChF,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,GAAG,GAA2B,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5D,4EAA4E;YAC5E,oEAAoE;YACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC;QACzE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG;YACf,GAAG,OAAO;YACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;gBAC7E,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,SAAS,EAAE,aAAa,EAAE,EAAE,GAAG,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAAiC;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,gFAAgF;IAChF,8CAA8C;IAC9C,EAAE;IACF,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,IAAI,IAAI,CAAC;IACpE,MAAM,iBAAiB,GAAG,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE3H,MAAM,aAAa,GAAG,iBAAiB,CAAC,aAAa,CAAC;IAEtD,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,aAAa,GAAG,CAAC,aAAqB,EAA0B,EAAE;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;QAC/C,OAAO;YACL,UAAU,EAAE,aAAa,CAAC,SAAS;YACnC,SAAS;YACT,sBAAsB,EAAE,KAAK,CAAC,YAAY;YAC1C,aAAa;YACb,QAAQ,EAAE,SAAS,GAAG,aAAa,CAAC,SAAS;SAC9C,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEjE,qEAAqE;IACrE,oEAAoE;IACpE,0EAA0E;IAC1E,wEAAwE;IACxE,2DAA2D;IAC3D,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,sEAAsE;IACtE,kEAAkE;IAClE,uEAAuE;IACvE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;QAC1B,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW;QAC7C,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW;QAC7C,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU;QAC3C,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;QACnC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,aAAa;KAClD,CAAC,CAAC;IAEH,+EAA+E;IAC/E,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,IAAI,SAAoB,CAAC;IACzB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1F,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACxC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW;YAC7C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE;gBACP,GAAG,EAAE,yDAAyD,MAAM,EAAE;gBACtE,KAAK,EAAE,MAAM;aACd;YACD,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,iBAAiB;SACpC,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,qBAAqB,EAAE,EAAE;YACzB,eAAe,EAAE,oCAAoC,MAAM,EAAE;YAC7D,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO;YACL,SAAS;YACT,QAAQ,EAAE,EAAE;YACZ,qBAAqB,EAAE,EAAE;YACzB,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,gFAAgF;IAChF,6DAA6D;IAC7D,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,wEAAwE;IACxE,+EAA+E;IAC/E,0EAA0E;IAC1E,gFAAgF;IAChF,4DAA4D;IAC5D,MAAM,YAAY,GAA6E,EAAE,CAAC;IAClG,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI;YAAE,SAAS;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,gEAAgE;QAChE,6EAA6E;QAC7E,OAAO,CAAC,IAAI,CACV,gCAAgC,CAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW;YACX,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC;YAC3D,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;SAC3B,CAAC,CACH,CAAC;QACF,YAAY,CAAC,IAAI,CAAC;YAChB,WAAW;YACX,MAAM,EAAE,gCAAgC,CAAC;gBACvC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW;gBACX,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBAC3D,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;aAC3B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEzE,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,iFAAiF;IACjF,MAAM,kBAAkB,GACtB,cAAc,KAAK,IAAI;QACrB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAC3C,8BAA8B,CAAC;YAC7B,MAAM;YACN,OAAO,EAAE,WAAW;YACpB,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;SACjD,CAAC,CACH,CAAC;IAER,MAAM,OAAO,GAAe,EAAE,CAAC;IAE/B,kFAAkF;IAClF,kFAAkF;IAClF,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,EAAE;IACF,gFAAgF;IAChF,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,SAAS,CAAC,mBAAmB,EAAE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAC1F,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI;YAAE,SAAS;QAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,aAAa,KAAK,SAAS;YAAE,SAAS;QAE1C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpE,KAAK,MAAM,QAAQ,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,MAAM,CAAC,WAAW;gBAC3B,OAAO,EAAE,MAAM,CAAC,SAAS;gBACzB,SAAS,EAAE,6BAA6B;gBACxC,OAAO,EAAE;oBACP,GAAG,EAAE,eAAe,QAAQ,CAAC,IAAI,wBAAwB,QAAQ,CAAC,eAAe,cAAc,QAAQ,CAAC,eAAe,EAAE;oBACzH,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,eAAe,EAAE,QAAQ,CAAC,eAAe;iBAC1C;gBACD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,iBAAiB;aACpC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,aAAa,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAC1F,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,MAAM,CAAC,WAAW;gBAC3B,OAAO,EAAE,MAAM,CAAC,SAAS;gBACzB,SAAS,EAAE,8BAA8B;gBACzC,OAAO,EAAE;oBACP,GAAG,EAAE,yBAAyB,iBAAiB,CAAC,eAAe,IAAI,SAAS,KAAK,iBAAiB,CAAC,cAAc,IAAI,SAAS,eAAe,iBAAiB,CAAC,eAAe,EAAE;oBAChL,eAAe,EAAE,iBAAiB,CAAC,eAAe;oBAClD,cAAc,EAAE,iBAAiB,CAAC,cAAc;oBAChD,eAAe,EAAE,iBAAiB,CAAC,eAAe;iBACnD;gBACD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,iBAAiB;aACpC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,OAAO,GAA8F,EAAE,CAAC;IAC9G,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACvC,IAAI,WAAW,KAAK,IAAI;gBAAE,SAAS;YACnC,IAAI,KAAK,CAAC,qBAAqB,CAAC,WAAW,CAAC,KAAK,IAAI;gBAAE,SAAS;YAEhE,MAAM,gBAAgB,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAC1D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,CAC/E,CAAC;YACF,IAAI,gBAAgB,EAAE,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACjE,wEAAwE;gBACxE,yEAAyE;gBACzE,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;oBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,MAAM,CAAC,SAAS;oBACzB,SAAS,EAAE,iBAAiB;oBAC5B,OAAO,EAAE;wBACP,GAAG,EAAE,YAAY,WAAW,gIAAgI;wBAC5J,WAAW,EAAE,iBAAiB,MAAM,CAAC,SAAS,EAAE;qBACjD;oBACD,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,IAAI;oBACnB,WAAW,EAAE,IAAI;oBACjB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,CAAC;oBACb,gBAAgB,EAAE,iBAAiB;iBACpC,CAAC,CACH,CAAC;gBACF,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,WAAW;gBACX,KAAK,EAAE,kBAAkB,CAAC;oBACxB,UAAU,EAAE,WAAW;oBACvB,UAAU,EAAE,MAAM,CAAC,IAAI;oBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,WAAW;iBACrB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACnH,MAAM,OAAO,GAAqB;QAChC,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,aAAa;QACb,0EAA0E;QAC1E,4CAA4C;QAC5C,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;QACD,iBAAiB,EAAE,wBAAwB,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;KAChF,CAAC;IAEF,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;QACtF,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,iBAAiB;gBAC5B,OAAO,EAAE;oBACP,GAAG,EAAE,cAAc,SAAS,CAAC,WAAW,kEAAkE,MAAM,EAAE;oBAClH,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,KAAK,EAAE,MAAM;iBACd;gBACD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,iBAAiB;aACpC,CAAC,CACH,CAAC;YACF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAc,EAAE,MAAM,EAAE,kBAAkB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAa,EAAE,CAAC;QACxH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,+EAA+E;IAC/E,qEAAqE;IACrE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7F,gFAAgF;IAChF,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAChB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE;gBACP,GAAG,EAAE,cAAc,KAAK,CAAC,SAAS,CAAC,WAAW,oCAAoC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC,EAAE;gBAC5J,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW;aACzC;YACD,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,iBAAiB;SACpC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,IAAI,KAAK,IAAI;YAAE,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC1D,CAAC;IACD,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,qEAAqE;IACrE,EAAE;IACF,4EAA4E;IAC5E,0EAA0E;IAC1E,kBAAkB;IAClB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,WAAW,GAAuC,IAAI,CAAC;IAC3D,IAAI,eAAe,GAAuC,IAAI,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEjD,8EAA8E;QAC9E,+EAA+E;QAC/E,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3E,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QACvE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,qBAAqB;QACrB,IAAI,aAAa,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,iBAAiB;gBAC5B,OAAO,EAAE;oBACP,GAAG,EACD,+EAA+E;wBAC/E,gBAAgB,MAAM,CAAC,aAAa,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB;wBAC5F,aAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,iDAAiD;wBAC7F,0EAA0E;oBAC5E,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,iBAAiB;aACpC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,wEAAwE;QACxE,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;YAAS,CAAC;QACT,wEAAwE;QACxE,+EAA+E;QAC/E,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,qEAAqE;YACrE,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,yEAAyE;YACzE,sEAAsE;YACtE,oBAAoB;YACpB,IAAI,aAAa,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvC,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,aAAsB,EAAE,CAAC;YAChC,uEAAuE;YACvE,iCAAiC;YACjC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,eAAe,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,oEAAoE;gBACpE,uEAAuE;gBACvE,wEAAwE;gBACxE,yDAAyD;gBACzD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;oBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,iBAAiB;oBAC5B,OAAO,EAAE;wBACP,GAAG,EACD,4FAA4F;4BAC5F,kCAAkC,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;wBAChJ,WAAW,EAAE,uBAAuB;qBACrC;oBACD,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,IAAI;oBACnB,WAAW,EAAE,IAAI;oBACjB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,CAAC;oBACb,gBAAgB,EAAE,iBAAiB;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,IAAI,WAAW,KAAK,IAAI;QAAE,MAAM,WAAW,CAAC,KAAK,CAAC;IAClD,IAAI,eAAe,KAAK,IAAI;QAAE,MAAM,eAAe,CAAC,KAAK,CAAC;IAE1D,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,QAAQ,EAAE,OAAO;QACjB,qBAAqB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACtI,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC;KACrC,CAAC;AACJ,CAAC"}
|