@usine/executor 0.1.0 → 0.2.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 +52 -21
- package/dist/child-command.d.ts +8 -5
- package/dist/child-command.d.ts.map +1 -1
- package/dist/child-command.js +10 -7
- package/dist/child-command.js.map +1 -1
- package/dist/exe-dev/channel.d.ts +7 -4
- package/dist/exe-dev/channel.d.ts.map +1 -1
- package/dist/exe-dev/channel.js +15 -19
- package/dist/exe-dev/channel.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/commands.js +7 -8
- package/dist/exe-dev/commands.js.map +1 -1
- package/dist/exe-dev/exe-dev.d.ts +8 -0
- package/dist/exe-dev/exe-dev.d.ts.map +1 -0
- package/dist/exe-dev/exe-dev.js +153 -0
- package/dist/exe-dev/exe-dev.js.map +1 -0
- package/dist/exe-dev/grants.d.ts +3 -4
- package/dist/exe-dev/grants.d.ts.map +1 -1
- package/dist/exe-dev/grants.js +31 -15
- package/dist/exe-dev/grants.js.map +1 -1
- package/dist/exe-dev/model.d.ts +8 -23
- package/dist/exe-dev/model.d.ts.map +1 -1
- package/dist/exe-dev/model.js +5 -12
- package/dist/exe-dev/model.js.map +1 -1
- package/dist/exe-dev/preflight.d.ts +3 -2
- package/dist/exe-dev/preflight.d.ts.map +1 -1
- package/dist/exe-dev/preflight.js +8 -8
- package/dist/exe-dev/preflight.js.map +1 -1
- package/dist/exe-dev/shell.d.ts +5 -5
- package/dist/exe-dev/shell.d.ts.map +1 -1
- package/dist/exe-dev/shell.js +7 -7
- package/dist/exe-dev/shell.js.map +1 -1
- package/dist/exe-dev/sweep.d.ts +3 -5
- package/dist/exe-dev/sweep.d.ts.map +1 -1
- package/dist/exe-dev/sweep.js +8 -10
- package/dist/exe-dev/sweep.js.map +1 -1
- package/dist/executor.d.ts +118 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +98 -0
- package/dist/executor.js.map +1 -0
- package/dist/harness-preflight.d.ts +6 -0
- package/dist/harness-preflight.d.ts.map +1 -0
- package/dist/harness-preflight.js +50 -0
- package/dist/harness-preflight.js.map +1 -0
- package/dist/invalid-frame.d.ts +1 -1
- package/dist/invalid-frame.d.ts.map +1 -1
- package/dist/invalid-frame.js +2 -1
- package/dist/invalid-frame.js.map +1 -1
- package/dist/keyed-lock.d.ts +2 -2
- package/dist/keyed-lock.js +2 -2
- package/dist/local/local.d.ts +20 -0
- package/dist/local/local.d.ts.map +1 -0
- package/dist/local/{index.js → local.js} +86 -115
- package/dist/local/local.js.map +1 -0
- package/dist/prepared-attempt.d.ts +5 -0
- package/dist/prepared-attempt.d.ts.map +1 -0
- package/dist/prepared-attempt.js +40 -0
- package/dist/prepared-attempt.js.map +1 -0
- package/dist/provision.d.ts +20 -10
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +94 -23
- package/dist/provision.js.map +1 -1
- package/dist/run-host-session.d.ts +12 -8
- package/dist/run-host-session.d.ts.map +1 -1
- package/dist/run-host-session.js +35 -22
- package/dist/run-host-session.js.map +1 -1
- package/package.json +11 -11
- package/dist/exe-dev/index.d.ts +0 -8
- package/dist/exe-dev/index.d.ts.map +0 -1
- package/dist/exe-dev/index.js +0 -239
- package/dist/exe-dev/index.js.map +0 -1
- package/dist/index.d.ts +0 -82
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -82
- package/dist/index.js.map +0 -1
- package/dist/local/index.d.ts +0 -15
- package/dist/local/index.d.ts.map +0 -1
- package/dist/local/index.js.map +0 -1
package/dist/provision.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../src/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../src/provision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as AttemptChannel from "@usine/core/attempt/channel";
|
|
2
|
+
import { AttemptFailure } from "@usine/core/attempt/failure";
|
|
3
|
+
import { AttemptId } from "@usine/core/attempt";
|
|
4
|
+
import { StepResult } from "@usine/core/step/result";
|
|
2
5
|
import { Cause, Effect, Queue, Scope, type PlatformError } from "effect";
|
|
3
6
|
import type { ChildProcessHandle } from "effect/unstable/process/ChildProcessSpawner";
|
|
4
|
-
import { ExecutorError, type
|
|
5
|
-
|
|
7
|
+
import { ExecutorError, type AttemptWorkspace } from "./executor.ts";
|
|
8
|
+
interface SpawnedRunHost {
|
|
6
9
|
readonly handle: ChildProcessHandle;
|
|
7
10
|
readonly host: string;
|
|
8
|
-
/** Redacts the Attempt credential from
|
|
11
|
+
/** Redacts the Attempt credential from run-host output before it is persisted. */
|
|
9
12
|
readonly scrub: (text: string) => string;
|
|
10
13
|
}
|
|
11
14
|
export type RunHostInput = Queue.Queue<Uint8Array, Cause.Done>;
|
|
12
15
|
export interface RunHostSessionOptions {
|
|
13
16
|
readonly interruptGrace: Parameters<typeof Effect.timeoutOption>[1];
|
|
14
|
-
readonly spawn: (prepared: PreparedAttempt, input: RunHostInput) => Effect.Effect<SpawnedRunHost, AttemptFailure.AttemptFailure | PlatformError.PlatformError, Scope.Scope>;
|
|
15
17
|
}
|
|
18
|
+
type SpawnRunHost = (input: RunHostInput) => Effect.Effect<SpawnedRunHost, AttemptFailure | PlatformError.PlatformError, Scope.Scope>;
|
|
16
19
|
export interface RunHostSession {
|
|
17
|
-
readonly cancel: (attemptId:
|
|
18
|
-
readonly launch: (prepared:
|
|
20
|
+
readonly cancel: (attemptId: AttemptId) => Effect.Effect<void, ExecutorError>;
|
|
21
|
+
readonly launch: (prepared: AttemptWorkspace, io: AttemptChannel.Sink, spawn: SpawnRunHost) => Effect.Effect<StepResult, AttemptFailure>;
|
|
19
22
|
}
|
|
20
|
-
/**
|
|
23
|
+
/** The run-host byte-channel session every process-backed Executor shares. */
|
|
21
24
|
export declare const runHostSessionFor: (options: RunHostSessionOptions) => Effect.Effect<RunHostSession>;
|
|
25
|
+
export {};
|
|
22
26
|
//# sourceMappingURL=run-host-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-host-session.d.ts","sourceRoot":"","sources":["../src/run-host-session.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"run-host-session.d.ts","sourceRoot":"","sources":["../src/run-host-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAgB,cAAc,EAAgB,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,KAAK,EAEL,MAAM,EAGN,KAAK,EAIL,KAAK,EAEL,KAAK,aAAa,EACnB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,aAAa,EAA0B,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG7F,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE;AAED,KAAK,YAAY,GAAG,CAClB,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAE9F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9E,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,gBAAgB,EAC1B,EAAE,EAAE,cAAc,CAAC,IAAI,EACvB,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;CAChD;AAwCD,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,CA6T5F,CAAC"}
|
package/dist/run-host-session.js
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as AttemptChannel from "@usine/core/attempt/channel";
|
|
2
|
+
import { AgentFailure, AttemptFailure, InfraFailure } from "@usine/core/attempt/failure";
|
|
3
|
+
import { AttemptId } from "@usine/core/attempt";
|
|
4
|
+
import { StepResult } from "@usine/core/step/result";
|
|
2
5
|
import { Cause, DateTime, Effect, Fiber, Option, Queue, Ref, Result, Schema, Scope, Stream, } from "effect";
|
|
3
|
-
import { ExecutorError, ExecutorOperationError } from "./
|
|
6
|
+
import { ExecutorError, ExecutorOperationError } from "./executor.js";
|
|
4
7
|
import { invalidFrameDiagnostic, invalidFrameMessage } from "./invalid-frame.js";
|
|
5
8
|
const STDERR_TAIL_BYTES = 4_096;
|
|
6
9
|
/** Sending SIGKILL is its own bounded step, unrelated to the interrupt grace. */
|
|
7
10
|
const KILL_TIMEOUT = "5 seconds";
|
|
8
11
|
const inputFrameToJson = Schema.encodeSync(AttemptChannel.InputFrameFromJson);
|
|
9
|
-
/**
|
|
12
|
+
/** Rejects a frame with any unknown key; the protocol is strict by contract. */
|
|
10
13
|
const decodeOutboundEnvelope = (line) => Schema.decodeUnknownEffect(AttemptChannel.OutboundEnvelopeFromJson)(line, {
|
|
11
14
|
onExcessProperty: "error",
|
|
12
15
|
});
|
|
13
16
|
const isExecutorError = Schema.is(ExecutorError);
|
|
14
17
|
const encoder = new TextEncoder();
|
|
15
18
|
const frame = (input) => encoder.encode(`${inputFrameToJson(input)}\n`);
|
|
16
|
-
const infrastructureFailure = (message, cause) => new
|
|
19
|
+
const infrastructureFailure = (message, cause) => new InfraFailure({ message, cause });
|
|
17
20
|
const violationFailure = (violation) => infrastructureFailure(violation.message, new Error(violation.detail));
|
|
18
21
|
const cancelError = (attemptId, cause) => new ExecutorOperationError({
|
|
19
22
|
operation: "cancel",
|
|
20
23
|
message: `Could not cancel Attempt ${attemptId}`,
|
|
21
24
|
cause,
|
|
22
25
|
});
|
|
23
|
-
/**
|
|
26
|
+
/** The run-host byte-channel session every process-backed Executor shares. */
|
|
24
27
|
export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (options) {
|
|
25
28
|
const activeAttempts = yield* Ref.make(new Map());
|
|
26
29
|
const hardKill = Effect.fn("RunHostSession.hardKill")(function* (attemptId, active, reason) {
|
|
@@ -30,8 +33,8 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
30
33
|
host: active.host,
|
|
31
34
|
reason,
|
|
32
35
|
});
|
|
33
|
-
//
|
|
34
|
-
//
|
|
36
|
+
// The kill failure is logged, never propagated, so it cannot mask the
|
|
37
|
+
// failure that forced the hard kill.
|
|
35
38
|
yield* active.handle.kill({ killSignal: "SIGKILL" }).pipe(Effect.timeout(KILL_TIMEOUT), Effect.tapError((error) => Effect.logError("Run-host hard kill failed", {
|
|
36
39
|
attemptId,
|
|
37
40
|
worker: active.worker,
|
|
@@ -76,9 +79,9 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
76
79
|
payload: new AttemptChannel.Interrupt(),
|
|
77
80
|
});
|
|
78
81
|
const delivered = yield* active.io.append("inbound", envelope).pipe(Effect.andThen(Queue.offer(active.input, frame(envelope))),
|
|
79
|
-
// The transcript store
|
|
80
|
-
// parked
|
|
81
|
-
//
|
|
82
|
+
// The transcript store sits outside the process adapter and may be
|
|
83
|
+
// parked; the bound keeps the uninterruptible cancellation handshake
|
|
84
|
+
// moving on to the hard kill.
|
|
82
85
|
Effect.timeoutOption(options.interruptGrace), Effect.result);
|
|
83
86
|
if (Result.isFailure(delivered)) {
|
|
84
87
|
yield* Effect.logWarning("Interrupt could not be delivered", {
|
|
@@ -126,12 +129,12 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
126
129
|
}
|
|
127
130
|
yield* cancelActive(attemptId, active).pipe(Effect.mapError((cause) => isExecutorError(cause) ? cause : cancelError(attemptId, cause)));
|
|
128
131
|
});
|
|
129
|
-
const launch = Effect.fn("RunHostSession.launch")(function* (prepared, io) {
|
|
132
|
+
const launch = Effect.fn("RunHostSession.launch")(function* (prepared, io, spawn) {
|
|
130
133
|
const attemptId = prepared.spec.attemptId;
|
|
131
134
|
yield* Effect.annotateCurrentSpan({ attemptId, worker: prepared.worker });
|
|
132
135
|
const execute = Effect.scoped(Effect.gen(function* () {
|
|
133
136
|
const input = yield* Queue.make();
|
|
134
|
-
const { handle, host, scrub } = yield*
|
|
137
|
+
const { handle, host, scrub } = yield* spawn(input);
|
|
135
138
|
yield* Effect.annotateCurrentSpan({ host });
|
|
136
139
|
const active = {
|
|
137
140
|
cancelStarted: yield* Ref.make(false),
|
|
@@ -156,16 +159,26 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
156
159
|
const terminal = yield* Ref.make(Option.none());
|
|
157
160
|
const progress = yield* Ref.make(AttemptChannel.initialProgress);
|
|
158
161
|
yield* handle.stdout.pipe(Stream.decodeText(), Stream.splitLines, Stream.runForEach((rawLine) => Effect.gen(function* () {
|
|
159
|
-
//
|
|
160
|
-
//
|
|
162
|
+
// Frames include raw tool inputs and outputs; scrub the credential
|
|
163
|
+
// from the line before it is decoded or persisted.
|
|
161
164
|
const line = scrub(rawLine);
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
const decoded = yield* decodeOutboundEnvelope(line).pipe(Effect.result);
|
|
166
|
+
if (Result.isFailure(decoded)) {
|
|
167
|
+
const diagnostic = invalidFrameDiagnostic(line, decoded.failure);
|
|
168
|
+
if (diagnostic.source === "effect-log") {
|
|
169
|
+
yield* Effect.logWarning("Dropped a run-host diagnostic from protocol output", {
|
|
170
|
+
attemptId,
|
|
171
|
+
...diagnostic,
|
|
172
|
+
});
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
yield* Effect.logError("Run host emitted an invalid frame", {
|
|
165
176
|
attemptId,
|
|
166
177
|
...diagnostic,
|
|
167
|
-
})
|
|
168
|
-
|
|
178
|
+
});
|
|
179
|
+
return yield* infrastructureFailure(invalidFrameMessage(diagnostic), decoded.failure);
|
|
180
|
+
}
|
|
181
|
+
const envelope = decoded.success;
|
|
169
182
|
const admitted = AttemptChannel.admit(yield* Ref.get(progress), attemptId, envelope);
|
|
170
183
|
if (Result.isFailure(admitted))
|
|
171
184
|
return yield* violationFailure(admitted.failure);
|
|
@@ -183,7 +196,7 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
183
196
|
yield* Ref.set(terminal, Option.some(payload));
|
|
184
197
|
yield* Queue.end(input);
|
|
185
198
|
}
|
|
186
|
-
})), Effect.mapError((error) => Schema.is(AttemptFailure
|
|
199
|
+
})), Effect.mapError((error) => Schema.is(AttemptFailure)(error)
|
|
187
200
|
? error
|
|
188
201
|
: infrastructureFailure("The run-host channel failed", error)));
|
|
189
202
|
const exitCode = yield* handle.exitCode.pipe(Effect.mapError((cause) => infrastructureFailure("Could not read the run-host exit code", cause)));
|
|
@@ -203,7 +216,7 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
203
216
|
if (ended.value._tag === "Failed")
|
|
204
217
|
return yield* ended.value.failure;
|
|
205
218
|
if (ended.value._tag === "Interrupted") {
|
|
206
|
-
return yield* new
|
|
219
|
+
return yield* new AgentFailure({
|
|
207
220
|
message: "The run host confirmed the interrupt and stopped",
|
|
208
221
|
});
|
|
209
222
|
}
|
|
@@ -219,7 +232,7 @@ export const runHostSessionFor = Effect.fn("RunHostSession.for")(function* (opti
|
|
|
219
232
|
const next = new Map(current);
|
|
220
233
|
next.delete(attemptId);
|
|
221
234
|
return next;
|
|
222
|
-
})), Effect.mapError((error) => Schema.is(AttemptFailure
|
|
235
|
+
})), Effect.mapError((error) => Schema.is(AttemptFailure)(error)
|
|
223
236
|
? error
|
|
224
237
|
: infrastructureFailure("The executor failed while running the run host", error)));
|
|
225
238
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-host-session.js","sourceRoot":"","sources":["../src/run-host-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-host-session.js","sourceRoot":"","sources":["../src/run-host-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usine/executor",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The usine
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "The usine scoped Worker contract with local and exe.dev adapters.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
18
|
-
"types": "./dist/
|
|
19
|
-
"default": "./dist/
|
|
20
|
-
},
|
|
21
|
-
"./local": {
|
|
22
|
-
"types": "./dist/local/index.d.ts",
|
|
23
|
-
"default": "./dist/local/index.js"
|
|
18
|
+
"types": "./dist/executor.d.ts",
|
|
19
|
+
"default": "./dist/executor.js"
|
|
24
20
|
},
|
|
25
21
|
"./exe-dev": {
|
|
26
|
-
"types": "./dist/exe-dev/
|
|
27
|
-
"default": "./dist/exe-dev/
|
|
22
|
+
"types": "./dist/exe-dev/exe-dev.d.ts",
|
|
23
|
+
"default": "./dist/exe-dev/exe-dev.js"
|
|
24
|
+
},
|
|
25
|
+
"./local": {
|
|
26
|
+
"types": "./dist/local/local.d.ts",
|
|
27
|
+
"default": "./dist/local/local.js"
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@usine/core": "0.
|
|
34
|
+
"@usine/core": "0.2.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@effect/vitest": "4.0.0-rc.111",
|
package/dist/exe-dev/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Layer } from "effect";
|
|
2
|
-
import { ChildProcessSpawner } from "effect/unstable/process";
|
|
3
|
-
import { Executor } from "../index.ts";
|
|
4
|
-
import { CredentialGrantMinutes, type ExeDevExecutorOptions, GitHubIntegration, HarnessLoginCheck, IntegrationName } from "./model.ts";
|
|
5
|
-
export { CredentialGrantMinutes, type ExeDevExecutorOptions, GitHubIntegration, HarnessLoginCheck, IntegrationName, };
|
|
6
|
-
/** Node-only exe.dev adapter; the package root remains platform-free. */
|
|
7
|
-
export declare const layer: (options: ExeDevExecutorOptions) => Layer.Layer<Executor, never, ChildProcessSpawner.ChildProcessSpawner>;
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exe-dev/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAuB,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGL,QAAQ,EAIT,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,CAAC;AAwRF,yEAAyE;AACzE,eAAO,MAAM,KAAK,YACP,qBAAqB,KAC7B,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,CAClB,CAAC"}
|
package/dist/exe-dev/index.js
DELETED
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
import { Attempt, Repository } from "@usine/core";
|
|
2
|
-
import { Effect, Layer, Ref, Result, Schema } from "effect";
|
|
3
|
-
import { ChildProcessSpawner } from "effect/unstable/process";
|
|
4
|
-
import { CheckoutRequest, CredentialUnavailableError, Executor, ExecutorError, ExecutorOperationError, PreparedAttempt, } from "../index.js";
|
|
5
|
-
import { keyedLockFor } from "../keyed-lock.js";
|
|
6
|
-
import { provisionWorktree, safeSegment } from "../provision.js";
|
|
7
|
-
import { attemptChannelFor } from "./channel.js";
|
|
8
|
-
import { commandsFor } from "./commands.js";
|
|
9
|
-
import { credentialGrantsFor } from "./grants.js";
|
|
10
|
-
import { CredentialGrantMinutes, GitHubIntegration, HarnessLoginCheck, IntegrationName, } from "./model.js";
|
|
11
|
-
import { preflightFor } from "./preflight.js";
|
|
12
|
-
import { RUN_HOST_KILL_SCRIPT, runHostPidFile } from "./shell.js";
|
|
13
|
-
import { abandonedWorktreeSweepFor } from "./sweep.js";
|
|
14
|
-
export { CredentialGrantMinutes, GitHubIntegration, HarnessLoginCheck, IntegrationName, };
|
|
15
|
-
const isExecutorError = Schema.is(ExecutorError);
|
|
16
|
-
const executorError = (message, cause) => new ExecutorOperationError({ operation: "prepare", message, cause });
|
|
17
|
-
const makeExeDevExecutor = (options) => Effect.gen(function* () {
|
|
18
|
-
const commands = yield* commandsFor(options.ssh);
|
|
19
|
-
const fetches = yield* keyedLockFor();
|
|
20
|
-
const preparedStates = yield* Ref.make(new Map());
|
|
21
|
-
const integrations = new Map(options.githubIntegrations.map(({ name, repository }) => [repository, name]));
|
|
22
|
-
const integrationNames = new Set(options.githubIntegrations.map(({ name }) => name));
|
|
23
|
-
const runHost = options.runHost ?? { command: "usine-run-host", args: [] };
|
|
24
|
-
// The grace covers an SSH round trip plus the agent flushing its final
|
|
25
|
-
// events, not just a local pipe: budget accordingly.
|
|
26
|
-
const interruptGrace = options.interruptGrace ?? "10 seconds";
|
|
27
|
-
if (integrations.size !== options.githubIntegrations.length) {
|
|
28
|
-
return yield* Effect.die(new Error("ExeDevExecutorOptions.githubIntegrations contains duplicate repositories"));
|
|
29
|
-
}
|
|
30
|
-
if (integrationNames.size !== options.githubIntegrations.length) {
|
|
31
|
-
return yield* Effect.die(new Error("ExeDevExecutorOptions.githubIntegrations contains duplicate integration names"));
|
|
32
|
-
}
|
|
33
|
-
const machines = yield* preflightFor(options, commands, runHost);
|
|
34
|
-
const credentialGrants = yield* credentialGrantsFor(options, commands);
|
|
35
|
-
const sweepAbandonedWorktrees = yield* abandonedWorktreeSweepFor(commands);
|
|
36
|
-
const attemptChannel = yield* attemptChannelFor(commands, preparedStates, runHost, interruptGrace);
|
|
37
|
-
const prepare = Effect.fn("ExeDevExecutor.prepare")(function* (request) {
|
|
38
|
-
yield* Effect.annotateCurrentSpan({
|
|
39
|
-
attemptId: request.attemptId,
|
|
40
|
-
worker: request.worker,
|
|
41
|
-
repository: request.repository,
|
|
42
|
-
});
|
|
43
|
-
const integration = integrations.get(request.repository);
|
|
44
|
-
if (integration === undefined) {
|
|
45
|
-
return yield* new CredentialUnavailableError({
|
|
46
|
-
repository: request.repository,
|
|
47
|
-
message: `No exe.dev GitHub integration is configured for ${request.repository}`,
|
|
48
|
-
cause: new Error("repository integration missing"),
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
const vm = yield* machines.vmFor(request.worker);
|
|
52
|
-
const root = `${vm.home}/.usine/workers/${safeSegment(request.worker)}`;
|
|
53
|
-
const cache = `${root}/repos/${safeSegment(request.repository)}.git`;
|
|
54
|
-
const worktree = `${root}/attempts/${safeSegment(request.attemptId)}`;
|
|
55
|
-
const staging = `${cache}.cloning`;
|
|
56
|
-
const remoteUrl = `https://github.int.exe.xyz/${request.repository}.git`;
|
|
57
|
-
yield* Effect.annotateCurrentSpan({ host: vm.sshDest });
|
|
58
|
-
yield* sweepAbandonedWorktrees(request.attemptId, request.worker, vm, root);
|
|
59
|
-
const remove = (target) => Effect.asVoid(commands.remote("prepare", vm.sshDest, "rm", ["-rf", target]));
|
|
60
|
-
const ops = {
|
|
61
|
-
ensureRoots: Effect.asVoid(commands.remote("prepare", vm.sshDest, "mkdir", [
|
|
62
|
-
"-p",
|
|
63
|
-
`${root}/repos`,
|
|
64
|
-
`${root}/attempts`,
|
|
65
|
-
])),
|
|
66
|
-
removePath: remove,
|
|
67
|
-
cacheExists: Effect.gen(function* () {
|
|
68
|
-
const inspected = yield* commands.remoteRaw("prepare", vm.sshDest, "test", ["-d", cache]);
|
|
69
|
-
if (inspected.exitCode === 0)
|
|
70
|
-
return true;
|
|
71
|
-
if (inspected.exitCode === 1)
|
|
72
|
-
return false;
|
|
73
|
-
return yield* executorError(`Could not inspect the cached clone on Worker ${request.worker}`, new Error(inspected.stderr.trim()));
|
|
74
|
-
}),
|
|
75
|
-
promoteStaging: Effect.asVoid(commands.remote("prepare", vm.sshDest, "mv", [staging, cache])),
|
|
76
|
-
git: (args) => commands.remote("prepare", vm.sshDest, "git", args),
|
|
77
|
-
};
|
|
78
|
-
const prepared = yield* fetches
|
|
79
|
-
.withLock(request.repository)(Effect.gen(function* () {
|
|
80
|
-
// The grant attaches inside the compensated region: an interrupt
|
|
81
|
-
// parked on the repository lock must not leak an attachment.
|
|
82
|
-
yield* credentialGrants.acquire(request.worker, request.repository, integration);
|
|
83
|
-
const provisioned = yield* provisionWorktree({
|
|
84
|
-
request,
|
|
85
|
-
url: remoteUrl,
|
|
86
|
-
host: vm.sshDest,
|
|
87
|
-
layout: { cache, staging, worktree },
|
|
88
|
-
ops,
|
|
89
|
-
});
|
|
90
|
-
yield* Ref.update(preparedStates, (current) => {
|
|
91
|
-
const next = new Map(current);
|
|
92
|
-
next.set(request.attemptId, { cache, integration, vm });
|
|
93
|
-
return next;
|
|
94
|
-
});
|
|
95
|
-
return provisioned;
|
|
96
|
-
}))
|
|
97
|
-
.pipe(Effect.mapError((cause) => isExecutorError(cause)
|
|
98
|
-
? cause
|
|
99
|
-
: executorError("exe.dev workspace preparation failed", cause)), Effect.onError(() => Effect.gen(function* () {
|
|
100
|
-
yield* Ref.update(preparedStates, (current) => {
|
|
101
|
-
const next = new Map(current);
|
|
102
|
-
next.delete(request.attemptId);
|
|
103
|
-
return next;
|
|
104
|
-
});
|
|
105
|
-
yield* commands.remote("cleanup", vm.sshDest, "rm", ["-rf", worktree, staging]).pipe(Effect.tapError((error) => Effect.logWarning("Could not remove a partial exe.dev workspace", {
|
|
106
|
-
attemptId: request.attemptId,
|
|
107
|
-
worker: request.worker,
|
|
108
|
-
host: vm.sshDest,
|
|
109
|
-
message: error.message,
|
|
110
|
-
})), Effect.ignore);
|
|
111
|
-
yield* credentialGrants.release(request.worker, integration).pipe(Effect.tapError((error) => Effect.logWarning("Could not detach credentials after prepare failed", {
|
|
112
|
-
attemptId: request.attemptId,
|
|
113
|
-
worker: request.worker,
|
|
114
|
-
host: vm.sshDest,
|
|
115
|
-
message: error.message,
|
|
116
|
-
})), Effect.ignore);
|
|
117
|
-
})));
|
|
118
|
-
yield* Effect.logInfo("exe.dev Attempt workspace ready", {
|
|
119
|
-
attemptId: request.attemptId,
|
|
120
|
-
worker: request.worker,
|
|
121
|
-
host: vm.sshDest,
|
|
122
|
-
repository: request.repository,
|
|
123
|
-
baseCommit: prepared.spec.baseCommit,
|
|
124
|
-
worktree,
|
|
125
|
-
});
|
|
126
|
-
return prepared;
|
|
127
|
-
});
|
|
128
|
-
const cleanWorktree = Effect.fn("ExeDevExecutor.cleanWorktree")(function* (prepared, state) {
|
|
129
|
-
yield* Effect.annotateCurrentSpan({
|
|
130
|
-
attemptId: prepared.spec.attemptId,
|
|
131
|
-
worker: prepared.worker,
|
|
132
|
-
host: state.vm.sshDest,
|
|
133
|
-
});
|
|
134
|
-
// Killing the local SSH client says nothing about the VM: confirm the
|
|
135
|
-
// recorded run host is dead before destroying the workspace under it.
|
|
136
|
-
const confirmed = yield* commands.remoteRaw("cleanup", state.vm.sshDest, "sh", [
|
|
137
|
-
"-c",
|
|
138
|
-
RUN_HOST_KILL_SCRIPT,
|
|
139
|
-
"sh",
|
|
140
|
-
runHostPidFile(prepared.worktree),
|
|
141
|
-
]);
|
|
142
|
-
yield* Effect.logInfo("Confirmed the remote run host before workspace removal", {
|
|
143
|
-
attemptId: prepared.spec.attemptId,
|
|
144
|
-
worker: prepared.worker,
|
|
145
|
-
host: state.vm.sshDest,
|
|
146
|
-
runHost: confirmed.stdout.trim() || `exit ${String(confirmed.exitCode)}`,
|
|
147
|
-
});
|
|
148
|
-
const removed = yield* commands.remoteRaw("cleanup", state.vm.sshDest, "git", [
|
|
149
|
-
"--git-dir",
|
|
150
|
-
state.cache,
|
|
151
|
-
"worktree",
|
|
152
|
-
"remove",
|
|
153
|
-
"--force",
|
|
154
|
-
prepared.worktree,
|
|
155
|
-
]);
|
|
156
|
-
if (removed.exitCode !== 0) {
|
|
157
|
-
yield* Effect.logDebug("Remote Git worktree removal returned non-zero", {
|
|
158
|
-
attemptId: prepared.spec.attemptId,
|
|
159
|
-
worker: prepared.worker,
|
|
160
|
-
host: state.vm.sshDest,
|
|
161
|
-
exitCode: String(removed.exitCode),
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
yield* commands.remote("cleanup", state.vm.sshDest, "rm", ["-rf", prepared.worktree]);
|
|
165
|
-
yield* commands.remote("cleanup", state.vm.sshDest, "git", [
|
|
166
|
-
"--git-dir",
|
|
167
|
-
state.cache,
|
|
168
|
-
"worktree",
|
|
169
|
-
"prune",
|
|
170
|
-
]);
|
|
171
|
-
});
|
|
172
|
-
const cleanup = Effect.fn("ExeDevExecutor.cleanup")(function* (prepared) {
|
|
173
|
-
const attemptId = prepared.spec.attemptId;
|
|
174
|
-
yield* Effect.annotateCurrentSpan({
|
|
175
|
-
attemptId,
|
|
176
|
-
worker: prepared.worker,
|
|
177
|
-
});
|
|
178
|
-
yield* Effect.logInfo("Cleaning exe.dev Attempt workspace", {
|
|
179
|
-
attemptId,
|
|
180
|
-
worker: prepared.worker,
|
|
181
|
-
worktree: prepared.worktree,
|
|
182
|
-
});
|
|
183
|
-
const state = (yield* Ref.get(preparedStates)).get(attemptId);
|
|
184
|
-
if (state === undefined) {
|
|
185
|
-
yield* Effect.logDebug("exe.dev Attempt cleanup was already complete", {
|
|
186
|
-
attemptId,
|
|
187
|
-
worker: prepared.worker,
|
|
188
|
-
});
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
yield* Effect.annotateCurrentSpan({ host: state.vm.sshDest });
|
|
192
|
-
// The state entry drops exactly once whatever the outcome: a failed
|
|
193
|
-
// cleanup must never leave a retry path that releases the grant twice
|
|
194
|
-
// and detaches a running sibling's credentials.
|
|
195
|
-
const [worktreeResult, grantResult] = yield* Effect.all([
|
|
196
|
-
cleanWorktree(prepared, state).pipe(Effect.result),
|
|
197
|
-
credentialGrants.release(prepared.worker, state.integration).pipe(Effect.result),
|
|
198
|
-
]).pipe(Effect.ensuring(Ref.update(preparedStates, (current) => {
|
|
199
|
-
const next = new Map(current);
|
|
200
|
-
next.delete(attemptId);
|
|
201
|
-
return next;
|
|
202
|
-
})));
|
|
203
|
-
const results = [
|
|
204
|
-
["worktree", worktreeResult],
|
|
205
|
-
["credential-grant", grantResult],
|
|
206
|
-
];
|
|
207
|
-
for (const [resource, result] of results) {
|
|
208
|
-
if (Result.isFailure(result)) {
|
|
209
|
-
yield* Effect.logError("exe.dev Attempt cleanup operation failed", {
|
|
210
|
-
attemptId,
|
|
211
|
-
worker: prepared.worker,
|
|
212
|
-
host: state.vm.sshDest,
|
|
213
|
-
resource,
|
|
214
|
-
message: result.failure.message,
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (Result.isFailure(worktreeResult))
|
|
219
|
-
return yield* worktreeResult.failure;
|
|
220
|
-
if (Result.isFailure(grantResult))
|
|
221
|
-
return yield* grantResult.failure;
|
|
222
|
-
yield* Effect.logInfo("exe.dev Attempt cleanup completed", {
|
|
223
|
-
attemptId,
|
|
224
|
-
worker: prepared.worker,
|
|
225
|
-
host: state.vm.sshDest,
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
return Executor.of({
|
|
229
|
-
kind: "exe.dev",
|
|
230
|
-
cancel: attemptChannel.cancel,
|
|
231
|
-
cleanup,
|
|
232
|
-
launch: attemptChannel.launch,
|
|
233
|
-
preflight: machines.preflight,
|
|
234
|
-
prepare,
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
/** Node-only exe.dev adapter; the package root remains platform-free. */
|
|
238
|
-
export const layer = (options) => Layer.effect(Executor, makeExeDevExecutor(options));
|
|
239
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exe-dev/index.ts"],"names":[],"mappings":"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"}
|