@usine/orchestrator 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.
Files changed (148) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +32 -9
  3. package/dist/board/items.d.ts +14 -3
  4. package/dist/board/items.d.ts.map +1 -1
  5. package/dist/board/items.js +29 -1
  6. package/dist/board/items.js.map +1 -1
  7. package/dist/board/projection.d.ts +2 -1
  8. package/dist/board/projection.d.ts.map +1 -1
  9. package/dist/board/projection.js +20 -10
  10. package/dist/board/projection.js.map +1 -1
  11. package/dist/board/tasks.d.ts +1 -1
  12. package/dist/board/tasks.d.ts.map +1 -1
  13. package/dist/board/tasks.js +7 -3
  14. package/dist/board/tasks.js.map +1 -1
  15. package/dist/cloudflare.d.ts +32 -0
  16. package/dist/cloudflare.d.ts.map +1 -0
  17. package/dist/cloudflare.js +68 -0
  18. package/dist/cloudflare.js.map +1 -0
  19. package/dist/current-instance/changes.d.ts +3 -3
  20. package/dist/current-instance/changes.d.ts.map +1 -1
  21. package/dist/current-instance/changes.js +6 -3
  22. package/dist/current-instance/changes.js.map +1 -1
  23. package/dist/current-instance/current-instance.d.ts +3 -3
  24. package/dist/exe-dev.d.ts +1 -1
  25. package/dist/exe-dev.d.ts.map +1 -1
  26. package/dist/exe-dev.js +3 -1
  27. package/dist/exe-dev.js.map +1 -1
  28. package/dist/http-client.d.ts +8 -0
  29. package/dist/http-client.d.ts.map +1 -0
  30. package/dist/http-client.js +8 -0
  31. package/dist/http-client.js.map +1 -0
  32. package/dist/lease-order.d.ts +60 -0
  33. package/dist/lease-order.d.ts.map +1 -0
  34. package/dist/lease-order.js +76 -0
  35. package/dist/lease-order.js.map +1 -0
  36. package/dist/local.d.ts +1 -1
  37. package/dist/local.d.ts.map +1 -1
  38. package/dist/local.js +3 -1
  39. package/dist/local.js.map +1 -1
  40. package/dist/operator/attempt.d.ts +22 -3
  41. package/dist/operator/attempt.d.ts.map +1 -1
  42. package/dist/operator/attempt.js +22 -3
  43. package/dist/operator/attempt.js.map +1 -1
  44. package/dist/operator/board.d.ts +8 -3
  45. package/dist/operator/board.d.ts.map +1 -1
  46. package/dist/operator/board.js +8 -4
  47. package/dist/operator/board.js.map +1 -1
  48. package/dist/operator/configuration.d.ts +65 -9
  49. package/dist/operator/configuration.d.ts.map +1 -1
  50. package/dist/operator/configuration.js +90 -10
  51. package/dist/operator/configuration.js.map +1 -1
  52. package/dist/operator/desk.d.ts +33 -8
  53. package/dist/operator/desk.d.ts.map +1 -1
  54. package/dist/operator/desk.js +73 -11
  55. package/dist/operator/desk.js.map +1 -1
  56. package/dist/operator/http.d.ts +14 -79
  57. package/dist/operator/http.d.ts.map +1 -1
  58. package/dist/operator/http.js +20 -14
  59. package/dist/operator/http.js.map +1 -1
  60. package/dist/operator/machines.d.ts +71 -0
  61. package/dist/operator/machines.d.ts.map +1 -0
  62. package/dist/operator/machines.js +103 -0
  63. package/dist/operator/machines.js.map +1 -0
  64. package/dist/operator/need.d.ts +15 -1
  65. package/dist/operator/need.d.ts.map +1 -1
  66. package/dist/operator/need.js +15 -0
  67. package/dist/operator/need.js.map +1 -1
  68. package/dist/operator/operator.d.ts +36 -10
  69. package/dist/operator/operator.d.ts.map +1 -1
  70. package/dist/operator/operator.js +136 -31
  71. package/dist/operator/operator.js.map +1 -1
  72. package/dist/operator/overview.d.ts +2 -2
  73. package/dist/operator/projection.d.ts +2 -0
  74. package/dist/operator/projection.d.ts.map +1 -1
  75. package/dist/operator/projection.js +12 -4
  76. package/dist/operator/projection.js.map +1 -1
  77. package/dist/operator/run.d.ts +30 -0
  78. package/dist/operator/run.d.ts.map +1 -1
  79. package/dist/operator/run.js +31 -1
  80. package/dist/operator/run.js.map +1 -1
  81. package/dist/operator/statistics/cache.d.ts +7 -0
  82. package/dist/operator/statistics/cache.d.ts.map +1 -0
  83. package/dist/operator/statistics/cache.js +40 -0
  84. package/dist/operator/statistics/cache.js.map +1 -0
  85. package/dist/operator/statistics/runs.d.ts +36 -0
  86. package/dist/operator/statistics/runs.d.ts.map +1 -0
  87. package/dist/operator/statistics/runs.js +284 -0
  88. package/dist/operator/statistics/runs.js.map +1 -0
  89. package/dist/operator/statistics/statistics.d.ts +20 -0
  90. package/dist/operator/statistics/statistics.d.ts.map +1 -0
  91. package/dist/operator/statistics/statistics.js +138 -0
  92. package/dist/operator/statistics/statistics.js.map +1 -0
  93. package/dist/operator/statistics/tasks.d.ts +30 -0
  94. package/dist/operator/statistics/tasks.d.ts.map +1 -0
  95. package/dist/operator/statistics/tasks.js +244 -0
  96. package/dist/operator/statistics/tasks.js.map +1 -0
  97. package/dist/operator/statistics/view.d.ts +302 -0
  98. package/dist/operator/statistics/view.d.ts.map +1 -0
  99. package/dist/operator/statistics/view.js +243 -0
  100. package/dist/operator/statistics/view.js.map +1 -0
  101. package/dist/operator/statistics/window.d.ts +24 -0
  102. package/dist/operator/statistics/window.d.ts.map +1 -0
  103. package/dist/operator/statistics/window.js +47 -0
  104. package/dist/operator/statistics/window.js.map +1 -0
  105. package/dist/operator/task.d.ts +2 -1
  106. package/dist/operator/task.d.ts.map +1 -1
  107. package/dist/operator/task.js +3 -3
  108. package/dist/operator/task.js.map +1 -1
  109. package/dist/operator/usage.d.ts +10 -18
  110. package/dist/operator/usage.d.ts.map +1 -1
  111. package/dist/operator/usage.js +57 -42
  112. package/dist/operator/usage.js.map +1 -1
  113. package/dist/polling/closed-item-asks.d.ts +8 -0
  114. package/dist/polling/closed-item-asks.d.ts.map +1 -0
  115. package/dist/polling/closed-item-asks.js +28 -0
  116. package/dist/polling/closed-item-asks.js.map +1 -0
  117. package/dist/polling/open-pull-requests.d.ts +28 -0
  118. package/dist/polling/open-pull-requests.d.ts.map +1 -0
  119. package/dist/polling/open-pull-requests.js +131 -0
  120. package/dist/polling/open-pull-requests.js.map +1 -0
  121. package/dist/polling/polling.d.ts.map +1 -1
  122. package/dist/polling/polling.js +31 -18
  123. package/dist/polling/polling.js.map +1 -1
  124. package/dist/polling/repository-sync.d.ts +1 -0
  125. package/dist/polling/repository-sync.d.ts.map +1 -1
  126. package/dist/polling/repository-sync.js +1 -1
  127. package/dist/polling/repository-sync.js.map +1 -1
  128. package/dist/runtime.d.ts +2 -2
  129. package/dist/runtime.d.ts.map +1 -1
  130. package/dist/runtime.js +10 -10
  131. package/dist/runtime.js.map +1 -1
  132. package/dist/scheduler.d.ts +13 -4
  133. package/dist/scheduler.d.ts.map +1 -1
  134. package/dist/scheduler.js +312 -55
  135. package/dist/scheduler.js.map +1 -1
  136. package/dist/ssh.d.ts +71 -7
  137. package/dist/ssh.d.ts.map +1 -1
  138. package/dist/ssh.js +84 -15
  139. package/dist/ssh.js.map +1 -1
  140. package/dist/worker-engine.d.ts +7 -4
  141. package/dist/worker-engine.d.ts.map +1 -1
  142. package/dist/worker-engine.js +36 -5
  143. package/dist/worker-engine.js.map +1 -1
  144. package/dist/worker-status.d.ts +80 -10
  145. package/dist/worker-status.d.ts.map +1 -1
  146. package/dist/worker-status.js +31 -10
  147. package/dist/worker-status.js.map +1 -1
  148. package/package.json +29 -25
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/dist/ssh.d.ts CHANGED
@@ -1,18 +1,76 @@
1
+ import { NodeServices } from "@effect/platform-node";
1
2
  import type { SshWorker, UsineConfig } from "@usine/config/factory";
2
3
  import type { BrainSpec } from "@usine/core/agent/brain";
3
4
  import type { InstanceDirectory } from "@usine/core/instance";
4
5
  import { WorkerCapabilityError } from "@usine/executor";
5
6
  import { type SshExecutorOptions, SshWorkers } from "@usine/executor/ssh";
6
7
  import { Effect, Layer, Option } from "effect";
8
+ import { type StepExecutorOptions } from "./scheduler.ts";
9
+ /** Returns where the SSH executor records how to reach each long-lived SSH Worker's machine. */
10
+ export declare const sshWorkerRecordsDirectory: (instanceDirectory: InstanceDirectory) => string;
11
+ /**
12
+ * Returns the layer that `make` builds with a `StepExecutor.discard` that removes the Codex homes
13
+ * of the discarded Attempts on an SSH Worker whose machine `sshWorkerRecordsDirectory` records.
14
+ * Every executor kind uses it, since `usine.yaml` can replace the SSH Workers with Workers of
15
+ * another kind.
16
+ */
17
+ export declare const withSshWorkerDiscard: <A, E, R>(instanceDirectory: InstanceDirectory, make: (discard: NonNullable<StepExecutorOptions["discard"]>) => Layer.Layer<A, E, R>) => Layer.Layer<A, E, Exclude<R, NodeServices.NodeServices>>;
7
18
  /** Returns the SSH Workers that `usine.yaml` declares, in declared order. */
8
19
  export declare const sshWorkersOf: (config: UsineConfig) => ReadonlyArray<SshWorker>;
9
20
  /**
10
- * Returns how the executor connects to each declared SSH Worker, reading Gateway admin tokens at
11
- * startup. If an `admin_token_env` variable is unset, fails with a `gateway` capability error.
21
+ * Returns how the executor connects to each declared SSH Worker, reading Gateway admin tokens and
22
+ * provisioner tokens and API keys at startup. If a variable is unset, fails with a capability
23
+ * error that names it.
12
24
  */
13
25
  export declare const sshWorkerAddressesOf: (config: UsineConfig) => Effect.Effect<{
14
26
  name: string & import("effect/Brand").Brand<"WorkerName">;
15
- destination: string & import("effect/Brand").Brand<"SshDestination">;
27
+ machine: {
28
+ _tag: "Fixed";
29
+ destination: string & import("effect/Brand").Brand<"SshDestination">;
30
+ provisioner?: never;
31
+ } | {
32
+ destination?: never;
33
+ _tag: "Provisioned";
34
+ provisioner: {
35
+ provider: "hetzner";
36
+ token: import("effect/Redacted").Redacted<string>;
37
+ serverType: string & import("effect/Brand").Brand<"HetznerServerType">;
38
+ location: string & import("effect/Brand").Brand<"HetznerLocation">;
39
+ image: string & import("effect/Brand").Brand<"HetznerImage">;
40
+ network: Option.Option<string & import("effect/Brand").Brand<"HetznerResourceName">>;
41
+ firewall: Option.Option<string & import("effect/Brand").Brand<"HetznerResourceName">>;
42
+ sshKey: string & import("effect/Brand").Brand<"HetznerResourceName">;
43
+ sshUser: string & import("effect/Brand").Brand<"SshUser">;
44
+ labels: {
45
+ readonly [x: string]: string;
46
+ };
47
+ apiKeys: {
48
+ anthropic: Option.Option<import("effect/Redacted").Redacted<string>>;
49
+ openai: Option.Option<import("effect/Redacted").Redacted<string>>;
50
+ };
51
+ size?: never;
52
+ };
53
+ } | {
54
+ destination?: never;
55
+ _tag: "Provisioned";
56
+ provisioner: {
57
+ serverType?: never;
58
+ location?: never;
59
+ image?: never;
60
+ network?: never;
61
+ firewall?: never;
62
+ sshKey?: never;
63
+ sshUser?: never;
64
+ labels?: never;
65
+ provider: "boat";
66
+ token: import("effect/Redacted").Redacted<string>;
67
+ size: "default" | "large" | "small" | "xlarge";
68
+ apiKeys: {
69
+ anthropic: Option.Option<import("effect/Redacted").Redacted<string>>;
70
+ openai: Option.Option<import("effect/Redacted").Redacted<string>>;
71
+ };
72
+ };
73
+ };
16
74
  identityFile: Option.Option<string & import("effect/Brand").Brand<"SshIdentityFile">>;
17
75
  port: Option.Option<number & import("effect/Brand").Brand<"SshPort">>;
18
76
  root: string & import("effect/Brand").Brand<"WorkerRoot">;
@@ -21,19 +79,25 @@ export declare const sshWorkerAddressesOf: (config: UsineConfig) => Effect.Effec
21
79
  destination: string & import("effect/Brand").Brand<"SshDestination">;
22
80
  adminPort: number & import("effect/Brand").Brand<"GatewayAdminPort">;
23
81
  adminToken: import("effect/Redacted").Redacted<string>;
24
- llmProviders: readonly "anthropic"[];
82
+ llmProviders: readonly ("anthropic" | "openai")[];
25
83
  }>;
84
+ container: {
85
+ image: Option.Option<string & import("effect/Brand").Brand<"ContainerImage">>;
86
+ cpus: Option.Option<number & import("effect/Brand").Brand<"ContainerCpus">>;
87
+ memoryMib: Option.Option<number & import("effect/Brand").Brand<"ContainerMemoryMib">>;
88
+ pids: Option.Option<number & import("effect/Brand").Brand<"ContainerPids">>;
89
+ };
26
90
  }[], WorkerCapabilityError, never>;
27
91
  /**
28
92
  * Provides the scheduler over the SSH executor, so reloads can resize, add, and remove SSH Workers.
29
93
  * A reload that adds a Worker fails with a `gateway` capability error if its `admin_token_env`
30
- * variable is unset.
94
+ * variable is unset. `options.discard` is `StepExecutor.discard`.
31
95
  */
32
- export declare const sshStepExecutorLayer: (config: UsineConfig, brains: ReadonlyArray<BrainSpec>) => Layer.Layer<import("@usine/engine/step-executor").StepExecutor | import("./worker-status.ts").WorkerStatus, import("@usine/executor").CredentialUnavailableError | import("@usine/executor").ExecutorOperationError | import("./scheduler.ts").UnsupportedWorkerError | WorkerCapabilityError, import("./current-instance/current-instance.ts").CurrentInstance | import("@usine/executor").Executor | import("@usine/github/github-app").GitHubApp | SshWorkers>;
96
+ export declare const sshStepExecutorLayer: (config: UsineConfig, brains: ReadonlyArray<BrainSpec>, options?: Pick<StepExecutorOptions, "discard">) => Layer.Layer<import("@usine/engine/step-executor").StepExecutor | import("./worker-status.ts").WorkerStatus, import("@usine/executor").CredentialUnavailableError | import("@usine/executor").ExecutorOperationError | import("./scheduler.ts").UnsupportedWorkerError | WorkerCapabilityError, import("./current-instance/current-instance.ts").CurrentInstance | import("@usine/executor").Executor | import("@usine/github/github-app").GitHubApp | SshWorkers>;
33
97
  /**
34
98
  * Provides the full engine and `WorkerStatus` for SSH Workers. Requires `CredentialProvider`,
35
99
  * `GitHubApp`, `TriggerCondition`, `AttemptRuntime` (built before the engine), `ClaudeLoginLock`,
36
100
  * and `CurrentInstance`.
37
101
  */
38
- export declare const layer: (instanceDirectory: InstanceDirectory, config: UsineConfig, brains: ReadonlyArray<BrainSpec>, options: SshExecutorOptions) => Layer.Layer<import("@usine/engine/board-moves").BoardMoves | import("@usine/engine/cursor").CursorStore | import("@usine/engine/cycle-budget").CycleBudgets | import("@usine/engine/item-projection").ItemProjectionReader | import("@usine/engine/item-projection").ItemProjectionWriter | import("@usine/engine/loop-control").LoopControl | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionReader | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionWriter | import("@usine/engine/engine").RunEngine | import("@usine/engine/run-reader").RunReader | import("@usine/engine/step-executor").StepExecutor | import("./worker-status.ts").WorkerStatus, import("@usine/engine/engine").AttemptCancellationError | import("@usine/executor").CredentialUnavailableError | import("@usine/engine/engine").EnginePersistenceError | import("@usine/executor").ExecutorOperationError | import("@usine/engine/engine").RunInterventionRejectedError | import("@usine/engine/engine").RunNotFoundError | import("@usine/engine/engine").RunOperationRejectedError | import("@usine/engine/engine").RunRetryBlockedError | import("./scheduler.ts").UnsupportedWorkerError | WorkerCapabilityError, import("@usine/durable/attempt-runtime").AttemptRuntime | import("@usine/agents/runtime").ClaudeLoginLock | import("@usine/executor").CredentialProvider | import("./current-instance/current-instance.ts").CurrentInstance | import("@usine/github/github-app").GitHubApp | import("@usine/engine/trigger-condition").TriggerCondition>;
102
+ export declare const layer: (instanceDirectory: InstanceDirectory, config: UsineConfig, brains: ReadonlyArray<BrainSpec>, options: SshExecutorOptions) => Layer.Layer<import("@usine/engine/board-moves").BoardMoves | import("@usine/engine/cursor").CursorStore | import("@usine/engine/cycle-budget").CycleBudgets | import("@usine/engine/item-projection").ItemProjectionReader | import("@usine/engine/item-projection").ItemProjectionWriter | import("@usine/engine/loop-control").LoopControl | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionReader | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionWriter | import("@usine/engine/engine").RunEngine | import("@usine/engine/run-reader").RunReader | import("@usine/engine/step-executor").StepExecutor | import("@usine/engine/engine").UnconfirmedStops | import("./worker-status.ts").WorkerStatus, import("@usine/engine/engine").AttemptCancellationError | import("@usine/executor").CredentialUnavailableError | import("@usine/engine/engine").EnginePersistenceError | import("@usine/executor").ExecutorOperationError | import("@usine/engine/engine").RunInterventionRejectedError | import("@usine/engine/engine").RunNotFoundError | import("@usine/engine/engine").RunOperationRejectedError | import("@usine/engine/engine").RunRetryBlockedError | import("./scheduler.ts").UnsupportedWorkerError | WorkerCapabilityError, import("@usine/durable/attempt-runtime").AttemptRuntime | import("@usine/agents/runtime").ClaudeLoginLock | import("@usine/executor").CredentialProvider | import("./current-instance/current-instance.ts").CurrentInstance | import("@usine/github/github-app").GitHubApp | import("@usine/engine/trigger-condition").TriggerCondition>;
39
103
  //# sourceMappingURL=ssh.d.ts.map
package/dist/ssh.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../src/ssh.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAA0B,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA0B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIvE,6EAA6E;AAC7E,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,aAAa,CAAC,SAAS,CACK,CAAC;AA0ChF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;kCAU/B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,WAAY,WAAW,UAAU,aAAa,CAAC,SAAS,CAAC,scAsBvF,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,KAAK,sBACG,iBAAiB,UAC5B,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,WACvB,kBAAkB,wgDAQ5B,CAAC"}
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../src/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAA0B,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAkB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAEL,KAAK,kBAAkB,EAIvB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA0B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEvE,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,gBAAgB,CAAC;AAE7E,gGAAgG;AAChG,eAAO,MAAM,yBAAyB,sBAAuB,iBAAiB,KAAG,MACtC,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBACvB,iBAAiB,QAC9B,CAAC,OAAO,EAAE,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,6DAM3C,CAAC;AAE5C,6EAA6E;AAC7E,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,aAAa,CAAC,SAAS,CACK,CAAC;AAqIhF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAbzB,KAAK;QACL,IAAI;QACJ,SAAS;QACT,IAAI;;kCAoBV,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,WACvB,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,YACvB,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,scA0B5C,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,KAAK,sBACG,iBAAiB,UAC5B,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,WACvB,kBAAkB,0jDAU5B,CAAC"}
package/dist/ssh.js CHANGED
@@ -1,19 +1,78 @@
1
1
  import { NodeServices } from "@effect/platform-node";
2
2
  import { layer as localEngineLayer } from "@usine/engine/local-sqlite";
3
- import { WorkerCapabilityError } from "@usine/executor";
4
- import { layer as sshExecutorLayer, SshWorkers, } from "@usine/executor/ssh";
3
+ import { WorkerCapabilityError, WorkerMachines } from "@usine/executor";
4
+ import { layer as sshExecutorLayer, sshWorkerRecordsFor, SshWorkers, } from "@usine/executor/ssh";
5
5
  import { Config, ConfigProvider, Effect, Layer, Option } from "effect";
6
- import { FetchHttpClient } from "effect/unstable/http";
6
+ import { externalHttpClientLayer } from "./http-client.js";
7
7
  import { stepExecutorLayer } from "./scheduler.js";
8
+ /** Returns where the SSH executor records how to reach each long-lived SSH Worker's machine. */
9
+ export const sshWorkerRecordsDirectory = (instanceDirectory) => `${instanceDirectory}/.usine/ssh-workers`;
10
+ /**
11
+ * Returns the layer that `make` builds with a `StepExecutor.discard` that removes the Codex homes
12
+ * of the discarded Attempts on an SSH Worker whose machine `sshWorkerRecordsDirectory` records.
13
+ * Every executor kind uses it, since `usine.yaml` can replace the SSH Workers with Workers of
14
+ * another kind.
15
+ */
16
+ export const withSshWorkerDiscard = (instanceDirectory, make) => Layer.unwrap(Effect.map(sshWorkerRecordsFor(sshWorkerRecordsDirectory(instanceDirectory)), ({ discard }) => make(discard))).pipe(Layer.provide(NodeServices.layer));
8
17
  /** Returns the SSH Workers that `usine.yaml` declares, in declared order. */
9
18
  export const sshWorkersOf = (config) => config.workers.filter((worker) => worker.kind === "ssh");
19
+ /** Returns the variable named `variable` from the orchestrator's environment. */
20
+ const secretFrom = (worker, capability, variable, message) => Config.Redacted(variable).pipe(Effect.mapError((cause) => new WorkerCapabilityError({
21
+ worker: worker.name,
22
+ capability,
23
+ message,
24
+ cause,
25
+ })));
26
+ /**
27
+ * Returns how the executor finds `worker`'s machines: its destination, or its provisioner with
28
+ * the provider token and API keys read from their variables.
29
+ */
30
+ const sshWorkerMachineOf = (worker, missing) => Effect.gen(function* () {
31
+ if (Option.isNone(worker.provisioner)) {
32
+ if (Option.isNone(worker.destination))
33
+ return yield* Effect.die(new Error(`SSH worker "${worker.name}" has no destination`));
34
+ return { _tag: "Fixed", destination: worker.destination.value };
35
+ }
36
+ const settings = worker.provisioner.value;
37
+ const token = yield* secretFrom(worker, "provider", settings.tokenEnv, missing(`${settings.provider} API token`, settings.tokenEnv, "provisioner.token_env"));
38
+ const apiKey = (provider, label) => Effect.transposeOption(Option.map(settings.apiKeys[provider], (variable) => secretFrom(worker, "harness-login", variable, missing(label, variable, `provisioner.api_keys.${provider}`))));
39
+ const apiKeys = {
40
+ anthropic: yield* apiKey("anthropic", "Anthropic API key"),
41
+ openai: yield* apiKey("openai", "OpenAI API key"),
42
+ };
43
+ switch (settings.provider) {
44
+ case "hetzner":
45
+ return {
46
+ _tag: "Provisioned",
47
+ provisioner: {
48
+ provider: "hetzner",
49
+ token,
50
+ serverType: settings.serverType,
51
+ location: settings.location,
52
+ image: settings.image,
53
+ network: settings.network,
54
+ firewall: settings.firewall,
55
+ sshKey: settings.sshKey,
56
+ sshUser: settings.sshUser,
57
+ labels: settings.labels,
58
+ apiKeys,
59
+ },
60
+ };
61
+ case "boat":
62
+ return {
63
+ _tag: "Provisioned",
64
+ provisioner: { provider: "boat", token, size: settings.size, apiKeys },
65
+ };
66
+ }
67
+ });
10
68
  /**
11
69
  * Returns how the executor connects to `worker`, reading the Gateway admin token from
12
- * `admin_token_env`. Fails with a `gateway` capability error if the variable is unset.
70
+ * `admin_token_env` and a provisioner's token and API keys from their variables. Fails with a
71
+ * capability error if a variable is unset.
13
72
  */
14
73
  const sshWorkerAddressOf = (worker, missing) => Effect.gen(function* () {
15
74
  const gateway = yield* Effect.transposeOption(Option.map(worker.gateway, (settings) => Effect.gen(function* () {
16
- const adminToken = yield* Config.redacted(settings.adminTokenEnv);
75
+ const adminToken = yield* Config.Redacted(settings.adminTokenEnv);
17
76
  return {
18
77
  domain: settings.domain,
19
78
  destination: settings.destination,
@@ -24,42 +83,52 @@ const sshWorkerAddressOf = (worker, missing) => Effect.gen(function* () {
24
83
  }).pipe(Effect.mapError((cause) => new WorkerCapabilityError({
25
84
  worker: worker.name,
26
85
  capability: "gateway",
27
- message: missing(settings.adminTokenEnv),
86
+ message: missing("gateway admin token", settings.adminTokenEnv, "admin_token_env"),
28
87
  cause,
29
88
  })))));
30
89
  return {
31
90
  name: worker.name,
32
- destination: worker.destination,
91
+ machine: yield* sshWorkerMachineOf(worker, missing),
33
92
  identityFile: worker.identityFile,
34
93
  port: worker.port,
35
94
  root: worker.root,
36
95
  gateway,
96
+ container: {
97
+ image: worker.container.image,
98
+ cpus: worker.container.cpus,
99
+ memoryMib: worker.container.memoryMib,
100
+ pids: worker.container.pids,
101
+ },
37
102
  };
38
103
  });
39
104
  /**
40
- * Returns how the executor connects to each declared SSH Worker, reading Gateway admin tokens at
41
- * startup. If an `admin_token_env` variable is unset, fails with a `gateway` capability error.
105
+ * Returns how the executor connects to each declared SSH Worker, reading Gateway admin tokens and
106
+ * provisioner tokens and API keys at startup. If a variable is unset, fails with a capability
107
+ * error that names it.
42
108
  */
43
109
  export const sshWorkerAddressesOf = Effect.fn("Orchestrator.sshWorkerAddressesOf")(function* (config) {
44
- return yield* Effect.forEach(sshWorkersOf(config), (worker) => sshWorkerAddressOf(worker, (variable) => `The gateway admin token for SSH worker "${worker.name}" is missing. Set ${variable} in the orchestrator's environment.`));
110
+ return yield* Effect.forEach(sshWorkersOf(config), (worker) => sshWorkerAddressOf(worker, (secret, variable) => `The ${secret} for SSH worker "${worker.name}" is missing. Set ${variable} in the orchestrator's environment.`));
45
111
  });
46
112
  /**
47
113
  * Provides the scheduler over the SSH executor, so reloads can resize, add, and remove SSH Workers.
48
114
  * A reload that adds a Worker fails with a `gateway` capability error if its `admin_token_env`
49
- * variable is unset.
115
+ * variable is unset. `options.discard` is `StepExecutor.discard`.
50
116
  */
51
- export const sshStepExecutorLayer = (config, brains) => Layer.unwrap(Effect.gen(function* () {
117
+ export const sshStepExecutorLayer = (config, brains, options = {}) => Layer.unwrap(Effect.gen(function* () {
52
118
  const machines = yield* SshWorkers;
119
+ const provisioned = yield* Effect.serviceOption(WorkerMachines);
53
120
  const environment = yield* ConfigProvider.ConfigProvider;
54
121
  const add = Effect.fn("Orchestrator.addSshWorker")(function* (worker) {
55
122
  yield* Effect.annotateCurrentSpan({ worker: worker.name });
56
123
  if (worker.kind !== "ssh")
57
124
  return yield* Effect.die(new Error(`The SSH executor cannot run worker "${worker.name}" of kind ${worker.kind}`));
58
- const address = yield* sshWorkerAddressOf(worker, (variable) => `The gateway admin token for SSH worker "${worker.name}" is missing: ${variable} is not set in the orchestrator's environment. usine up reads only the variables that were set when it started. Set ${variable} and restart usine up, or set admin_token_env to a variable that usine up already has.`).pipe(Effect.provideService(ConfigProvider.ConfigProvider, environment));
125
+ const address = yield* sshWorkerAddressOf(worker, (secret, variable, key) => `The ${secret} for SSH worker "${worker.name}" is missing: ${variable} is not set in the orchestrator's environment. usine up reads only the variables that were set when it started. Set ${variable} and restart usine up, or set ${key} to a variable that usine up already has.`).pipe(Effect.provideService(ConfigProvider.ConfigProvider, environment));
59
126
  yield* machines.addWorker(address);
60
127
  });
61
128
  return stepExecutorLayer(config, brains, {
129
+ ...options,
62
130
  workers: { add, remove: machines.removeWorker },
131
+ ...Option.match(provisioned, { onNone: () => ({}), onSome: (machines) => ({ machines }) }),
63
132
  });
64
133
  }));
65
134
  /**
@@ -68,8 +137,8 @@ export const sshStepExecutorLayer = (config, brains) => Layer.unwrap(Effect.gen(
68
137
  * and `CurrentInstance`.
69
138
  */
70
139
  export const layer = (instanceDirectory, config, brains, options) => {
71
- const executor = sshExecutorLayer(options).pipe(Layer.provide(NodeServices.layer), Layer.provide(FetchHttpClient.layer));
72
- const stepExecutor = sshStepExecutorLayer(config, brains).pipe(Layer.provide(executor));
140
+ const executor = sshExecutorLayer(options).pipe(Layer.provide(NodeServices.layer), Layer.provide(externalHttpClientLayer));
141
+ const stepExecutor = withSshWorkerDiscard(instanceDirectory, (discard) => sshStepExecutorLayer(config, brains, { discard })).pipe(Layer.provide(executor));
73
142
  return localEngineLayer(instanceDirectory).pipe(Layer.provideMerge(stepExecutor));
74
143
  };
75
144
  //# sourceMappingURL=ssh.js.map
package/dist/ssh.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../src/ssh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../src/ssh.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import type { UsineConfig } from "@usine/config/factory";
2
2
  import type { BrainSpec } from "@usine/core/agent/brain";
3
- import type { InstanceDirectory } from "@usine/core/instance";
3
+ import type { InstanceDirectory, InstanceId } from "@usine/core/instance";
4
+ import { GitHubCredentials } from "@usine/github/github-app";
4
5
  import { Layer } from "effect";
5
6
  /**
6
- * Provides the engine for the Workers in `config`: the SSH executor if every Worker is `ssh`,
7
- * otherwise the local one. Fails at startup with `UnsupportedWorkerError` on any other mix.
7
+ * Provides the engine for the Workers in `config`: the SSH executor if every Worker is `ssh`, the
8
+ * Cloudflare executor if every Worker is `cloudflare`, otherwise the local one. Fails at startup
9
+ * with `UnsupportedWorkerError` on any other mix. The SSH executor labels its Attempt containers
10
+ * with `instanceId`, so that instances that share the GitHub App and a machine keep each other's.
8
11
  */
9
- export declare const workerEngineLayer: (instanceDirectory: InstanceDirectory, config: UsineConfig, brains: ReadonlyArray<BrainSpec>) => Layer.Layer<import("@usine/engine/board-moves").BoardMoves | import("@usine/engine/cursor").CursorStore | import("@usine/engine/cycle-budget").CycleBudgets | import("@usine/engine/item-projection").ItemProjectionReader | import("@usine/engine/item-projection").ItemProjectionWriter | import("@usine/engine/loop-control").LoopControl | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionReader | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionWriter | import("@usine/engine/engine").RunEngine | import("@usine/engine/run-reader").RunReader | import("@usine/engine/step-executor").StepExecutor | import("./worker-status.ts").WorkerStatus, import("@usine/engine/engine").AttemptCancellationError | import("@usine/executor").CredentialUnavailableError | import("@usine/engine/engine").EnginePersistenceError | import("@usine/executor").ExecutorOperationError | import("@usine/engine/engine").RunInterventionRejectedError | import("@usine/engine/engine").RunNotFoundError | import("@usine/engine/engine").RunOperationRejectedError | import("@usine/engine/engine").RunRetryBlockedError | import("./scheduler.ts").UnsupportedWorkerError | import("@usine/executor").WorkerCapabilityError, import("@usine/durable/attempt-runtime").AttemptRuntime | import("@usine/agents/runtime").ClaudeLoginLock | import("@usine/executor").CredentialProvider | import("./current-instance/current-instance.ts").CurrentInstance | import("@usine/github/github-app").GitHubApp | import("@usine/engine/trigger-condition").TriggerCondition>;
12
+ export declare const workerEngineLayer: (instanceDirectory: InstanceDirectory, instanceId: InstanceId, config: UsineConfig, brains: ReadonlyArray<BrainSpec>) => Layer.Layer<import("@usine/engine/board-moves").BoardMoves | import("@usine/engine/cursor").CursorStore | import("@usine/engine/cycle-budget").CycleBudgets | import("@usine/engine/item-projection").ItemProjectionReader | import("@usine/engine/item-projection").ItemProjectionWriter | import("@usine/engine/loop-control").LoopControl | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionReader | import("@usine/engine/repository-label-projection").RepositoryLabelProjectionWriter | import("@usine/engine/engine").RunEngine | import("@usine/engine/run-reader").RunReader | import("@usine/engine/step-executor").StepExecutor | import("@usine/engine/engine").UnconfirmedStops | import("./worker-status.ts").WorkerStatus, import("@usine/engine/engine").AttemptCancellationError | import("@usine/executor").CredentialUnavailableError | import("@usine/engine/engine").EnginePersistenceError | import("@usine/executor").ExecutorOperationError | import("@usine/engine/engine").RunInterventionRejectedError | import("@usine/engine/engine").RunNotFoundError | import("@usine/engine/engine").RunOperationRejectedError | import("@usine/engine/engine").RunRetryBlockedError | import("./scheduler.ts").UnsupportedWorkerError | import("@usine/executor").WorkerCapabilityError, import("@usine/durable/attempt-runtime").AttemptRuntime | import("@usine/agents/runtime").ClaudeLoginLock | import("@usine/executor").CredentialProvider | import("./current-instance/current-instance.ts").CurrentInstance | import("@usine/github/github-app").GitHubApp | GitHubCredentials | import("@usine/engine/trigger-condition").TriggerCondition>;
10
13
  //# sourceMappingURL=worker-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-engine.d.ts","sourceRoot":"","sources":["../src/worker-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAC;AAI/C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,sBACT,iBAAiB,UAC5B,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,kiDAoB/B,CAAC"}
1
+ {"version":3,"file":"worker-engine.d.ts","sourceRoot":"","sources":["../src/worker-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAC;AAc/C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,sBACT,iBAAiB,cACxB,UAAU,UACd,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,wmDA+C/B,CAAC"}
@@ -1,23 +1,54 @@
1
+ import { GitHubCredentials } from "@usine/github/github-app";
1
2
  import { Effect, Layer, Option } from "effect";
3
+ import { cloudflareWorkerAddressesOf, cloudflareWorkersOf, layer as cloudflareLayer, } from "./cloudflare.js";
2
4
  import { layer as localLayer } from "./local.js";
3
- import { layer as sshLayer, sshWorkerAddressesOf, sshWorkersOf } from "./ssh.js";
5
+ import { layer as sshLayer, sshWorkerAddressesOf, sshWorkerRecordsDirectory, sshWorkersOf, } from "./ssh.js";
4
6
  /**
5
- * Provides the engine for the Workers in `config`: the SSH executor if every Worker is `ssh`,
6
- * otherwise the local one. Fails at startup with `UnsupportedWorkerError` on any other mix.
7
+ * Provides the engine for the Workers in `config`: the SSH executor if every Worker is `ssh`, the
8
+ * Cloudflare executor if every Worker is `cloudflare`, otherwise the local one. Fails at startup
9
+ * with `UnsupportedWorkerError` on any other mix. The SSH executor labels its Attempt containers
10
+ * with `instanceId`, so that instances that share the GitHub App and a machine keep each other's.
7
11
  */
8
- export const workerEngineLayer = (instanceDirectory, config, brains) => Layer.unwrap(Effect.gen(function* () {
12
+ export const workerEngineLayer = (instanceDirectory, instanceId, config, brains) => Layer.unwrap(Effect.gen(function* () {
9
13
  const ssh = sshWorkersOf(config);
10
14
  const workers = config.workers.map(({ name }) => name).join(",");
11
15
  if (ssh.length === config.workers.length) {
12
16
  const addresses = yield* sshWorkerAddressesOf(config);
17
+ // The GitHub App is the instance's identity (ADR 0011).
18
+ const { appId } = yield* GitHubCredentials;
19
+ const instance = `github-app-${String(appId)}`;
13
20
  yield* Effect.logInfo("Running Attempts on SSH Workers", {
14
21
  workers,
22
+ instance,
23
+ instanceId,
15
24
  behindGateway: addresses
16
25
  .filter(({ gateway }) => Option.isSome(gateway))
17
26
  .map(({ name }) => name)
18
27
  .join(","),
28
+ provisioned: addresses
29
+ .filter(({ machine }) => machine._tag === "Provisioned")
30
+ .map(({ name }) => name)
31
+ .join(","),
32
+ });
33
+ return sshLayer(instanceDirectory, config, brains, {
34
+ workers: addresses,
35
+ instance,
36
+ instanceId,
37
+ knownHostsDirectory: `${instanceDirectory}/.usine/known-hosts`,
38
+ workerRecordsDirectory: sshWorkerRecordsDirectory(instanceDirectory),
39
+ });
40
+ }
41
+ if (cloudflareWorkersOf(config).length === config.workers.length) {
42
+ const addresses = yield* cloudflareWorkerAddressesOf(config);
43
+ // The GitHub App is the instance's identity (ADR 0011).
44
+ const { appId } = yield* GitHubCredentials;
45
+ const instance = `github-app-${String(appId)}`;
46
+ yield* Effect.logInfo("Running Attempts in Cloudflare sandboxes", {
47
+ workers,
48
+ instance,
49
+ workerUrls: addresses.map(({ workerUrl }) => workerUrl.origin).join(","),
19
50
  });
20
- return sshLayer(instanceDirectory, config, brains, { workers: addresses });
51
+ return cloudflareLayer(instanceDirectory, config, brains, { workers: addresses, instance });
21
52
  }
22
53
  yield* Effect.logInfo("Running Attempts with the local executor", { workers });
23
54
  return localLayer(instanceDirectory, config, brains, {});
@@ -1 +1 @@
1
- {"version":3,"file":"worker-engine.js","sourceRoot":"","sources":["../src/worker-engine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,iBAAoC,EACpC,MAAmB,EACnB,MAAgC,EAChC,EAAE,CACF,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,EAAE;YACvD,OAAO;YACP,aAAa,EAAE,SAAS;iBACrB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC;SACb,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"worker-engine.js","sourceRoot":"","sources":["../src/worker-engine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,KAAK,IAAI,eAAe,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,KAAK,IAAI,QAAQ,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,GACb,MAAM,UAAU,CAAC;AAElB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,iBAAoC,EACpC,UAAsB,EACtB,MAAmB,EACnB,MAAgC,EAChC,EAAE,CACF,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtD,wDAAwD;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC3C,MAAM,QAAQ,GAAG,cAAc,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,EAAE;YACvD,OAAO;YACP,QAAQ;YACR,UAAU;YACV,aAAa,EAAE,SAAS;iBACrB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC;YACZ,WAAW,EAAE,SAAS;iBACnB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC;iBACvD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC;SACb,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE;YACjD,OAAO,EAAE,SAAS;YAClB,QAAQ;YACR,UAAU;YACV,mBAAmB,EAAE,GAAG,iBAAiB,qBAAqB;YAC9D,sBAAsB,EAAE,yBAAyB,CAAC,iBAAiB,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAC7D,wDAAwD;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC3C,MAAM,QAAQ,GAAG,cAAc,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE;YAChE,OAAO;YACP,QAAQ;YACR,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACzE,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,CACH,CAAC"}