@usine/executor 0.3.0 → 0.4.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/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/remote/machine.d.ts
CHANGED
|
@@ -1,24 +1,41 @@
|
|
|
1
1
|
import type { RemoteShell } from "@usine/agents/child-host";
|
|
2
2
|
import type { BrainSpec, Harness } from "@usine/core/agent/brain";
|
|
3
3
|
import type { AttemptId } from "@usine/core/attempt";
|
|
4
|
+
import type { AttemptRecovery } from "@usine/core/attempt/salvage";
|
|
4
5
|
import type { LoopPermissions } from "@usine/core/loop";
|
|
5
6
|
import type { RepositoryName } from "@usine/core/repository";
|
|
6
|
-
import type { GatewayCredentialKind, WorkerKind, WorkerName } from "@usine/core/worker";
|
|
7
|
-
import type { Effect, Option, Scope } from "effect";
|
|
8
|
-
import type { CredentialUnavailableError, ExecutorError, ExecutorOperation } from "../executor.ts";
|
|
7
|
+
import type { GatewayCredentialKind, MachineId, WorkerKind, WorkerName } from "@usine/core/worker";
|
|
8
|
+
import type { Effect, Option, Redacted, Scope } from "effect";
|
|
9
|
+
import type { CredentialUnavailableError, ExecutorError, ExecutorOperation, PreflightReport } from "../executor.ts";
|
|
9
10
|
import type { HarnessProbe } from "../harness-preflight.ts";
|
|
10
11
|
import type { RemoteCommands } from "./commands.ts";
|
|
12
|
+
import type { AttemptIsolation } from "./container.ts";
|
|
13
|
+
/** A machine with checkouts left for reconciliation. */
|
|
14
|
+
interface RemoteLeftovers<M extends RemoteMachine> {
|
|
15
|
+
readonly machine: M;
|
|
16
|
+
/** The paths directly under the Worker's `attempts` directory. */
|
|
17
|
+
readonly checkouts: ReadonlySet<string>;
|
|
18
|
+
}
|
|
11
19
|
export interface RemoteMachine {
|
|
12
20
|
readonly shell: RemoteShell;
|
|
13
21
|
/** The Worker directory on the machine, with cached clones under `repos` and checkouts under `attempts`. */
|
|
14
22
|
readonly workerDirectory: string;
|
|
23
|
+
/** The provider's ID of a machine created for one Attempt, or `None` for a long-lived machine. */
|
|
24
|
+
readonly provisioned: Option.Option<MachineId>;
|
|
15
25
|
}
|
|
16
26
|
export interface RemoteAccess {
|
|
17
27
|
/**
|
|
18
28
|
* The shell for the Attempt's children, harvesting, and git commands: the machine's own, or one
|
|
19
|
-
* that sends
|
|
29
|
+
* that sends `secrets` through the SSH connection (`sendingShell`). An Attempt container gets
|
|
30
|
+
* `secrets` when it starts instead.
|
|
20
31
|
*/
|
|
21
32
|
readonly shell: RemoteShell;
|
|
33
|
+
/** The variables with the Attempt's secrets, which never appear in a command line. */
|
|
34
|
+
readonly secrets: Readonly<Record<string, Redacted.Redacted<string>>>;
|
|
35
|
+
/** The machine directories that the Attempt's container mounts read-only, such as its credential directory. */
|
|
36
|
+
readonly readOnlyPaths: ReadonlyArray<string>;
|
|
37
|
+
/** The machine directories of the Attempt that its container mounts read-write, such as a harness's home. */
|
|
38
|
+
readonly writablePaths: ReadonlyArray<string>;
|
|
22
39
|
/** The extra environment for the Attempt's children and harvesting commands. Values appear in the command line, so none can be secret. */
|
|
23
40
|
readonly environment: Readonly<Record<string, string>>;
|
|
24
41
|
/** The extra environment for the executor's git commands on the checkout. Values appear in the command line, so none can be secret. */
|
|
@@ -45,9 +62,35 @@ export interface RemoteWorker<M extends RemoteMachine> {
|
|
|
45
62
|
readonly commands: RemoteCommands;
|
|
46
63
|
/** Returns a Worker's machine. Fails with a typed error if the machine is missing or doesn't respond. */
|
|
47
64
|
readonly machineFor: (worker: WorkerName) => Effect.Effect<M, ExecutorError>;
|
|
65
|
+
/**
|
|
66
|
+
* Returns the machine an Attempt runs on, if the Worker kind creates one per Attempt.
|
|
67
|
+
* Defaults to `machineFor`.
|
|
68
|
+
*/
|
|
69
|
+
readonly attemptMachine?: (worker: WorkerName, attemptId: AttemptId) => Effect.Effect<M, ExecutorError>;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the machine with `attempt`'s leftover checkout and the paths under its `attempts`
|
|
72
|
+
* directory, or `None` if the Attempt's machine is gone. `listed` is the Worker's machine and
|
|
73
|
+
* its listed checkouts, the default.
|
|
74
|
+
*/
|
|
75
|
+
readonly leftovers?: (attempt: AttemptRecovery, listed: Effect.Effect<RemoteLeftovers<M>, ExecutorError>) => Effect.Effect<Option.Option<RemoteLeftovers<M>>, ExecutorError>;
|
|
76
|
+
/** Runs after `recover` reconciled `attempt`'s machine, with whether it succeeded. */
|
|
77
|
+
readonly recovered?: (attempt: AttemptRecovery, succeeded: boolean) => Effect.Effect<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Records whether the machine of `attemptId` has the Attempt's checkout: from its preparation
|
|
80
|
+
* or a recovery that finds it, until its removal succeeds.
|
|
81
|
+
*/
|
|
82
|
+
readonly checkoutHeld?: (attemptId: AttemptId, held: boolean) => Effect.Effect<void>;
|
|
48
83
|
/** See `Executor.preflight`. */
|
|
49
|
-
readonly preflight: (worker: WorkerName, brains: ReadonlyArray<BrainSpec>, maxConcurrentAttempts: number) => Effect.Effect<
|
|
50
|
-
|
|
84
|
+
readonly preflight: (worker: WorkerName, brains: ReadonlyArray<BrainSpec>, maxConcurrentAttempts: number) => Effect.Effect<PreflightReport, ExecutorError>;
|
|
85
|
+
/** Returns the probe of a brain's binary and login through `shell`, on `machine` or in a container on it. */
|
|
86
|
+
readonly harnessProbe: (machine: M, shell: RemoteShell) => HarnessProbe;
|
|
87
|
+
/** Returns how new Attempts on `machine` run, as the Worker's last preflight found. */
|
|
88
|
+
readonly isolation: (machine: M) => Effect.Effect<AttemptIsolation, ExecutorError>;
|
|
89
|
+
/**
|
|
90
|
+
* Whether the Worker kind runs Attempt containers. If true, each existing checkout's container
|
|
91
|
+
* marker decides how a reattachment or recovery runs commands in it.
|
|
92
|
+
*/
|
|
93
|
+
readonly runsContainers: boolean;
|
|
51
94
|
/** Returns the URL the cached clone on `machine` fetches `repository` from. */
|
|
52
95
|
readonly repositoryUrl: (machine: M, repository: RepositoryName) => string;
|
|
53
96
|
/** Returns the credential kind that the Gateway on `machine` injects for `harness`. Returns `None` if the machine has no Gateway or the harness uses its own login. */
|
|
@@ -58,7 +101,10 @@ export interface RemoteWorker<M extends RemoteMachine> {
|
|
|
58
101
|
readonly readOnlyAccessGap: Option.Option<string>;
|
|
59
102
|
/** Removes leftovers of earlier processes that no Attempt can use. Runs before the Worker's checkouts are listed. */
|
|
60
103
|
readonly reclaim: (worker: WorkerName) => Effect.Effect<void>;
|
|
104
|
+
/** See `Executor.sweep`. Defaults to removing nothing. */
|
|
105
|
+
readonly sweep?: Effect.Effect<void>;
|
|
61
106
|
/** The timeout for the parent task's cancellation, then separately for the Attempt to finish. */
|
|
62
107
|
readonly interruptGrace: Parameters<typeof Effect.timeoutOption>[1];
|
|
63
108
|
}
|
|
109
|
+
export {};
|
|
64
110
|
//# sourceMappingURL=machine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/remote/machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/remote/machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EACV,0BAA0B,EAC1B,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,wDAAwD;AACxD,UAAU,eAAe,CAAC,CAAC,SAAS,aAAa;IAC/C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,4GAA4G;IAC5G,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,kGAAkG;IAClG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,+GAA+G;IAC/G,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,6GAA6G;IAC7G,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,0IAA0I;IAC1I,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,uIAAuI;IACvI,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,gHAAgH;IAChH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrD,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,aAAa;IAClD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,iBAAiB,KACzB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CAC9D;AAED,8DAA8D;AAC9D,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,aAAa;IACnD,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,yGAAyG;IACzG,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAC7E;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,KACjB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CACnB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,KACrD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACrE,sFAAsF;IACtF,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3F;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrF,gCAAgC;IAChC,QAAQ,CAAC,SAAS,EAAE,CAClB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,EAChC,qBAAqB,EAAE,MAAM,KAC1B,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACnD,6GAA6G;IAC7G,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,KAAK,YAAY,CAAC;IACxE,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACnF;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,KAAK,MAAM,CAAC;IAC3E,uKAAuK;IACvK,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACzD,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,CACjB,UAAU,EAAE,cAAc,KACvB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;IAC/D,gGAAgG;IAChG,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,qHAAqH;IACrH,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,iGAAiG;IACjG,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE"}
|
package/dist/remote/remote.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ClaudeLoginLock } from "@usine/agents/runtime";
|
|
2
|
+
import type { AttemptId } from "@usine/core/attempt";
|
|
2
3
|
import { type AttemptFailure } from "@usine/core/attempt/failure";
|
|
3
4
|
import type { AttemptRecovery, RecoverySink } from "@usine/core/attempt/salvage";
|
|
4
5
|
import type * as AttemptChannel from "@usine/core/attempt/channel";
|
|
6
|
+
import type { BotAccount, WorkerName } from "@usine/core/worker";
|
|
5
7
|
import { AttemptRuntime } from "@usine/durable/attempt-runtime";
|
|
6
8
|
import { Effect, Option, Scope } from "effect";
|
|
7
9
|
import { CheckoutRequest, ExecutorError } from "../executor.ts";
|
|
@@ -9,16 +11,18 @@ import type { RemoteMachine, RemoteWorker } from "./machine.ts";
|
|
|
9
11
|
/**
|
|
10
12
|
* Returns the executor for Workers accessed over SSH. Each Attempt's Pi parent is a durable task
|
|
11
13
|
* in this process, and each child runs on the machine as one SSH command with a pid file next
|
|
12
|
-
* to the worktree. `worker` provides the machine, preflight,
|
|
14
|
+
* to the worktree, or inside the Attempt's container. `worker` provides the machine, preflight,
|
|
15
|
+
* isolation, and repository access.
|
|
13
16
|
*/
|
|
14
17
|
export declare const remoteExecutorFor: <M extends RemoteMachine>(worker: RemoteWorker<M>) => Effect.Effect<{
|
|
15
|
-
readonly recover: <E>(attempt: AttemptRecovery, record: RecoverySink<E>) => Effect.Effect<void, E | ExecutorError>;
|
|
18
|
+
readonly recover: <E, A>(attempt: AttemptRecovery, record: RecoverySink<E>, commitAuthor: Effect.Effect<BotAccount, A>) => Effect.Effect<void, E | A | ExecutorError>;
|
|
16
19
|
readonly kind: import("@usine/core/worker").WorkerKind;
|
|
17
|
-
readonly isLive: (attemptId:
|
|
18
|
-
readonly outcome: (attemptId:
|
|
19
|
-
readonly preflight: (worker:
|
|
20
|
+
readonly isLive: (attemptId: AttemptId) => Effect.Effect<boolean, AttemptFailure>;
|
|
21
|
+
readonly outcome: (attemptId: AttemptId) => Effect.Effect<Option.Option<import("effect/Result").Result<import("@usine/core/step/result").StepResult, AttemptFailure>>, AttemptFailure>;
|
|
22
|
+
readonly preflight: (worker: WorkerName, brains: ReadonlyArray<import("@usine/core/agent/brain").BrainSpec>, maxConcurrentAttempts: number) => Effect.Effect<import("../executor.ts").PreflightReport, ExecutorError>;
|
|
20
23
|
readonly prepare: (request: CheckoutRequest) => Effect.Effect<import("../executor.ts").PreparedAttempt, ExecutorError, Scope.Scope>;
|
|
21
|
-
readonly cancel: (attemptId: import("@usine/core/attempt").
|
|
22
|
-
readonly intervene: (attemptId:
|
|
24
|
+
readonly cancel: (attemptId: AttemptId, reason: import("@usine/core/attempt").StopReason) => Effect.Effect<void, ExecutorError>;
|
|
25
|
+
readonly intervene: (attemptId: AttemptId, intervention: AttemptChannel.Intervention) => Effect.Effect<void, AttemptFailure>;
|
|
26
|
+
readonly sweep: Effect.Effect<void>;
|
|
23
27
|
}, never, AttemptRuntime | ClaudeLoginLock | Scope.Scope>;
|
|
24
28
|
//# sourceMappingURL=remote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAkB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,KAAK,KAAK,cAAc,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMjE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAY,MAAM,EAAQ,MAAM,EAAU,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAExF,OAAO,EAEL,eAAe,EAEf,aAAa,EAId,MAAM,gBAAgB,CAAC;AAyBxB,OAAO,KAAK,EAAgB,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAkD9E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,aAAa,UAAU,YAAY,CAAC,CAAC,CAAC;;;;;;;;;;yDA03B9E,CAAC"}
|