@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.
Files changed (185) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +116 -19
  3. package/dist/child-command.d.ts +1 -1
  4. package/dist/child-command.d.ts.map +1 -1
  5. package/dist/child-command.js +6 -4
  6. package/dist/child-command.js.map +1 -1
  7. package/dist/child-environment.d.ts +19 -0
  8. package/dist/child-environment.d.ts.map +1 -0
  9. package/dist/child-environment.js +18 -0
  10. package/dist/child-environment.js.map +1 -0
  11. package/dist/claude-login-lock.d.ts +3 -2
  12. package/dist/claude-login-lock.d.ts.map +1 -1
  13. package/dist/claude-login-lock.js +10 -4
  14. package/dist/claude-login-lock.js.map +1 -1
  15. package/dist/cloudflare/client.d.ts +50 -0
  16. package/dist/cloudflare/client.d.ts.map +1 -0
  17. package/dist/cloudflare/client.js +108 -0
  18. package/dist/cloudflare/client.js.map +1 -0
  19. package/dist/cloudflare/cloudflare.d.ts +17 -0
  20. package/dist/cloudflare/cloudflare.d.ts.map +1 -0
  21. package/dist/cloudflare/cloudflare.js +704 -0
  22. package/dist/cloudflare/cloudflare.js.map +1 -0
  23. package/dist/cloudflare/model.d.ts +42 -0
  24. package/dist/cloudflare/model.d.ts.map +1 -0
  25. package/dist/cloudflare/model.js +2 -0
  26. package/dist/cloudflare/model.js.map +1 -0
  27. package/dist/cloudflare/shell/environment.d.ts +12 -0
  28. package/dist/cloudflare/shell/environment.d.ts.map +1 -0
  29. package/dist/cloudflare/shell/environment.js +12 -0
  30. package/dist/cloudflare/shell/environment.js.map +1 -0
  31. package/dist/cloudflare/shell/shell.d.ts +2 -0
  32. package/dist/cloudflare/shell/shell.d.ts.map +1 -0
  33. package/dist/cloudflare/shell/shell.js +155 -0
  34. package/dist/cloudflare/shell/shell.js.map +1 -0
  35. package/dist/durable-session.d.ts +21 -3
  36. package/dist/durable-session.d.ts.map +1 -1
  37. package/dist/durable-session.js +69 -10
  38. package/dist/durable-session.js.map +1 -1
  39. package/dist/exe-dev/commands.d.ts +1 -1
  40. package/dist/exe-dev/commands.d.ts.map +1 -1
  41. package/dist/exe-dev/exe-dev.d.ts +1 -1
  42. package/dist/exe-dev/exe-dev.d.ts.map +1 -1
  43. package/dist/exe-dev/exe-dev.js +9 -1
  44. package/dist/exe-dev/exe-dev.js.map +1 -1
  45. package/dist/exe-dev/preflight.d.ts +2 -2
  46. package/dist/exe-dev/preflight.d.ts.map +1 -1
  47. package/dist/exe-dev/preflight.js +5 -4
  48. package/dist/exe-dev/preflight.js.map +1 -1
  49. package/dist/executor.d.ts +164 -15
  50. package/dist/executor.d.ts.map +1 -1
  51. package/dist/executor.js +100 -3
  52. package/dist/executor.js.map +1 -1
  53. package/dist/guard.d.ts.map +1 -1
  54. package/dist/guard.js +1 -0
  55. package/dist/guard.js.map +1 -1
  56. package/dist/harness-preflight.d.ts +9 -8
  57. package/dist/harness-preflight.d.ts.map +1 -1
  58. package/dist/harness-preflight.js +15 -10
  59. package/dist/harness-preflight.js.map +1 -1
  60. package/dist/local/local.d.ts +1 -1
  61. package/dist/local/local.d.ts.map +1 -1
  62. package/dist/local/local.js +76 -37
  63. package/dist/local/local.js.map +1 -1
  64. package/dist/memory-preflight.d.ts +3 -1
  65. package/dist/memory-preflight.d.ts.map +1 -1
  66. package/dist/memory-preflight.js +1 -1
  67. package/dist/memory-preflight.js.map +1 -1
  68. package/dist/pre-push-hook.d.ts +1 -1
  69. package/dist/pre-push-hook.js +1 -1
  70. package/dist/prepared-attempt.d.ts +8 -0
  71. package/dist/prepared-attempt.d.ts.map +1 -1
  72. package/dist/prepared-attempt.js.map +1 -1
  73. package/dist/provision.d.ts +64 -13
  74. package/dist/provision.d.ts.map +1 -1
  75. package/dist/provision.js +99 -42
  76. package/dist/provision.js.map +1 -1
  77. package/dist/remote/commands.d.ts +1 -1
  78. package/dist/remote/commands.d.ts.map +1 -1
  79. package/dist/remote/commands.js +1 -1
  80. package/dist/remote/commands.js.map +1 -1
  81. package/dist/remote/container.d.ts +90 -0
  82. package/dist/remote/container.d.ts.map +1 -0
  83. package/dist/remote/container.js +480 -0
  84. package/dist/remote/container.js.map +1 -0
  85. package/dist/remote/liveness.d.ts +1 -1
  86. package/dist/remote/liveness.d.ts.map +1 -1
  87. package/dist/remote/liveness.js +6 -4
  88. package/dist/remote/liveness.js.map +1 -1
  89. package/dist/remote/machine.d.ts +52 -6
  90. package/dist/remote/machine.d.ts.map +1 -1
  91. package/dist/remote/remote.d.ts +11 -7
  92. package/dist/remote/remote.d.ts.map +1 -1
  93. package/dist/remote/remote.js +340 -92
  94. package/dist/remote/remote.js.map +1 -1
  95. package/dist/remote/sweep.d.ts +3 -1
  96. package/dist/remote/sweep.d.ts.map +1 -1
  97. package/dist/remote/sweep.js +2 -1
  98. package/dist/remote/sweep.js.map +1 -1
  99. package/dist/salvage.d.ts +18 -10
  100. package/dist/salvage.d.ts.map +1 -1
  101. package/dist/salvage.js +123 -29
  102. package/dist/salvage.js.map +1 -1
  103. package/dist/ssh/api-keys.d.ts +36 -0
  104. package/dist/ssh/api-keys.d.ts.map +1 -0
  105. package/dist/ssh/api-keys.js +72 -0
  106. package/dist/ssh/api-keys.js.map +1 -0
  107. package/dist/ssh/codex-homes.d.ts +21 -0
  108. package/dist/ssh/codex-homes.d.ts.map +1 -0
  109. package/dist/ssh/codex-homes.js +78 -0
  110. package/dist/ssh/codex-homes.js.map +1 -0
  111. package/dist/ssh/container.d.ts +32 -0
  112. package/dist/ssh/container.d.ts.map +1 -0
  113. package/dist/ssh/container.js +282 -0
  114. package/dist/ssh/container.js.map +1 -0
  115. package/dist/ssh/credentials.d.ts +3 -0
  116. package/dist/ssh/credentials.d.ts.map +1 -1
  117. package/dist/ssh/credentials.js +3 -0
  118. package/dist/ssh/credentials.js.map +1 -1
  119. package/dist/ssh/gateway/admin.d.ts +1 -1
  120. package/dist/ssh/gateway/admin.d.ts.map +1 -1
  121. package/dist/ssh/gateway/admin.js +2 -2
  122. package/dist/ssh/gateway/admin.js.map +1 -1
  123. package/dist/ssh/gateway/attachments.d.ts +15 -6
  124. package/dist/ssh/gateway/attachments.d.ts.map +1 -1
  125. package/dist/ssh/gateway/attachments.js +39 -25
  126. package/dist/ssh/gateway/attachments.js.map +1 -1
  127. package/dist/ssh/gateway/environment.d.ts +21 -2
  128. package/dist/ssh/gateway/environment.d.ts.map +1 -1
  129. package/dist/ssh/gateway/environment.js +76 -6
  130. package/dist/ssh/gateway/environment.js.map +1 -1
  131. package/dist/ssh/gateway/forward.d.ts +1 -1
  132. package/dist/ssh/gateway/forward.d.ts.map +1 -1
  133. package/dist/ssh/gateway/forward.js +1 -1
  134. package/dist/ssh/gateway/forward.js.map +1 -1
  135. package/dist/ssh/gateway/preflight.d.ts +51 -12
  136. package/dist/ssh/gateway/preflight.d.ts.map +1 -1
  137. package/dist/ssh/gateway/preflight.js +155 -69
  138. package/dist/ssh/gateway/preflight.js.map +1 -1
  139. package/dist/ssh/limits.d.ts +60 -0
  140. package/dist/ssh/limits.d.ts.map +1 -0
  141. package/dist/ssh/limits.js +84 -0
  142. package/dist/ssh/limits.js.map +1 -0
  143. package/dist/ssh/model.d.ts +97 -9
  144. package/dist/ssh/model.d.ts.map +1 -1
  145. package/dist/ssh/preflight.d.ts +26 -7
  146. package/dist/ssh/preflight.d.ts.map +1 -1
  147. package/dist/ssh/preflight.js +50 -10
  148. package/dist/ssh/preflight.js.map +1 -1
  149. package/dist/ssh/provisioner/boat.d.ts +33 -0
  150. package/dist/ssh/provisioner/boat.d.ts.map +1 -0
  151. package/dist/ssh/provisioner/boat.js +247 -0
  152. package/dist/ssh/provisioner/boat.js.map +1 -0
  153. package/dist/ssh/provisioner/hetzner.d.ts +32 -0
  154. package/dist/ssh/provisioner/hetzner.d.ts.map +1 -0
  155. package/dist/ssh/provisioner/hetzner.js +337 -0
  156. package/dist/ssh/provisioner/hetzner.js.map +1 -0
  157. package/dist/ssh/provisioner/host-key.d.ts +11 -0
  158. package/dist/ssh/provisioner/host-key.d.ts.map +1 -0
  159. package/dist/ssh/provisioner/host-key.js +57 -0
  160. package/dist/ssh/provisioner/host-key.js.map +1 -0
  161. package/dist/ssh/provisioner/http.d.ts +45 -0
  162. package/dist/ssh/provisioner/http.d.ts.map +1 -0
  163. package/dist/ssh/provisioner/http.js +72 -0
  164. package/dist/ssh/provisioner/http.js.map +1 -0
  165. package/dist/ssh/provisioner/machines.d.ts +48 -0
  166. package/dist/ssh/provisioner/machines.d.ts.map +1 -0
  167. package/dist/ssh/provisioner/machines.js +686 -0
  168. package/dist/ssh/provisioner/machines.js.map +1 -0
  169. package/dist/ssh/provisioner/model.d.ts +92 -0
  170. package/dist/ssh/provisioner/model.d.ts.map +1 -0
  171. package/dist/ssh/provisioner/model.js +37 -0
  172. package/dist/ssh/provisioner/model.js.map +1 -0
  173. package/dist/ssh/ssh.d.ts +14 -11
  174. package/dist/ssh/ssh.d.ts.map +1 -1
  175. package/dist/ssh/ssh.js +94 -27
  176. package/dist/ssh/ssh.js.map +1 -1
  177. package/dist/ssh/worker-records.d.ts +18 -0
  178. package/dist/ssh/worker-records.d.ts.map +1 -0
  179. package/dist/ssh/worker-records.js +100 -0
  180. package/dist/ssh/worker-records.js.map +1 -0
  181. package/dist/ssh/workers.d.ts +34 -7
  182. package/dist/ssh/workers.d.ts.map +1 -1
  183. package/dist/ssh/workers.js +92 -18
  184. package/dist/ssh/workers.js.map +1 -1
  185. package/package.json +19 -11
@@ -1,16 +1,19 @@
1
- import type { WorkerName } from "@usine/core/worker";
2
- import { Context, Effect, Scope } from "effect";
3
- import { HttpClient } from "effect/unstable/http";
4
- import { ChildProcessSpawner } from "effect/unstable/process";
1
+ import type { SshCommand } from "@usine/agents/child-host";
2
+ import type { MachineId, MachineProvider, WorkerName } from "@usine/core/worker";
3
+ import { Context, Effect, Option, Scope } from "effect";
4
+ import { HttpClient } from "effect/http";
5
+ import { ChildProcessSpawner } from "effect/process";
5
6
  import { WorkerCapabilityError } from "../executor.ts";
6
7
  import type { RemoteCommands } from "../remote/commands.ts";
7
- import type { SshMachine, SshWorkerAddress } from "./model.ts";
8
+ import type { MachineGateway, SshMachine, SshWorkerAddress } from "./model.ts";
9
+ import type { MachineEndpoint } from "./provisioner/model.ts";
8
10
  declare const SshWorkers_base: Context.ServiceClass<SshWorkers, "@usine/executor/SshWorkers", {
9
11
  /**
10
12
  * Adds the machine at `address` for preflight and Attempts. Behind a Gateway, shares the admin
11
13
  * API forward with other Workers that have the same `destination` and `adminPort`, or opens it.
12
14
  * Adding a Worker again with the same address does nothing; with a different address, fails
13
- * with a `machine` capability error.
15
+ * with a `machine` capability error. The SSH executor's `addWorker` also records how to reach
16
+ * a long-lived Worker's machine in `SshExecutorOptions.workerRecordsDirectory`.
14
17
  */
15
18
  readonly addWorker: (address: SshWorkerAddress) => Effect.Effect<void, WorkerCapabilityError>;
16
19
  /**
@@ -23,6 +26,26 @@ declare const SshWorkers_base: Context.ServiceClass<SshWorkers, "@usine/executor
23
26
  /** The Workers of the SSH executor, starting with `SshExecutorOptions.workers`. A reload adds and removes Workers at runtime. */
24
27
  export declare class SshWorkers extends SshWorkers_base {
25
28
  }
29
+ /** A Worker the executor has: its address and Gateway, and its machine if it's long-lived. */
30
+ export interface SshWorkerEntry {
31
+ readonly address: SshWorkerAddress;
32
+ readonly gateway: Option.Option<MachineGateway>;
33
+ /** `None` for a provisioned Worker, whose machines exist one per Attempt. */
34
+ readonly machine: Option.Option<SshMachine>;
35
+ }
36
+ /** Returns the directory of a Worker's state on its machine, `<root>/workers/<name>`. */
37
+ export declare const workerDirectoryOf: (address: Pick<SshWorkerAddress, "root" | "name">) => string;
38
+ /** Returns the SSH command for one Worker: the shared options, then its port and key. */
39
+ export declare const sshCommandFor: (base: SshCommand, address: Pick<SshWorkerAddress, "port" | "identityFile">) => SshCommand;
40
+ /** A provisioned machine's pinned SSH host key: its `known_hosts` file and the name the key is recorded under. */
41
+ export interface PinnedHostKey {
42
+ readonly file: string;
43
+ readonly alias: string;
44
+ }
45
+ /** Returns the name that a provisioned machine's host key is recorded under. */
46
+ export declare const hostKeyAlias: (provider: MachineProvider, id: MachineId) => string;
47
+ /** Returns the `known_hosts` line that pins `key` for the machine recorded under `alias`. */
48
+ export declare const knownHostsLine: (alias: string, key: string) => string;
26
49
  /**
27
50
  * Returns the SSH Workers' machines, which `addWorker` and `removeWorker` change at runtime and
28
51
  * `machineFor` reads on each call. Each admin API forward runs in its own child scope and
@@ -33,12 +56,16 @@ export declare const sshMachinesFor: (base: {
33
56
  readonly args: readonly string[];
34
57
  }, commands: RemoteCommands) => Effect.Effect<{
35
58
  machineFor: (worker: string & import("effect/Brand").Brand<"WorkerName">) => Effect.Effect<SshMachine, WorkerCapabilityError, never>;
59
+ workerFor: (worker: string & import("effect/Brand").Brand<"WorkerName">) => Effect.Effect<SshWorkerEntry, WorkerCapabilityError, never>;
60
+ machineAt: (entry: SshWorkerEntry, id: MachineId, endpoint: MachineEndpoint, hostKey: PinnedHostKey) => SshMachine;
61
+ entries: Effect.Effect<SshWorkerEntry[], never, never>;
36
62
  workers: {
37
63
  /**
38
64
  * Adds the machine at `address` for preflight and Attempts. Behind a Gateway, shares the admin
39
65
  * API forward with other Workers that have the same `destination` and `adminPort`, or opens it.
40
66
  * Adding a Worker again with the same address does nothing; with a different address, fails
41
- * with a `machine` capability error.
67
+ * with a `machine` capability error. The SSH executor's `addWorker` also records how to reach
68
+ * a long-lived Worker's machine in `SshExecutorOptions.workerRecordsDirectory`.
42
69
  */
43
70
  readonly addWorker: (address: SshWorkerAddress) => Effect.Effect<void, WorkerCapabilityError>;
44
71
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/ssh/workers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,EAA4B,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAAkB,UAAU,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;;IAM7F;;;;;OAKG;wBACiB,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAC7F;;;;OAIG;2BACoB,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAhBtE,iIAAiI;AACjI,qBAAa,UAAW,SAAQ,eAiBC;CAAG;AA8BpC;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;QAjDvB;;;;;WAKG;4BACiB,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC;QAC7F;;;;WAIG;+BACoB,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;wFAoNpE,CAAC"}
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/ssh/workers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAe,MAAM,EAAO,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAEV,cAAc,EACd,UAAU,EACV,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;;IAM1D;;;;;;OAMG;wBACiB,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAC7F;;;;OAIG;2BACoB,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAjBtE,iIAAiI;AACjI,qBAAa,UAAW,SAAQ,eAkBC;CAAG;AAQpC,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CAC7C;AAiBD,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,YAAa,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC,KAAG,MAC7B,CAAC;AAEzD,yFAAyF;AACzF,eAAO,MAAM,aAAa,SAClB,UAAU,WACP,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,CAAC,KACvD,UAUD,CAAC;AAEH,kHAAkH;AAClH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAmCD,gFAAgF;AAChF,eAAO,MAAM,YAAY,aAAc,eAAe,MAAM,SAAS,KAAG,MAC7C,CAAC;AAE5B,6FAA6F;AAC7F,eAAO,MAAM,cAAc,UAAW,MAAM,OAAO,MAAM,KAAG,MAA6B,CAAC;AAE1F;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;uBA4MhB,cAAc,MACjB,SAAS,YACH,eAAe,WAChB,aAAa,KACrB,UAAU;;;QArUX;;;;;;WAMG;4BACiB,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC;QAC7F;;;;WAIG;+BACoB,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;wFA4UpE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { safeSegment } from "@usine/core/repository";
2
2
  import { Context, Effect, Equal, Exit, Option, Ref, Scope, SynchronizedRef } from "effect";
3
- import { HttpClient } from "effect/unstable/http";
4
- import { ChildProcessSpawner } from "effect/unstable/process";
3
+ import { HttpClient } from "effect/http";
4
+ import { ChildProcessSpawner } from "effect/process";
5
5
  import { WorkerCapabilityError } from "../executor.js";
6
6
  import { gatewayAdminFor } from "./gateway/admin.js";
7
7
  import { gatewayForwardFor } from "./gateway/forward.js";
@@ -9,8 +9,14 @@ import { gatewayForwardFor } from "./gateway/forward.js";
9
9
  export class SshWorkers extends Context.Service()("@usine/executor/SshWorkers") {
10
10
  }
11
11
  const forwardKey = ({ destination, adminPort }) => `${destination} ${String(adminPort)}`;
12
+ /** Returns where a Worker's machines are, for logs: its destination, or its provider. */
13
+ const placeOf = (address) => address.machine._tag === "Fixed"
14
+ ? address.machine.destination
15
+ : `a ${address.machine.provisioner.provider} machine per attempt`;
16
+ /** Returns the directory of a Worker's state on its machine, `<root>/workers/<name>`. */
17
+ export const workerDirectoryOf = (address) => `${address.root}/workers/${safeSegment(address.name)}`;
12
18
  /** Returns the SSH command for one Worker: the shared options, then its port and key. */
13
- const sshCommandFor = (base, address) => ({
19
+ export const sshCommandFor = (base, address) => ({
14
20
  command: base.command,
15
21
  args: [
16
22
  ...base.args,
@@ -21,6 +27,37 @@ const sshCommandFor = (base, address) => ({
21
27
  }),
22
28
  ],
23
29
  });
30
+ /**
31
+ * Returns the SSH command for a machine created for one Attempt: the shared options, its pinned
32
+ * host key, the Gateway as jump host if the Worker has one, and its port and the Worker's key.
33
+ * The key is recorded under an alias rather than the address, so it holds for the machine
34
+ * whatever address it reports, and the client accepts no other key.
35
+ */
36
+ const provisionedSshCommandFor = (base, entry, endpoint, hostKey) => ({
37
+ command: base.command,
38
+ args: [
39
+ ...base.args,
40
+ "-o",
41
+ `UserKnownHostsFile=${hostKey.file}`,
42
+ "-o",
43
+ `HostKeyAlias=${hostKey.alias}`,
44
+ "-o",
45
+ "StrictHostKeyChecking=yes",
46
+ ...Option.match(entry.gateway, {
47
+ onNone: () => [],
48
+ onSome: ({ settings }) => ["-J", settings.destination],
49
+ }),
50
+ ...Option.match(endpoint.port, { onNone: () => [], onSome: (port) => ["-p", String(port)] }),
51
+ ...Option.match(entry.address.identityFile, {
52
+ onNone: () => [],
53
+ onSome: (file) => ["-i", file, "-o", "IdentitiesOnly=yes"],
54
+ }),
55
+ ],
56
+ });
57
+ /** Returns the name that a provisioned machine's host key is recorded under. */
58
+ export const hostKeyAlias = (provider, id) => `usine-${provider}-${id}`;
59
+ /** Returns the `known_hosts` line that pins `key` for the machine recorded under `alias`. */
60
+ export const knownHostsLine = (alias, key) => `${alias} ${key}\n`;
24
61
  /**
25
62
  * Returns the SSH Workers' machines, which `addWorker` and `removeWorker` change at runtime and
26
63
  * `machineFor` reads on each call. Each admin API forward runs in its own child scope and
@@ -51,14 +88,17 @@ export const sshMachinesFor = Effect.fnUntraced(function* (base, commands) {
51
88
  onNone: () => new Set([address.name]),
52
89
  onSome: (held) => new Set([...held.workers, address.name]),
53
90
  });
54
- const anthropicCredential = yield* Ref.make(Option.none());
91
+ const credentials = yield* Ref.make({
92
+ anthropic: Option.none(),
93
+ openai: Option.none(),
94
+ });
55
95
  const warnedOfUnreportedCredential = yield* Ref.make(false);
56
96
  return {
57
97
  gateway: {
58
98
  settings,
59
99
  forward,
60
100
  admin,
61
- anthropicCredential,
101
+ credentials,
62
102
  warnedOfUnreportedCredential,
63
103
  },
64
104
  forwards: new Map(current.forwards).set(key, { forward, scope: forwardScope, workers }),
@@ -68,7 +108,7 @@ export const sshMachinesFor = Effect.fnUntraced(function* (base, commands) {
68
108
  const addWorker = Effect.fn("SshExecutor.addWorker")(function* (address) {
69
109
  const fields = {
70
110
  worker: address.name,
71
- host: address.destination,
111
+ host: placeOf(address),
72
112
  ...Option.match(address.gateway, {
73
113
  onNone: () => ({}),
74
114
  onSome: ({ destination }) => ({ gateway: destination }),
@@ -84,20 +124,28 @@ export const sshMachinesFor = Effect.fnUntraced(function* (base, commands) {
84
124
  worker: address.name,
85
125
  capability: "machine",
86
126
  message: `Can't change the settings of SSH worker "${address.name}" while its attempts run. Reload again after they end.`,
87
- cause: new Error(`SSH worker "${address.name}" is in use at ${existing.address.destination}`),
127
+ cause: new Error(`SSH worker "${address.name}" is in use at ${placeOf(existing.address)}`),
88
128
  });
89
129
  }
90
130
  const behind = yield* Effect.transposeOption(Option.map(address.gateway, (settings) => gatewayFor(current, address, settings)));
91
- const machine = {
131
+ const gateway = Option.map(behind, ({ gateway }) => gateway);
132
+ const entry = {
92
133
  address,
93
- gateway: Option.map(behind, ({ gateway }) => gateway),
94
- shell: commands.shellFor(sshCommandFor(base, address), address.destination),
95
- workerDirectory: `${address.root}/workers/${safeSegment(address.name)}`,
134
+ gateway,
135
+ machine: address.machine._tag === "Fixed"
136
+ ? Option.some({
137
+ address,
138
+ gateway,
139
+ shell: commands.shellFor(sshCommandFor(base, address), address.machine.destination),
140
+ workerDirectory: workerDirectoryOf(address),
141
+ provisioned: Option.none(),
142
+ })
143
+ : Option.none(),
96
144
  };
97
145
  return [
98
146
  Option.some(Option.exists(behind, ({ opened }) => opened)),
99
147
  {
100
- byWorker: new Map(current.byWorker).set(address.name, machine),
148
+ byWorker: new Map(current.byWorker).set(address.name, entry),
101
149
  forwards: Option.match(behind, {
102
150
  onNone: () => current.forwards,
103
151
  onSome: ({ forwards }) => forwards,
@@ -143,7 +191,7 @@ export const sshMachinesFor = Effect.fnUntraced(function* (base, commands) {
143
191
  return;
144
192
  }
145
193
  const { machine, left } = removed.value;
146
- const fields = { worker, host: machine.address.destination };
194
+ const fields = { worker, host: placeOf(machine.address) };
147
195
  if (Option.isNone(left)) {
148
196
  yield* Effect.logInfo("SSH Worker removed from the executor", fields);
149
197
  return;
@@ -157,17 +205,43 @@ export const sshMachinesFor = Effect.fnUntraced(function* (base, commands) {
157
205
  yield* Scope.close(held.scope, Exit.void);
158
206
  yield* Effect.logInfo("SSH Worker removed from the executor; it was the last behind its Gateway, so the forward to the Gateway's admin API closed", gatewayFields);
159
207
  });
160
- const machineFor = Effect.fn("SshExecutor.machineFor")(function* (worker) {
161
- const machine = (yield* SynchronizedRef.get(machines)).byWorker.get(worker);
162
- if (machine === undefined)
208
+ const workerFor = Effect.fn("SshExecutor.workerFor")(function* (worker) {
209
+ const entry = (yield* SynchronizedRef.get(machines)).byWorker.get(worker);
210
+ if (entry === undefined)
163
211
  return yield* new WorkerCapabilityError({
164
212
  worker,
165
213
  capability: "machine",
166
214
  message: `No SSH worker named "${worker}" is configured`,
167
215
  cause: new Error("SSH worker address missing"),
168
216
  });
169
- return machine;
217
+ return entry;
218
+ });
219
+ /** Returns a long-lived Worker's machine. Fails for a provisioned Worker, which has none. */
220
+ const machineFor = Effect.fn("SshExecutor.machineFor")(function* (worker) {
221
+ const entry = yield* workerFor(worker);
222
+ if (Option.isNone(entry.machine))
223
+ return yield* new WorkerCapabilityError({
224
+ worker,
225
+ capability: "machine",
226
+ message: `SSH worker "${worker}" creates a machine for each attempt, so it has no machine of its own`,
227
+ cause: new Error("provisioned SSH worker"),
228
+ });
229
+ return entry.machine.value;
230
+ });
231
+ /** Returns the machine at `endpoint` that a provider created for one Attempt on `entry`'s Worker. */
232
+ const machineAt = (entry, id, endpoint, hostKey) => ({
233
+ address: entry.address,
234
+ gateway: entry.gateway,
235
+ shell: commands.shellFor(provisionedSshCommandFor(base, entry, endpoint, hostKey), endpoint.destination),
236
+ workerDirectory: workerDirectoryOf(entry.address),
237
+ provisioned: Option.some(id),
170
238
  });
171
- return { machineFor, workers: SshWorkers.of({ addWorker, removeWorker }) };
239
+ return {
240
+ machineFor,
241
+ workerFor,
242
+ machineAt,
243
+ entries: SynchronizedRef.get(machines).pipe(Effect.map(({ byWorker }) => [...byWorker.values()])),
244
+ workers: SshWorkers.of({ addWorker, removeWorker }),
245
+ };
172
246
  });
173
247
  //# sourceMappingURL=workers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/ssh/workers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/ssh/workers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@usine/executor",
3
- "version": "0.3.0",
4
- "description": "The usine scoped Worker contract with local, exe.dev, and SSH adapters.",
5
- "license": "MIT",
3
+ "version": "0.4.1-next.240.g158c84b",
4
+ "description": "The usine scoped Worker contract with local, exe.dev, SSH, and Cloudflare adapters.",
5
+ "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/basaltbytes/usine.git",
@@ -19,6 +19,10 @@
19
19
  "types": "./dist/executor.d.ts",
20
20
  "default": "./dist/executor.js"
21
21
  },
22
+ "./cloudflare": {
23
+ "types": "./dist/cloudflare/cloudflare.d.ts",
24
+ "default": "./dist/cloudflare/cloudflare.js"
25
+ },
22
26
  "./exe-dev": {
23
27
  "types": "./dist/exe-dev/exe-dev.d.ts",
24
28
  "default": "./dist/exe-dev/exe-dev.js"
@@ -36,20 +40,24 @@
36
40
  "access": "public"
37
41
  },
38
42
  "dependencies": {
39
- "@usine/agents": "0.4.0",
40
- "@usine/core": "0.4.0",
41
- "@usine/durable": "0.1.0",
42
- "@usine/gateway": "0.1.0"
43
+ "@usine/agents": "0.5.1-next.240.g158c84b",
44
+ "@usine/cloudflare": "0.1.1-next.240.g158c84b",
45
+ "@usine/core": "0.5.1-next.240.g158c84b",
46
+ "@usine/durable": "0.2.1-next.240.g158c84b",
47
+ "@usine/gateway": "0.2.1-next.240.g158c84b"
43
48
  },
44
49
  "devDependencies": {
45
- "@effect/vitest": "4.0.0-rc.111",
46
- "effect": "4.0.0-rc.111",
50
+ "@effect/platform-node": "4.0.6",
51
+ "@effect/vitest": "4.0.6",
52
+ "@types/ws": "8.18.2",
53
+ "effect": "4.0.6",
47
54
  "typescript": "7.0.2",
48
- "vitest": "4.1.11",
55
+ "vitest": "5.0.5",
56
+ "ws": "8.22.0",
49
57
  "@usine/tsconfig": "0.0.0"
50
58
  },
51
59
  "peerDependencies": {
52
- "effect": "4.0.0-rc.111"
60
+ "effect": "4.0.6"
53
61
  },
54
62
  "engines": {
55
63
  "node": ">=22"