@usine/executor 0.3.0 → 0.4.1-next.240.g158c84b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -21
- package/README.md +116 -19
- package/dist/child-command.d.ts +1 -1
- package/dist/child-command.d.ts.map +1 -1
- package/dist/child-command.js +6 -4
- package/dist/child-command.js.map +1 -1
- package/dist/child-environment.d.ts +19 -0
- package/dist/child-environment.d.ts.map +1 -0
- package/dist/child-environment.js +18 -0
- package/dist/child-environment.js.map +1 -0
- package/dist/claude-login-lock.d.ts +3 -2
- package/dist/claude-login-lock.d.ts.map +1 -1
- package/dist/claude-login-lock.js +10 -4
- package/dist/claude-login-lock.js.map +1 -1
- package/dist/cloudflare/client.d.ts +50 -0
- package/dist/cloudflare/client.d.ts.map +1 -0
- package/dist/cloudflare/client.js +108 -0
- package/dist/cloudflare/client.js.map +1 -0
- package/dist/cloudflare/cloudflare.d.ts +17 -0
- package/dist/cloudflare/cloudflare.d.ts.map +1 -0
- package/dist/cloudflare/cloudflare.js +704 -0
- package/dist/cloudflare/cloudflare.js.map +1 -0
- package/dist/cloudflare/model.d.ts +42 -0
- package/dist/cloudflare/model.d.ts.map +1 -0
- package/dist/cloudflare/model.js +2 -0
- package/dist/cloudflare/model.js.map +1 -0
- package/dist/cloudflare/shell/environment.d.ts +12 -0
- package/dist/cloudflare/shell/environment.d.ts.map +1 -0
- package/dist/cloudflare/shell/environment.js +12 -0
- package/dist/cloudflare/shell/environment.js.map +1 -0
- package/dist/cloudflare/shell/shell.d.ts +2 -0
- package/dist/cloudflare/shell/shell.d.ts.map +1 -0
- package/dist/cloudflare/shell/shell.js +155 -0
- package/dist/cloudflare/shell/shell.js.map +1 -0
- package/dist/durable-session.d.ts +21 -3
- package/dist/durable-session.d.ts.map +1 -1
- package/dist/durable-session.js +69 -10
- package/dist/durable-session.js.map +1 -1
- package/dist/exe-dev/commands.d.ts +1 -1
- package/dist/exe-dev/commands.d.ts.map +1 -1
- package/dist/exe-dev/exe-dev.d.ts +1 -1
- package/dist/exe-dev/exe-dev.d.ts.map +1 -1
- package/dist/exe-dev/exe-dev.js +9 -1
- package/dist/exe-dev/exe-dev.js.map +1 -1
- package/dist/exe-dev/preflight.d.ts +2 -2
- package/dist/exe-dev/preflight.d.ts.map +1 -1
- package/dist/exe-dev/preflight.js +5 -4
- package/dist/exe-dev/preflight.js.map +1 -1
- package/dist/executor.d.ts +164 -15
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +100 -3
- package/dist/executor.js.map +1 -1
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +1 -0
- package/dist/guard.js.map +1 -1
- package/dist/harness-preflight.d.ts +9 -8
- package/dist/harness-preflight.d.ts.map +1 -1
- package/dist/harness-preflight.js +15 -10
- package/dist/harness-preflight.js.map +1 -1
- package/dist/local/local.d.ts +1 -1
- package/dist/local/local.d.ts.map +1 -1
- package/dist/local/local.js +76 -37
- package/dist/local/local.js.map +1 -1
- package/dist/memory-preflight.d.ts +3 -1
- package/dist/memory-preflight.d.ts.map +1 -1
- package/dist/memory-preflight.js +1 -1
- package/dist/memory-preflight.js.map +1 -1
- package/dist/pre-push-hook.d.ts +1 -1
- package/dist/pre-push-hook.js +1 -1
- package/dist/prepared-attempt.d.ts +8 -0
- package/dist/prepared-attempt.d.ts.map +1 -1
- package/dist/prepared-attempt.js.map +1 -1
- package/dist/provision.d.ts +64 -13
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +99 -42
- package/dist/provision.js.map +1 -1
- package/dist/remote/commands.d.ts +1 -1
- package/dist/remote/commands.d.ts.map +1 -1
- package/dist/remote/commands.js +1 -1
- package/dist/remote/commands.js.map +1 -1
- package/dist/remote/container.d.ts +90 -0
- package/dist/remote/container.d.ts.map +1 -0
- package/dist/remote/container.js +480 -0
- package/dist/remote/container.js.map +1 -0
- package/dist/remote/liveness.d.ts +1 -1
- package/dist/remote/liveness.d.ts.map +1 -1
- package/dist/remote/liveness.js +6 -4
- package/dist/remote/liveness.js.map +1 -1
- package/dist/remote/machine.d.ts +52 -6
- package/dist/remote/machine.d.ts.map +1 -1
- package/dist/remote/remote.d.ts +11 -7
- package/dist/remote/remote.d.ts.map +1 -1
- package/dist/remote/remote.js +340 -92
- package/dist/remote/remote.js.map +1 -1
- package/dist/remote/sweep.d.ts +3 -1
- package/dist/remote/sweep.d.ts.map +1 -1
- package/dist/remote/sweep.js +2 -1
- package/dist/remote/sweep.js.map +1 -1
- package/dist/salvage.d.ts +18 -10
- package/dist/salvage.d.ts.map +1 -1
- package/dist/salvage.js +123 -29
- package/dist/salvage.js.map +1 -1
- package/dist/ssh/api-keys.d.ts +36 -0
- package/dist/ssh/api-keys.d.ts.map +1 -0
- package/dist/ssh/api-keys.js +72 -0
- package/dist/ssh/api-keys.js.map +1 -0
- package/dist/ssh/codex-homes.d.ts +21 -0
- package/dist/ssh/codex-homes.d.ts.map +1 -0
- package/dist/ssh/codex-homes.js +78 -0
- package/dist/ssh/codex-homes.js.map +1 -0
- package/dist/ssh/container.d.ts +32 -0
- package/dist/ssh/container.d.ts.map +1 -0
- package/dist/ssh/container.js +282 -0
- package/dist/ssh/container.js.map +1 -0
- package/dist/ssh/credentials.d.ts +3 -0
- package/dist/ssh/credentials.d.ts.map +1 -1
- package/dist/ssh/credentials.js +3 -0
- package/dist/ssh/credentials.js.map +1 -1
- package/dist/ssh/gateway/admin.d.ts +1 -1
- package/dist/ssh/gateway/admin.d.ts.map +1 -1
- package/dist/ssh/gateway/admin.js +2 -2
- package/dist/ssh/gateway/admin.js.map +1 -1
- package/dist/ssh/gateway/attachments.d.ts +15 -6
- package/dist/ssh/gateway/attachments.d.ts.map +1 -1
- package/dist/ssh/gateway/attachments.js +39 -25
- package/dist/ssh/gateway/attachments.js.map +1 -1
- package/dist/ssh/gateway/environment.d.ts +21 -2
- package/dist/ssh/gateway/environment.d.ts.map +1 -1
- package/dist/ssh/gateway/environment.js +76 -6
- package/dist/ssh/gateway/environment.js.map +1 -1
- package/dist/ssh/gateway/forward.d.ts +1 -1
- package/dist/ssh/gateway/forward.d.ts.map +1 -1
- package/dist/ssh/gateway/forward.js +1 -1
- package/dist/ssh/gateway/forward.js.map +1 -1
- package/dist/ssh/gateway/preflight.d.ts +51 -12
- package/dist/ssh/gateway/preflight.d.ts.map +1 -1
- package/dist/ssh/gateway/preflight.js +155 -69
- package/dist/ssh/gateway/preflight.js.map +1 -1
- package/dist/ssh/limits.d.ts +60 -0
- package/dist/ssh/limits.d.ts.map +1 -0
- package/dist/ssh/limits.js +84 -0
- package/dist/ssh/limits.js.map +1 -0
- package/dist/ssh/model.d.ts +97 -9
- package/dist/ssh/model.d.ts.map +1 -1
- package/dist/ssh/preflight.d.ts +26 -7
- package/dist/ssh/preflight.d.ts.map +1 -1
- package/dist/ssh/preflight.js +50 -10
- package/dist/ssh/preflight.js.map +1 -1
- package/dist/ssh/provisioner/boat.d.ts +33 -0
- package/dist/ssh/provisioner/boat.d.ts.map +1 -0
- package/dist/ssh/provisioner/boat.js +247 -0
- package/dist/ssh/provisioner/boat.js.map +1 -0
- package/dist/ssh/provisioner/hetzner.d.ts +32 -0
- package/dist/ssh/provisioner/hetzner.d.ts.map +1 -0
- package/dist/ssh/provisioner/hetzner.js +337 -0
- package/dist/ssh/provisioner/hetzner.js.map +1 -0
- package/dist/ssh/provisioner/host-key.d.ts +11 -0
- package/dist/ssh/provisioner/host-key.d.ts.map +1 -0
- package/dist/ssh/provisioner/host-key.js +57 -0
- package/dist/ssh/provisioner/host-key.js.map +1 -0
- package/dist/ssh/provisioner/http.d.ts +45 -0
- package/dist/ssh/provisioner/http.d.ts.map +1 -0
- package/dist/ssh/provisioner/http.js +72 -0
- package/dist/ssh/provisioner/http.js.map +1 -0
- package/dist/ssh/provisioner/machines.d.ts +48 -0
- package/dist/ssh/provisioner/machines.d.ts.map +1 -0
- package/dist/ssh/provisioner/machines.js +686 -0
- package/dist/ssh/provisioner/machines.js.map +1 -0
- package/dist/ssh/provisioner/model.d.ts +92 -0
- package/dist/ssh/provisioner/model.d.ts.map +1 -0
- package/dist/ssh/provisioner/model.js +37 -0
- package/dist/ssh/provisioner/model.js.map +1 -0
- package/dist/ssh/ssh.d.ts +14 -11
- package/dist/ssh/ssh.d.ts.map +1 -1
- package/dist/ssh/ssh.js +94 -27
- package/dist/ssh/ssh.js.map +1 -1
- package/dist/ssh/worker-records.d.ts +18 -0
- package/dist/ssh/worker-records.d.ts.map +1 -0
- package/dist/ssh/worker-records.js +100 -0
- package/dist/ssh/worker-records.js.map +1 -0
- package/dist/ssh/workers.d.ts +34 -7
- package/dist/ssh/workers.d.ts.map +1 -1
- package/dist/ssh/workers.js +92 -18
- package/dist/ssh/workers.js.map +1 -1
- package/package.json +19 -11
package/dist/executor.js
CHANGED
|
@@ -7,9 +7,10 @@ import { AttemptFailure } from "@usine/core/attempt/failure";
|
|
|
7
7
|
import { LoopName, LoopPermissions } from "@usine/core/loop";
|
|
8
8
|
import { SalvagePushed, SalvageRef } from "@usine/core/attempt/salvage";
|
|
9
9
|
import { RepositoryName, RepositoryRevision } from "@usine/core/repository";
|
|
10
|
-
import {
|
|
10
|
+
import { RunId } from "@usine/core/run";
|
|
11
|
+
import { BotAccount, BotLogin, ContainerLimits, MachineId, MachineProvider, WorkerName, WorkerKind, } from "@usine/core/worker";
|
|
11
12
|
import { StepResult } from "@usine/core/step/result";
|
|
12
|
-
import { Context, Effect, Option, Schema, Scope } from "effect";
|
|
13
|
+
import { Context, Effect, Option, Predicate, Redacted, Schema, Scope } from "effect";
|
|
13
14
|
export const ExecutorOperation = Schema.Literals([
|
|
14
15
|
"preflight",
|
|
15
16
|
"prepare",
|
|
@@ -24,6 +25,8 @@ export const WorkerCapability = Schema.Literals([
|
|
|
24
25
|
"harness-login",
|
|
25
26
|
"credentials",
|
|
26
27
|
"gateway",
|
|
28
|
+
"container",
|
|
29
|
+
"provider",
|
|
27
30
|
]);
|
|
28
31
|
export class ExecutorOperationError extends Schema.TaggedError("@usine/executor/ExecutorOperationError")("ExecutorOperationError", {
|
|
29
32
|
/** `cleanup` includes removing a checkout, its credential, or credentials left by an earlier process. */
|
|
@@ -63,6 +66,11 @@ export class WorkerCapabilityError extends Schema.TaggedError("@usine/executor/W
|
|
|
63
66
|
* - `credentials`: an exe.dev integration isn't ready, or the Worker kind can't issue a
|
|
64
67
|
* read-only credential for a `permissions: read` Loop.
|
|
65
68
|
* - `gateway`: the Gateway doesn't respond or isn't reachable from the machine.
|
|
69
|
+
* - `container`: the machine's Docker doesn't respond to the SSH user, the SSH user can use
|
|
70
|
+
* Docker's socket without the `docker` CLI, the Attempt image can't be pulled, or its user ID
|
|
71
|
+
* differs from the SSH user's.
|
|
72
|
+
* - `provider`: a provisioned Worker's provider refuses its token, or its image, SSH key,
|
|
73
|
+
* network, server type, or location doesn't exist there.
|
|
66
74
|
*/
|
|
67
75
|
capability: WorkerCapability,
|
|
68
76
|
message: Schema.NonEmptyString,
|
|
@@ -70,11 +78,43 @@ export class WorkerCapabilityError extends Schema.TaggedError("@usine/executor/W
|
|
|
70
78
|
cause: Schema.Defect(),
|
|
71
79
|
}) {
|
|
72
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* `capacity` if the provider has no machine of the configured type now, `quota` if the account's
|
|
83
|
+
* limits are reached, `refused` if the provider refuses the token or the request, `provider` for
|
|
84
|
+
* an API error or rate limit, `unreachable` if the API doesn't respond, and `timeout` if the
|
|
85
|
+
* machine didn't answer over SSH in time. Each is retried later.
|
|
86
|
+
*/
|
|
87
|
+
export const MachineUnavailableReason = Schema.Literals([
|
|
88
|
+
"capacity",
|
|
89
|
+
"quota",
|
|
90
|
+
"refused",
|
|
91
|
+
"provider",
|
|
92
|
+
"unreachable",
|
|
93
|
+
"timeout",
|
|
94
|
+
]);
|
|
95
|
+
/**
|
|
96
|
+
* The error when a provisioned Worker can't create a machine for an Attempt. The Run keeps
|
|
97
|
+
* waiting, and the scheduler tries again later; it isn't an Attempt failure.
|
|
98
|
+
*/
|
|
99
|
+
export class MachineUnavailableError extends Schema.TaggedError("@usine/executor/MachineUnavailableError")("MachineUnavailableError", {
|
|
100
|
+
worker: WorkerName,
|
|
101
|
+
provider: MachineProvider,
|
|
102
|
+
reason: MachineUnavailableReason,
|
|
103
|
+
/** An operator-facing summary with the provider's own message. Contains no token. */
|
|
104
|
+
message: Schema.NonEmptyString,
|
|
105
|
+
}) {
|
|
106
|
+
}
|
|
73
107
|
export const ExecutorError = Schema.Union([
|
|
74
108
|
ExecutorOperationError,
|
|
75
109
|
CredentialUnavailableError,
|
|
76
110
|
WorkerCapabilityError,
|
|
77
111
|
]);
|
|
112
|
+
/** The report of a Worker that runs Attempts as designed, without containers. */
|
|
113
|
+
export const fullPreflight = {
|
|
114
|
+
degraded: Option.none(),
|
|
115
|
+
deferred: Option.none(),
|
|
116
|
+
containerLimits: Option.none(),
|
|
117
|
+
};
|
|
78
118
|
/** Logs each preflight failure at error level. */
|
|
79
119
|
export const logPreflightFailure = (effect) => Effect.tapError(effect, (error) => error instanceof WorkerCapabilityError
|
|
80
120
|
? Effect.logError("Worker preflight failed", {
|
|
@@ -140,6 +180,11 @@ export class CheckoutRequest extends Schema.Class("@usine/executor/CheckoutReque
|
|
|
140
180
|
* by this author. If `None`, harvesting asks GitHub for the credential's login.
|
|
141
181
|
*/
|
|
142
182
|
botLogin: Schema.Option(BotLogin).pipe(Schema.withConstructorDefault(Effect.succeed(Option.none()))),
|
|
183
|
+
/**
|
|
184
|
+
* The author and committer of every commit that the Attempt's parent and children make. Their
|
|
185
|
+
* environment sets it, so no git config on the Worker's machine applies.
|
|
186
|
+
*/
|
|
187
|
+
commitAuthor: BotAccount,
|
|
143
188
|
}) {
|
|
144
189
|
}
|
|
145
190
|
export const WorktreePath = Schema.NonEmptyString.pipe(Schema.brand("WorktreePath"));
|
|
@@ -152,12 +197,17 @@ export class AttemptWorkspace extends Schema.Class("@usine/executor/AttemptWorks
|
|
|
152
197
|
worktree: WorktreePath,
|
|
153
198
|
}) {
|
|
154
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* A `Redacted` string, kept as the instance it was given, so wiping it wipes the token the
|
|
202
|
+
* provider issued. `Schema.Redacted` stores a copy instead.
|
|
203
|
+
*/
|
|
204
|
+
const IssuedToken = Schema.declare((input) => Redacted.isRedacted(input) && Predicate.isString(Redacted.value(input)), { expected: "Redacted<string>" });
|
|
155
205
|
export class WorkerCredential extends Schema.Class("@usine/executor/WorkerCredential")({
|
|
156
206
|
/**
|
|
157
207
|
* The token for git and gh, never written inside the checkout. Wiped when the Attempt's scope
|
|
158
208
|
* closes; `Redacted.value` then throws.
|
|
159
209
|
*/
|
|
160
|
-
value:
|
|
210
|
+
value: IssuedToken,
|
|
161
211
|
/** A new credential is requested when five minutes or less remain. */
|
|
162
212
|
expiresAt: Schema.DateTimeUtc,
|
|
163
213
|
}) {
|
|
@@ -167,5 +217,52 @@ export class CredentialProvider extends Context.Service()("@usine/executor/Crede
|
|
|
167
217
|
/** The service that prepares checkouts, runs Attempts on a Worker, and releases their resources (ADR 0006). */
|
|
168
218
|
export class Executor extends Context.Service()("@usine/executor/Executor") {
|
|
169
219
|
}
|
|
220
|
+
/** The executor's hold on one provisioned machine, which `WorkerMachines.release` ends. */
|
|
221
|
+
export const MachineHold = Schema.NonEmptyString.pipe(Schema.brand("MachineHold"));
|
|
222
|
+
/** The machine preflight of a provisioned Worker's first machine each day. */
|
|
223
|
+
export class MachineCheck extends Schema.Class("@usine/executor/MachineCheck")({
|
|
224
|
+
brains: Schema.Array(BrainSpec),
|
|
225
|
+
/**
|
|
226
|
+
* The limits of each Attempt container that the Worker's machines get until the next check,
|
|
227
|
+
* or `None` if the machine has no Docker.
|
|
228
|
+
*/
|
|
229
|
+
containerLimits: Schema.Option(ContainerLimits),
|
|
230
|
+
}) {
|
|
231
|
+
}
|
|
232
|
+
/** A machine that a provisioned Worker created for an Attempt and holds until `release`. */
|
|
233
|
+
export class MachineGrant extends Schema.Class("@usine/executor/MachineGrant")({
|
|
234
|
+
hold: MachineHold,
|
|
235
|
+
id: MachineId,
|
|
236
|
+
worker: WorkerName,
|
|
237
|
+
provider: MachineProvider,
|
|
238
|
+
/** The check that this machine got as the Worker's first each day, or `None` if it got none. */
|
|
239
|
+
checked: Schema.Option(MachineCheck),
|
|
240
|
+
}) {
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* `creating` until the machine answers over SSH, `ready` while an Attempt holds it, and
|
|
244
|
+
* `deleting` until its deletion succeeds.
|
|
245
|
+
*/
|
|
246
|
+
export const MachineState = Schema.Literals(["creating", "ready", "deleting"]);
|
|
247
|
+
/** A machine in flight on a provisioned Worker. */
|
|
248
|
+
export class MachineStatus extends Schema.Class("@usine/executor/MachineStatus")({
|
|
249
|
+
worker: WorkerName,
|
|
250
|
+
provider: MachineProvider,
|
|
251
|
+
state: MachineState,
|
|
252
|
+
/** `None` until the provider accepts the creation. */
|
|
253
|
+
id: Schema.Option(MachineId),
|
|
254
|
+
/** The Run the machine was created for, or `None` for a machine found after a restart. */
|
|
255
|
+
runId: Schema.Option(RunId),
|
|
256
|
+
attemptId: Schema.Option(AttemptId),
|
|
257
|
+
/** When the creation started, or when the provider created a machine found after a restart. */
|
|
258
|
+
since: Schema.DateTimeUtc,
|
|
259
|
+
}) {
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* The machines of the provisioned Workers, which create one machine per Attempt and delete it
|
|
263
|
+
* afterwards (#550). Only the SSH executor provides it.
|
|
264
|
+
*/
|
|
265
|
+
export class WorkerMachines extends Context.Service()("@usine/executor/WorkerMachines") {
|
|
266
|
+
}
|
|
170
267
|
export { claudeLoginLockLayer } from "./claude-login-lock.js";
|
|
171
268
|
//# sourceMappingURL=executor.js.map
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/guard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,KAAK,cAAc,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAyBhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACxE;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,YAAY,EAAE,QAAQ,CAAC,QAAQ,KAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0GAA0G;IAC1G,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACrD,qGAAqG;IACrG,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACzC,kHAAkH;IAClH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;CAC9C;AA8ED,4GAA4G;AAC5G,eAAO,MAAM,SAAS,eACR,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,gBACpC,QAAQ,CAAC,QAAQ,KAC9B,gBAYF,CAAC;AAsLF,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;CACxD;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WACf,kBAAkB,MACtB,cAAc,CAAC,IAAI,QACjB,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,KAAK,cAAc,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAyBhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACxE;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,YAAY,EAAE,QAAQ,CAAC,QAAQ,KAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0GAA0G;IAC1G,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACrD,qGAAqG;IACrG,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACzC,kHAAkH;IAClH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;CAC9C;AA8ED,4GAA4G;AAC5G,eAAO,MAAM,SAAS,eACR,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,gBACpC,QAAQ,CAAC,QAAQ,KAC9B,gBAYF,CAAC;AAsLF,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;CACxD;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WACf,kBAAkB,MACtB,cAAc,CAAC,IAAI,QACjB,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,YAAY,CA6E5B,CAAC"}
|
package/dist/guard.js
CHANGED
package/dist/guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ChildHost } from "@usine/agents/child-host";
|
|
2
2
|
import type { BrainSpec } from "@usine/core/agent/brain";
|
|
3
3
|
import type { HarnessReadiness } from "@usine/core/agent/capability";
|
|
4
|
-
import type { WorkerName } from "@usine/core/worker";
|
|
5
|
-
import { Effect } from "effect";
|
|
6
|
-
import { ChildProcessSpawner } from "effect/
|
|
4
|
+
import type { MachineId, WorkerName } from "@usine/core/worker";
|
|
5
|
+
import { Effect, Option } from "effect";
|
|
6
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
7
7
|
import { ExecutorOperationError, WorkerCapabilityError } from "./executor.ts";
|
|
8
8
|
/**
|
|
9
9
|
* A function that reports one brain's readiness on a Worker. Only a readiness report indicates a
|
|
@@ -11,12 +11,13 @@ import { ExecutorOperationError, WorkerCapabilityError } from "./executor.ts";
|
|
|
11
11
|
*/
|
|
12
12
|
export type HarnessProbe = (brain: BrainSpec) => Effect.Effect<HarnessReadiness, ExecutorOperationError | WorkerCapabilityError>;
|
|
13
13
|
/**
|
|
14
|
-
* Probes each distinct brain
|
|
15
|
-
*
|
|
16
|
-
* refresh
|
|
14
|
+
* Probes each distinct brain on `worker`, or on its provisioned `machine` if `Some`, and fails with
|
|
15
|
+
* a capability error if a harness is unavailable. A Claude probe holds that login's lock in
|
|
16
|
+
* `logins`, so two preparations never refresh one Claude login concurrently or while a Claude
|
|
17
|
+
* child starts (#453).
|
|
17
18
|
*/
|
|
18
|
-
export declare const verifyHarnessReadiness: (worker: string & import("effect/Brand").Brand<"WorkerName">, brains: readonly BrainSpec[], probe: HarnessProbe, logins: {
|
|
19
|
-
readonly withLock: (worker: WorkerName) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
19
|
+
export declare const verifyHarnessReadiness: (worker: string & import("effect/Brand").Brand<"WorkerName">, machine: Option.Option<string & import("effect/Brand").Brand<"MachineId">>, brains: readonly BrainSpec[], probe: HarnessProbe, logins: {
|
|
20
|
+
readonly withLock: (worker: WorkerName, machine: Option.Option<MachineId>) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
20
21
|
}) => Effect.Effect<undefined, import("./executor.ts").CredentialUnavailableError | ExecutorOperationError | WorkerCapabilityError, never>;
|
|
21
22
|
/**
|
|
22
23
|
* Returns a probe that checks one brain where `host` runs children, with `environment` as the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-preflight.d.ts","sourceRoot":"","sources":["../src/harness-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"harness-preflight.d.ts","sourceRoot":"","sources":["../src/harness-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAuB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEnG;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,SAAS,KACb,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,qBAAqB,CAAC,CAAC;AAErF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;0IAmCZ,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,YAElB,mBAAmB,CAAC,mBAAmB,CAAC,SAAS,CAAC,QACrD,SAAS,eACF,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC5C,YAcA,CAAC"}
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import { preflight } from "@usine/agents/preflight";
|
|
2
|
-
import { Array as Arr, Effect } from "effect";
|
|
3
|
-
import { ChildProcessSpawner } from "effect/
|
|
2
|
+
import { Array as Arr, Effect, Option } from "effect";
|
|
3
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
4
4
|
import { logPreflightFailure, ExecutorOperationError, WorkerCapabilityError } from "./executor.js";
|
|
5
5
|
/**
|
|
6
|
-
* Probes each distinct brain
|
|
7
|
-
*
|
|
8
|
-
* refresh
|
|
6
|
+
* Probes each distinct brain on `worker`, or on its provisioned `machine` if `Some`, and fails with
|
|
7
|
+
* a capability error if a harness is unavailable. A Claude probe holds that login's lock in
|
|
8
|
+
* `logins`, so two preparations never refresh one Claude login concurrently or while a Claude
|
|
9
|
+
* child starts (#453).
|
|
9
10
|
*/
|
|
10
|
-
export const verifyHarnessReadiness = Effect.fn("Executor.verifyHarnessReadiness")(function* (worker, brains, probe, logins) {
|
|
11
|
-
|
|
11
|
+
export const verifyHarnessReadiness = Effect.fn("Executor.verifyHarnessReadiness")(function* (worker, machine, brains, probe, logins) {
|
|
12
|
+
const fields = {
|
|
13
|
+
worker,
|
|
14
|
+
...Option.match(machine, { onNone: () => ({}), onSome: (id) => ({ machine: id }) }),
|
|
15
|
+
};
|
|
16
|
+
yield* Effect.annotateCurrentSpan(fields);
|
|
12
17
|
const distinct = Arr.dedupe(brains);
|
|
13
18
|
for (const brain of distinct) {
|
|
14
19
|
const result = yield* brain.harness === "claude"
|
|
15
|
-
? Effect.logDebug("Checking Claude under
|
|
16
|
-
|
|
20
|
+
? Effect.logDebug("Checking Claude under its Claude login lock", {
|
|
21
|
+
...fields,
|
|
17
22
|
model: brain.model,
|
|
18
|
-
}).pipe(Effect.andThen(logins.withLock(worker)(probe(brain))))
|
|
23
|
+
}).pipe(Effect.andThen(logins.withLock(worker, machine)(probe(brain))))
|
|
19
24
|
: probe(brain);
|
|
20
25
|
if (result._tag === "HarnessUnavailableError")
|
|
21
26
|
return yield* new WorkerCapabilityError({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-preflight.js","sourceRoot":"","sources":["../src/harness-preflight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"harness-preflight.js","sourceRoot":"","sources":["../src/harness-preflight.ts"],"names":[],"mappings":"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"}
|
package/dist/local/local.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { RepositoryName } from "@usine/core/repository";
|
|
|
3
3
|
import { InstanceDirectory } from "@usine/core/instance";
|
|
4
4
|
import type { AttemptRuntime } from "@usine/durable/attempt-runtime";
|
|
5
5
|
import { Effect, FileSystem, Layer, Path } from "effect";
|
|
6
|
-
import { ChildProcessSpawner } from "effect/
|
|
6
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
7
7
|
import { CredentialProvider, Executor } from "../executor.ts";
|
|
8
8
|
import { type HarnessProbe } from "../harness-preflight.ts";
|
|
9
9
|
export type { HarnessProbe } from "../harness-preflight.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/local/local.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAe,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/local/local.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAe,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,MAAM,EACN,UAAU,EACV,KAAK,EAEL,IAAI,EAIL,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAqB,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIxE,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EAOT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,yBAAyB,CAAC;AAqBjC,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,kHAAkH;IAClH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,MAAM,CAAC;IAChE,0HAA0H;IAC1H,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;CAC1C;AA0gBD;;;;GAIG;AACH,eAAO,MAAM,KAAK,YACP,oBAAoB,KAC5B,KAAK,CAAC,KAAK,CACZ,QAAQ,EACR,KAAK,EACH,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,mBAAmB,CAAC,mBAAmB,CACY,CAAC"}
|
package/dist/local/local.js
CHANGED
|
@@ -8,16 +8,16 @@ import { RepositoryName, safeSegment } from "@usine/core/repository";
|
|
|
8
8
|
import { InstanceDirectory } from "@usine/core/instance";
|
|
9
9
|
import { harvestFacts, harvestPostedComments, } from "@usine/core/step/harvest";
|
|
10
10
|
import { Effect, FileSystem, Layer, Option, Path, Result, Schema, } from "effect";
|
|
11
|
-
import { ChildProcessSpawner } from "effect/
|
|
11
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
12
12
|
import { platform, totalmem } from "node:os";
|
|
13
13
|
import { allowlistedEnvironment, collectCommand, requireSuccess } from "../child-command.js";
|
|
14
14
|
import { durableSessionFor } from "../durable-session.js";
|
|
15
|
-
import { CheckoutRequest, CredentialProvider, Executor, ExecutorError, ExecutorOperationError, logPreflightFailure, WorkerCapabilityError, } from "../executor.js";
|
|
15
|
+
import { CheckoutRequest, CredentialProvider, Executor, ExecutorError, ExecutorOperationError, fullPreflight, logPreflightFailure, WorkerCapabilityError, } from "../executor.js";
|
|
16
16
|
import { agentsHarnessProbe, verifyHarnessReadiness, } from "../harness-preflight.js";
|
|
17
|
+
import { childEnvironment, commitIdentity } from "../child-environment.js";
|
|
17
18
|
import { keyedLockFor } from "../keyed-lock.js";
|
|
18
|
-
import { withGitHooks } from "../pre-push-hook.js";
|
|
19
19
|
import { SwapOnDemand, verifyLinuxMemory, verifyWorkerMemory, WorkerMemory, } from "../memory-preflight.js";
|
|
20
|
-
import { cacheDirectoryName, isCacheDirectoryName, provisionWorktree, reattachWorktree, recoverWorktree, } from "../provision.js";
|
|
20
|
+
import { cacheDirectoryName, isCacheDirectoryName, keptCheckoutRecovery, linkedWorktree, provisionWorktree, reattachWorktree, recoverWorktree, recoveryFields, } from "../provision.js";
|
|
21
21
|
const isExecutorError = Schema.is(ExecutorError);
|
|
22
22
|
/** The only process variables passed to an Attempt's git and gh commands (ADR 0011). */
|
|
23
23
|
const HOST_ENVIRONMENT_ALLOWLIST = [
|
|
@@ -58,18 +58,21 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
58
58
|
});
|
|
59
59
|
// Git can print the token in diagnostics, so output is scrubbed before it's put in an error or
|
|
60
60
|
// parsed.
|
|
61
|
-
const credentialedGit = (credential
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
const credentialedGit = (credential, author) => {
|
|
62
|
+
const environment = { ...credential.environment, ...commitIdentity(author) };
|
|
63
|
+
return (operation, args) => Effect.gen(function* () {
|
|
64
|
+
yield* credential.refresh();
|
|
65
|
+
const result = yield* collectCommand(spawner, operation, "git", args, {
|
|
66
|
+
env: environment,
|
|
67
|
+
extendEnv: false,
|
|
68
|
+
});
|
|
69
|
+
return yield* requireSuccess(operation, "local", "git", args, {
|
|
70
|
+
...result,
|
|
71
|
+
stdout: credential.scrub(result.stdout),
|
|
72
|
+
stderr: credential.scrub(result.stderr),
|
|
73
|
+
});
|
|
71
74
|
});
|
|
72
|
-
}
|
|
75
|
+
};
|
|
73
76
|
// Startup only prunes worktree registrations whose directories are gone; recovery removes
|
|
74
77
|
// checkouts. Unknown leftovers and checkouts awaiting reattachment stay on disk.
|
|
75
78
|
const sweepAbandonedWorktrees = Effect.fn("LocalExecutor.sweepAbandonedWorktrees")(function* () {
|
|
@@ -139,8 +142,8 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
139
142
|
});
|
|
140
143
|
return stdout === "" ? [] : stdout.replace(/\n$/u, "").split("\n");
|
|
141
144
|
});
|
|
142
|
-
const recover = Effect.fn("LocalExecutor.recover")(function* (attempt, record) {
|
|
143
|
-
yield* Effect.annotateCurrentSpan({ ...attempt, host: "local" });
|
|
145
|
+
const recover = Effect.fn("LocalExecutor.recover")(function* (attempt, record, commitAuthor) {
|
|
146
|
+
yield* Effect.annotateCurrentSpan({ ...recoveryFields(attempt), host: "local" });
|
|
144
147
|
yield* session.stopForRecovery(attempt);
|
|
145
148
|
const root = path.join(workersRoot, attempt.worker);
|
|
146
149
|
const worktree = path.join(root, "attempts", safeSegment(attempt.attemptId));
|
|
@@ -154,22 +157,50 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
154
157
|
: Option.none(), record);
|
|
155
158
|
if (!present)
|
|
156
159
|
return;
|
|
157
|
-
|
|
160
|
+
yield* reconcileCheckout(attempt, worktree, record.salvage, commitAuthor);
|
|
161
|
+
});
|
|
162
|
+
/**
|
|
163
|
+
* Salvages `attempt`'s checkout at `worktree` with a new credential, records the salvage
|
|
164
|
+
* through `record`, and removes the checkout once its work is pushed. See `recoverWorktree`.
|
|
165
|
+
*/
|
|
166
|
+
const reconcileCheckout = Effect.fn("LocalExecutor.reconcileCheckout")(function* (attempt, worktree, record, commitAuthor) {
|
|
167
|
+
yield* Effect.annotateCurrentSpan({ attemptId: attempt.attemptId, worker: attempt.worker });
|
|
168
|
+
const cache = path.join(workersRoot, attempt.worker, "repos", cacheDirectoryName(attempt.repository));
|
|
169
|
+
const removeCheckout = (git) => Effect.asVoid(git(["--git-dir", cache, "worktree", "remove", "--force", worktree]));
|
|
158
170
|
if (attempt.succeeded || attempt.permissions === "read") {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
host: "local",
|
|
162
|
-
worktree,
|
|
163
|
-
cache,
|
|
164
|
-
git: (args) => executeCommand("cleanup", "git", args),
|
|
165
|
-
}, record.salvage);
|
|
171
|
+
const git = (args) => executeCommand("cleanup", "git", args);
|
|
172
|
+
return yield* recoverWorktree({ attempt, host: "local", worktree, git, removeCheckout: removeCheckout(git) }, record);
|
|
166
173
|
}
|
|
174
|
+
const author = yield* commitAuthor;
|
|
167
175
|
yield* Effect.scoped(Effect.gen(function* () {
|
|
168
176
|
const credential = yield* credentials(attempt.repository, attempt.attemptId, attempt.permissions, baseEnvironment);
|
|
169
|
-
const git = credentialedGit(credential);
|
|
170
|
-
|
|
177
|
+
const git = credentialedGit(credential, author);
|
|
178
|
+
const inCheckout = (args) => git("cleanup", args);
|
|
179
|
+
yield* recoverWorktree({
|
|
180
|
+
attempt,
|
|
181
|
+
host: "local",
|
|
182
|
+
worktree,
|
|
183
|
+
git: inCheckout,
|
|
184
|
+
removeCheckout: removeCheckout(inCheckout),
|
|
185
|
+
}, record);
|
|
171
186
|
}));
|
|
172
187
|
});
|
|
188
|
+
/**
|
|
189
|
+
* Reconciles the checkout at `worktree` that the launch of `request` kept while its parent
|
|
190
|
+
* task's stop was unconfirmed. Does nothing if the checkout is gone.
|
|
191
|
+
*/
|
|
192
|
+
const reconcileKept = Effect.fn("LocalExecutor.reconcileKept")(function* (request, worktree, record) {
|
|
193
|
+
yield* Effect.annotateCurrentSpan({ attemptId: request.attemptId, worker: request.worker });
|
|
194
|
+
if (!(yield* fileSystem.exists(worktree))) {
|
|
195
|
+
yield* Effect.logInfo("The kept checkout is gone; nothing to reconcile", {
|
|
196
|
+
attemptId: request.attemptId,
|
|
197
|
+
worker: request.worker,
|
|
198
|
+
worktree,
|
|
199
|
+
});
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
yield* reconcileCheckout(keptCheckoutRecovery(request), worktree, record, Effect.succeed(request.commitAuthor));
|
|
203
|
+
}, (effect) => effect.pipe(Effect.catchTag("PlatformError", (cause) => Effect.fail(executorError("cleanup", "Can't reconcile the kept local checkout", cause)))));
|
|
173
204
|
const preflight = Effect.fn("LocalExecutor.preflight")(function* (worker, brains, maxConcurrentAttempts) {
|
|
174
205
|
yield* Effect.annotateCurrentSpan({ worker, host: "local", maxConcurrentAttempts });
|
|
175
206
|
const gitVersion = (yield* executeCommand("preflight", "git", ["--version"])).trim();
|
|
@@ -185,12 +216,13 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
185
216
|
yield* platform() === "darwin"
|
|
186
217
|
? verifyWorkerMemory(worker, maxConcurrentAttempts, new WorkerMemory({ totalBytes: totalmem(), swap: SwapOnDemand.make({}) }))
|
|
187
218
|
: verifyLinuxMemory(worker, maxConcurrentAttempts, executeCommand("preflight", "cat", ["/proc/meminfo"]));
|
|
188
|
-
yield* verifyHarnessReadiness(worker, brains, harnessReadiness, logins);
|
|
219
|
+
yield* verifyHarnessReadiness(worker, Option.none(), brains, harnessReadiness, logins);
|
|
189
220
|
yield* Effect.logInfo("Worker preflight verified", {
|
|
190
221
|
worker,
|
|
191
222
|
host: "local",
|
|
192
223
|
gitVersion,
|
|
193
224
|
});
|
|
225
|
+
return fullPreflight;
|
|
194
226
|
}, logPreflightFailure);
|
|
195
227
|
// Attempt commands receive only the allowlist and the Attempt's credential, never this
|
|
196
228
|
// process's environment, which contains the App private key (ADR 0011).
|
|
@@ -214,7 +246,7 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
214
246
|
permissions: request.permissions,
|
|
215
247
|
reattach: request.reattach,
|
|
216
248
|
});
|
|
217
|
-
yield* verifyHarnessReadiness(request.worker, [request.agent.brain], harnessReadiness, logins);
|
|
249
|
+
yield* verifyHarnessReadiness(request.worker, Option.none(), [request.agent.brain], harnessReadiness, logins);
|
|
218
250
|
const credential = yield* credentials(request.repository, request.attemptId, request.permissions, baseEnvironment);
|
|
219
251
|
const workerRoot = path.join(workersRoot, request.worker);
|
|
220
252
|
const cache = path.join(workerRoot, "repos", cacheDirectoryName(request.repository));
|
|
@@ -232,15 +264,18 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
232
264
|
worktree,
|
|
233
265
|
});
|
|
234
266
|
const remove = (_operation, target) => fileSystem.remove(target, { recursive: true, force: true });
|
|
235
|
-
const
|
|
236
|
-
ensureRoots: Effect.andThen(fileSystem.makeDirectory(path.dirname(cache), { recursive: true }), fileSystem.makeDirectory(path.dirname(worktree), { recursive: true })),
|
|
267
|
+
const host = {
|
|
237
268
|
removePath: remove,
|
|
238
269
|
cacheExists: fileSystem.exists(cache),
|
|
270
|
+
git: credentialedGit(credential, request.commitAuthor),
|
|
271
|
+
};
|
|
272
|
+
const ops = {
|
|
273
|
+
...host,
|
|
274
|
+
ensureRoots: Effect.andThen(fileSystem.makeDirectory(path.dirname(cache), { recursive: true }), fileSystem.makeDirectory(path.dirname(worktree), { recursive: true })),
|
|
239
275
|
promoteStaging: fileSystem.rename(`${cache}.cloning`, cache),
|
|
240
|
-
|
|
241
|
-
writeExecutable: (target, content) => fileSystem
|
|
276
|
+
checkout: linkedWorktree(host, { cache, worktree }, (target, content) => fileSystem
|
|
242
277
|
.makeDirectory(path.dirname(target), { recursive: true })
|
|
243
|
-
.pipe(Effect.andThen(fileSystem.writeFileString(target, content, { mode: 0o755 }))),
|
|
278
|
+
.pipe(Effect.andThen(fileSystem.writeFileString(target, content, { mode: 0o755 })))),
|
|
244
279
|
};
|
|
245
280
|
const acquire = Effect.gen(function* () {
|
|
246
281
|
if (!request.reattach)
|
|
@@ -257,7 +292,7 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
257
292
|
return yield* reattachWorktree({
|
|
258
293
|
request,
|
|
259
294
|
host: "local",
|
|
260
|
-
layout: {
|
|
295
|
+
layout: { worktree },
|
|
261
296
|
ops,
|
|
262
297
|
spec,
|
|
263
298
|
});
|
|
@@ -272,17 +307,20 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
272
307
|
reattach: request.reattach,
|
|
273
308
|
worktree,
|
|
274
309
|
});
|
|
275
|
-
const environment =
|
|
310
|
+
const environment = childEnvironment(attemptEnvironment(prepared.workspace, credential), request.commitAuthor, prepared.gitHooks);
|
|
276
311
|
return {
|
|
277
312
|
workspace: prepared.workspace,
|
|
278
313
|
launch: (io) => session.launch(prepared.workspace, io, {
|
|
279
314
|
host: new LocalProcess(),
|
|
315
|
+
machine: Option.none(),
|
|
280
316
|
environment,
|
|
281
317
|
// Local Workers have no Gateway; every harness uses its own login.
|
|
282
318
|
gatewayCredential: Effect.succeedNone,
|
|
283
319
|
harvest: (windows) => harvest(prepared.workspace, credential, environment, windows),
|
|
284
320
|
harvestComments: (windows) => harvestPostedComments(prepared.workspace.spec, harvestCommand("launch", prepared.workspace.worktree, credential, environment), windows),
|
|
285
321
|
keepForReattach: prepared.keepForReattach,
|
|
322
|
+
keepUntilStopped: prepared.keepUntilStopped,
|
|
323
|
+
reconcileKept: (record) => reconcileKept(request, worktree, record),
|
|
286
324
|
}),
|
|
287
325
|
salvaged: prepared.salvaged,
|
|
288
326
|
recordSalvage: prepared.recordSalvage,
|
|
@@ -290,13 +328,14 @@ const makeLocalExecutor = (options) => Effect.gen(function* () {
|
|
|
290
328
|
}, session.prepare);
|
|
291
329
|
return Executor.of({
|
|
292
330
|
kind: "local",
|
|
293
|
-
recover: (attempt, record) => recover(attempt, record).pipe(Effect.catchTag("PlatformError", (cause) => Effect.fail(executorError("cleanup", "Can't reconcile the local salvage", cause)))),
|
|
331
|
+
recover: (attempt, record, commitAuthor) => recover(attempt, record, commitAuthor).pipe(Effect.catchTag("PlatformError", (cause) => Effect.fail(executorError("cleanup", "Can't reconcile the local salvage", cause)))),
|
|
294
332
|
cancel: session.cancel,
|
|
295
333
|
intervene: session.intervene,
|
|
296
334
|
isLive: session.isLive,
|
|
297
335
|
outcome: session.outcome,
|
|
298
336
|
preflight,
|
|
299
337
|
prepare,
|
|
338
|
+
sweep: Effect.void,
|
|
300
339
|
});
|
|
301
340
|
});
|
|
302
341
|
/**
|