@codetreker/daynight 0.21.13 → 0.24.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 +364 -287
- package/config.example.yml +69 -0
- package/dist/api/client.d.ts +2 -2
- package/dist/api/client.js +10 -7
- package/dist/api/client.js.map +1 -1
- package/dist/api/types.d.ts +1 -8
- package/dist/cli/prompts.d.ts +1 -0
- package/dist/commands/auth/credentials.js +1 -1
- package/dist/commands/auth/credentials.js.map +1 -1
- package/dist/commands/review/config.d.ts +2 -1
- package/dist/commands/review/config.js +22 -39
- package/dist/commands/review/config.js.map +1 -1
- package/dist/commands/review/configuration-guide.js +7 -6
- package/dist/commands/review/configuration-guide.js.map +1 -1
- package/dist/commands/review/definition.js +1 -1
- package/dist/commands/review/definition.js.map +1 -1
- package/dist/commands/review/repositories.js +19 -19
- package/dist/commands/review/repositories.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +6 -5
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +1 -1
- package/dist/commands/skill/skills/using-daynight/references/handoff.md +1 -1
- package/dist/commands/worker/attach.d.ts +3 -0
- package/dist/commands/worker/attach.js +53 -0
- package/dist/commands/worker/attach.js.map +1 -0
- package/dist/commands/worker/cleanup.d.ts +8 -2
- package/dist/commands/worker/cleanup.js +44 -160
- package/dist/commands/worker/cleanup.js.map +1 -1
- package/dist/commands/worker/config.d.ts +13 -3
- package/dist/commands/worker/config.js +35 -13
- package/dist/commands/worker/config.js.map +1 -1
- package/dist/commands/worker/configuration-guide.d.ts +19 -0
- package/dist/commands/worker/configuration-guide.js +86 -0
- package/dist/commands/worker/configuration-guide.js.map +1 -0
- package/dist/commands/worker/control.d.ts +11 -18
- package/dist/commands/worker/control.js +75 -132
- package/dist/commands/worker/control.js.map +1 -1
- package/dist/commands/worker/coordinator.d.ts +10 -8
- package/dist/commands/worker/coordinator.js +311 -473
- package/dist/commands/worker/coordinator.js.map +1 -1
- package/dist/commands/worker/definition.js +34 -18
- package/dist/commands/worker/definition.js.map +1 -1
- package/dist/commands/worker/diagnostics.js +2 -3
- package/dist/commands/worker/diagnostics.js.map +1 -1
- package/dist/commands/worker/execution.d.ts +35 -10
- package/dist/commands/worker/execution.js +92 -283
- package/dist/commands/worker/execution.js.map +1 -1
- package/dist/commands/worker/herdr/agents.d.ts +12 -91
- package/dist/commands/worker/herdr/agents.js +111 -358
- package/dist/commands/worker/herdr/agents.js.map +1 -1
- package/dist/commands/worker/herdr/instance.d.ts +1 -0
- package/dist/commands/worker/herdr/instance.js +30 -5
- package/dist/commands/worker/herdr/instance.js.map +1 -1
- package/dist/commands/worker/herdr/preflight.d.ts +21 -9
- package/dist/commands/worker/herdr/preflight.js +118 -124
- package/dist/commands/worker/herdr/preflight.js.map +1 -1
- package/dist/commands/worker/herdr.d.ts +7 -63
- package/dist/commands/worker/herdr.js.map +1 -1
- package/dist/commands/worker/identity.js +2 -2
- package/dist/commands/worker/identity.js.map +1 -1
- package/dist/commands/worker/index.d.ts +8 -0
- package/dist/commands/worker/index.js +21 -14
- package/dist/commands/worker/index.js.map +1 -1
- package/dist/commands/worker/prompts.d.ts +10 -3
- package/dist/commands/worker/prompts.js +21 -32
- package/dist/commands/worker/prompts.js.map +1 -1
- package/dist/commands/worker/remote.d.ts +2 -3
- package/dist/commands/worker/remote.js +1 -6
- package/dist/commands/worker/remote.js.map +1 -1
- package/dist/commands/worker/repositories.d.ts +40 -0
- package/dist/commands/worker/repositories.js +236 -0
- package/dist/commands/worker/repositories.js.map +1 -0
- package/dist/commands/worker/runtime.d.ts +1 -0
- package/dist/commands/worker/runtime.js +135 -212
- package/dist/commands/worker/runtime.js.map +1 -1
- package/dist/commands/worker/setup-environment.d.ts +31 -0
- package/dist/commands/worker/setup-environment.js +146 -0
- package/dist/commands/worker/setup-environment.js.map +1 -0
- package/dist/commands/worker/setup.d.ts +11 -0
- package/dist/commands/worker/setup.js +113 -0
- package/dist/commands/worker/setup.js.map +1 -0
- package/dist/commands/worker/store.d.ts +12 -114
- package/dist/commands/worker/store.js +92 -817
- package/dist/commands/worker/store.js.map +1 -1
- package/dist/commands/worker/types.d.ts +10 -114
- package/dist/commands/worker/worktrees.d.ts +9 -9
- package/dist/commands/worker/worktrees.js +77 -37
- package/dist/commands/worker/worktrees.js.map +1 -1
- package/dist/config/document.d.ts +0 -1
- package/dist/config/document.js +1 -22
- package/dist/config/document.js.map +1 -1
- package/dist/config/errors.d.ts +2 -2
- package/dist/config/errors.js.map +1 -1
- package/dist/config/files.d.ts +7 -1
- package/dist/config/files.js +4 -1
- package/dist/config/files.js.map +1 -1
- package/dist/config/ownership.d.ts +12 -0
- package/dist/config/ownership.js +39 -0
- package/dist/config/ownership.js.map +1 -0
- package/dist/repository/location.d.ts +7 -0
- package/dist/repository/location.js +51 -0
- package/dist/repository/location.js.map +1 -0
- package/package.json +4 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { mkdir } from "node:fs/promises";
|
|
2
|
+
import { lstat, mkdir } from "node:fs/promises";
|
|
3
3
|
import { hostname } from "node:os";
|
|
4
4
|
import { setTimeout as delay } from "node:timers/promises";
|
|
5
5
|
import { createOperation } from "../../api/operation.js";
|
|
6
6
|
import { loadServerConfiguration } from "../../config/server.js";
|
|
7
|
-
import { readWorkerConfiguration } from "./config.js";
|
|
7
|
+
import { readWorkerConfiguration, readWorkerConfigurationSnapshot } from "./config.js";
|
|
8
8
|
import { createWorkerCoordinator } from "./coordinator.js";
|
|
9
|
-
import {
|
|
9
|
+
import { submitWorkerControl } from "./control.js";
|
|
10
10
|
import { createWorkerDiagnostics } from "./diagnostics.js";
|
|
11
11
|
import { isWorkerCancellation } from "./execution.js";
|
|
12
12
|
import { createWorkerHerdr } from "./herdr.js";
|
|
@@ -27,181 +27,168 @@ export const currentWorkerPlatform = (platform = process.platform) => {
|
|
|
27
27
|
};
|
|
28
28
|
const machineDescription = (platform) => {
|
|
29
29
|
const name = hostname();
|
|
30
|
-
//
|
|
30
|
+
// The host label is reported metadata, independent of worker identity and authentication.
|
|
31
31
|
const bytes = createHash("sha1").update(`daynight:machine:${platform}:${name}`).digest().subarray(0, 16);
|
|
32
32
|
bytes[6] = (bytes[6] & 0x0f) | 0x50;
|
|
33
33
|
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
34
34
|
const value = bytes.toString("hex");
|
|
35
35
|
return { id: `${value.slice(0, 8)}-${value.slice(8, 12)}-${value.slice(12, 16)}-${value.slice(16, 20)}-${value.slice(20)}`, name };
|
|
36
36
|
};
|
|
37
|
+
const hasWorkerDatabase = async (file) => {
|
|
38
|
+
try {
|
|
39
|
+
await lstat(file);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error instanceof Error && "code" in error && error.code === "ENOENT")
|
|
44
|
+
return false;
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const runtimeCancellation = (signal) => {
|
|
49
|
+
const controller = new AbortController();
|
|
50
|
+
const cancel = () => controller.abort(signal?.reason);
|
|
51
|
+
const interrupt = () => controller.abort(new Error("Worker operation interrupted."));
|
|
52
|
+
const signals = process.platform === "win32" ? ["SIGINT", "SIGTERM", "SIGBREAK"] : ["SIGINT", "SIGTERM"];
|
|
53
|
+
signal?.addEventListener("abort", cancel, { once: true });
|
|
54
|
+
if (signal?.aborted)
|
|
55
|
+
cancel();
|
|
56
|
+
for (const name of signals)
|
|
57
|
+
process.on(name, interrupt);
|
|
58
|
+
return {
|
|
59
|
+
controller,
|
|
60
|
+
dispose: () => {
|
|
61
|
+
signal?.removeEventListener("abort", cancel);
|
|
62
|
+
for (const name of signals)
|
|
63
|
+
process.off(name, interrupt);
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
const throwFailures = (failures) => {
|
|
68
|
+
if (failures.length === 1)
|
|
69
|
+
throw failures[0];
|
|
70
|
+
if (failures.length > 1)
|
|
71
|
+
throw new AggregateError(failures, "Worker operation and resource cleanup failed.");
|
|
72
|
+
};
|
|
37
73
|
export const runWorker = async (options) => {
|
|
38
74
|
const platform = currentWorkerPlatform();
|
|
39
75
|
const paths = resolveWorkerPaths(options.homeDirectory);
|
|
40
|
-
const cancellation =
|
|
41
|
-
const
|
|
42
|
-
const signals = process.platform === "win32" ? ["SIGINT", "SIGTERM", "SIGBREAK"] : ["SIGINT", "SIGTERM"];
|
|
43
|
-
const interrupt = () => { cancellation.abort(new Error("Worker shutdown requested.")); };
|
|
44
|
-
options.signal?.addEventListener("abort", cancel, { once: true });
|
|
45
|
-
if (options.signal?.aborted)
|
|
46
|
-
cancel();
|
|
47
|
-
for (const signal of signals)
|
|
48
|
-
process.on(signal, interrupt);
|
|
76
|
+
const cancellation = runtimeCancellation(options.signal);
|
|
77
|
+
const signal = cancellation.controller.signal;
|
|
49
78
|
let lock;
|
|
50
79
|
let store;
|
|
51
80
|
let git;
|
|
52
81
|
let coordinator;
|
|
53
82
|
let herdr;
|
|
54
83
|
let diagnostics;
|
|
55
|
-
let cleanupLoop;
|
|
56
|
-
let cleanupFailure;
|
|
57
|
-
const cleanupJobs = new Map();
|
|
58
84
|
const failures = [];
|
|
59
85
|
try {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const { serverUrl, serverToken } = await loadServerConfiguration(paths,
|
|
86
|
+
signal.throwIfAborted();
|
|
87
|
+
let configuration = await readWorkerConfiguration(paths, signal);
|
|
88
|
+
const { serverUrl, serverToken } = await loadServerConfiguration(paths, signal);
|
|
63
89
|
if (serverToken === undefined)
|
|
64
90
|
throw new Error("You are not logged in. Run daynight login to authenticate.");
|
|
91
|
+
const prepareRepositories = async () => {
|
|
92
|
+
if (configuration.repositories.length > 0 || options.prepareRepositories === undefined)
|
|
93
|
+
return;
|
|
94
|
+
await options.prepareRepositories(signal);
|
|
95
|
+
signal.throwIfAborted();
|
|
96
|
+
const current = await readWorkerConfigurationSnapshot(paths, signal);
|
|
97
|
+
if (current.serverUrl !== serverUrl || current.serverToken !== serverToken)
|
|
98
|
+
throw new Error("The Daynight service or authentication changed during worker repository configuration; restart the worker with the current configuration.");
|
|
99
|
+
configuration = current.configuration;
|
|
100
|
+
if (configuration.repositories.length === 0)
|
|
101
|
+
throw new Error("Worker repository configuration did not select any repositories.");
|
|
102
|
+
};
|
|
103
|
+
if (configuration.repositories.length === 0 && options.prepareRepositories !== undefined && !await hasWorkerDatabase(paths.databaseFile))
|
|
104
|
+
await prepareRepositories();
|
|
65
105
|
lock = await acquireWorkerInstanceLock(paths);
|
|
66
|
-
|
|
67
|
-
const workerId = await ensureWorkerIdentity(paths,
|
|
106
|
+
signal.throwIfAborted();
|
|
107
|
+
const workerId = await ensureWorkerIdentity(paths, signal);
|
|
108
|
+
store = openWorkerStore(paths.databaseFile);
|
|
109
|
+
await prepareRepositories();
|
|
68
110
|
for (const directory of [paths.temporaryDirectory, paths.logsDirectory])
|
|
69
111
|
await mkdir(directory, { recursive: true, mode: 0o700 });
|
|
70
|
-
store = openWorkerStore(paths.databaseFile);
|
|
71
112
|
diagnostics = await createWorkerDiagnostics({ paths, workerId, platform, ...(options.log === undefined ? {} : { log: options.log }), secrets: [serverToken] });
|
|
72
|
-
const emit = diagnostics.emit;
|
|
73
|
-
const buildPrompt = await createWorkerPromptBuilder(options.packageDirectory);
|
|
74
113
|
const remote = createWorkerRemote({ serverUrl, serverToken });
|
|
114
|
+
await remote.currentUserId(signal);
|
|
75
115
|
git = createWorkerGitManager({ temporaryDirectory: paths.temporaryDirectory });
|
|
76
116
|
herdr = createWorkerHerdr({ paths, homeDirectory: options.homeDirectory });
|
|
77
117
|
const repositories = [];
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const cleanupCoordinator = coordinator;
|
|
84
|
-
const cleanupDiagnostics = diagnostics;
|
|
85
|
-
const cleanupStore = store;
|
|
86
|
-
cleanupLoop = (async () => {
|
|
87
|
-
while (!cancellation.signal.aborted) {
|
|
88
|
-
for (const task of cleanupStore.listUnfinishedTasks()) {
|
|
89
|
-
if (task.workerId !== workerId || (task.cleanup === null && task.control === null))
|
|
90
|
-
continue;
|
|
91
|
-
const identity = { serverOrigin: task.serverOrigin, projectId: task.projectId, taskId: task.taskId, claimId: task.claimId };
|
|
92
|
-
const key = JSON.stringify(identity);
|
|
93
|
-
if (cleanupJobs.has(key))
|
|
94
|
-
continue;
|
|
95
|
-
const job = (async () => {
|
|
96
|
-
while (!cancellation.signal.aborted) {
|
|
97
|
-
try {
|
|
98
|
-
await cleanupCoordinator.advanceCommittedCleanups(identity);
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
if (isWorkerCancellation(error, cancellation.signal))
|
|
102
|
-
return;
|
|
103
|
-
emit({ kind: "cleanup-error", message: "Committed cleanup could not advance; its original deadline and responsibility are retained.", error });
|
|
104
|
-
}
|
|
105
|
-
await cleanupDiagnostics.flush();
|
|
106
|
-
const current = cleanupStore.getTask(identity);
|
|
107
|
-
if (current === null)
|
|
108
|
-
throw new Error("The committed cleanup record disappeared.");
|
|
109
|
-
if (current.status === "done" || (current.cleanup === null && current.control === null))
|
|
110
|
-
return;
|
|
111
|
-
const state = current.cleanup;
|
|
112
|
-
if (current.control === null && state !== null && state.result !== null && state.agentStopped && state.workspaceClosed && (state.kind === "shutdown" || state.worktreeDeleted))
|
|
113
|
-
return;
|
|
114
|
-
const remaining = state === null ? 0 : state.deadline - Date.now();
|
|
115
|
-
try {
|
|
116
|
-
await delay(remaining > 0 ? Math.max(1, Math.min(1_000, remaining)) : 1_000, undefined, { signal: cancellation.signal });
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
if (!isWorkerCancellation(error, cancellation.signal))
|
|
120
|
-
throw error;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
})().catch((error) => { if (cleanupFailure === undefined)
|
|
124
|
-
cleanupFailure = error; cancellation.abort(error); });
|
|
125
|
-
cleanupJobs.set(key, job);
|
|
126
|
-
void job.then(() => { if (cleanupJobs.get(key) === job)
|
|
127
|
-
cleanupJobs.delete(key); });
|
|
128
|
-
}
|
|
118
|
+
for (const repository of configuration.repositories) {
|
|
119
|
+
const project = await remote.resolveProject({ repoUrl: repository.remote, ...(repository.projectId === undefined ? {} : { projectId: repository.projectId }) }, signal);
|
|
120
|
+
const previous = store.getProject({ projectId: project.id });
|
|
121
|
+
if (previous !== null && (previous.repoUrl !== repository.remote || previous.localPath !== repository.path)) {
|
|
122
|
+
const operation = createOperation({ signal });
|
|
129
123
|
try {
|
|
130
|
-
await
|
|
124
|
+
if ((await git.listWorktrees(previous, operation)).length > 0)
|
|
125
|
+
throw new Error("Owned worktrees prevent changing the project's original repository binding.");
|
|
131
126
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
throw error;
|
|
127
|
+
finally {
|
|
128
|
+
operation.dispose();
|
|
135
129
|
}
|
|
136
130
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
emit({ kind: "started", message: `Foreground worker ${workerId} on ${platform}; maxConcurrent=${configuration.maxConcurrent}; pollIntervalMs=${configuration.pollIntervalMs}; logs=${diagnostics.filename}.` });
|
|
140
|
-
await remote.currentUserId(cancellation.signal);
|
|
141
|
-
for (const repository of configuration.repositories) {
|
|
142
|
-
cancellation.signal.throwIfAborted();
|
|
143
|
-
const project = await remote.resolveProject({ repoUrl: repository.remote, ...(repository.projectId === undefined ? {} : { projectId: repository.projectId }) }, cancellation.signal);
|
|
144
|
-
const binding = { serverOrigin: serverUrl, projectId: project.id, repoUrl: repository.remote, localPath: repository.path };
|
|
145
|
-
const operation = createOperation({ signal: cancellation.signal });
|
|
131
|
+
const binding = store.registerProject({ projectId: project.id, repoUrl: repository.remote, localPath: repository.path });
|
|
132
|
+
const operation = createOperation({ signal });
|
|
146
133
|
try {
|
|
147
134
|
await git.prepareRepository(binding, operation);
|
|
148
135
|
}
|
|
149
136
|
finally {
|
|
150
137
|
operation.dispose();
|
|
151
138
|
}
|
|
152
|
-
|
|
153
|
-
const frozen = { agent: repository.agent, model: repository.model, args: repository.args, recoveryLimit: repository.recoveryLimit };
|
|
154
|
-
repositories.push({ project: registered, configuration: frozen });
|
|
139
|
+
repositories.push({ project: binding, configuration: { agent: repository.agent, model: repository.model, args: repository.args, recoveryLimit: repository.recoveryLimit } });
|
|
155
140
|
}
|
|
141
|
+
coordinator = createWorkerCoordinator({
|
|
142
|
+
store, git, herdr, remote, serverOrigin: serverUrl, workerId, platform,
|
|
143
|
+
machine: machineDescription(platform), repositories,
|
|
144
|
+
maxConcurrent: configuration.maxConcurrent, globalConfiguration: configuration,
|
|
145
|
+
buildPrompt: await createWorkerPromptBuilder(options.packageDirectory),
|
|
146
|
+
emit: diagnostics.emit, signal,
|
|
147
|
+
});
|
|
148
|
+
diagnostics.emit({ kind: "started", message: `Foreground worker ${workerId} on ${platform}; maxConcurrent=${configuration.maxConcurrent}; pollIntervalMs=${configuration.pollIntervalMs}; logs=${diagnostics.filename}.` });
|
|
156
149
|
let attachmentShown = false;
|
|
157
|
-
while (!
|
|
150
|
+
while (!signal.aborted) {
|
|
158
151
|
try {
|
|
159
152
|
await coordinator.tick();
|
|
160
153
|
if (!attachmentShown) {
|
|
161
|
-
emit({ kind: "attach", message:
|
|
154
|
+
diagnostics.emit({ kind: "attach", message: "Run daynight worker attach in another terminal for native input." });
|
|
162
155
|
attachmentShown = true;
|
|
163
156
|
}
|
|
164
157
|
}
|
|
165
158
|
catch (error) {
|
|
166
|
-
if (isWorkerCancellation(error,
|
|
159
|
+
if (isWorkerCancellation(error, signal))
|
|
167
160
|
break;
|
|
168
|
-
if (
|
|
161
|
+
if (signal.aborted)
|
|
169
162
|
throw error;
|
|
170
|
-
emit({ kind: "reconciliation-error", message: "The reconciliation round failed;
|
|
163
|
+
diagnostics.emit({ kind: "reconciliation-error", message: "The reconciliation round failed; resources remain for the next successful observation.", error });
|
|
171
164
|
}
|
|
172
165
|
await diagnostics.flush();
|
|
173
|
-
if (
|
|
166
|
+
if (signal.aborted)
|
|
174
167
|
break;
|
|
175
168
|
try {
|
|
176
|
-
await delay(configuration.pollIntervalMs, undefined, { signal
|
|
169
|
+
await delay(configuration.pollIntervalMs, undefined, { signal });
|
|
177
170
|
}
|
|
178
171
|
catch (error) {
|
|
179
|
-
if (!isWorkerCancellation(error,
|
|
172
|
+
if (!isWorkerCancellation(error, signal))
|
|
180
173
|
throw error;
|
|
181
174
|
}
|
|
182
175
|
}
|
|
183
176
|
}
|
|
184
177
|
catch (error) {
|
|
185
|
-
if (!isWorkerCancellation(error,
|
|
178
|
+
if (!isWorkerCancellation(error, signal))
|
|
186
179
|
failures.push(error);
|
|
187
180
|
}
|
|
188
181
|
finally {
|
|
189
|
-
if (!
|
|
190
|
-
cancellation.abort(new Error("Worker runtime is closing."));
|
|
191
|
-
await cleanupLoop;
|
|
192
|
-
await Promise.all(cleanupJobs.values());
|
|
193
|
-
if (cleanupFailure !== undefined && !failures.includes(cleanupFailure))
|
|
194
|
-
failures.push(cleanupFailure);
|
|
182
|
+
if (!signal.aborted)
|
|
183
|
+
cancellation.controller.abort(new Error("Worker runtime is closing."));
|
|
195
184
|
if (coordinator !== undefined && herdr !== undefined) {
|
|
196
185
|
try {
|
|
197
|
-
diagnostics?.emit({ kind: "shutdown", message: "Stopping
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
throw new Error("Original task agents are not all confirmed stopped; their private Herdr instance was retained.");
|
|
186
|
+
diagnostics?.emit({ kind: "shutdown", message: "Stopping agents while retaining unfinished claims, worktrees and native session IDs." });
|
|
187
|
+
if (!await coordinator.shutdown())
|
|
188
|
+
throw new Error("Some task agents could not stop; the private Herdr instance was retained.");
|
|
201
189
|
const operation = createOperation({ limits: { totalMs: 30_000 } });
|
|
202
190
|
try {
|
|
203
|
-
|
|
204
|
-
diagnostics?.emit({ kind: "stopped", message: `Private Herdr stop confirmed: ${JSON.stringify(proof)}. Unfinished claims, worktrees and native history are retained.` });
|
|
191
|
+
await herdr.stopInstance(operation);
|
|
205
192
|
}
|
|
206
193
|
finally {
|
|
207
194
|
operation.dispose();
|
|
@@ -224,125 +211,66 @@ export const runWorker = async (options) => {
|
|
|
224
211
|
failures.push(error);
|
|
225
212
|
}
|
|
226
213
|
try {
|
|
227
|
-
await
|
|
214
|
+
await diagnostics?.flush();
|
|
228
215
|
}
|
|
229
216
|
catch (error) {
|
|
230
217
|
failures.push(error);
|
|
231
218
|
}
|
|
232
219
|
try {
|
|
233
|
-
await
|
|
220
|
+
await lock?.release();
|
|
234
221
|
}
|
|
235
222
|
catch (error) {
|
|
236
223
|
failures.push(error);
|
|
237
224
|
}
|
|
238
|
-
|
|
239
|
-
process.off(signal, interrupt);
|
|
240
|
-
options.signal?.removeEventListener("abort", cancel);
|
|
225
|
+
cancellation.dispose();
|
|
241
226
|
}
|
|
242
|
-
|
|
243
|
-
throw failures[0];
|
|
244
|
-
if (failures.length > 1)
|
|
245
|
-
throw new AggregateError(failures, "Worker execution or shutdown failed.");
|
|
227
|
+
throwFailures(failures);
|
|
246
228
|
};
|
|
247
229
|
export const runWorkerControl = async (options) => {
|
|
248
230
|
const platform = currentWorkerPlatform();
|
|
249
231
|
const paths = resolveWorkerPaths(options.homeDirectory);
|
|
250
|
-
const cancellation =
|
|
251
|
-
const
|
|
252
|
-
const interrupt = () => cancellation.abort(new Error("Worker management interrupted; the persisted intent is retained."));
|
|
253
|
-
const signals = process.platform === "win32" ? ["SIGINT", "SIGTERM", "SIGBREAK"] : ["SIGINT", "SIGTERM"];
|
|
254
|
-
options.signal?.addEventListener("abort", cancel, { once: true });
|
|
255
|
-
if (options.signal?.aborted)
|
|
256
|
-
cancel();
|
|
257
|
-
for (const signal of signals)
|
|
258
|
-
process.on(signal, interrupt);
|
|
232
|
+
const cancellation = runtimeCancellation(options.signal);
|
|
233
|
+
const signal = cancellation.controller.signal;
|
|
259
234
|
let lock;
|
|
260
235
|
let store;
|
|
261
236
|
let git;
|
|
262
|
-
let coordinator;
|
|
263
237
|
let diagnostics;
|
|
264
238
|
const failures = [];
|
|
265
239
|
try {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
240
|
+
signal.throwIfAborted();
|
|
241
|
+
lock = await tryAcquireWorkerInstanceLock(paths);
|
|
242
|
+
if (lock === null)
|
|
243
|
+
throw new Error("Stop daynight worker run before running a worker management command.");
|
|
244
|
+
const configuration = await readWorkerConfiguration(paths, signal);
|
|
245
|
+
const { serverUrl, serverToken } = await loadServerConfiguration(paths, signal);
|
|
269
246
|
if (serverToken === undefined)
|
|
270
247
|
throw new Error("You are not logged in. Run daynight login to authenticate.");
|
|
271
|
-
|
|
272
|
-
const workerId = await ensureWorkerIdentity(paths, cancellation.signal);
|
|
248
|
+
const workerId = await ensureWorkerIdentity(paths, signal);
|
|
273
249
|
store = openWorkerStore(paths.databaseFile);
|
|
274
250
|
const remote = createWorkerRemote({ serverUrl, serverToken });
|
|
275
|
-
await remote.currentUserId(
|
|
251
|
+
await remote.currentUserId(signal);
|
|
276
252
|
diagnostics = await createWorkerDiagnostics({ paths, workerId, platform, ...(options.log === undefined ? {} : { log: options.log }), secrets: [serverToken] });
|
|
277
253
|
const repositories = [];
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
const project = await remote.resolveProject({ repoUrl: repository.remote, ...(repository.projectId === undefined ? {} : { projectId: repository.projectId }) }, cancellation.signal);
|
|
283
|
-
if (options.request.projectId !== undefined && project.id !== options.request.projectId)
|
|
284
|
-
continue;
|
|
285
|
-
const binding = store.registerProject({ serverOrigin: serverUrl, projectId: project.id, repoUrl: repository.remote, localPath: repository.path });
|
|
286
|
-
repositories.push({ project: binding, configuration: { agent: repository.agent, model: repository.model, args: repository.args, recoveryLimit: repository.recoveryLimit } });
|
|
287
|
-
}
|
|
254
|
+
for (const repository of configuration.repositories) {
|
|
255
|
+
const project = await remote.resolveProject({ repoUrl: repository.remote, ...(repository.projectId === undefined ? {} : { projectId: repository.projectId }) }, signal);
|
|
256
|
+
const binding = store.registerProject({ projectId: project.id, repoUrl: repository.remote, localPath: repository.path });
|
|
257
|
+
repositories.push({ project: binding, configuration: { agent: repository.agent, model: repository.model, args: repository.args, recoveryLimit: repository.recoveryLimit } });
|
|
288
258
|
}
|
|
289
|
-
|
|
259
|
+
await mkdir(paths.temporaryDirectory, { recursive: true, mode: 0o700 });
|
|
260
|
+
git = createWorkerGitManager({ temporaryDirectory: paths.temporaryDirectory });
|
|
261
|
+
const herdr = createWorkerHerdr({ paths, homeDirectory: options.homeDirectory });
|
|
262
|
+
const machine = machineDescription(platform);
|
|
263
|
+
const coordinator = createWorkerCoordinator({
|
|
264
|
+
store, git, herdr, remote, serverOrigin: serverUrl, workerId, platform, machine, repositories,
|
|
265
|
+
maxConcurrent: configuration.maxConcurrent, globalConfiguration: configuration,
|
|
266
|
+
buildPrompt: await createWorkerPromptBuilder(options.packageDirectory), emit: diagnostics.emit, signal,
|
|
267
|
+
});
|
|
268
|
+
const result = await submitWorkerControl({
|
|
269
|
+
store, remote, serverOrigin: serverUrl, workerId, platform, machine, repositories,
|
|
270
|
+
request: options.request, signal, coordinator,
|
|
271
|
+
emit: diagnostics.emit,
|
|
272
|
+
});
|
|
290
273
|
diagnostics.emit({ kind: "management", ...(result.task === null ? {} : { task: result.task }), message: result.message });
|
|
291
|
-
await diagnostics.flush();
|
|
292
|
-
if (result.task !== null && options.request.kind !== "resume") {
|
|
293
|
-
const identity = result.task;
|
|
294
|
-
let lastWaitingState = null;
|
|
295
|
-
while (true) {
|
|
296
|
-
cancellation.signal.throwIfAborted();
|
|
297
|
-
let task = store.getTask(identity);
|
|
298
|
-
if (task === null)
|
|
299
|
-
throw new Error("The managed execution record disappeared.");
|
|
300
|
-
if (task.control?.submission === "unknown")
|
|
301
|
-
task = await createWorkerControlDriver({ store, remote, serverOrigin: serverUrl, now: Date.now }).advance(task, cancellation.signal, { submit: false });
|
|
302
|
-
if (task.status === "done") {
|
|
303
|
-
diagnostics.emit({ kind: "management-complete", task, message: `Management finished for claim ${task.claimId}; outcome=${task.control?.outcome ?? "ownership-ended"}.` });
|
|
304
|
-
break;
|
|
305
|
-
}
|
|
306
|
-
if (task.control?.submission === "rejected")
|
|
307
|
-
throw new Error(`Management refused for claim ${task.claimId}: ${task.control.error}. A new explicit decision and version are required.`);
|
|
308
|
-
if (task.control?.submission === "unknown")
|
|
309
|
-
throw new Error(`Management result is unknown for claim ${task.claimId}; the original intent and claim identities are retained for reconciliation.`);
|
|
310
|
-
if (lock === null)
|
|
311
|
-
lock = await tryAcquireWorkerInstanceLock(paths);
|
|
312
|
-
if (lock !== null) {
|
|
313
|
-
if (coordinator === undefined) {
|
|
314
|
-
await mkdir(paths.temporaryDirectory, { recursive: true, mode: 0o700 });
|
|
315
|
-
git = createWorkerGitManager({ temporaryDirectory: paths.temporaryDirectory });
|
|
316
|
-
const herdr = createWorkerHerdr({ paths, homeDirectory: options.homeDirectory });
|
|
317
|
-
const buildPrompt = await createWorkerPromptBuilder(options.packageDirectory);
|
|
318
|
-
coordinator = createWorkerCoordinator({ store, git, herdr, remote, serverOrigin: serverUrl, workerId, platform, machine: machineDescription(platform), repositories, maxConcurrent: configuration.maxConcurrent, buildPrompt, emit: diagnostics.emit, signal: cancellation.signal });
|
|
319
|
-
}
|
|
320
|
-
if (options.request.kind === "retry") {
|
|
321
|
-
await coordinator.advanceRetry(identity);
|
|
322
|
-
const retried = store.getTask(identity);
|
|
323
|
-
if (retried === null)
|
|
324
|
-
throw new Error("The retried execution record disappeared.");
|
|
325
|
-
diagnostics.emit({ kind: "retry", task: retried, message: `Explicit recovery processed for claim ${retried.claimId}; count=${retried.recovery.count}; pause=${retried.recovery.pauseReason ?? "none"}.` });
|
|
326
|
-
break;
|
|
327
|
-
}
|
|
328
|
-
await coordinator.advanceCommittedCleanups(identity);
|
|
329
|
-
}
|
|
330
|
-
else if (options.request.kind === "retry") {
|
|
331
|
-
diagnostics.emit({ kind: "retry-authorized", task, message: `Claim ${task.claimId} has one persisted extra recovery authorization; the foreground worker remains its sole controller.` });
|
|
332
|
-
break;
|
|
333
|
-
}
|
|
334
|
-
await diagnostics.flush();
|
|
335
|
-
const latest = store.getTask(identity);
|
|
336
|
-
if (latest?.status === "done" || latest?.control?.submission === "unknown" || latest?.control?.submission === "rejected")
|
|
337
|
-
continue;
|
|
338
|
-
const waitingState = JSON.stringify({ cleanup: latest?.cleanup, control: latest?.control });
|
|
339
|
-
if (waitingState !== lastWaitingState) {
|
|
340
|
-
diagnostics.emit({ kind: "management-waiting", ...(latest === null ? {} : { task: latest }), message: `Waiting for the sole worker controller to finish management of claim ${task.claimId}.` });
|
|
341
|
-
lastWaitingState = waitingState;
|
|
342
|
-
}
|
|
343
|
-
await delay(1_000, undefined, { signal: cancellation.signal });
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
274
|
}
|
|
347
275
|
catch (error) {
|
|
348
276
|
failures.push(error);
|
|
@@ -361,24 +289,19 @@ export const runWorkerControl = async (options) => {
|
|
|
361
289
|
failures.push(error);
|
|
362
290
|
}
|
|
363
291
|
try {
|
|
364
|
-
await
|
|
292
|
+
await diagnostics?.flush();
|
|
365
293
|
}
|
|
366
294
|
catch (error) {
|
|
367
295
|
failures.push(error);
|
|
368
296
|
}
|
|
369
297
|
try {
|
|
370
|
-
await
|
|
298
|
+
await lock?.release();
|
|
371
299
|
}
|
|
372
300
|
catch (error) {
|
|
373
301
|
failures.push(error);
|
|
374
302
|
}
|
|
375
|
-
|
|
376
|
-
process.off(signal, interrupt);
|
|
377
|
-
options.signal?.removeEventListener("abort", cancel);
|
|
303
|
+
cancellation.dispose();
|
|
378
304
|
}
|
|
379
|
-
|
|
380
|
-
throw failures[0];
|
|
381
|
-
if (failures.length > 1)
|
|
382
|
-
throw new AggregateError(failures, "Worker management or resource disposal failed.");
|
|
305
|
+
throwFailures(failures);
|
|
383
306
|
};
|
|
384
307
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/commands/worker/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,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,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9E,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,6FAA6F;IAC7F,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,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,OAG/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,IAAI,eAAe,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,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,SAAS,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,MAAM,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,IAAuE,CAAC;IAC5E,IAAI,KAAqD,CAAC;IAC1D,IAAI,GAA0D,CAAC;IAC/D,IAAI,WAAmE,CAAC;IACxE,IAAI,KAAuD,CAAC;IAC5D,IAAI,WAA4E,CAAC;IACjF,IAAI,WAAsC,CAAC;IAC3C,IAAI,cAAuB,CAAC;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IACrD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7F,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC7G,IAAI,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC9C,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACxE,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,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,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,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,GAAG,GAAG,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/E,KAAK,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,WAAW,GAAG,uBAAuB,CAAC;YACpC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;YACtE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa;YAC/F,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM;SAC/C,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,WAAW,CAAC;QACvC,MAAM,kBAAkB,GAAG,WAAW,CAAC;QACvC,MAAM,YAAY,GAAG,KAAK,CAAC;QAC3B,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,mBAAmB,EAAE,EAAE,CAAC;oBACtD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;wBAAE,SAAS;oBAC7F,MAAM,QAAQ,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC5H,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACnC,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;wBACtB,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACpC,IAAI,CAAC;gCAAC,MAAM,kBAAkB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;4BAAC,CAAC;4BACpE,OAAO,KAAK,EAAE,CAAC;gCACb,IAAI,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;oCAAE,OAAO;gCAC7D,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,6FAA6F,EAAE,KAAK,EAAE,CAAC,CAAC;4BACjJ,CAAC;4BACD,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC/C,IAAI,OAAO,KAAK,IAAI;gCAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;4BACnF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;gCAAE,OAAO;4BAChG,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;4BAC9B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,eAAe,CAAC;gCAAE,OAAO;4BACvL,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BACnE,IAAI,CAAC;gCAAC,MAAM,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;4BAAC,CAAC;4BACjI,OAAO,KAAK,EAAE,CAAC;gCAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;oCAAE,MAAM,KAAK,CAAC;4BAAC,CAAC;wBACvF,CAAC;oBACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,GAAG,IAAI,cAAc,KAAK,SAAS;wBAAE,cAAc,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzH,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC1B,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG;wBAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtF,CAAC;gBACD,IAAI,CAAC;oBAAC,MAAM,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBAAC,CAAC;gBACvE,OAAO,KAAK,EAAE,CAAC;oBAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;wBAAE,MAAM,KAAK,CAAC;gBAAC,CAAC;YACvF,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,GAAG,IAAI,cAAc,KAAK,SAAS;YAAE,cAAc,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,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;QAChN,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAChD,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;YACpD,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACrC,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,YAAY,CAAC,MAAM,CAAC,CAAC;YACrL,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YAC3H,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,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,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC;YACpI,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,0EAA0E,EAAE,CAAC,CAAC;oBACvL,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;oBAAE,MAAM;gBAC5D,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,KAAK,CAAC;gBAC7C,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,0GAA0G,EAAE,KAAK,EAAE,CAAC,CAAC;YACrK,CAAC;YACD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM;YACvC,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,CAAC;YAC9F,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;oBAAE,MAAM,KAAK,CAAC;YAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO;YAAE,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC9F,MAAM,WAAW,CAAC;QAClB,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtG,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,wGAAwG,EAAE,CAAC,CAAC;gBAC3J,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;gBAChI,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAClD,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iCAAiC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iEAAiE,EAAE,CAAC,CAAC;gBAC3K,CAAC;wBAAS,CAAC;oBAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;YACpC,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,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,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACtE,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,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,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,sCAAsC,CAAC,CAAC;AACtG,CAAC,CAAC;AAGF,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,IAAI,eAAe,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAChI,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,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,MAAM,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,IAA0E,CAAC;IAC/E,IAAI,KAAqD,CAAC;IAC1D,IAAI,GAA0D,CAAC;IAC/D,IAAI,WAAmE,CAAC;IACxE,IAAI,WAA4E,CAAC;IACjF,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7F,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC7G,IAAI,GAAG,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACxE,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,YAAY,CAAC,MAAM,CAAC,CAAC;QAChD,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,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBACpD,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS;oBAAE,SAAS;gBAClJ,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,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrL,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS;oBAAE,SAAS;gBAClG,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClJ,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAC/K,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACrN,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;QAC1H,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7B,IAAI,gBAAgB,GAAkB,IAAI,CAAC;YAC3C,OAAO,IAAI,EAAE,CAAC;gBACZ,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS;oBAAE,IAAI,GAAG,MAAM,yBAAyB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC3B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,iCAAiC,IAAI,CAAC,OAAO,aAAa,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,iBAAiB,GAAG,EAAE,CAAC,CAAC;oBAC1K,MAAM;gBACR,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,qDAAqD,CAAC,CAAC;gBACvL,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,OAAO,6EAA6E,CAAC,CAAC;gBACjM,IAAI,IAAI,KAAK,IAAI;oBAAE,IAAI,GAAG,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAC;gBACpE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;wBACxE,GAAG,GAAG,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;wBAC/E,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;wBACjF,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;wBAC9E,WAAW,GAAG,uBAAuB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;oBACvR,CAAC;oBACD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACrC,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;wBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACxC,IAAI,OAAO,KAAK,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;wBACnF,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,yCAAyC,OAAO,CAAC,OAAO,WAAW,OAAO,CAAC,QAAQ,CAAC,KAAK,WAAW,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;wBAC3M,MAAM;oBACR,CAAC;oBACD,MAAM,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;gBACvD,CAAC;qBAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC5C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,OAAO,qGAAqG,EAAE,CAAC,CAAC;oBAC1L,MAAM;gBACR,CAAC;gBACD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,SAAS,IAAI,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,UAAU;oBAAE,SAAS;gBACnI,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC5F,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;oBACtC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,wEAAwE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBACjM,gBAAgB,GAAG,YAAY,CAAC;gBAClC,CAAC;gBACD,MAAM,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,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,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,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACtE,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,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,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,gDAAgD,CAAC,CAAC;AAChH,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/commands/worker/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { WorkerAgent } from "../../api/types.js";
|
|
2
|
+
import type { NativePrerequisiteCommandRunner } from "./herdr/preflight.js";
|
|
3
|
+
import type { WorkerPaths } from "./paths.js";
|
|
4
|
+
import { createWorkerPromptBuilder } from "./prompts.js";
|
|
5
|
+
export type WorkerEnvironmentCheck = {
|
|
6
|
+
label: string;
|
|
7
|
+
status: "passed" | "missing" | "unverified";
|
|
8
|
+
detail: string;
|
|
9
|
+
remedy?: string;
|
|
10
|
+
agent?: WorkerAgent;
|
|
11
|
+
};
|
|
12
|
+
export type WorkerEnvironmentOptions = {
|
|
13
|
+
homeDirectory: string;
|
|
14
|
+
workingDirectory: string;
|
|
15
|
+
paths: WorkerPaths;
|
|
16
|
+
signal: AbortSignal;
|
|
17
|
+
packageDirectory?: string;
|
|
18
|
+
configuration?: {
|
|
19
|
+
agent: WorkerAgent;
|
|
20
|
+
model: string | null;
|
|
21
|
+
args: readonly string[];
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export type WorkerEnvironmentDependencies = {
|
|
25
|
+
environment?: NodeJS.ProcessEnv;
|
|
26
|
+
platform?: NodeJS.Platform;
|
|
27
|
+
nodeVersion?: string;
|
|
28
|
+
runCommand?: NativePrerequisiteCommandRunner;
|
|
29
|
+
verifySkill?: typeof createWorkerPromptBuilder;
|
|
30
|
+
};
|
|
31
|
+
export declare const inspectWorkerEnvironment: (options: WorkerEnvironmentOptions, dependencies?: WorkerEnvironmentDependencies) => Promise<readonly WorkerEnvironmentCheck[]>;
|