@codetreker/daynight 0.26.0 → 0.29.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/README.md +128 -17
- package/dist/api/client.d.ts +7 -2
- package/dist/api/client.js +46 -18
- package/dist/api/client.js.map +1 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/json.js +27 -6
- package/dist/api/json.js.map +1 -1
- package/dist/api/parse.d.ts +4 -6
- package/dist/api/parse.js +51 -93
- package/dist/api/parse.js.map +1 -1
- package/dist/api/resource-path.d.ts +1 -0
- package/dist/api/resource-path.js +8 -0
- package/dist/api/resource-path.js.map +1 -0
- package/dist/api/task-properties.d.ts +7 -0
- package/dist/api/task-properties.js +81 -0
- package/dist/api/task-properties.js.map +1 -0
- package/dist/api/types.d.ts +95 -6
- package/dist/api/validation.d.ts +15 -0
- package/dist/api/validation.js +43 -0
- package/dist/api/validation.js.map +1 -0
- package/dist/cli/schema.d.ts +3 -0
- package/dist/cli/schema.js +14 -4
- package/dist/cli/schema.js.map +1 -1
- package/dist/commands/completion/bash.d.ts +1 -1
- package/dist/commands/completion/bash.js +6 -3
- package/dist/commands/completion/bash.js.map +1 -1
- package/dist/commands/completion/zsh.d.ts +1 -1
- package/dist/commands/completion/zsh.js +7 -7
- package/dist/commands/completion/zsh.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/SKILL.md +52 -162
- package/dist/commands/skill/skills/using-daynight/references/authorization.md +36 -0
- package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +77 -193
- package/dist/commands/skill/skills/using-daynight/references/create-task.md +31 -186
- package/dist/commands/skill/skills/using-daynight/references/final-acceptance.md +25 -0
- package/dist/commands/skill/skills/using-daynight/references/goal.md +46 -243
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +38 -294
- package/dist/commands/skill/skills/using-daynight/references/handoff.md +33 -91
- package/dist/commands/skill/skills/using-daynight/references/project-management.md +24 -0
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +18 -59
- package/dist/commands/skill/skills/using-daynight/references/setup.md +16 -0
- package/dist/commands/skill/skills/using-daynight/references/task-content.md +80 -177
- package/dist/commands/skill/skills/using-daynight/references/task-execution.md +34 -126
- package/dist/commands/skill/skills/using-daynight/references/task-management.md +162 -0
- package/dist/commands/skill/skills/using-daynight/references/write-safety.md +34 -0
- package/dist/commands/task/command.js +12 -14
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +32 -13
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/property.d.ts +6 -0
- package/dist/commands/task/property.js +51 -0
- package/dist/commands/task/property.js.map +1 -0
- package/dist/commands/task/rendering.d.ts +4 -1
- package/dist/commands/task/rendering.js +35 -9
- package/dist/commands/task/rendering.js.map +1 -1
- package/dist/commands/worker/control.js +10 -6
- package/dist/commands/worker/control.js.map +1 -1
- package/dist/commands/worker/coordinator.d.ts +3 -1
- package/dist/commands/worker/coordinator.js +28 -17
- package/dist/commands/worker/coordinator.js.map +1 -1
- package/dist/commands/worker/herdr/command.d.ts +11 -2
- package/dist/commands/worker/herdr/command.js +23 -8
- package/dist/commands/worker/herdr/command.js.map +1 -1
- package/dist/commands/worker/herdr/instance.d.ts +5 -1
- package/dist/commands/worker/herdr/instance.js +30 -0
- package/dist/commands/worker/herdr/instance.js.map +1 -1
- package/dist/commands/worker/herdr/preflight.js +4 -6
- package/dist/commands/worker/herdr/preflight.js.map +1 -1
- package/dist/commands/worker/herdr/version-probe.d.ts +13 -0
- package/dist/commands/worker/herdr/version-probe.js +21 -0
- package/dist/commands/worker/herdr/version-probe.js.map +1 -0
- package/dist/commands/worker/herdr.js +2 -6
- package/dist/commands/worker/herdr.js.map +1 -1
- package/dist/commands/worker/index.d.ts +2 -0
- package/dist/commands/worker/index.js +1 -1
- package/dist/commands/worker/index.js.map +1 -1
- package/dist/commands/worker/remote.d.ts +3 -1
- package/dist/commands/worker/remote.js +11 -6
- package/dist/commands/worker/remote.js.map +1 -1
- package/dist/commands/worker/reporter.d.ts +14 -0
- package/dist/commands/worker/reporter.js +174 -0
- package/dist/commands/worker/reporter.js.map +1 -0
- package/dist/commands/worker/runtime.d.ts +2 -0
- package/dist/commands/worker/runtime.js +14 -1
- package/dist/commands/worker/runtime.js.map +1 -1
- package/dist/commands/worker/telemetry.d.ts +22 -0
- package/dist/commands/worker/telemetry.js +265 -0
- package/dist/commands/worker/telemetry.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { ApiError } from "../../api/client.js";
|
|
2
|
+
import { createOperation, OperationError } from "../../api/operation.js";
|
|
3
|
+
import { ProtocolError } from "../../api/parse.js";
|
|
4
|
+
import { hasHerdrCommandCleanupFailure } from "./herdr/command.js";
|
|
5
|
+
const describeFailure = (error, seen = new Set(), depth = 0) => {
|
|
6
|
+
if (depth >= 6 || seen.has(error))
|
|
7
|
+
return { category: "truncated" };
|
|
8
|
+
seen.add(error);
|
|
9
|
+
const category = error instanceof AggregateError ? "aggregate"
|
|
10
|
+
: error instanceof OperationError ? `operation_${error.kind}`
|
|
11
|
+
: error instanceof ApiError ? `http_${error.phase}${error.status === undefined ? "" : `_${error.status}`}`
|
|
12
|
+
: error instanceof ProtocolError ? "protocol"
|
|
13
|
+
: error instanceof TypeError ? "type"
|
|
14
|
+
: error instanceof RangeError ? "range"
|
|
15
|
+
: error instanceof SyntaxError ? "syntax"
|
|
16
|
+
: error instanceof Error ? "error" : "unknown";
|
|
17
|
+
return {
|
|
18
|
+
category,
|
|
19
|
+
...(error instanceof Error && error.cause !== undefined ? { cause: describeFailure(error.cause, seen, depth + 1) } : {}),
|
|
20
|
+
...(error instanceof AggregateError ? { errors: error.errors.map((cause) => describeFailure(cause, seen, depth + 1)) } : {}),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const safeError = (failure) => {
|
|
24
|
+
const options = failure.cause === undefined ? undefined : { cause: safeError(failure.cause) };
|
|
25
|
+
return failure.errors === undefined ? new Error(failure.category, options)
|
|
26
|
+
: new AggregateError(failure.errors.map(safeError), failure.category, options);
|
|
27
|
+
};
|
|
28
|
+
const copyReference = (reference) => Object.freeze({
|
|
29
|
+
projectId: reference.projectId, taskId: reference.taskId, claimId: reference.claimId,
|
|
30
|
+
});
|
|
31
|
+
const copyInventory = (inventory) => Object.freeze({
|
|
32
|
+
observedAt: inventory.observedAt, claims: Object.freeze(inventory.claims.map(copyReference)),
|
|
33
|
+
});
|
|
34
|
+
export const createWorkerReporter = (options) => {
|
|
35
|
+
const cancellation = new AbortController();
|
|
36
|
+
const failures = new Map();
|
|
37
|
+
const cleanupFailures = new Set();
|
|
38
|
+
let inventory = null;
|
|
39
|
+
let stopped = false;
|
|
40
|
+
let pending = false;
|
|
41
|
+
let running = null;
|
|
42
|
+
let timer;
|
|
43
|
+
let diagnosticFailure;
|
|
44
|
+
const emit = (event) => {
|
|
45
|
+
try {
|
|
46
|
+
options.emit(event);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (diagnosticFailure === undefined)
|
|
50
|
+
diagnosticFailure = error;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const fail = (subsystem, phase, error, code) => {
|
|
54
|
+
const failure = describeFailure(error);
|
|
55
|
+
const errorCode = error instanceof ApiError && error.code !== undefined && /^[a-z][a-z0-9_]{0,63}$/.test(error.code) ? error.code : undefined;
|
|
56
|
+
const requestId = error instanceof ApiError && error.requestId !== undefined && /^[a-z0-9][a-z0-9._-]{0,63}$/i.test(error.requestId) ? error.requestId : undefined;
|
|
57
|
+
const signature = JSON.stringify({ phase, code, errorCode, failure });
|
|
58
|
+
const previous = failures.get(subsystem);
|
|
59
|
+
if (previous?.signature === signature) {
|
|
60
|
+
previous.repetitions++;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
failures.set(subsystem, { signature, repetitions: 1 });
|
|
64
|
+
emit({ kind: "worker_report_failed", message: JSON.stringify({ component: "worker_report", phase, subsystem, ...(code === undefined ? {} : { code }), ...(errorCode === undefined ? {} : { error_code: errorCode }), ...(requestId === undefined ? {} : { request_id: requestId }), category: failure.category }), error: safeError(failure) });
|
|
65
|
+
};
|
|
66
|
+
const recover = (subsystem, phase) => {
|
|
67
|
+
const failure = failures.get(subsystem);
|
|
68
|
+
if (failure === undefined)
|
|
69
|
+
return;
|
|
70
|
+
failures.delete(subsystem);
|
|
71
|
+
emit({ kind: "worker_report_recovered", message: JSON.stringify({ component: "worker_report", phase, subsystem, failures: failure.repetitions }) });
|
|
72
|
+
};
|
|
73
|
+
const halt = () => {
|
|
74
|
+
stopped = true;
|
|
75
|
+
pending = false;
|
|
76
|
+
if (timer !== undefined)
|
|
77
|
+
clearInterval(timer);
|
|
78
|
+
cancellation.abort();
|
|
79
|
+
options.signal.removeEventListener("abort", halt);
|
|
80
|
+
};
|
|
81
|
+
const retainCleanupFailure = (error) => {
|
|
82
|
+
cleanupFailures.add(error);
|
|
83
|
+
};
|
|
84
|
+
const attempt = async () => {
|
|
85
|
+
const operation = createOperation({ signal: cancellation.signal, limits: { totalMs: 15_000, requestMs: 10_000 } });
|
|
86
|
+
let phase = "collect";
|
|
87
|
+
try {
|
|
88
|
+
const sample = await options.collect(operation);
|
|
89
|
+
for (const issue of sample.issues) {
|
|
90
|
+
if (hasHerdrCommandCleanupFailure(issue.error)) {
|
|
91
|
+
retainCleanupFailure(issue.error);
|
|
92
|
+
if (stopped)
|
|
93
|
+
fail(issue.component, "collect", issue.error, issue.code);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
operation.check();
|
|
97
|
+
const unavailable = new Set(sample.issues.map(issue => issue.component));
|
|
98
|
+
for (const component of ["os", "cpu", "memory", "disk", "herdr", "codex", "copilot"]) {
|
|
99
|
+
if (!unavailable.has(component))
|
|
100
|
+
recover(component, "collect");
|
|
101
|
+
}
|
|
102
|
+
for (const issue of sample.issues) {
|
|
103
|
+
fail(issue.component, "collect", issue.error, issue.code);
|
|
104
|
+
}
|
|
105
|
+
operation.check();
|
|
106
|
+
phase = "send";
|
|
107
|
+
await options.send(Object.freeze({ ...sample.telemetry, taskInventory: inventory }), operation);
|
|
108
|
+
operation.check();
|
|
109
|
+
recover("report", phase);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
if (hasHerdrCommandCleanupFailure(error)) {
|
|
113
|
+
fail("report", phase, error);
|
|
114
|
+
retainCleanupFailure(error);
|
|
115
|
+
}
|
|
116
|
+
else if (!stopped)
|
|
117
|
+
fail("report", phase, error);
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
operation.dispose();
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const run = async () => {
|
|
124
|
+
while (pending && !stopped) {
|
|
125
|
+
pending = false;
|
|
126
|
+
await attempt();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const trigger = () => {
|
|
130
|
+
if (stopped)
|
|
131
|
+
return;
|
|
132
|
+
pending = true;
|
|
133
|
+
if (running !== null)
|
|
134
|
+
return;
|
|
135
|
+
running = run().then(() => { running = null; if (pending && !stopped)
|
|
136
|
+
trigger(); });
|
|
137
|
+
};
|
|
138
|
+
options.signal.addEventListener("abort", halt, { once: true });
|
|
139
|
+
if (options.signal.aborted)
|
|
140
|
+
halt();
|
|
141
|
+
else {
|
|
142
|
+
timer = setInterval(trigger, 30_000);
|
|
143
|
+
timer.unref();
|
|
144
|
+
trigger();
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
publishInventory: (value) => {
|
|
148
|
+
if (stopped)
|
|
149
|
+
return;
|
|
150
|
+
inventory = copyInventory(value);
|
|
151
|
+
trigger();
|
|
152
|
+
},
|
|
153
|
+
recordClaim: (reference) => {
|
|
154
|
+
if (stopped)
|
|
155
|
+
return;
|
|
156
|
+
if (inventory !== null)
|
|
157
|
+
inventory = Object.freeze({
|
|
158
|
+
observedAt: inventory.observedAt,
|
|
159
|
+
claims: Object.freeze([...inventory.claims.filter(claim => claim.taskId !== reference.taskId), copyReference(reference)]),
|
|
160
|
+
});
|
|
161
|
+
trigger();
|
|
162
|
+
},
|
|
163
|
+
stop: async () => {
|
|
164
|
+
halt();
|
|
165
|
+
await running;
|
|
166
|
+
const errors = [...cleanupFailures, diagnosticFailure].filter(error => error !== undefined);
|
|
167
|
+
if (errors.length === 1)
|
|
168
|
+
throw errors[0];
|
|
169
|
+
if (errors.length !== 0)
|
|
170
|
+
throw new AggregateError(errors, "Worker reporter could not finish safely.");
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/commands/worker/reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ export declare const currentWorkerPlatform: (platform?: NodeJS.Platform) => Task
|
|
|
4
4
|
export declare const runWorker: (options: {
|
|
5
5
|
homeDirectory: string;
|
|
6
6
|
packageDirectory: string;
|
|
7
|
+
version: string;
|
|
8
|
+
workingDirectory: string;
|
|
7
9
|
log?: (message: string) => void;
|
|
8
10
|
signal?: AbortSignal;
|
|
9
11
|
prepareRepositories?: (signal: AbortSignal) => Promise<void>;
|
|
@@ -21,6 +21,8 @@ import { acquireWorkerInstanceLock, tryAcquireWorkerInstanceLock } from "./insta
|
|
|
21
21
|
import { resolveWorkerPaths } from "./paths.js";
|
|
22
22
|
import { createWorkerPromptBuilder } from "./prompts.js";
|
|
23
23
|
import { createWorkerRemote } from "./remote.js";
|
|
24
|
+
import { createWorkerReporter } from "./reporter.js";
|
|
25
|
+
import { createWorkerTelemetryCollector } from "./telemetry.js";
|
|
24
26
|
import { openWorkerStore } from "./store.js";
|
|
25
27
|
import { createWorkerGitManager } from "./worktrees.js";
|
|
26
28
|
export const currentWorkerPlatform = (platform = process.platform) => {
|
|
@@ -111,6 +113,7 @@ export const runWorker = async (options) => {
|
|
|
111
113
|
let diagnostics;
|
|
112
114
|
const failures = [];
|
|
113
115
|
let renewal;
|
|
116
|
+
let reporter;
|
|
114
117
|
try {
|
|
115
118
|
signal.throwIfAborted();
|
|
116
119
|
let configuration = await readWorkerConfiguration(paths, signal);
|
|
@@ -141,6 +144,9 @@ export const runWorker = async (options) => {
|
|
|
141
144
|
diagnostics = await createWorkerDiagnostics({ paths, workerId, platform, ...(options.log === undefined ? {} : { log: options.log }), secrets: [serverToken] });
|
|
142
145
|
const remote = createWorkerRemote({ serverUrl, serverToken });
|
|
143
146
|
await remote.currentUserId(signal);
|
|
147
|
+
const machine = machineDescription(platform);
|
|
148
|
+
const telemetry = createWorkerTelemetryCollector({ paths, homeDirectory: options.homeDirectory, version: options.version, workingDirectory: options.workingDirectory, machine, platform });
|
|
149
|
+
reporter = createWorkerReporter({ signal, collect: operation => telemetry.collect(operation), send: (report, operation) => remote.report(workerId, report, operation), emit: diagnostics.emit });
|
|
144
150
|
git = createWorkerGitManager({ temporaryDirectory: paths.temporaryDirectory });
|
|
145
151
|
const lazyHerdr = new Proxy({}, { get: (_target, property) => {
|
|
146
152
|
herdr ??= createWorkerHerdr({ paths, homeDirectory: options.homeDirectory });
|
|
@@ -176,7 +182,8 @@ export const runWorker = async (options) => {
|
|
|
176
182
|
}
|
|
177
183
|
coordinator = createWorkerCoordinator({
|
|
178
184
|
store, git, herdr: lazyHerdr, ...web, remote, serverOrigin: serverUrl, workerId, platform,
|
|
179
|
-
machine
|
|
185
|
+
machine, repositories,
|
|
186
|
+
onInventory: reporter.publishInventory, onClaim: reporter.recordClaim,
|
|
180
187
|
maxConcurrent: configuration.maxConcurrent, globalConfiguration: configuration,
|
|
181
188
|
buildPrompt: await createWorkerPromptBuilder(options.packageDirectory),
|
|
182
189
|
emit: diagnostics.emit, signal,
|
|
@@ -218,6 +225,12 @@ export const runWorker = async (options) => {
|
|
|
218
225
|
if (!signal.aborted)
|
|
219
226
|
cancellation.controller.abort(new Error("Worker runtime is closing."));
|
|
220
227
|
await renewal;
|
|
228
|
+
try {
|
|
229
|
+
await reporter?.stop();
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
failures.push(error);
|
|
233
|
+
}
|
|
221
234
|
if (coordinator !== undefined) {
|
|
222
235
|
try {
|
|
223
236
|
diagnostics?.emit({ kind: "shutdown", message: "Stopping agents while retaining unfinished claims, worktrees and native session IDs." });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/commands/worker/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,GAAoB,OAAO,CAAC,QAAQ,EAAgB,EAAE;IAClG,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO,EAAE,OAAO,OAAO,CAAC;QAC7B,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC;QAC9B,KAAK,OAAO,EAAE,OAAO,SAAS,CAAC;QAC/B,SAAS,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,GAAG,CAAC,CAAC;IACvF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,QAAsB,EAAiB,EAAE;IACnE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,0FAA0F;IAC1F,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,oBAAoB,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AACrI,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;IACjE,IAAI,CAAC;QAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACvC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACvF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAoB,EAAE,EAAE;IACnD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAqB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3H,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,OAAO;QAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxD,OAAO;QACL,UAAU;QACV,OAAO,EAAE,GAAS,EAAE;YAClB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,QAA4B,EAAQ,EAAE;IAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,+CAA+C,CAAC,CAAC;AAC/G,CAAC,CAAC;AAGF,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAA4D,EAAE,KAAkB,EAAE,KAAyC,EAAE,GAA8C,EAAE,SAAiB,EAAE,WAAmB,EAAE,QAAsB,EAAE,IAAkC,EAAE,EAAE;IACjT,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,2BAA2B,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,yBAAyB,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG;YAC1I,WAAW,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACjI,OAAO,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;YAC9O,CAAC;YACD,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACrL,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAC5I,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,OAI/B,EAAiB,EAAE;IAClB,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;IAC9C,IAAI,IAAuE,CAAC;IAC5E,IAAI,KAAqD,CAAC;IAC1D,IAAI,GAA6D,CAAC;IAClE,IAAI,GAA0D,CAAC;IAC/D,IAAI,WAAmE,CAAC;IACxE,IAAI,KAAuD,CAAC;IAC5D,IAAI,WAA4E,CAAC;IACjF,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,OAAkC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChF,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC7G,MAAM,mBAAmB,GAAG,KAAK,IAAmB,EAAE;YACpD,IAAI,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS;gBAAE,OAAO;YAC/F,MAAM,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,2IAA2I,CAAC,CAAC;YACzO,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACtC,IAAI,aAAa,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACnI,CAAC,CAAC;QACF,IAAI,aAAa,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,IAAI,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;YAAE,MAAM,mBAAmB,EAAE,CAAC;QACtK,IAAI,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,mBAAmB,EAAE,CAAC;QAC5B,KAAK,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC;YAAE,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClI,WAAW,GAAG,MAAM,uBAAuB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/J,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,GAAG,GAAG,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,EAA0C,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACnG,KAAK,KAAK,iBAAiB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAAC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpH,CAAC,EAAE,CAAC,CAAC;QACL,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7G,OAAO,GAAG,8BAA8B,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM;YAC3J,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC;SACrF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxK,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5G,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;gBAChK,CAAC;wBAAS,CAAC;oBAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;YACpC,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACzH,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAAC,CAAC;oBAChD,CAAC;gBAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzO,CAAC;QACD,WAAW,GAAG,uBAAuB,CAAC;YACpC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;YACzF,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,YAAY;YACnD,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,mBAAmB,EAAE,aAAa;YAC9E,WAAW,EAAE,MAAM,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACtE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM;SAC/B,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,QAAQ,OAAO,QAAQ,mBAAmB,aAAa,CAAC,aAAa,oBAAoB,aAAa,CAAC,cAAc,UAAU,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAC5N,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC5C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC,CAAC;oBAClH,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;oBAAE,MAAM;gBAC/C,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,KAAK,CAAC;gBAChC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,wFAAwF,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/J,CAAC;YACD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAC1B,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAAC,CAAC;YACzE,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;oBAAE,MAAM,KAAK,CAAC;YAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC5F,MAAM,OAAO,CAAC;QACd,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,sFAAsF,EAAE,CAAC,CAAC;gBACzI,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;gBAChI,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC;oBAAC,MAAM,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;gBAAC,CAAC;wBACrC,CAAC;oBAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACrE,IAAI,CAAC;YAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACtE,IAAI,CAAC;YAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC/D,IAAI,CAAC;YAAC,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC3E,IAAI,CAAC;YAAC,MAAM,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACtE,YAAY,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAGtC,EAAiB,EAAE;IAClB,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;IAC9C,IAAI,IAA0E,CAAC;IAC/E,IAAI,KAAqD,CAAC;IAC1D,IAAI,GAA6D,CAAC;IAClE,IAAI,GAA0D,CAAC;IAC/D,IAAI,WAA4E,CAAC;IACjF,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,GAAG,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC3G,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChF,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC7G,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,WAAW,GAAG,MAAM,uBAAuB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/J,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxK,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACzH,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzO,CAAC;QACD,MAAM,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,GAAG,GAAG,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/E,IAAI,WAA6D,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAA0C,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,WAAW,KAAK,iBAAiB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxO,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,uBAAuB,CAAC;YAC1C,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY;YACrG,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,mBAAmB,EAAE,aAAa;YAC9E,WAAW,EAAE,MAAM,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM;SACvG,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;YACvC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY;YACjF,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe;YACnF,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5H,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;YACjC,CAAC;QACP,IAAI,CAAC;YAAC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACrE,IAAI,CAAC;YAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACtE,IAAI,CAAC;YAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC/D,IAAI,CAAC;YAAC,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC3E,IAAI,CAAC;YAAC,MAAM,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACtE,YAAY,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/commands/worker/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Operation } from "../../api/operation.js";
|
|
2
|
+
import type { TaskPlatform, WorkerMachine, WorkerProbeCode, WorkerTelemetry } from "../../api/types.js";
|
|
3
|
+
import type { WorkerPaths } from "./paths.js";
|
|
4
|
+
export type WorkerTelemetryIssue = {
|
|
5
|
+
component: "os" | "cpu" | "memory" | "disk" | "herdr" | "codex" | "copilot";
|
|
6
|
+
code: WorkerProbeCode;
|
|
7
|
+
error: unknown;
|
|
8
|
+
};
|
|
9
|
+
export type WorkerTelemetrySample = {
|
|
10
|
+
telemetry: WorkerTelemetry;
|
|
11
|
+
issues: readonly WorkerTelemetryIssue[];
|
|
12
|
+
};
|
|
13
|
+
export declare const createWorkerTelemetryCollector: (options: {
|
|
14
|
+
paths: WorkerPaths;
|
|
15
|
+
homeDirectory: string;
|
|
16
|
+
version: string;
|
|
17
|
+
workingDirectory: string;
|
|
18
|
+
machine: WorkerMachine;
|
|
19
|
+
platform: TaskPlatform;
|
|
20
|
+
}) => {
|
|
21
|
+
collect: (operation: Operation) => Promise<WorkerTelemetrySample>;
|
|
22
|
+
};
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { constants } from "node:fs";
|
|
2
|
+
import { access, stat, statfs } from "node:fs/promises";
|
|
3
|
+
import * as os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { performance } from "node:perf_hooks";
|
|
6
|
+
import { createOperation, OperationError } from "../../api/operation.js";
|
|
7
|
+
import { hasHerdrCommandCleanupFailure, HerdrCommandDeadlineError, HerdrCommandError, runHerdrCommand, spawnHerdrProcess } from "./herdr/command.js";
|
|
8
|
+
import { createHerdrNativeEnvironment, createHerdrVersionObserver } from "./herdr/instance.js";
|
|
9
|
+
import { NativeVersionOutputError, probeNativeAgentVersion } from "./herdr/version-probe.js";
|
|
10
|
+
class SampleError extends Error {
|
|
11
|
+
code;
|
|
12
|
+
constructor(code, message, options) {
|
|
13
|
+
super(message, options);
|
|
14
|
+
this.code = code;
|
|
15
|
+
this.name = "WorkerSampleError";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const codeOf = (error) => {
|
|
19
|
+
if (error instanceof SampleError)
|
|
20
|
+
return error.code;
|
|
21
|
+
if (error instanceof OperationError || error instanceof HerdrCommandDeadlineError)
|
|
22
|
+
return "timeout";
|
|
23
|
+
if (error instanceof NativeVersionOutputError)
|
|
24
|
+
return "invalid_output";
|
|
25
|
+
if (error instanceof HerdrCommandError)
|
|
26
|
+
return "command_failed";
|
|
27
|
+
if (error instanceof Error && "code" in error) {
|
|
28
|
+
if (error.code === "EACCES" || error.code === "EPERM")
|
|
29
|
+
return "permission_denied";
|
|
30
|
+
if (error.code === "ENOENT" || error.code === "ENOTDIR")
|
|
31
|
+
return "not_found";
|
|
32
|
+
}
|
|
33
|
+
if (error instanceof Error && error.cause !== undefined)
|
|
34
|
+
return codeOf(error.cause);
|
|
35
|
+
return "io_error";
|
|
36
|
+
};
|
|
37
|
+
const integer = (value) => {
|
|
38
|
+
const result = Number(value);
|
|
39
|
+
if (!Number.isSafeInteger(result) || result < 0 || (typeof value === "bigint" && BigInt(result) !== value))
|
|
40
|
+
throw new SampleError("out_of_range", "A resource byte or counter value is outside the safe integer range.");
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
const text = (value) => {
|
|
44
|
+
if (value.trim().length === 0 || value.includes("\0") || !value.isWellFormed())
|
|
45
|
+
throw new SampleError("invalid_sample", "Resource metadata must contain valid nonempty text without NUL.");
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
48
|
+
const observe = (pending, operation) => new Promise((resolve, reject) => {
|
|
49
|
+
try {
|
|
50
|
+
operation.check();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
void pending.then(() => undefined, () => undefined);
|
|
54
|
+
reject(error);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
let settled = false;
|
|
58
|
+
const finish = (result) => {
|
|
59
|
+
if (settled)
|
|
60
|
+
return;
|
|
61
|
+
settled = true;
|
|
62
|
+
clearTimeout(timer);
|
|
63
|
+
operation.signal.removeEventListener("abort", abort);
|
|
64
|
+
if ("error" in result)
|
|
65
|
+
reject(result.error);
|
|
66
|
+
else
|
|
67
|
+
resolve(result.value);
|
|
68
|
+
};
|
|
69
|
+
const abort = () => finish({ error: operation.signal.reason });
|
|
70
|
+
const timer = setTimeout(() => finish({ error: new OperationError("deadline") }), Math.max(1, Math.floor(operation.remainingMs())));
|
|
71
|
+
operation.signal.addEventListener("abort", abort, { once: true });
|
|
72
|
+
if (operation.signal.aborted)
|
|
73
|
+
abort();
|
|
74
|
+
pending.then((value) => finish({ value }), (error) => finish({ error }));
|
|
75
|
+
});
|
|
76
|
+
const cpuSnapshot = () => {
|
|
77
|
+
const processors = os.cpus();
|
|
78
|
+
if (processors.length === 0 || !Number.isSafeInteger(processors.length))
|
|
79
|
+
throw new SampleError("invalid_sample", "No logical CPU counters are available.");
|
|
80
|
+
return { model: text(processors[0].model), times: processors.map(({ times }) => ({ idle: integer(times.idle), total: integer(Object.values(times).reduce((sum, value) => sum + integer(value), 0)) })) };
|
|
81
|
+
};
|
|
82
|
+
const cpuInterval = (operation) => new Promise((resolve, reject) => {
|
|
83
|
+
operation.check();
|
|
84
|
+
const abort = () => { clearTimeout(timer); operation.signal.removeEventListener("abort", abort); reject(operation.signal.reason); };
|
|
85
|
+
const timer = setTimeout(() => {
|
|
86
|
+
operation.signal.removeEventListener("abort", abort);
|
|
87
|
+
try {
|
|
88
|
+
operation.check();
|
|
89
|
+
resolve();
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
reject(error);
|
|
93
|
+
}
|
|
94
|
+
}, 200);
|
|
95
|
+
operation.signal.addEventListener("abort", abort, { once: true });
|
|
96
|
+
if (operation.signal.aborted)
|
|
97
|
+
abort();
|
|
98
|
+
});
|
|
99
|
+
const sampleCPU = async (operation) => {
|
|
100
|
+
const before = cpuSnapshot();
|
|
101
|
+
await cpuInterval(operation);
|
|
102
|
+
const after = cpuSnapshot();
|
|
103
|
+
if (before.times.length !== after.times.length || before.model !== after.model)
|
|
104
|
+
throw new SampleError("invalid_sample", "The logical CPU inventory changed during the sample.");
|
|
105
|
+
let elapsed = 0;
|
|
106
|
+
let idle = 0;
|
|
107
|
+
after.times.forEach((current, index) => {
|
|
108
|
+
const previous = before.times[index];
|
|
109
|
+
const totalDelta = current.total - previous.total;
|
|
110
|
+
const idleDelta = current.idle - previous.idle;
|
|
111
|
+
if (totalDelta < 0 || idleDelta < 0 || idleDelta > totalDelta)
|
|
112
|
+
throw new SampleError("invalid_sample", "The logical CPU counters did not produce a valid interval.");
|
|
113
|
+
elapsed += totalDelta;
|
|
114
|
+
idle += idleDelta;
|
|
115
|
+
});
|
|
116
|
+
if (!Number.isSafeInteger(elapsed) || !Number.isSafeInteger(idle) || elapsed <= 0)
|
|
117
|
+
throw new SampleError("invalid_sample", "The logical CPU counters did not advance safely.");
|
|
118
|
+
const usagePercent = 100 * (elapsed - idle) / elapsed;
|
|
119
|
+
if (!Number.isFinite(usagePercent) || usagePercent < 0 || usagePercent > 100)
|
|
120
|
+
throw new SampleError("invalid_sample", "The CPU interval produced an invalid utilization percentage.");
|
|
121
|
+
return { model: after.model, logicalProcessors: after.times.length, usagePercent };
|
|
122
|
+
};
|
|
123
|
+
const hasCode = (error, code) => error instanceof Error && (("code" in error && error.code === code) || hasCode(error.cause, code));
|
|
124
|
+
const executableMissing = async (agent, environment, cwd, operation) => {
|
|
125
|
+
const directory = await observe(stat(cwd), operation);
|
|
126
|
+
if (!directory.isDirectory())
|
|
127
|
+
throw new SampleError("io_error", "The native version probe working directory is not a directory.");
|
|
128
|
+
const env = (name) => {
|
|
129
|
+
const key = process.platform === "win32" ? Object.keys(environment).find((key) => key.toUpperCase() === name) : name;
|
|
130
|
+
return key === undefined ? undefined : environment[key];
|
|
131
|
+
};
|
|
132
|
+
const search = env("PATH");
|
|
133
|
+
if (search === undefined)
|
|
134
|
+
return false;
|
|
135
|
+
const directories = [...(process.platform === "win32" ? [cwd] : []), ...search.split(path.delimiter)];
|
|
136
|
+
const extensions = process.platform === "win32" ? (env("PATHEXT") === undefined ? [".EXE", ".CMD", ".BAT", ".COM"] : env("PATHEXT").split(";")).flatMap((extension) => [extension, extension.toLowerCase()]) : [""];
|
|
137
|
+
for (const directory of directories)
|
|
138
|
+
for (const extension of extensions) {
|
|
139
|
+
const candidate = path.resolve(cwd, directory.replace(/^"(.*)"$/, "$1"), `${agent}${extension}`);
|
|
140
|
+
try {
|
|
141
|
+
await observe(access(candidate, constants.F_OK), operation);
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
if (!hasCode(error, "ENOENT") && !hasCode(error, "ENOTDIR"))
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return true;
|
|
150
|
+
};
|
|
151
|
+
export const createWorkerTelemetryCollector = (options) => {
|
|
152
|
+
if (!path.isAbsolute(options.workingDirectory) || /[\0\r\n]/.test(options.workingDirectory))
|
|
153
|
+
throw new TypeError("The Worker startup directory must be absolute and contain no control separators.");
|
|
154
|
+
const environment = createHerdrNativeEnvironment(options.paths, process.env);
|
|
155
|
+
const herdr = createHerdrVersionObserver(options.paths);
|
|
156
|
+
const cache = new Map();
|
|
157
|
+
let pendingDisk = null;
|
|
158
|
+
const disk = async (operation) => {
|
|
159
|
+
// A timed-out OS request cannot be cancelled; avoid adding I/O or observers while it remains pending.
|
|
160
|
+
if (pendingDisk !== null)
|
|
161
|
+
throw new SampleError("timeout", "The previous filesystem observation remains pending.");
|
|
162
|
+
const request = statfs(options.workingDirectory, { bigint: true }).then((sample) => {
|
|
163
|
+
if (sample.bsize <= 0n || sample.blocks < 0n || sample.bavail < 0n)
|
|
164
|
+
throw new SampleError("invalid_sample", "Filesystem counters must be nonnegative with a positive block size.");
|
|
165
|
+
const totalBytes = integer(sample.blocks * sample.bsize);
|
|
166
|
+
const availableBytes = integer(sample.bavail * sample.bsize);
|
|
167
|
+
if (totalBytes <= 0 || availableBytes > totalBytes)
|
|
168
|
+
throw new SampleError("invalid_sample", "Filesystem availability must fit its positive total capacity.");
|
|
169
|
+
return { totalBytes, availableBytes };
|
|
170
|
+
});
|
|
171
|
+
pendingDisk = request;
|
|
172
|
+
void request.then(() => { if (pendingDisk === request)
|
|
173
|
+
pendingDisk = null; }, () => { if (pendingDisk === request)
|
|
174
|
+
pendingDisk = null; });
|
|
175
|
+
return observe(request, operation);
|
|
176
|
+
};
|
|
177
|
+
return {
|
|
178
|
+
collect: async (operation) => {
|
|
179
|
+
operation.check();
|
|
180
|
+
const collection = createOperation({ signal: operation.signal, limits: { ...operation.limits, totalMs: Math.max(1, Math.floor(Math.min(5_000, operation.remainingMs()))), requestMs: Math.min(5_000, operation.limits.requestMs) } });
|
|
181
|
+
const issues = [];
|
|
182
|
+
const probe = async (component, sample) => {
|
|
183
|
+
const checkedAt = new Date().toISOString();
|
|
184
|
+
try {
|
|
185
|
+
collection.check();
|
|
186
|
+
return { state: "ok", checkedAt, value: await sample() };
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
const code = codeOf(error);
|
|
190
|
+
issues.push({ component, code, error });
|
|
191
|
+
return { state: "error", checkedAt, code };
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
const version = async (agent) => {
|
|
195
|
+
const previous = cache.get(agent);
|
|
196
|
+
// A missing close acknowledgement leaves ownership uncertain; starting a replacement could leak another process tree.
|
|
197
|
+
if (previous?.cleanupUncertain === true) {
|
|
198
|
+
const error = previous.issue.error;
|
|
199
|
+
issues.push({ component: agent, code: "unavailable", error });
|
|
200
|
+
return { state: "error", checkedAt: new Date().toISOString(), code: "unavailable" };
|
|
201
|
+
}
|
|
202
|
+
if (previous !== undefined && performance.now() - previous.started < 60_000) {
|
|
203
|
+
if (previous.issue !== undefined)
|
|
204
|
+
issues.push(previous.issue);
|
|
205
|
+
return previous.probe;
|
|
206
|
+
}
|
|
207
|
+
const started = performance.now();
|
|
208
|
+
const checkedAt = new Date().toISOString();
|
|
209
|
+
let result;
|
|
210
|
+
let issue;
|
|
211
|
+
let cleanupUncertain = false;
|
|
212
|
+
try {
|
|
213
|
+
result = { state: "ok", checkedAt, value: await probeNativeAgentVersion({ agent, environment, cwd: options.workingDirectory, runCommand: (command, childOperation) => runHerdrCommand(command, childOperation, spawnHerdrProcess, { cleanupWithinDeadline: true }) }, collection) };
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
cleanupUncertain = hasHerdrCommandCleanupFailure(error);
|
|
217
|
+
try {
|
|
218
|
+
if (!cleanupUncertain && hasCode(error, "ENOENT") && await executableMissing(agent, environment, options.workingDirectory, collection))
|
|
219
|
+
result = { state: "not_installed", checkedAt };
|
|
220
|
+
else {
|
|
221
|
+
const code = codeOf(error);
|
|
222
|
+
issue = { component: agent, code, error };
|
|
223
|
+
result = { state: "error", checkedAt, code };
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch (lookupError) {
|
|
227
|
+
const code = codeOf(lookupError);
|
|
228
|
+
issue = { component: agent, code, error: new Error("Native executable absence could not be established.", { cause: lookupError }) };
|
|
229
|
+
result = { state: "error", checkedAt, code };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
cache.set(agent, { started, probe: result, ...(issue === undefined ? {} : { issue }), cleanupUncertain });
|
|
233
|
+
if (issue !== undefined)
|
|
234
|
+
issues.push(issue);
|
|
235
|
+
return result;
|
|
236
|
+
};
|
|
237
|
+
const sampledAt = new Date().toISOString();
|
|
238
|
+
try {
|
|
239
|
+
const [system, cpu, memory, filesystem, daemon, codex, copilot] = await Promise.all([
|
|
240
|
+
probe("os", () => ({ type: text(os.type()), release: text(os.release()), version: text(os.version()), arch: text(os.arch()) })),
|
|
241
|
+
probe("cpu", () => sampleCPU(collection)),
|
|
242
|
+
probe("memory", () => { const totalBytes = integer(os.totalmem()); const free = integer(os.freemem()); if (totalBytes <= 0 || free > totalBytes)
|
|
243
|
+
throw new SampleError("invalid_sample", "Available memory must fit its positive total capacity."); return { totalBytes, usedBytes: totalBytes - free }; }),
|
|
244
|
+
probe("disk", () => disk(collection)),
|
|
245
|
+
probe("herdr", () => herdr.observe(collection)), version("codex"), version("copilot"),
|
|
246
|
+
]);
|
|
247
|
+
try {
|
|
248
|
+
operation.check();
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
const cleanup = issues.filter((issue) => hasHerdrCommandCleanupFailure(issue.error)).map((issue) => issue.error);
|
|
252
|
+
if (cleanup.length !== 0)
|
|
253
|
+
throw new AggregateError([error, ...cleanup], "Worker telemetry was cancelled with unconfirmed native process cleanup.", { cause: error });
|
|
254
|
+
throw error;
|
|
255
|
+
}
|
|
256
|
+
return { telemetry: { machine: { ...options.machine }, platform: options.platform, workingDirectory: options.workingDirectory, sampledAt, os: system, cpu, memory, disk: filesystem,
|
|
257
|
+
versions: { daynight: options.version, codex, copilot, herdr: daemon.state === "error" ? daemon : daemon.value === null ? { state: "not_running", checkedAt: daemon.checkedAt } : { state: "ok", checkedAt: daemon.checkedAt, value: daemon.value } } }, issues };
|
|
258
|
+
}
|
|
259
|
+
finally {
|
|
260
|
+
collection.dispose();
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
//# sourceMappingURL=telemetry.js.map
|