@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.
Files changed (90) hide show
  1. package/README.md +128 -17
  2. package/dist/api/client.d.ts +7 -2
  3. package/dist/api/client.js +46 -18
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/index.d.ts +1 -0
  6. package/dist/api/index.js +1 -0
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/api/json.js +27 -6
  9. package/dist/api/json.js.map +1 -1
  10. package/dist/api/parse.d.ts +4 -6
  11. package/dist/api/parse.js +51 -93
  12. package/dist/api/parse.js.map +1 -1
  13. package/dist/api/resource-path.d.ts +1 -0
  14. package/dist/api/resource-path.js +8 -0
  15. package/dist/api/resource-path.js.map +1 -0
  16. package/dist/api/task-properties.d.ts +7 -0
  17. package/dist/api/task-properties.js +81 -0
  18. package/dist/api/task-properties.js.map +1 -0
  19. package/dist/api/types.d.ts +95 -6
  20. package/dist/api/validation.d.ts +15 -0
  21. package/dist/api/validation.js +43 -0
  22. package/dist/api/validation.js.map +1 -0
  23. package/dist/cli/schema.d.ts +3 -0
  24. package/dist/cli/schema.js +14 -4
  25. package/dist/cli/schema.js.map +1 -1
  26. package/dist/commands/completion/bash.d.ts +1 -1
  27. package/dist/commands/completion/bash.js +6 -3
  28. package/dist/commands/completion/bash.js.map +1 -1
  29. package/dist/commands/completion/zsh.d.ts +1 -1
  30. package/dist/commands/completion/zsh.js +7 -7
  31. package/dist/commands/completion/zsh.js.map +1 -1
  32. package/dist/commands/skill/skills/using-daynight/SKILL.md +52 -162
  33. package/dist/commands/skill/skills/using-daynight/references/authorization.md +36 -0
  34. package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +77 -193
  35. package/dist/commands/skill/skills/using-daynight/references/create-task.md +31 -186
  36. package/dist/commands/skill/skills/using-daynight/references/final-acceptance.md +25 -0
  37. package/dist/commands/skill/skills/using-daynight/references/goal.md +46 -243
  38. package/dist/commands/skill/skills/using-daynight/references/handbook.md +38 -294
  39. package/dist/commands/skill/skills/using-daynight/references/handoff.md +33 -91
  40. package/dist/commands/skill/skills/using-daynight/references/project-management.md +24 -0
  41. package/dist/commands/skill/skills/using-daynight/references/run-task.md +18 -59
  42. package/dist/commands/skill/skills/using-daynight/references/setup.md +16 -0
  43. package/dist/commands/skill/skills/using-daynight/references/task-content.md +80 -177
  44. package/dist/commands/skill/skills/using-daynight/references/task-execution.md +34 -126
  45. package/dist/commands/skill/skills/using-daynight/references/task-management.md +162 -0
  46. package/dist/commands/skill/skills/using-daynight/references/write-safety.md +34 -0
  47. package/dist/commands/task/command.js +12 -14
  48. package/dist/commands/task/command.js.map +1 -1
  49. package/dist/commands/task/definition.js +32 -13
  50. package/dist/commands/task/definition.js.map +1 -1
  51. package/dist/commands/task/property.d.ts +6 -0
  52. package/dist/commands/task/property.js +51 -0
  53. package/dist/commands/task/property.js.map +1 -0
  54. package/dist/commands/task/rendering.d.ts +4 -1
  55. package/dist/commands/task/rendering.js +35 -9
  56. package/dist/commands/task/rendering.js.map +1 -1
  57. package/dist/commands/worker/control.js +10 -6
  58. package/dist/commands/worker/control.js.map +1 -1
  59. package/dist/commands/worker/coordinator.d.ts +3 -1
  60. package/dist/commands/worker/coordinator.js +28 -17
  61. package/dist/commands/worker/coordinator.js.map +1 -1
  62. package/dist/commands/worker/herdr/command.d.ts +11 -2
  63. package/dist/commands/worker/herdr/command.js +23 -8
  64. package/dist/commands/worker/herdr/command.js.map +1 -1
  65. package/dist/commands/worker/herdr/instance.d.ts +5 -1
  66. package/dist/commands/worker/herdr/instance.js +30 -0
  67. package/dist/commands/worker/herdr/instance.js.map +1 -1
  68. package/dist/commands/worker/herdr/preflight.js +4 -6
  69. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  70. package/dist/commands/worker/herdr/version-probe.d.ts +13 -0
  71. package/dist/commands/worker/herdr/version-probe.js +21 -0
  72. package/dist/commands/worker/herdr/version-probe.js.map +1 -0
  73. package/dist/commands/worker/herdr.js +2 -6
  74. package/dist/commands/worker/herdr.js.map +1 -1
  75. package/dist/commands/worker/index.d.ts +2 -0
  76. package/dist/commands/worker/index.js +1 -1
  77. package/dist/commands/worker/index.js.map +1 -1
  78. package/dist/commands/worker/remote.d.ts +3 -1
  79. package/dist/commands/worker/remote.js +11 -6
  80. package/dist/commands/worker/remote.js.map +1 -1
  81. package/dist/commands/worker/reporter.d.ts +14 -0
  82. package/dist/commands/worker/reporter.js +174 -0
  83. package/dist/commands/worker/reporter.js.map +1 -0
  84. package/dist/commands/worker/runtime.d.ts +2 -0
  85. package/dist/commands/worker/runtime.js +14 -1
  86. package/dist/commands/worker/runtime.js.map +1 -1
  87. package/dist/commands/worker/telemetry.d.ts +22 -0
  88. package/dist/commands/worker/telemetry.js +265 -0
  89. package/dist/commands/worker/telemetry.js.map +1 -0
  90. 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: machineDescription(platform), repositories,
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":"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"}
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