@usine/executor 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +52 -21
  2. package/dist/child-command.d.ts +8 -5
  3. package/dist/child-command.d.ts.map +1 -1
  4. package/dist/child-command.js +10 -7
  5. package/dist/child-command.js.map +1 -1
  6. package/dist/exe-dev/channel.d.ts +8 -4
  7. package/dist/exe-dev/channel.d.ts.map +1 -1
  8. package/dist/exe-dev/channel.js +16 -19
  9. package/dist/exe-dev/channel.js.map +1 -1
  10. package/dist/exe-dev/commands.d.ts +1 -1
  11. package/dist/exe-dev/commands.d.ts.map +1 -1
  12. package/dist/exe-dev/commands.js +7 -8
  13. package/dist/exe-dev/commands.js.map +1 -1
  14. package/dist/exe-dev/exe-dev.d.ts +8 -0
  15. package/dist/exe-dev/exe-dev.d.ts.map +1 -0
  16. package/dist/exe-dev/exe-dev.js +154 -0
  17. package/dist/exe-dev/exe-dev.js.map +1 -0
  18. package/dist/exe-dev/grants.d.ts +3 -4
  19. package/dist/exe-dev/grants.d.ts.map +1 -1
  20. package/dist/exe-dev/grants.js +31 -15
  21. package/dist/exe-dev/grants.js.map +1 -1
  22. package/dist/exe-dev/model.d.ts +8 -23
  23. package/dist/exe-dev/model.d.ts.map +1 -1
  24. package/dist/exe-dev/model.js +5 -12
  25. package/dist/exe-dev/model.js.map +1 -1
  26. package/dist/exe-dev/preflight.d.ts +3 -2
  27. package/dist/exe-dev/preflight.d.ts.map +1 -1
  28. package/dist/exe-dev/preflight.js +8 -8
  29. package/dist/exe-dev/preflight.js.map +1 -1
  30. package/dist/exe-dev/shell.d.ts +5 -5
  31. package/dist/exe-dev/shell.d.ts.map +1 -1
  32. package/dist/exe-dev/shell.js +7 -7
  33. package/dist/exe-dev/shell.js.map +1 -1
  34. package/dist/exe-dev/sweep.d.ts +3 -5
  35. package/dist/exe-dev/sweep.d.ts.map +1 -1
  36. package/dist/exe-dev/sweep.js +8 -10
  37. package/dist/exe-dev/sweep.js.map +1 -1
  38. package/dist/executor.d.ts +122 -0
  39. package/dist/executor.d.ts.map +1 -0
  40. package/dist/executor.js +100 -0
  41. package/dist/executor.js.map +1 -0
  42. package/dist/guard.d.ts +11 -0
  43. package/dist/guard.d.ts.map +1 -0
  44. package/dist/guard.js +74 -0
  45. package/dist/guard.js.map +1 -0
  46. package/dist/harness-preflight.d.ts +6 -0
  47. package/dist/harness-preflight.d.ts.map +1 -0
  48. package/dist/harness-preflight.js +50 -0
  49. package/dist/harness-preflight.js.map +1 -0
  50. package/dist/invalid-frame.d.ts +1 -1
  51. package/dist/invalid-frame.d.ts.map +1 -1
  52. package/dist/invalid-frame.js +2 -1
  53. package/dist/invalid-frame.js.map +1 -1
  54. package/dist/keyed-lock.d.ts +2 -2
  55. package/dist/keyed-lock.js +2 -2
  56. package/dist/local/local.d.ts +20 -0
  57. package/dist/local/local.d.ts.map +1 -0
  58. package/dist/local/{index.js → local.js} +87 -115
  59. package/dist/local/local.js.map +1 -0
  60. package/dist/prepared-attempt.d.ts +5 -0
  61. package/dist/prepared-attempt.d.ts.map +1 -0
  62. package/dist/prepared-attempt.js +32 -0
  63. package/dist/prepared-attempt.js.map +1 -0
  64. package/dist/provision.d.ts +20 -10
  65. package/dist/provision.d.ts.map +1 -1
  66. package/dist/provision.js +94 -23
  67. package/dist/provision.js.map +1 -1
  68. package/dist/run-host-session.d.ts +13 -8
  69. package/dist/run-host-session.d.ts.map +1 -1
  70. package/dist/run-host-session.js +116 -41
  71. package/dist/run-host-session.js.map +1 -1
  72. package/package.json +11 -11
  73. package/dist/exe-dev/index.d.ts +0 -8
  74. package/dist/exe-dev/index.d.ts.map +0 -1
  75. package/dist/exe-dev/index.js +0 -239
  76. package/dist/exe-dev/index.js.map +0 -1
  77. package/dist/index.d.ts +0 -82
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/index.js +0 -82
  80. package/dist/index.js.map +0 -1
  81. package/dist/local/index.d.ts +0 -15
  82. package/dist/local/index.d.ts.map +0 -1
  83. package/dist/local/index.js.map +0 -1
@@ -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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"}
package/dist/index.d.ts DELETED
@@ -1,82 +0,0 @@
1
- /** @usine/executor — platform-free worker execution contract. */
2
- import { Agent, Attempt, AttemptChannel, AttemptFailure, Repository, StepResult, Worker } from "@usine/core";
3
- import { Context, Effect, Redacted, Schema } from "effect";
4
- export declare const ExecutorOperation: Schema.Literals<readonly ["preflight", "prepare", "launch", "cancel", "cleanup"]>;
5
- export type ExecutorOperation = typeof ExecutorOperation.Type;
6
- export declare const WorkerCapability: Schema.Literals<readonly ["machine", "toolchain", "run-host", "harness-login", "credentials"]>;
7
- export type WorkerCapability = typeof WorkerCapability.Type;
8
- declare const ExecutorOperationError_base: Schema.Class<ExecutorOperationError, Schema.TaggedStruct<"ExecutorOperationError", {
9
- readonly operation: Schema.Literals<readonly ["preflight", "prepare", "launch", "cancel", "cleanup"]>;
10
- readonly message: Schema.NonEmptyString;
11
- readonly cause: Schema.Defect;
12
- }>, import("effect/Cause").YieldableError>;
13
- export declare class ExecutorOperationError extends ExecutorOperationError_base {
14
- }
15
- declare const CredentialUnavailableError_base: Schema.Class<CredentialUnavailableError, Schema.TaggedStruct<"CredentialUnavailableError", {
16
- readonly repository: Schema.brand<Schema.String, "RepoName">;
17
- readonly message: Schema.NonEmptyString;
18
- readonly cause: Schema.Defect;
19
- }>, import("effect/Cause").YieldableError>;
20
- export declare class CredentialUnavailableError extends CredentialUnavailableError_base {
21
- }
22
- declare const WorkerCapabilityError_base: Schema.Class<WorkerCapabilityError, Schema.TaggedStruct<"WorkerCapabilityError", {
23
- readonly worker: Schema.brand<Schema.String, "WorkerName">;
24
- readonly capability: Schema.Literals<readonly ["machine", "toolchain", "run-host", "harness-login", "credentials"]>;
25
- readonly message: Schema.NonEmptyString;
26
- readonly cause: Schema.Defect;
27
- }>, import("effect/Cause").YieldableError>;
28
- /** A verify-only preflight found a Worker capability missing or incompatible. */
29
- export declare class WorkerCapabilityError extends WorkerCapabilityError_base {
30
- }
31
- export declare const ExecutorError: Schema.Union<readonly [typeof ExecutorOperationError, typeof CredentialUnavailableError, typeof WorkerCapabilityError]>;
32
- export type ExecutorError = typeof ExecutorError.Type;
33
- /** Every preflight refusal is logged: a missing capability must be explainable from logs alone. */
34
- export declare const logPreflightFailure: <A, R>(effect: Effect.Effect<A, ExecutorError, R>) => Effect.Effect<A, ExecutorError, R>;
35
- /** Process command for a one-shot run host or a preflight capability probe. */
36
- export interface RunHostCommand {
37
- readonly command: string;
38
- readonly args: ReadonlyArray<string>;
39
- }
40
- declare const CheckoutRequest_base: Schema.Class<CheckoutRequest, Schema.Struct<{
41
- readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
42
- readonly worker: Schema.brand<Schema.String, "WorkerName">;
43
- readonly repository: Schema.brand<Schema.String, "RepoName">;
44
- readonly revision: Schema.brand<Schema.String, "RepositoryRevision">;
45
- readonly payload: Schema.Codec<Schema.Json, Schema.Json, never, never>;
46
- readonly task: Schema.brand<Schema.String, "AttemptTask">;
47
- readonly agent: typeof Agent.Agent;
48
- readonly parentModel: Schema.Option<Schema.brand<Schema.String, "ModelId">>;
49
- }>, {}>;
50
- /** Secret-free request used to create one fresh Attempt workspace. */
51
- export declare class CheckoutRequest extends CheckoutRequest_base {
52
- }
53
- /** Value object (branded path): one Attempt's disposable checkout directory. */
54
- export declare const WorktreePath: Schema.brand<Schema.NonEmptyString, "WorktreePath">;
55
- export type WorktreePath = typeof WorktreePath.Type;
56
- declare const PreparedAttempt_base: Schema.Class<PreparedAttempt, Schema.Struct<{
57
- readonly worker: Schema.brand<Schema.String, "WorkerName">;
58
- readonly spec: typeof AttemptChannel.RunSpec;
59
- readonly worktree: Schema.brand<Schema.NonEmptyString, "WorktreePath">;
60
- }>, {}>;
61
- /** Prepared workspace descriptor. Credentials remain private to the adapter. */
62
- export declare class PreparedAttempt extends PreparedAttempt_base {
63
- }
64
- declare const CredentialProvider_base: Context.ServiceClass<CredentialProvider, "@usine/executor/CredentialProvider", {
65
- readonly issue: (repository: Repository.Name, attemptId: Attempt.AttemptId) => Effect.Effect<Redacted.Redacted<string>, CredentialUnavailableError>;
66
- }>;
67
- /** Mints exactly one repository-scoped credential for each prepared Attempt. */
68
- export declare class CredentialProvider extends CredentialProvider_base {
69
- }
70
- declare const Executor_base: Context.ServiceClass<Executor, "@usine/executor/Executor", {
71
- readonly kind: Worker.Kind;
72
- readonly preflight: (worker: Worker.Name) => Effect.Effect<void, ExecutorError>;
73
- readonly prepare: (request: CheckoutRequest) => Effect.Effect<PreparedAttempt, ExecutorError>;
74
- readonly launch: (prepared: PreparedAttempt, io: AttemptChannel.Sink) => Effect.Effect<StepResult.StepResult, AttemptFailure.AttemptFailure>;
75
- readonly cancel: (attemptId: Attempt.AttemptId) => Effect.Effect<void, ExecutorError>;
76
- readonly cleanup: (prepared: PreparedAttempt) => Effect.Effect<void, ExecutorError>;
77
- }>;
78
- /** The five-operation worker contract from ADR 0006. Preflight verifies only — it never installs. */
79
- export declare class Executor extends Executor_base {
80
- }
81
- export {};
82
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EACL,KAAK,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3D,eAAO,MAAM,iBAAiB,mFAM5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAE9D,eAAO,MAAM,gBAAgB,gGAM3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;;;;;;AAE5D,qBAAa,sBAAuB,SAAQ,2BAM1C;CAAG;;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAM9C;CAAG;;;;;;;AAEL,iFAAiF;AACjF,qBAAa,qBAAsB,SAAQ,0BAOzC;CAAG;AAEL,eAAO,MAAM,aAAa,yHAIxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,UAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,KACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAajC,CAAC;AAEJ,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACtC;;;;;;;;;;;AAED,sEAAsE;AACtE,qBAAa,eAAgB,SAAQ,oBAWnC;CAAG;AAEL,gFAAgF;AAChF,eAAO,MAAM,YAAY,qDAA2D,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;;AAEpD,gFAAgF;AAChF,qBAAa,eAAgB,SAAQ,oBAMnC;CAAG;;oBAMe,CACd,UAAU,EAAE,UAAU,CAAC,IAAI,EAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,KACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,CAAC;;AAP7E,gFAAgF;AAChF,qBAAa,kBAAmB,SAAQ,uBAQC;CAAG;;mBAMzB,MAAM,CAAC,IAAI;wBACN,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;sBAC7D,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC;qBAC5E,CACf,QAAQ,EAAE,eAAe,EACzB,EAAE,EAAE,cAAc,CAAC,IAAI,KACpB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,CAAC;qBACvD,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;sBACnE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;;AAZvF,qGAAqG;AACrG,qBAAa,QAAS,SAAQ,aAaC;CAAG"}
package/dist/index.js DELETED
@@ -1,82 +0,0 @@
1
- /** @usine/executor — platform-free worker execution contract. */
2
- import { Agent, Attempt, AttemptChannel, AttemptFailure, Repository, StepResult, Worker, } from "@usine/core";
3
- import { Context, Effect, Redacted, Schema } from "effect";
4
- export const ExecutorOperation = Schema.Literals([
5
- "preflight",
6
- "prepare",
7
- "launch",
8
- "cancel",
9
- "cleanup",
10
- ]);
11
- export const WorkerCapability = Schema.Literals([
12
- "machine",
13
- "toolchain",
14
- "run-host",
15
- "harness-login",
16
- "credentials",
17
- ]);
18
- export class ExecutorOperationError extends Schema.TaggedError("@usine/executor/ExecutorOperationError")("ExecutorOperationError", {
19
- operation: ExecutorOperation,
20
- message: Schema.NonEmptyString,
21
- cause: Schema.Defect(),
22
- }) {
23
- }
24
- export class CredentialUnavailableError extends Schema.TaggedError("@usine/executor/CredentialUnavailableError")("CredentialUnavailableError", {
25
- repository: Repository.Name,
26
- message: Schema.NonEmptyString,
27
- cause: Schema.Defect(),
28
- }) {
29
- }
30
- /** A verify-only preflight found a Worker capability missing or incompatible. */
31
- export class WorkerCapabilityError extends Schema.TaggedError("@usine/executor/WorkerCapabilityError")("WorkerCapabilityError", {
32
- worker: Worker.Name,
33
- capability: WorkerCapability,
34
- message: Schema.NonEmptyString,
35
- cause: Schema.Defect(),
36
- }) {
37
- }
38
- export const ExecutorError = Schema.Union([
39
- ExecutorOperationError,
40
- CredentialUnavailableError,
41
- WorkerCapabilityError,
42
- ]);
43
- /** Every preflight refusal is logged: a missing capability must be explainable from logs alone. */
44
- export const logPreflightFailure = (effect) => Effect.tapError(effect, (error) => error instanceof WorkerCapabilityError
45
- ? Effect.logError("Worker preflight failed", {
46
- error: error._tag,
47
- message: error.message,
48
- worker: error.worker,
49
- capability: error.capability,
50
- })
51
- : Effect.logError("Worker preflight failed", {
52
- error: error._tag,
53
- message: error.message,
54
- }));
55
- /** Secret-free request used to create one fresh Attempt workspace. */
56
- export class CheckoutRequest extends Schema.Class("@usine/executor/CheckoutRequest")({
57
- attemptId: Attempt.AttemptId,
58
- worker: Worker.Name,
59
- repository: Repository.Name,
60
- revision: Repository.Revision,
61
- payload: Schema.Json,
62
- task: AttemptChannel.Task,
63
- agent: Agent.Agent,
64
- parentModel: Schema.Option(Agent.ModelId),
65
- }) {
66
- }
67
- /** Value object (branded path): one Attempt's disposable checkout directory. */
68
- export const WorktreePath = Schema.NonEmptyString.pipe(Schema.brand("WorktreePath"));
69
- /** Prepared workspace descriptor. Credentials remain private to the adapter. */
70
- export class PreparedAttempt extends Schema.Class("@usine/executor/PreparedAttempt")({
71
- worker: Worker.Name,
72
- spec: AttemptChannel.RunSpec,
73
- worktree: WorktreePath,
74
- }) {
75
- }
76
- /** Mints exactly one repository-scoped credential for each prepared Attempt. */
77
- export class CredentialProvider extends Context.Service()("@usine/executor/CredentialProvider") {
78
- }
79
- /** The five-operation worker contract from ADR 0006. Preflight verifies only — it never installs. */
80
- export class Executor extends Context.Service()("@usine/executor/Executor") {
81
- }
82
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { Instance, Repository } from "@usine/core";
2
- import { Effect, FileSystem, Layer, Path } from "effect";
3
- import { ChildProcessSpawner } from "effect/unstable/process";
4
- import { CredentialProvider, Executor, type RunHostCommand } from "../index.ts";
5
- export type { RunHostCommand } from "../index.ts";
6
- export interface LocalExecutorOptions {
7
- readonly instanceDirectory: Instance.Directory;
8
- /** How to launch the one-shot run host; the composition root resolves it. */
9
- readonly runHost: RunHostCommand;
10
- readonly repositoryUrl?: (repository: Repository.Name) => string;
11
- readonly interruptGrace?: Parameters<typeof Effect.timeoutOption>[1];
12
- }
13
- /** Node-only local executor; the package root remains platform-free. */
14
- export declare const layer: (options: LocalExecutorOptions) => Layer.Layer<Executor, never, CredentialProvider | FileSystem.FileSystem | Path.Path | ChildProcessSpawner.ChildProcessSpawner>;
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,IAAI,EAOL,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAEL,kBAAkB,EAClB,QAAQ,EAKR,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AAKrB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC/C,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE;AAqYD,wEAAwE;AACxE,eAAO,MAAM,KAAK,YACP,oBAAoB,KAC5B,KAAK,CAAC,KAAK,CACZ,QAAQ,EACR,KAAK,EACL,kBAAkB,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,mBAAmB,CAC3C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"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"}