@graftland/plugin-remote 0.3.0 → 0.3.2

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 (209) hide show
  1. package/dist/Auth.d.ts +2 -2
  2. package/dist/Auth.d.ts.map +1 -1
  3. package/dist/Auth.js.map +1 -1
  4. package/dist/{Bootstrap-MCwivGN1.js → Bootstrap-H9gDsgsC.js} +2 -2
  5. package/dist/{Contract-CcpSIJm4.js → Contract-DsJtisvL.js} +8 -46
  6. package/dist/Contract.d.ts +50 -53
  7. package/dist/Contract.d.ts.map +1 -1
  8. package/dist/Contract.js +1 -1
  9. package/dist/Contract.js.map +1 -1
  10. package/dist/{Errors-oPsTLY7l.js → Errors-DYhsGZcZ.js} +14 -1
  11. package/dist/Errors.d.ts +19 -0
  12. package/dist/Errors.d.ts.map +1 -1
  13. package/dist/Errors.js +14 -1
  14. package/dist/Errors.js.map +1 -1
  15. package/dist/{FailureGroup-BcH0XOBi.js → FailureGroup-BgT73AaR.js} +14 -4
  16. package/dist/{Framing-zaYdOJnT.js → Framing-G9eSaeLb.js} +1 -1
  17. package/dist/{Graft-BsYq3F-J.js → Graft-B71CPA2Y.js} +46 -35
  18. package/dist/{Packages-B1TPk8pa.js → Packages-AgoCGotL.js} +23 -26
  19. package/dist/{Peer-IJgFK6mD.js → Peer-DXeVrGBh.js} +5 -5
  20. package/dist/{ProcessObservation-DEGrEMfP.js → ProcessObservation-gLgGirYv.js} +1 -1
  21. package/dist/{ServeLifecycle-CJM0gG5B.js → ServeLifecycle-Bd1FPJ6e.js} +1 -1
  22. package/dist/Testing.d.ts +4 -4
  23. package/dist/Testing.d.ts.map +1 -1
  24. package/dist/Testing.js +10 -4
  25. package/dist/Testing.js.map +1 -1
  26. package/dist/Transport.d.ts +2 -2
  27. package/dist/Transport.d.ts.map +1 -1
  28. package/dist/Transport.js.map +1 -1
  29. package/dist/bin.js +48 -47
  30. package/dist/bin.js.map +1 -1
  31. package/dist/{childRuntime-DSqtFN9o.js → childRuntime-Bm3iSg_N.js} +30 -26
  32. package/dist/connectionEnded-BwcxQ7W8.js +54 -0
  33. package/dist/{entry-SYsx9VNb.js → entry-psOpX3Bj.js} +76 -48
  34. package/dist/host/auth/bearer.d.ts +1 -2
  35. package/dist/host/auth/bearer.d.ts.map +1 -1
  36. package/dist/host/auth/bearer.js +1 -1
  37. package/dist/host/auth/bearer.js.map +1 -1
  38. package/dist/host/auth/jwt.d.ts +1 -2
  39. package/dist/host/auth/jwt.d.ts.map +1 -1
  40. package/dist/host/auth/jwt.js +1 -1
  41. package/dist/host/auth/jwt.js.map +1 -1
  42. package/dist/host/auth/mtls.js +2 -2
  43. package/dist/host/auth/none.js +1 -1
  44. package/dist/host/command.d.ts +1 -1
  45. package/dist/host/command.d.ts.map +1 -1
  46. package/dist/host/command.js +4 -4
  47. package/dist/host/command.js.map +1 -1
  48. package/dist/host/local.d.ts +1 -2
  49. package/dist/host/local.d.ts.map +1 -1
  50. package/dist/host/local.js +3 -3
  51. package/dist/host/local.js.map +1 -1
  52. package/dist/host/unix.d.ts +1 -1
  53. package/dist/host/unix.d.ts.map +1 -1
  54. package/dist/host/unix.js +3 -3
  55. package/dist/host/unix.js.map +1 -1
  56. package/dist/host/websocket.d.ts +1 -1
  57. package/dist/host/websocket.d.ts.map +1 -1
  58. package/dist/host/websocket.js +3 -3
  59. package/dist/host/websocket.js.map +1 -1
  60. package/dist/host/worker.d.ts +1 -2
  61. package/dist/host/worker.d.ts.map +1 -1
  62. package/dist/host/worker.js +4 -5
  63. package/dist/host/worker.js.map +1 -1
  64. package/dist/{importer-D7zSgqxq.js → importer-Cvf88eAY.js} +5 -8
  65. package/dist/index.d.ts +2 -3
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +10 -10
  68. package/dist/index.js.map +1 -1
  69. package/dist/internal/Certificates.js +4 -4
  70. package/dist/internal/Certificates.js.map +1 -1
  71. package/dist/internal/FailureGroup.js +3 -2
  72. package/dist/internal/FailureGroup.js.map +1 -1
  73. package/dist/internal/assembly.js +9 -2
  74. package/dist/internal/assembly.js.map +1 -1
  75. package/dist/internal/auth/mtls.js +1 -1
  76. package/dist/internal/auth/mtls.js.map +1 -1
  77. package/dist/internal/auth/tokenCredentials.d.ts +0 -1
  78. package/dist/internal/auth/tokenCredentials.d.ts.map +1 -1
  79. package/dist/internal/auth/tokenCredentials.js.map +1 -1
  80. package/dist/internal/child.js +20 -17
  81. package/dist/internal/child.js.map +1 -1
  82. package/dist/internal/childRuntime.js +6 -4
  83. package/dist/internal/childRuntime.js.map +1 -1
  84. package/dist/internal/contract.js +26 -0
  85. package/dist/internal/contract.js.map +1 -0
  86. package/dist/internal/credentials.d.ts +6 -6
  87. package/dist/internal/credentials.d.ts.map +1 -1
  88. package/dist/internal/credentials.js.map +1 -1
  89. package/dist/internal/directTransport.d.ts +1 -1
  90. package/dist/internal/entry.d.ts +1 -2
  91. package/dist/internal/entry.d.ts.map +1 -1
  92. package/dist/internal/entry.js +4 -14
  93. package/dist/internal/entry.js.map +1 -1
  94. package/dist/internal/execution.js +44 -7
  95. package/dist/internal/execution.js.map +1 -1
  96. package/dist/internal/host/runner.js +7 -6
  97. package/dist/internal/host/runner.js.map +1 -1
  98. package/dist/internal/host.js +5 -5
  99. package/dist/internal/host.js.map +1 -1
  100. package/dist/internal/port.d.ts +2 -10
  101. package/dist/internal/port.js +5 -5
  102. package/dist/internal/port.js.map +1 -1
  103. package/dist/internal/release.js +1 -1
  104. package/dist/internal/release.js.map +1 -1
  105. package/dist/internal/runner/Connection.d.ts +1 -1
  106. package/dist/internal/runner/Connection.js +4 -4
  107. package/dist/internal/runner/Connection.js.map +1 -1
  108. package/dist/internal/runner/Execution.js +3 -3
  109. package/dist/internal/runner/Execution.js.map +1 -1
  110. package/dist/internal/runner/Framing.d.ts +1 -11
  111. package/dist/internal/runner/Framing.js +1 -1
  112. package/dist/internal/runner/Framing.js.map +1 -1
  113. package/dist/internal/runner/Local.js +1 -1
  114. package/dist/internal/runner/Local.js.map +1 -1
  115. package/dist/internal/runner/Lock.js +1 -1
  116. package/dist/internal/runner/Lock.js.map +1 -1
  117. package/dist/internal/runner/Packages.d.ts +1 -1
  118. package/dist/internal/runner/Packages.js +22 -25
  119. package/dist/internal/runner/Packages.js.map +1 -1
  120. package/dist/internal/runner/Processes.js +7 -9
  121. package/dist/internal/runner/Processes.js.map +1 -1
  122. package/dist/internal/runner/Store.js +3 -3
  123. package/dist/internal/runner/Store.js.map +1 -1
  124. package/dist/internal/runner/Supervisor.js +46 -47
  125. package/dist/internal/runner/Supervisor.js.map +1 -1
  126. package/dist/internal/runner/accept.js +3 -3
  127. package/dist/internal/runner/accept.js.map +1 -1
  128. package/dist/internal/runner/model.js +1 -1
  129. package/dist/internal/runner/model.js.map +1 -1
  130. package/dist/internal/serve.js +1 -1
  131. package/dist/internal/serve.js.map +1 -1
  132. package/dist/internal/services.d.ts +2 -12
  133. package/dist/internal/services.d.ts.map +1 -1
  134. package/dist/internal/services.js.map +1 -1
  135. package/dist/internal/supervisorPlugin.js +1 -1
  136. package/dist/internal/watchdogMain.js +5 -5
  137. package/dist/internal/watchdogMain.js.map +1 -1
  138. package/dist/internal/websocketServer.js +3 -1
  139. package/dist/internal/websocketServer.js.map +1 -1
  140. package/dist/internal/workerMain.js +3 -3
  141. package/dist/{port-Blbh8tms.js → port--3x2zJ4D.js} +8 -8
  142. package/dist/{release-BY4Mlluy.js → release-DfZPuIcK.js} +1 -1
  143. package/dist/runner/auth/bearer.js +2 -2
  144. package/dist/runner/auth/jwt.js +4 -4
  145. package/dist/runner/auth/jwt.js.map +1 -1
  146. package/dist/runner/auth/mtls.js +3 -3
  147. package/dist/runner/auth/none.js +1 -1
  148. package/dist/runner/index.js +5 -5
  149. package/dist/runner/stdio.js +3 -3
  150. package/dist/runner/unix.js +3 -3
  151. package/dist/runner/websocket.js +4 -4
  152. package/dist/{socketChannel-KmtzF-9G.js → socketChannel-CJvL2DiB.js} +2 -2
  153. package/dist/{supervisorPlugin-Inb1S5IV.js → supervisorPlugin-t6Z6PrhD.js} +72 -76
  154. package/dist/{token-v5ne2I0-.js → token-CYBNNlhS.js} +1 -1
  155. package/dist/{tokenCredentials-WUJm2AKm.js → tokenCredentials-CbCuk-Rt.js} +3 -3
  156. package/dist/{websocketServer-MXcCJx0v.js → websocketServer-NQhODlEt.js} +5 -3
  157. package/dist/{workerChannel-P82YdNjh.js → workerChannel-C8hhBJzA.js} +1 -1
  158. package/package.json +3 -3
  159. package/src/Auth.ts +9 -2
  160. package/src/Contract.ts +67 -51
  161. package/src/Errors.ts +23 -0
  162. package/src/Testing.ts +16 -2
  163. package/src/Transport.ts +6 -2
  164. package/src/bin.ts +28 -30
  165. package/src/host/auth/bearer.ts +1 -6
  166. package/src/host/auth/jwt.ts +1 -6
  167. package/src/host/command.ts +2 -0
  168. package/src/host/local.ts +5 -9
  169. package/src/host/unix.ts +2 -0
  170. package/src/host/websocket.ts +2 -0
  171. package/src/host/worker.ts +4 -6
  172. package/src/index.ts +8 -4
  173. package/src/internal/Certificates.ts +10 -13
  174. package/src/internal/FailureGroup.ts +128 -121
  175. package/src/internal/assembly.ts +19 -10
  176. package/src/internal/auth/mtls.ts +19 -20
  177. package/src/internal/auth/tokenCredentials.ts +1 -7
  178. package/src/internal/child.ts +249 -240
  179. package/src/internal/childRuntime.ts +84 -81
  180. package/src/internal/contract.ts +47 -0
  181. package/src/internal/credentials.ts +12 -9
  182. package/src/internal/entry.ts +11 -25
  183. package/src/internal/execution.ts +73 -14
  184. package/src/internal/host/runner.ts +153 -153
  185. package/src/internal/host.ts +123 -130
  186. package/src/internal/port.ts +100 -103
  187. package/src/internal/release.ts +3 -2
  188. package/src/internal/runner/Connection.ts +52 -60
  189. package/src/internal/runner/Execution.ts +163 -164
  190. package/src/internal/runner/Framing.ts +9 -10
  191. package/src/internal/runner/Local.ts +26 -27
  192. package/src/internal/runner/Lock.ts +23 -25
  193. package/src/internal/runner/Packages.ts +67 -70
  194. package/src/internal/runner/Processes.ts +89 -92
  195. package/src/internal/runner/Store.ts +110 -114
  196. package/src/internal/runner/Supervisor.ts +392 -405
  197. package/src/internal/runner/accept.ts +76 -84
  198. package/src/internal/runner/model.ts +20 -21
  199. package/src/internal/serve.ts +15 -13
  200. package/src/internal/services.ts +1 -19
  201. package/src/internal/watchdogMain.ts +16 -11
  202. package/src/internal/websocketServer.ts +18 -3
  203. package/src/runner/auth/jwt.ts +10 -6
  204. package/dist/cleanup-BPWr-5U9.js +0 -13
  205. package/dist/connectionEnded-DUgcobEd.js +0 -9
  206. package/dist/internal/childErrors.d.ts +0 -33
  207. package/dist/internal/childErrors.d.ts.map +0 -1
  208. package/dist/internal/port.d.ts.map +0 -1
  209. package/dist/internal/runner/Framing.d.ts.map +0 -1
@@ -1,23 +1,22 @@
1
- import { c as isPlugin, i as plugin, l as make, o as fork, t as forks, u as optional } from "./Graft-BsYq3F-J.js";
1
+ import { c as isPlugin, i as plugin, l as make, o as fork, t as forks, u as optional } from "./Graft-B71CPA2Y.js";
2
2
  import { t as ConfigDirectory } from "./ConfigDirectory-BCC6q2R4.js";
3
- import { i as make$2, m as isSubtreeActive, n as ModuleInvalid, o as CurrentId, p as findSubtree, r as ModuleResolver, t as make$1 } from "./importer-D7zSgqxq.js";
4
- import { c as endpoint, n as UndeclaredFailure, o as endpoints, r as fromModule } from "./Contract-CcpSIJm4.js";
5
- import { a as ProcessExited, c as TransportError, i as MissingInstance, o as RemoteError, r as LocalTerminationTimeout, s as RemoteWithdrawn, t as AuthenticationFailed } from "./Errors-oPsTLY7l.js";
3
+ import { i as make$2, m as isSubtreeActive, n as ModuleInvalid, o as CurrentId, p as findSubtree, r as ModuleResolver, t as make$1 } from "./importer-Cvf88eAY.js";
4
+ import { c as endpoint, n as UndeclaredFailure, o as endpoints, r as fromModule } from "./Contract-DsJtisvL.js";
5
+ import { a as MissingInstance, c as RemoteError, i as LocalTerminationTimeout, l as RemoteWithdrawn, o as ProcessExited, r as CredentialsError, s as RemoteEntryError, t as AuthenticationFailed, u as TransportError } from "./Errors-DYhsGZcZ.js";
6
6
  import { n as WorkerTransport, t as LocalTransport } from "./directTransport-DrexuPSm.js";
7
- import { a as PositiveDuration, i as Supervisor, n as resolveEntry, r as verify } from "./Packages-B1TPk8pa.js";
8
- import { E as make$3, b as awaitTermination, n as Session, r as channel, t as Peer, x as childOf } from "./Peer-IJgFK6mD.js";
7
+ import { a as PositiveDuration, i as Supervisor, n as resolveEntry, r as verify } from "./Packages-AgoCGotL.js";
8
+ import { E as make$3, _ as StateStorageError, a as ExecutionError, b as awaitTermination, c as PackageError, d as SessionAccessDenied, f as SessionConflict, g as StateDirectoryLocked, h as StaleSession, l as RemoteTerminationUnconfirmed, m as SessionStopped, n as Session, r as channel, s as LeaseExpired, t as Peer, u as RunnerClosing, x as childOf, y as TerminationUnconfirmed } from "./Peer-DXeVrGBh.js";
9
9
  import { n as Credentials, t as Authenticator } from "./Auth-BElTC9_X.js";
10
10
  import { n as Listener, t as Connector } from "./Transport-DULzpsgR.js";
11
- import { n as connectionEnded, t as closedNormally } from "./connectionEnded-DUgcobEd.js";
12
- import { t as ServeLifecycle } from "./ServeLifecycle-CJM0gG5B.js";
13
- import { t as make$4 } from "./FailureGroup-BcH0XOBi.js";
14
- import { n as cleanupCause, t as children } from "./cleanup-BPWr-5U9.js";
15
- import { n as make$5, o as defaults } from "./port-Blbh8tms.js";
16
- import { n as close } from "./release-BY4Mlluy.js";
17
- import { n as stdinExitTimeout } from "./ProcessObservation-DEGrEMfP.js";
18
- import { Array, Cause, Context, Deferred, Duration, Effect, Exit, Fiber, Option, Path, Ref, References, Schema, Scope, Stream, String } from "effect";
11
+ import { a as AlreadyLoaded, i as ActivationFailed, n as connectionEnded, o as ContractNotFound, r as prepare, s as ModuleImportFailed, t as closedNormally } from "./connectionEnded-BwcxQ7W8.js";
12
+ import { t as ServeLifecycle } from "./ServeLifecycle-Bd1FPJ6e.js";
13
+ import { n as children, r as cleanupCause, t as make$4 } from "./FailureGroup-BgT73AaR.js";
14
+ import { n as make$5, o as defaults } from "./port--3x2zJ4D.js";
15
+ import { n as close, t as ReleaseInterrupted } from "./release-DfZPuIcK.js";
16
+ import { n as stdinExitTimeout } from "./ProcessObservation-gLgGirYv.js";
17
+ import { Array, Cause, Context, Deferred, Duration, Effect, Exit, Fiber, Option, Path, PlatformError, Ref, References, Schema, Scope, Stream, String } from "effect";
19
18
  import { SecureRandom } from "effect/crypto";
20
- import { RpcClient } from "effect/rpc";
19
+ import { RpcClient, RpcClientError } from "effect/rpc";
21
20
  import { ChildProcessSpawner } from "effect/process";
22
21
  // packages/remote/src/internal/entryConfig.ts
23
22
  const Reference = Schema.Struct({
@@ -216,6 +215,13 @@ var CapabilityCombinationError = class extends Schema.TaggedError()("CapabilityC
216
215
  }
217
216
  };
218
217
  var CapabilityFailed = class extends Schema.TaggedError()("CapabilityFailed", { cause: Schema.Cause(Schema.Unknown, Schema.Unknown) }) {};
218
+ /** Every failure class assembly raises; host error classification reads this list. */
219
+ const errors = [
220
+ ListenerConfigError,
221
+ CapabilityContractError,
222
+ CapabilityCombinationError,
223
+ CapabilityFailed
224
+ ];
219
225
  const definition = Schema.declare(isPlugin);
220
226
  /** Entries resolve capability modules before assembling their private providers. */
221
227
  const Invocation = Schema.Struct({
@@ -281,7 +287,7 @@ const compatible = (properties, kind) => {
281
287
  const kind = (auth) => auth._tag === "Mtls" ? "Certificate" : auth._tag === "Header" ? "Authorization" : "None";
282
288
  const warn = (properties, credentials, side) => Effect.all([properties.network && !properties.encrypted ? Effect.logWarning(credentials === "Authorization" ? `${properties.protocol}:// ${side === "host" ? "connection" : "listener"} is unencrypted; credentials are transmitted in plaintext` : `${properties.protocol}:// ${side === "host" ? "connection" : "listener"} is unencrypted`) : Effect.void, side === "runner" && properties.network && credentials === "None" ? Effect.logWarning("WebSocket listener has no authentication") : Effect.void], { discard: true });
283
289
  const directAuth = (properties, explicit) => explicit && (properties.protocol === "stdio" || properties.protocol === "command") ? Effect.fail(CapabilityCombinationError.make({ detail: `${properties.protocol} transports do not accept auth` })) : Effect.void;
284
- const connectWith = (explicitAuth = false) => Effect.gen(function* () {
290
+ const connectWith = Effect.fnUntraced(function* (explicitAuth = false) {
285
291
  const connector = yield* Connector;
286
292
  const credentials = yield* Credentials;
287
293
  yield* directAuth(connector.properties, explicitAuth);
@@ -321,7 +327,7 @@ const makeListenerConsumer = (prepare = () => Effect.void, ready = Effect.void)
321
327
  const listenerConsumer = makeListenerConsumer();
322
328
  connectWith();
323
329
  // packages/remote/src/internal/host/runner.ts
324
- const connect$1 = (target, contractModule, options, resources, processScope) => Effect.gen(function* () {
330
+ const connect$1 = Effect.fnUntraced(function* (target, contractModule, options, resources, processScope) {
325
331
  const instance = target.instance;
326
332
  const margin = Duration.toMillis(target.margin ?? "5 seconds");
327
333
  const channel$1 = yield* connectWith(target.explicitAuth).pipe(Scope.provide(processScope));
@@ -344,7 +350,7 @@ const connect$1 = (target, contractModule, options, resources, processScope) =>
344
350
  const finishStarted = yield* Ref.make(false);
345
351
  const terminate = yield* Effect.cached(Effect.gen(function* () {
346
352
  yield* Ref.set(finishStarted, true);
347
- yield* failures.close;
353
+ const closed = yield* Effect.exit(failures.close);
348
354
  const result = yield* awaitTermination(record.handle, session.Dispose(record.handle), record.leaseMillis, margin);
349
355
  const { code, signal, stderr, cause } = result.exit;
350
356
  yield* Effect.logInfo("Remote execution terminated", {
@@ -357,7 +363,8 @@ const connect$1 = (target, contractModule, options, resources, processScope) =>
357
363
  "remote.generation": record.handle.generation,
358
364
  "remote.termination": result.kind
359
365
  }));
360
- if (result.cause.reasons.length > 0) return yield* Effect.failCause(cleanupCause(result.cause));
366
+ const failure = Exit.isFailure(closed) ? Cause.combine(closed.cause, result.cause) : result.cause;
367
+ if (failure.reasons.length > 0) return yield* Effect.failCause(cleanupCause(failure));
361
368
  }));
362
369
  yield* Scope.addFinalizer(processScope, Effect.gen(function* () {
363
370
  if (!(yield* Ref.get(finishStarted))) yield* terminate.pipe(Effect.catchCause((cause) => Effect.failCause(cleanupCause(cause))));
@@ -377,7 +384,7 @@ const connect$1 = (target, contractModule, options, resources, processScope) =>
377
384
  }).pipe(Scope.provide(resources));
378
385
  const report = (cause) => Cause.hasInterruptsOnly(cause) ? Effect.void : failures.failCause(Cause.map(cause, (error) => TransportError.make({ cause: Cause.fail(error) })));
379
386
  yield* failures.await.pipe(Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause) ? Effect.void : peer.fail(TransportError.make({ cause }))), Effect.forkIn(resources));
380
- yield* failures.run(Fiber.join(renewed).pipe(Effect.catchCause((cause) => Effect.gen(function* () {
387
+ yield* failures.run(Fiber.join(renewed).pipe(Effect.catchCause(Effect.fnUntraced(function* (cause) {
381
388
  if (Cause.hasInterruptsOnly(cause)) return;
382
389
  const status = yield* Effect.exit(session.Status(record.handle).pipe(Effect.timeout("5 seconds")));
383
390
  if (Exit.isSuccess(status) && status.value.phase === "Stopped") {
@@ -394,7 +401,7 @@ const connect$1 = (target, contractModule, options, resources, processScope) =>
394
401
  resources,
395
402
  pid: Option.map(childOf(loaded), (child) => child.pid),
396
403
  diagnostics: failures.cause,
397
- terminate: () => Effect.gen(function* () {
404
+ terminate: Effect.fnUntraced(function* () {
398
405
  yield* Fiber.interrupt(renewed);
399
406
  yield* terminate;
400
407
  }),
@@ -426,7 +433,7 @@ const connect = Effect.fnUntraced(function* (execution, options) {
426
433
  report
427
434
  },
428
435
  diagnostics: Fiber.await(exited).pipe(Effect.andThen(failures.cause)),
429
- terminate: (graceful) => Effect.gen(function* () {
436
+ terminate: Effect.fnUntraced(function* (graceful) {
430
437
  yield* failures.close;
431
438
  if (!graceful) return;
432
439
  const status = yield* peer.end.pipe(Effect.catchCauseIf(Cause.hasInterruptsOnly, () => Effect.void), Effect.andThen(Fiber.join(exited)), Effect.interruptible, Effect.timeoutOrElse({
@@ -463,17 +470,17 @@ const finish = (causes) => {
463
470
  const scopes = Effect.acquireRelease(Effect.all({
464
471
  resources: Scope.make(),
465
472
  process: Scope.make()
466
- }), (scopes, exit) => Effect.gen(function* () {
473
+ }), Effect.fnUntraced(function* (scopes, exit) {
467
474
  const process = yield* Effect.exit(close(scopes.process, exit));
468
475
  const resources = yield* Effect.exit(close(scopes.resources, exit));
469
476
  yield* finish([reason(process), reason(resources)]);
470
477
  }));
471
478
  /** Setup supplies a concrete control lifecycle; release never reads a later-installed effect. */
472
- const acquire = (target, contractModule, options, setup, dispose, timeout) => Effect.gen(function* () {
479
+ const acquire = Effect.fnUntraced(function* (target, contractModule, options, setup, dispose, timeout) {
473
480
  const owned = yield* scopes;
474
481
  const connection = yield* Effect.acquireRelease(Effect.gen(function* () {
475
482
  return target._tag === "Local" || target._tag === "Worker" ? yield* Local(target, contractModule, options, owned.resources, owned.process).pipe(Effect.map(connected)) : yield* connect$1(target, contractModule, options, owned.resources, owned.process);
476
- }).pipe(Effect.interruptible), (connection, exit) => Effect.gen(function* () {
483
+ }).pipe(Effect.interruptible), Effect.fnUntraced(function* (connection, exit) {
477
484
  const process = yield* Effect.exit(close(owned.process, exit));
478
485
  yield* connection.diagnostics;
479
486
  const resources = yield* Effect.exit(close(owned.resources, exit));
@@ -484,7 +491,7 @@ const acquire = (target, contractModule, options, setup, dispose, timeout) => Ef
484
491
  diagnostics
485
492
  ]);
486
493
  }));
487
- return yield* Effect.acquireRelease(setup.pipe(Effect.provideService(Connection, connection)), (value) => Effect.gen(function* () {
494
+ return yield* Effect.acquireRelease(setup.pipe(Effect.provideService(Connection, connection)), Effect.fnUntraced(function* (value) {
488
495
  const graceful = yield* dispose(value).pipe(Effect.interruptible, Effect.timeout(timeout), Effect.exit);
489
496
  const terminated = yield* Effect.exit(connection.terminate(Exit.isSuccess(graceful)));
490
497
  yield* finish([Exit.isSuccess(graceful) ? graceful.value : graceful.cause, reason(terminated)]);
@@ -492,7 +499,7 @@ const acquire = (target, contractModule, options, setup, dispose, timeout) => Ef
492
499
  });
493
500
  // packages/remote/src/internal/host.ts
494
501
  const race = (connection, effect) => Effect.raceFirst(effect, connection.transport.failure);
495
- const forwardEvents = (contract, client, connection) => Effect.gen(function* () {
502
+ const forwardEvents = Effect.fnUntraced(function* (contract, client, connection) {
496
503
  const stopped = yield* Deferred.make();
497
504
  const remoteFailure = yield* make$4();
498
505
  return {
@@ -507,10 +514,10 @@ const forwardEvents = (contract, client, connection) => Effect.gen(function* ()
507
514
  }))).pipe(Effect.tapCause(connection.transport.report), Effect.forkIn(connection.resources))
508
515
  };
509
516
  });
510
- const forwardLogs = (contract, client, connection) => Effect.gen(function* () {
517
+ const forwardLogs = Effect.fnUntraced(function* (contract, client, connection) {
511
518
  const logsEnded = yield* Deferred.make();
512
519
  const reportedDrops = yield* Ref.make(0);
513
- yield* race(connection, client.Logs().pipe(Stream.runForEach((event) => Effect.gen(function* () {
520
+ yield* race(connection, client.Logs().pipe(Stream.runForEach(Effect.fnUntraced(function* (event) {
514
521
  const previous = yield* Ref.getAndSet(reportedDrops, event.dropped);
515
522
  if (event.dropped > previous) yield* Effect.logWarning("Remote logs were dropped").pipe(Effect.annotateLogs({
516
523
  ...Option.isSome(connection.pid) ? { "remote.pid": connection.pid.value } : {},
@@ -531,7 +538,7 @@ const forwardLogs = (contract, client, connection) => Effect.gen(function* () {
531
538
  })))).pipe(Effect.tapCause(connection.transport.report), Effect.forkIn(connection.resources));
532
539
  return logsEnded;
533
540
  });
534
- const initialize = (contract) => Effect.gen(function* () {
541
+ const initialize = Effect.fnUntraced(function* (contract) {
535
542
  const connection = yield* Connection;
536
543
  const client = yield* RpcClient.make(contract.control).pipe(Effect.provideService(RpcClient.Protocol, connection.transport.clientProtocol(endpoint)), Scope.provide(connection.resources));
537
544
  for (const service of contract.inject) yield* service.serve(connection.transport).pipe(Effect.tapCause(connection.transport.report), Effect.forkIn(connection.resources));
@@ -545,7 +552,7 @@ const initialize = (contract) => Effect.gen(function* () {
545
552
  };
546
553
  });
547
554
  const load$1 = (active, input) => race(active.connection, Effect.raceFirst(active.client.Load({ input }).pipe(Effect.catchIf((cause) => Cause.isCause(cause), Effect.failCause)), active.remoteFailure.await));
548
- const dispose = (active) => Effect.gen(function* () {
555
+ const dispose = Effect.fnUntraced(function* (active) {
549
556
  const result = yield* race(active.connection, active.client.Dispose().pipe(Effect.catchIf(Cause.isCause, Effect.succeed)));
550
557
  const cause = Cause.isCause(result) ? result : Cause.empty;
551
558
  yield* race(active.connection, Deferred.await(active.stopped).pipe(Effect.andThen(Deferred.await(active.logsEnded)))).pipe(Effect.onError(() => Effect.failCause(cleanupCause(cause))));
@@ -562,38 +569,59 @@ const executionPlugin = (contract, options, configured, annotations = {}) => mak
562
569
  ...Array.map(contract.inject, (service) => service.key)
563
570
  ],
564
571
  config: Schema.toEncoded(contract.config),
565
- apply: (input) => Effect.gen(function* () {
572
+ apply: Effect.fnUntraced(function* (input) {
573
+ const prepared = prepare(contract);
566
574
  const session = yield* (yield* SecureRandom.SecureRandom).uuidV4();
567
575
  const active = yield* acquire(configured, options.contractModule, {
568
576
  session,
569
577
  serve: endpoints(contract.inject),
570
578
  call: {
571
579
  ...endpoints(contract.provides),
572
- [endpoint]: contract.control
580
+ [endpoint]: prepared.control
573
581
  }
574
- }, initialize(contract), dispose, options.shutdownTimeout ?? "5 seconds");
582
+ }, initialize(prepared), dispose, options.shutdownTimeout ?? "5 seconds");
575
583
  yield* load$1(active, input);
576
584
  for (const service of contract.provides) yield* service.publish(active.connection.transport).pipe(Scope.provide(active.connection.resources));
577
585
  yield* fork(Effect.raceFirst(Fiber.join(active.events), active.remoteFailure.await).pipe(Effect.mapError((error) => publicError(contract.error, error))));
578
586
  return () => Effect.succeed(false);
579
- }).pipe(Effect.annotateLogs(annotations), Effect.mapError((error) => publicError(contract.error, error)))
587
+ }, Effect.annotateLogs(annotations), Effect.mapError((error) => publicError(contract.error, error)))
580
588
  });
581
- const publicError = (declared, error) => Schema.is(declared)(error) ? error : Schema.is(UndeclaredFailure)(error) || Schema.is(RemoteWithdrawn)(error) || Schema.is(RemoteError)(error) || Schema.is(MissingInstance)(error) ? error : RemoteError.make({ cause: Cause.fail(error) });
589
+ /** Failures raised by the host machinery; a permissive declared schema must not claim them. */
590
+ const internalErrors = [
591
+ ProcessExited,
592
+ TransportError,
593
+ LocalTerminationTimeout,
594
+ CredentialsError,
595
+ AuthenticationFailed,
596
+ RemoteEntryError,
597
+ AlreadyLoaded,
598
+ ContractNotFound,
599
+ ModuleImportFailed,
600
+ ActivationFailed,
601
+ PackageError,
602
+ SessionAccessDenied,
603
+ StaleSession,
604
+ LeaseExpired,
605
+ SessionStopped,
606
+ SessionConflict,
607
+ StateStorageError,
608
+ ExecutionError,
609
+ TerminationUnconfirmed,
610
+ RunnerClosing,
611
+ StateDirectoryLocked,
612
+ RemoteTerminationUnconfirmed,
613
+ ReleaseInterrupted,
614
+ RpcClientError.RpcClientError,
615
+ ...errors
616
+ ];
617
+ const isInternal = (error) => Schema.isSchemaError(error) || PlatformError.isPlatformError(error) || Array.some(internalErrors, (Class) => error instanceof Class);
618
+ const isPublic = (error) => Schema.is(UndeclaredFailure)(error) || Schema.is(RemoteWithdrawn)(error) || Schema.is(RemoteError)(error) || Schema.is(MissingInstance)(error);
619
+ const publicError = (declared, error) => isPublic(error) ? error : !isInternal(error) && Schema.is(declared)(error) ? error : RemoteError.make({ cause: Cause.fail(error) });
582
620
  // packages/remote/src/internal/entry.ts
583
- var EntryError = class extends Schema.TaggedError()("RemoteEntryError", {
584
- entry: Schema.Option(Schema.String),
585
- directory: Schema.Option(Schema.String),
586
- field: Schema.String,
587
- cause: Schema.Cause(Schema.Unknown, Schema.Unknown)
588
- }) {
589
- get message() {
590
- return `Remote entry ${Option.getOrElse(this.entry, () => "<programmatic>")} failed at ${this.field}`;
591
- }
592
- };
593
621
  const boundary = Effect.fnUntraced(function* (field) {
594
622
  const entry = yield* CurrentId;
595
623
  const directory = yield* ConfigDirectory;
596
- return (cause) => Effect.fail(EntryError.make({
624
+ return (cause) => Effect.fail(RemoteEntryError.make({
597
625
  entry,
598
626
  directory,
599
627
  field,
@@ -607,7 +635,7 @@ const resolve = Effect.fnUntraced(function* (reference, field) {
607
635
  const directory = path.resolve(Option.getOrElse(source, () => "."));
608
636
  const resolver = yield* Option.match(existing, {
609
637
  onSome: Effect.succeed,
610
- onNone: () => Effect.gen(function* () {
638
+ onNone: Effect.fnUntraced(function* () {
611
639
  const importer = yield* make$1(directory);
612
640
  return yield* make$2({
613
641
  base: directory,
@@ -1,5 +1,4 @@
1
1
  import { Config } from "../../internal/auth/tokenCredentials.js";
2
- import { Graft, Plugin } from "@graftland/graft";
3
- declare const capability: Plugin.Plugin<typeof Config.Type, typeof Config.Encoded, Graft.ServiceConflict>;
2
+ declare const capability: any;
4
3
  export { Config, capability as default };
5
4
  //# sourceMappingURL=bearer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bearer.d.ts","names":[],"sources":["../../../src/host/auth/bearer.ts"],"mappings":";;cAIM,YAAY,OAAO,cACjB,OAAO,aACP,OAAO,SACd,MAAM"}
1
+ {"version":3,"file":"bearer.d.ts","names":[],"sources":["../../../src/host/auth/bearer.ts"],"mappings":";cAGM"}
@@ -1,4 +1,4 @@
1
- import { n as plugin, t as Config } from "../../tokenCredentials-WUJm2AKm.js";
1
+ import { n as plugin, t as Config } from "../../tokenCredentials-CbCuk-Rt.js";
2
2
  // packages/remote/src/host/auth/bearer.ts
3
3
  const capability = plugin("remote-bearer-credentials");
4
4
  export { Config, capability as default };
@@ -1 +1 @@
1
- {"version":3,"file":"bearer.js","names":[],"sources":["../../../src/host/auth/bearer.ts"],"sourcesContent":["import type { Graft, Plugin } from \"@graftland/graft\"\nimport { Config, plugin } from \"../../internal/auth/tokenCredentials\"\nexport { Config }\n\nconst capability: Plugin.Plugin<\n\ttypeof Config.Type,\n\ttypeof Config.Encoded,\n\tGraft.ServiceConflict\n> = plugin(\"remote-bearer-credentials\")\nexport default capability\n"],"mappings":";;AAIA,MAAM,aAIF,OAAO,2BAA2B"}
1
+ {"version":3,"file":"bearer.js","names":[],"sources":["../../../src/host/auth/bearer.ts"],"sourcesContent":["import { Config, plugin } from \"../../internal/auth/tokenCredentials\"\nexport { Config }\n\nconst capability = plugin(\"remote-bearer-credentials\")\nexport default capability\n"],"mappings":";;AAGA,MAAM,aAAa,OAAO,2BAA2B"}
@@ -1,5 +1,4 @@
1
1
  import { Config } from "../../internal/auth/tokenCredentials.js";
2
- import { Graft, Plugin } from "@graftland/graft";
3
- declare const capability: Plugin.Plugin<typeof Config.Type, typeof Config.Encoded, Graft.ServiceConflict>;
2
+ declare const capability: any;
4
3
  export { Config, capability as default };
5
4
  //# sourceMappingURL=jwt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.d.ts","names":[],"sources":["../../../src/host/auth/jwt.ts"],"mappings":";;cAIM,YAAY,OAAO,cACjB,OAAO,aACP,OAAO,SACd,MAAM"}
1
+ {"version":3,"file":"jwt.d.ts","names":[],"sources":["../../../src/host/auth/jwt.ts"],"mappings":";cAGM"}
@@ -1,4 +1,4 @@
1
- import { n as plugin, t as Config } from "../../tokenCredentials-WUJm2AKm.js";
1
+ import { n as plugin, t as Config } from "../../tokenCredentials-CbCuk-Rt.js";
2
2
  // packages/remote/src/host/auth/jwt.ts
3
3
  const capability = plugin("remote-jwt-credentials");
4
4
  export { Config, capability as default };
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","names":[],"sources":["../../../src/host/auth/jwt.ts"],"sourcesContent":["import type { Graft, Plugin } from \"@graftland/graft\"\nimport { Config, plugin } from \"../../internal/auth/tokenCredentials\"\nexport { Config }\n\nconst capability: Plugin.Plugin<\n\ttypeof Config.Type,\n\ttypeof Config.Encoded,\n\tGraft.ServiceConflict\n> = plugin(\"remote-jwt-credentials\")\nexport default capability\n"],"mappings":";;AAIA,MAAM,aAIF,OAAO,wBAAwB"}
1
+ {"version":3,"file":"jwt.js","names":[],"sources":["../../../src/host/auth/jwt.ts"],"sourcesContent":["import { Config, plugin } from \"../../internal/auth/tokenCredentials\"\nexport { Config }\n\nconst capability = plugin(\"remote-jwt-credentials\")\nexport default capability\n"],"mappings":";;AAGA,MAAM,aAAa,OAAO,wBAAwB"}
@@ -1,5 +1,5 @@
1
- import { a as provide, l as make } from "../../Graft-BsYq3F-J.js";
2
- import { n as CredentialsError } from "../../Errors-oPsTLY7l.js";
1
+ import { a as provide, l as make } from "../../Graft-B71CPA2Y.js";
2
+ import { r as CredentialsError } from "../../Errors-DYhsGZcZ.js";
3
3
  import { t as ConfigDirectory } from "../../ConfigDirectory-BCC6q2R4.js";
4
4
  import { n as Credentials } from "../../Auth-BElTC9_X.js";
5
5
  import { Cause, Effect, FileSystem, Option, Path, Redacted, Schema } from "effect";
@@ -1,4 +1,4 @@
1
- import { a as provide, l as make } from "../../Graft-BsYq3F-J.js";
1
+ import { a as provide, l as make } from "../../Graft-B71CPA2Y.js";
2
2
  import { n as Credentials } from "../../Auth-BElTC9_X.js";
3
3
  import { Effect, Schema } from "effect";
4
4
  // packages/remote/src/host/auth/none.ts
@@ -18,5 +18,5 @@ export declare const Config: Schema.Struct<{
18
18
  readonly env: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
19
19
  }>;
20
20
  declare const _default: any;
21
- export { _default as default };
21
+ export { type CommandOptions as Options, _default as default };
22
22
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","names":["_$___Transport0.ConnectorApi"],"sources":["../../src/host/command.ts"],"mappings":";;;;;;;;;WAsBmB;;qBAFN,sBAAsB;;qBAUtB,OAAI,SAAa,mBAAc,OAAA,OAAdA,qBAAc,oBAAA;qBA2E/B,QAAM,OAAA"}
1
+ {"version":3,"file":"command.d.ts","names":["_$___Transport0.ConnectorApi"],"sources":["../../src/host/command.ts"],"mappings":";;;;;;;;;WAwBmB;;qBAFN,sBAAsB;;qBAUtB,OAAI,SAAa,mBAAc,OAAA,OAAdA,qBAAc,oBAAA;qBA2E/B,QAAM,OAAA"}
@@ -1,9 +1,9 @@
1
- import { a as provide, l as make$1 } from "../Graft-BsYq3F-J.js";
1
+ import { a as provide, l as make$1 } from "../Graft-B71CPA2Y.js";
2
2
  import { t as Connector } from "../Transport-DULzpsgR.js";
3
3
  import { t as ConfigDirectory } from "../ConfigDirectory-BCC6q2R4.js";
4
- import { c as TransportError } from "../Errors-oPsTLY7l.js";
5
- import { n as cleanupCause } from "../cleanup-BPWr-5U9.js";
6
- import { n as stdinExitTimeout, t as observe } from "../ProcessObservation-DEGrEMfP.js";
4
+ import { u as TransportError } from "../Errors-DYhsGZcZ.js";
5
+ import { r as cleanupCause } from "../FailureGroup-BgT73AaR.js";
6
+ import { n as stdinExitTimeout, t as observe } from "../ProcessObservation-gLgGirYv.js";
7
7
  import { Array, Cause, Effect, Option, Path, Schema, Scope, Sink, Stream } from "effect";
8
8
  import { ChildProcess, ChildProcessSpawner } from "effect/process";
9
9
  // packages/remote/src/host/command.ts
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","names":["ProcessObservation.observe","ProcessObservation.stdinExitTimeout"],"sources":["../../src/host/command.ts"],"sourcesContent":["import type { CommandOptions } from \"../internal/transportOptions\"\nimport { Plugin, Graft } from \"@graftland/graft\"\nimport {\n\tArray,\n\tCause,\n\tEffect,\n\tOption,\n\tPath,\n\tSchema,\n\tScope,\n\tSink,\n\tStream,\n} from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/process\"\nimport { Connector } from \"../Transport\"\nimport { ConfigDirectory } from \"@graftland/loader\"\nimport { TransportError } from \"../Errors\"\nimport { cleanupCause } from \"../internal/cleanup\"\nimport * as ProcessObservation from \"../internal/runner/ProcessObservation\"\n\nexport class CommandExited extends Schema.TaggedError<\n\tCommandExited,\n\t{ readonly brand: unique symbol }\n>()(\"CommandExited\", {\n\tcode: Schema.NullOr(Schema.Int),\n\tstderr: Schema.String,\n\tcause: Schema.Cause(Schema.Unknown, Schema.Unknown),\n}) {}\n\n/** The launcher exit describes this channel, never the remote execution's termination. */\nexport const make = (options: CommandOptions) =>\n\tEffect.map(ChildProcessSpawner.ChildProcessSpawner, (spawner) =>\n\t\tConnector.of({\n\t\t\tproperties: {\n\t\t\t\tprotocol: \"command\",\n\t\t\t\tencrypted: false,\n\t\t\t\tnetwork: false,\n\t\t\t\tcarries: [],\n\t\t\t},\n\t\t\tconnect: Effect.fnUntraced(\n\t\t\t\tfunction* () {\n\t\t\t\t\tconst scope = yield* Effect.scope\n\t\t\t\t\tconst readers = yield* Scope.fork(scope)\n\t\t\t\t\tconst child = yield* spawner.spawn(\n\t\t\t\t\t\tChildProcess.make(options.argv[0], Array.drop(options.argv, 1), {\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t\tstdin: \"pipe\",\n\t\t\t\t\t\t\tstdout: \"pipe\",\n\t\t\t\t\t\t\tstderr: \"pipe\",\n\t\t\t\t\t\t\tforceKillAfter: \"1 second\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t\tconst observation = yield* ProcessObservation.observe(child, {\n\t\t\t\t\t\tdrainStdout: false,\n\t\t\t\t\t}).pipe(Scope.provide(readers))\n\t\t\t\t\tconst exited = observation.exited.pipe(\n\t\t\t\t\t\tEffect.map((status) => CommandExited.make(status)),\n\t\t\t\t\t)\n\t\t\t\t\tyield* Effect.addFinalizer(() =>\n\t\t\t\t\t\tStream.empty.pipe(\n\t\t\t\t\t\t\tStream.run(child.stdin),\n\t\t\t\t\t\t\tEffect.andThen(exited),\n\t\t\t\t\t\t\tEffect.flatMap((status) =>\n\t\t\t\t\t\t\t\tstatus.code === 0 && status.cause.reasons.length === 0\n\t\t\t\t\t\t\t\t\t? Effect.void\n\t\t\t\t\t\t\t\t\t: Effect.fail(status),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tEffect.interruptible,\n\t\t\t\t\t\t\tEffect.timeout(ProcessObservation.stdinExitTimeout),\n\t\t\t\t\t\t\tEffect.catchCause((cause) =>\n\t\t\t\t\t\t\t\tEffect.failCause(cleanupCause(cause)),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tinput: child.stdout.pipe(\n\t\t\t\t\t\t\tStream.concat(\n\t\t\t\t\t\t\t\tStream.fromEffect(\n\t\t\t\t\t\t\t\t\texited.pipe(\n\t\t\t\t\t\t\t\t\t\tEffect.flatMap((status) =>\n\t\t\t\t\t\t\t\t\t\t\tstatus.code === 0 && status.cause.reasons.length === 0\n\t\t\t\t\t\t\t\t\t\t\t\t? Effect.void\n\t\t\t\t\t\t\t\t\t\t\t\t: Effect.fail(status),\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t).pipe(Stream.drain),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tStream.interruptWhen(observation.failure),\n\t\t\t\t\t\t\tStream.mapError((error) =>\n\t\t\t\t\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t\toutput: child.stdin.pipe(\n\t\t\t\t\t\t\tSink.mapError((error) =>\n\t\t\t\t\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tEffect.mapError((error) =>\n\t\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t\t),\n\t\t\t),\n\t\t}),\n\t)\nexport const Config = Schema.Struct({\n\targv: Schema.NonEmptyArray(Schema.String),\n\tcwd: Schema.optionalKey(Schema.String),\n\tenv: Schema.optionalKey(Schema.Record(Schema.String, Schema.String)),\n})\nexport default Plugin.make({\n\tname: \"remote-command-connector\",\n\tconfig: Config,\n\tinject: [ChildProcessSpawner.ChildProcessSpawner, Path.Path],\n\tapply: Effect.fnUntraced(function* (config) {\n\t\tconst path = yield* Path.Path\n\t\tconst directory = yield* ConfigDirectory\n\t\tconst connector = yield* make({\n\t\t\t...config,\n\t\t\t...(config.cwd === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tcwd: path.resolve(\n\t\t\t\t\t\t\tOption.getOrElse(directory, () => \".\"),\n\t\t\t\t\t\t\tconfig.cwd,\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t})\n\t\tyield* Graft.provide(Connector, connector)\n\t}),\n})\n"],"mappings":";;;;;;;;;AAoBA,IAAa,gBAAb,cAAmC,OAAO,YAGxC,CAAC,CAAC,iBAAiB;CACpB,MAAM,OAAO,OAAO,OAAO,GAAG;CAC9B,QAAQ,OAAO;CACf,OAAO,OAAO,MAAM,OAAO,SAAS,OAAO,OAAO;AACnD,CAAC,CAAC,CAAC,CAAC;;AAGJ,MAAa,QAAQ,YACpB,OAAO,IAAI,oBAAoB,sBAAsB,YACpD,UAAU,GAAG;CACZ,YAAY;EACX,UAAU;EACV,WAAW;EACX,SAAS;EACT,SAAS,CAAC;CACX;CACA,SAAS,OAAO,WACf,aAAa;EACZ,MAAM,QAAQ,OAAO,OAAO;EAC5B,MAAM,UAAU,OAAO,MAAM,KAAK,KAAK;EACvC,MAAM,QAAQ,OAAO,QAAQ,MAC5B,aAAa,KAAK,QAAQ,KAAK,IAAI,MAAM,KAAK,QAAQ,MAAM,CAAC,GAAG;GAC/D,GAAG;GACH,OAAO;GACP,QAAQ;GACR,QAAQ;GACR,gBAAgB;EACjB,CAAC,CACF;EACA,MAAM,cAAc,OAAOA,QAA2B,OAAO,EAC5D,aAAa,MACd,CAAC,CAAC,CAAC,KAAK,MAAM,QAAQ,OAAO,CAAC;EAC9B,MAAM,SAAS,YAAY,OAAO,KACjC,OAAO,KAAK,WAAW,cAAc,KAAK,MAAM,CAAC,CAClD;EACA,OAAO,OAAO,mBACb,OAAO,MAAM,KACZ,OAAO,IAAI,MAAM,KAAK,GACtB,OAAO,QAAQ,MAAM,GACrB,OAAO,SAAS,WACf,OAAO,SAAS,KAAK,OAAO,MAAM,QAAQ,WAAW,IAClD,OAAO,OACP,OAAO,KAAK,MAAM,CACtB,GACA,OAAO,eACP,OAAO,QAAQC,gBAAmC,GAClD,OAAO,YAAY,UAClB,OAAO,UAAU,aAAa,KAAK,CAAC,CACrC,CACD,CACD;EACA,OAAO;GACN,OAAO,MAAM,OAAO,KACnB,OAAO,OACN,OAAO,WACN,OAAO,KACN,OAAO,SAAS,WACf,OAAO,SAAS,KAAK,OAAO,MAAM,QAAQ,WAAW,IAClD,OAAO,OACP,OAAO,KAAK,MAAM,CACtB,CACD,CACD,CAAC,CAAC,KAAK,OAAO,KAAK,CACpB,GACA,OAAO,cAAc,YAAY,OAAO,GACxC,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;GACA,QAAQ,MAAM,MAAM,KACnB,KAAK,UAAU,UACd,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;EACD;CACD,GACA,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;AACD,CAAC,CACF;AACD,MAAa,SAAS,OAAO,OAAO;CACnC,MAAM,OAAO,cAAc,OAAO,MAAM;CACxC,KAAK,OAAO,YAAY,OAAO,MAAM;CACrC,KAAK,OAAO,YAAY,OAAO,OAAO,OAAO,QAAQ,OAAO,MAAM,CAAC;AACpE,CAAC;AACD,IAAA,kBAAe,OAAO,KAAK;CAC1B,MAAM;CACN,QAAQ;CACR,QAAQ,CAAC,oBAAoB,qBAAqB,KAAK,IAAI;CAC3D,OAAO,OAAO,WAAW,WAAW,QAAQ;EAC3C,MAAM,OAAO,OAAO,KAAK;EACzB,MAAM,YAAY,OAAO;EACzB,MAAM,YAAY,OAAO,KAAK;GAC7B,GAAG;GACH,GAAI,OAAO,QAAQ,KAAA,IAChB,CAAC,IACD,EACA,KAAK,KAAK,QACT,OAAO,UAAU,iBAAiB,GAAG,GACrC,OAAO,GACR,EACD;EACH,CAAC;EACD,OAAO,MAAM,QAAQ,WAAW,SAAS;CAC1C,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"command.js","names":["ProcessObservation.observe","ProcessObservation.stdinExitTimeout"],"sources":["../../src/host/command.ts"],"sourcesContent":["/** Options for the command connector. */\nexport type { CommandOptions as Options } from \"../internal/transportOptions\"\nimport type { CommandOptions } from \"../internal/transportOptions\"\nimport { Plugin, Graft } from \"@graftland/graft\"\nimport {\n\tArray,\n\tCause,\n\tEffect,\n\tOption,\n\tPath,\n\tSchema,\n\tScope,\n\tSink,\n\tStream,\n} from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/process\"\nimport { Connector } from \"../Transport\"\nimport { ConfigDirectory } from \"@graftland/loader\"\nimport { TransportError } from \"../Errors\"\nimport { cleanupCause } from \"../internal/cleanup\"\nimport * as ProcessObservation from \"../internal/runner/ProcessObservation\"\n\nexport class CommandExited extends Schema.TaggedError<\n\tCommandExited,\n\t{ readonly brand: unique symbol }\n>()(\"CommandExited\", {\n\tcode: Schema.NullOr(Schema.Int),\n\tstderr: Schema.String,\n\tcause: Schema.Cause(Schema.Unknown, Schema.Unknown),\n}) {}\n\n/** The launcher exit describes this channel, never the remote execution's termination. */\nexport const make = (options: CommandOptions) =>\n\tEffect.map(ChildProcessSpawner.ChildProcessSpawner, (spawner) =>\n\t\tConnector.of({\n\t\t\tproperties: {\n\t\t\t\tprotocol: \"command\",\n\t\t\t\tencrypted: false,\n\t\t\t\tnetwork: false,\n\t\t\t\tcarries: [],\n\t\t\t},\n\t\t\tconnect: Effect.fnUntraced(\n\t\t\t\tfunction* () {\n\t\t\t\t\tconst scope = yield* Effect.scope\n\t\t\t\t\tconst readers = yield* Scope.fork(scope)\n\t\t\t\t\tconst child = yield* spawner.spawn(\n\t\t\t\t\t\tChildProcess.make(options.argv[0], Array.drop(options.argv, 1), {\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t\tstdin: \"pipe\",\n\t\t\t\t\t\t\tstdout: \"pipe\",\n\t\t\t\t\t\t\tstderr: \"pipe\",\n\t\t\t\t\t\t\tforceKillAfter: \"1 second\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t\tconst observation = yield* ProcessObservation.observe(child, {\n\t\t\t\t\t\tdrainStdout: false,\n\t\t\t\t\t}).pipe(Scope.provide(readers))\n\t\t\t\t\tconst exited = observation.exited.pipe(\n\t\t\t\t\t\tEffect.map((status) => CommandExited.make(status)),\n\t\t\t\t\t)\n\t\t\t\t\tyield* Effect.addFinalizer(() =>\n\t\t\t\t\t\tStream.empty.pipe(\n\t\t\t\t\t\t\tStream.run(child.stdin),\n\t\t\t\t\t\t\tEffect.andThen(exited),\n\t\t\t\t\t\t\tEffect.flatMap((status) =>\n\t\t\t\t\t\t\t\tstatus.code === 0 && status.cause.reasons.length === 0\n\t\t\t\t\t\t\t\t\t? Effect.void\n\t\t\t\t\t\t\t\t\t: Effect.fail(status),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tEffect.interruptible,\n\t\t\t\t\t\t\tEffect.timeout(ProcessObservation.stdinExitTimeout),\n\t\t\t\t\t\t\tEffect.catchCause((cause) =>\n\t\t\t\t\t\t\t\tEffect.failCause(cleanupCause(cause)),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tinput: child.stdout.pipe(\n\t\t\t\t\t\t\tStream.concat(\n\t\t\t\t\t\t\t\tStream.fromEffect(\n\t\t\t\t\t\t\t\t\texited.pipe(\n\t\t\t\t\t\t\t\t\t\tEffect.flatMap((status) =>\n\t\t\t\t\t\t\t\t\t\t\tstatus.code === 0 && status.cause.reasons.length === 0\n\t\t\t\t\t\t\t\t\t\t\t\t? Effect.void\n\t\t\t\t\t\t\t\t\t\t\t\t: Effect.fail(status),\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t).pipe(Stream.drain),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tStream.interruptWhen(observation.failure),\n\t\t\t\t\t\t\tStream.mapError((error) =>\n\t\t\t\t\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t\toutput: child.stdin.pipe(\n\t\t\t\t\t\t\tSink.mapError((error) =>\n\t\t\t\t\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tEffect.mapError((error) =>\n\t\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t\t),\n\t\t\t),\n\t\t}),\n\t)\nexport const Config = Schema.Struct({\n\targv: Schema.NonEmptyArray(Schema.String),\n\tcwd: Schema.optionalKey(Schema.String),\n\tenv: Schema.optionalKey(Schema.Record(Schema.String, Schema.String)),\n})\nexport default Plugin.make({\n\tname: \"remote-command-connector\",\n\tconfig: Config,\n\tinject: [ChildProcessSpawner.ChildProcessSpawner, Path.Path],\n\tapply: Effect.fnUntraced(function* (config) {\n\t\tconst path = yield* Path.Path\n\t\tconst directory = yield* ConfigDirectory\n\t\tconst connector = yield* make({\n\t\t\t...config,\n\t\t\t...(config.cwd === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tcwd: path.resolve(\n\t\t\t\t\t\t\tOption.getOrElse(directory, () => \".\"),\n\t\t\t\t\t\t\tconfig.cwd,\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t})\n\t\tyield* Graft.provide(Connector, connector)\n\t}),\n})\n"],"mappings":";;;;;;;;;AAsBA,IAAa,gBAAb,cAAmC,OAAO,YAGxC,CAAC,CAAC,iBAAiB;CACpB,MAAM,OAAO,OAAO,OAAO,GAAG;CAC9B,QAAQ,OAAO;CACf,OAAO,OAAO,MAAM,OAAO,SAAS,OAAO,OAAO;AACnD,CAAC,CAAC,CAAC,CAAC;;AAGJ,MAAa,QAAQ,YACpB,OAAO,IAAI,oBAAoB,sBAAsB,YACpD,UAAU,GAAG;CACZ,YAAY;EACX,UAAU;EACV,WAAW;EACX,SAAS;EACT,SAAS,CAAC;CACX;CACA,SAAS,OAAO,WACf,aAAa;EACZ,MAAM,QAAQ,OAAO,OAAO;EAC5B,MAAM,UAAU,OAAO,MAAM,KAAK,KAAK;EACvC,MAAM,QAAQ,OAAO,QAAQ,MAC5B,aAAa,KAAK,QAAQ,KAAK,IAAI,MAAM,KAAK,QAAQ,MAAM,CAAC,GAAG;GAC/D,GAAG;GACH,OAAO;GACP,QAAQ;GACR,QAAQ;GACR,gBAAgB;EACjB,CAAC,CACF;EACA,MAAM,cAAc,OAAOA,QAA2B,OAAO,EAC5D,aAAa,MACd,CAAC,CAAC,CAAC,KAAK,MAAM,QAAQ,OAAO,CAAC;EAC9B,MAAM,SAAS,YAAY,OAAO,KACjC,OAAO,KAAK,WAAW,cAAc,KAAK,MAAM,CAAC,CAClD;EACA,OAAO,OAAO,mBACb,OAAO,MAAM,KACZ,OAAO,IAAI,MAAM,KAAK,GACtB,OAAO,QAAQ,MAAM,GACrB,OAAO,SAAS,WACf,OAAO,SAAS,KAAK,OAAO,MAAM,QAAQ,WAAW,IAClD,OAAO,OACP,OAAO,KAAK,MAAM,CACtB,GACA,OAAO,eACP,OAAO,QAAQC,gBAAmC,GAClD,OAAO,YAAY,UAClB,OAAO,UAAU,aAAa,KAAK,CAAC,CACrC,CACD,CACD;EACA,OAAO;GACN,OAAO,MAAM,OAAO,KACnB,OAAO,OACN,OAAO,WACN,OAAO,KACN,OAAO,SAAS,WACf,OAAO,SAAS,KAAK,OAAO,MAAM,QAAQ,WAAW,IAClD,OAAO,OACP,OAAO,KAAK,MAAM,CACtB,CACD,CACD,CAAC,CAAC,KAAK,OAAO,KAAK,CACpB,GACA,OAAO,cAAc,YAAY,OAAO,GACxC,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;GACA,QAAQ,MAAM,MAAM,KACnB,KAAK,UAAU,UACd,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;EACD;CACD,GACA,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;AACD,CAAC,CACF;AACD,MAAa,SAAS,OAAO,OAAO;CACnC,MAAM,OAAO,cAAc,OAAO,MAAM;CACxC,KAAK,OAAO,YAAY,OAAO,MAAM;CACrC,KAAK,OAAO,YAAY,OAAO,OAAO,OAAO,QAAQ,OAAO,MAAM,CAAC;AACpE,CAAC;AACD,IAAA,kBAAe,OAAO,KAAK;CAC1B,MAAM;CACN,QAAQ;CACR,QAAQ,CAAC,oBAAoB,qBAAqB,KAAK,IAAI;CAC3D,OAAO,OAAO,WAAW,WAAW,QAAQ;EAC3C,MAAM,OAAO,OAAO,KAAK;EACzB,MAAM,YAAY,OAAO;EACzB,MAAM,YAAY,OAAO,KAAK;GAC7B,GAAG;GACH,GAAI,OAAO,QAAQ,KAAA,IAChB,CAAC,IACD,EACA,KAAK,KAAK,QACT,OAAO,UAAU,iBAAiB,GAAG,GACrC,OAAO,GACR,EACD;EACH,CAAC;EACD,OAAO,MAAM,QAAQ,WAAW,SAAS;CAC1C,CAAC;AACF,CAAC"}
@@ -1,4 +1,3 @@
1
- import { Graft, Plugin } from "@graftland/graft";
2
- declare const plugin: Plugin.Plugin<void, void, Graft.ServiceConflict>;
1
+ declare const plugin: any;
3
2
  export { plugin as default };
4
3
  //# sourceMappingURL=local.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","names":[],"sources":["../../src/host/local.ts"],"mappings":";cA+BM,QAAQ,OAAO,mBAAmB,MAAM"}
1
+ {"version":3,"file":"local.d.ts","names":[],"sources":["../../src/host/local.ts"],"mappings":"A,cA+BM"}
@@ -1,8 +1,8 @@
1
- import { d as service } from "../Graft-BsYq3F-J.js";
1
+ import { d as service } from "../Graft-B71CPA2Y.js";
2
2
  import { t as LocalTransport } from "../directTransport-DrexuPSm.js";
3
3
  import { t as command } from "../command-9zrHdbwT.js";
4
- import { a as ProcessExited, c as TransportError } from "../Errors-oPsTLY7l.js";
5
- import { t as observe$1 } from "../ProcessObservation-DEGrEMfP.js";
4
+ import { o as ProcessExited, u as TransportError } from "../Errors-DYhsGZcZ.js";
5
+ import { t as observe$1 } from "../ProcessObservation-gLgGirYv.js";
6
6
  import { Array, Cause, Effect, Fiber, Option, Scope, Sink, Stream } from "effect";
7
7
  import { ChildProcess, ChildProcessSpawner } from "effect/process";
8
8
  // packages/remote/src/internal/host/local.ts
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","names":["Local.observe"],"sources":["../../src/host/local.ts"],"sourcesContent":["import { Plugin, type Graft } from \"@graftland/graft\"\nimport { Array, Effect, Scope } from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/process\"\nimport { LocalTransport } from \"../internal/directTransport\"\nimport { command } from \"../internal/runner/command\"\nimport * as Local from \"../internal/host/local\"\n\nconst make = Effect.map(ChildProcessSpawner.ChildProcessSpawner, (spawner) =>\n\tLocalTransport.of({\n\t\tstart: Effect.fnUntraced(function* (options) {\n\t\t\tconst scope = yield* Effect.scope\n\t\t\t// Readers must outlive the process finalizer to capture its final diagnostics.\n\t\t\tconst readers = yield* Scope.fork(scope)\n\t\t\tconst argv = yield* command(options.command)\n\t\t\tconst child = yield* spawner.spawn(\n\t\t\t\tChildProcess.make(\n\t\t\t\t\targv[0],\n\t\t\t\t\t[...Array.drop(argv, 1), options.contractModule, options.session],\n\t\t\t\t\t{\n\t\t\t\t\t\tstdin: \"pipe\",\n\t\t\t\t\t\tstdout: \"pipe\",\n\t\t\t\t\t\tstderr: \"pipe\",\n\t\t\t\t\t\tadditionalFds: { fd3: { type: \"output\" } },\n\t\t\t\t\t\tforceKillAfter: \"1 second\",\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t)\n\t\t\treturn yield* Local.observe(child).pipe(Scope.provide(readers))\n\t\t}),\n\t}),\n)\nconst plugin: Plugin.Plugin<void, void, Graft.ServiceConflict> = Plugin.service(\n\tLocalTransport,\n\tmake,\n\t{\n\t\tname: \"remote-local-transport\",\n\t\tinject: [ChildProcessSpawner.ChildProcessSpawner],\n\t},\n)\n\nexport default plugin\n"],"mappings":";;;;;;;AAOA,MAAM,OAAO,OAAO,IAAI,oBAAoB,sBAAsB,YACjE,eAAe,GAAG,EACjB,OAAO,OAAO,WAAW,WAAW,SAAS;CAC5C,MAAM,QAAQ,OAAO,OAAO;CAE5B,MAAM,UAAU,OAAO,MAAM,KAAK,KAAK;CACvC,MAAM,OAAO,OAAO,QAAQ,QAAQ,OAAO;CAC3C,MAAM,QAAQ,OAAO,QAAQ,MAC5B,aAAa,KACZ,KAAK,IACL;EAAC,GAAG,MAAM,KAAK,MAAM,CAAC;EAAG,QAAQ;EAAgB,QAAQ;CAAO,GAChE;EACC,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,EAAE;EACzC,gBAAgB;CACjB,CACD,CACD;CACA,OAAO,OAAOA,QAAc,KAAK,CAAC,CAAC,KAAK,MAAM,QAAQ,OAAO,CAAC;AAC/D,CAAC,EACF,CAAC,CACF;AACA,MAAM,SAA2D,OAAO,QACvE,gBACA,MACA;CACC,MAAM;CACN,QAAQ,CAAC,oBAAoB,mBAAmB;AACjD,CACD"}
1
+ {"version":3,"file":"local.js","names":["Local.observe"],"sources":["../../src/host/local.ts"],"sourcesContent":["import { Plugin } from \"@graftland/graft\"\nimport { Array, Effect, Scope } from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/process\"\nimport { LocalTransport } from \"../internal/directTransport\"\nimport { command } from \"../internal/runner/command\"\nimport * as Local from \"../internal/host/local\"\n\nconst make = Effect.map(ChildProcessSpawner.ChildProcessSpawner, (spawner) =>\n\tLocalTransport.of({\n\t\tstart: Effect.fnUntraced(function* (options) {\n\t\t\tconst scope = yield* Effect.scope\n\t\t\t// Readers must outlive the process finalizer to capture its final diagnostics.\n\t\t\tconst readers = yield* Scope.fork(scope)\n\t\t\tconst argv = yield* command(options.command)\n\t\t\tconst child = yield* spawner.spawn(\n\t\t\t\tChildProcess.make(\n\t\t\t\t\targv[0],\n\t\t\t\t\t[...Array.drop(argv, 1), options.contractModule, options.session],\n\t\t\t\t\t{\n\t\t\t\t\t\tstdin: \"pipe\",\n\t\t\t\t\t\tstdout: \"pipe\",\n\t\t\t\t\t\tstderr: \"pipe\",\n\t\t\t\t\t\tadditionalFds: { fd3: { type: \"output\" } },\n\t\t\t\t\t\tforceKillAfter: \"1 second\",\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t)\n\t\t\treturn yield* Local.observe(child).pipe(Scope.provide(readers))\n\t\t}),\n\t}),\n)\nconst plugin = Plugin.service(LocalTransport, make, {\n\tname: \"remote-local-transport\",\n\tinject: [ChildProcessSpawner.ChildProcessSpawner],\n})\n\nexport default plugin\n"],"mappings":";;;;;;;AAOA,MAAM,OAAO,OAAO,IAAI,oBAAoB,sBAAsB,YACjE,eAAe,GAAG,EACjB,OAAO,OAAO,WAAW,WAAW,SAAS;CAC5C,MAAM,QAAQ,OAAO,OAAO;CAE5B,MAAM,UAAU,OAAO,MAAM,KAAK,KAAK;CACvC,MAAM,OAAO,OAAO,QAAQ,QAAQ,OAAO;CAC3C,MAAM,QAAQ,OAAO,QAAQ,MAC5B,aAAa,KACZ,KAAK,IACL;EAAC,GAAG,MAAM,KAAK,MAAM,CAAC;EAAG,QAAQ;EAAgB,QAAQ;CAAO,GAChE;EACC,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,EAAE;EACzC,gBAAgB;CACjB,CACD,CACD;CACA,OAAO,OAAOA,QAAc,KAAK,CAAC,CAAC,KAAK,MAAM,QAAQ,OAAO,CAAC;AAC/D,CAAC,EACF,CAAC,CACF;AACA,MAAM,SAAS,OAAO,QAAQ,gBAAgB,MAAM;CACnD,MAAM;CACN,QAAQ,CAAC,oBAAoB,mBAAmB;AACjD,CAAC"}
@@ -7,5 +7,5 @@ export declare const Config: Schema.Struct<{
7
7
  readonly path: Schema.String;
8
8
  }>;
9
9
  declare const _default: any;
10
- export { _default as default };
10
+ export { type UnixOptions as Options, _default as default };
11
11
  //# sourceMappingURL=unix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unix.d.ts","names":[],"sources":["../../src/host/unix.ts"],"mappings":";;;qBAYa,YAAY;qBAmBZ,OAAI,SAAa,gBAAc;qBAe/B,QAAM,OAAA"}
1
+ {"version":3,"file":"unix.d.ts","names":[],"sources":["../../src/host/unix.ts"],"mappings":";;;qBAca,YAAY;qBAmBZ,OAAI,SAAa,gBAAc;qBAe/B,QAAM,OAAA"}
package/dist/host/unix.js CHANGED
@@ -1,8 +1,8 @@
1
- import { a as provide, l as make$1 } from "../Graft-BsYq3F-J.js";
1
+ import { a as provide, l as make$1 } from "../Graft-B71CPA2Y.js";
2
2
  import { t as ConfigDirectory } from "../ConfigDirectory-BCC6q2R4.js";
3
- import { a as payloadLimit, c as wrapper_default, i as path, s as protocol, t as fromSocket } from "../socketChannel-KmtzF-9G.js";
3
+ import { a as payloadLimit, c as wrapper_default, i as path, s as protocol, t as fromSocket } from "../socketChannel-CJvL2DiB.js";
4
4
  import { t as Connector } from "../Transport-DULzpsgR.js";
5
- import { c as TransportError } from "../Errors-oPsTLY7l.js";
5
+ import { u as TransportError } from "../Errors-DYhsGZcZ.js";
6
6
  import { Cause, Effect, Layer, Option, Path, Redacted, Schema } from "effect";
7
7
  import { Socket } from "effect/socket";
8
8
  // packages/remote/src/host/unix.ts
@@ -1 +1 @@
1
- {"version":3,"file":"unix.js","names":["Channel.fromSocket"],"sources":["../../src/host/unix.ts"],"sourcesContent":["import type { UnixOptions } from \"../internal/transportOptions\"\nimport { Plugin, Graft } from \"@graftland/graft\"\nimport { ConfigDirectory } from \"@graftland/loader\"\nimport { Cause, Effect, Layer, Option, Path, Redacted, Schema } from \"effect\"\nimport { Socket } from \"effect/socket\"\nimport WS from \"ws\"\nimport type { Prepared } from \"../Auth\"\nimport { Connector, type ConnectorApi } from \"../Transport\"\nimport { TransportError } from \"../Errors\"\nimport { path, protocol, payloadLimit } from \"../internal/websocket\"\nimport * as Channel from \"../internal/socketChannel\"\n\nexport const properties: ConnectorApi[\"properties\"] = {\n\tprotocol: \"unix\",\n\tencrypted: false,\n\tnetwork: false,\n\tcarries: [\"header\"],\n}\nconst constructor = (credentials: Prepared) =>\n\tLayer.succeed(\n\t\tSocket.WebSocketConstructor,\n\t\t(url) =>\n\t\t\tnew WS(url, protocol, {\n\t\t\t\theaders:\n\t\t\t\t\tcredentials._tag === \"Authorization\"\n\t\t\t\t\t\t? { authorization: Redacted.value(credentials.value) }\n\t\t\t\t\t\t: {},\n\t\t\t\tperMessageDeflate: false,\n\t\t\t\tmaxPayload: payloadLimit,\n\t\t\t}),\n\t)\nexport const make = (options: UnixOptions): ConnectorApi => ({\n\tproperties,\n\tconnect: Effect.fnUntraced(\n\t\tfunction* (credentials) {\n\t\t\tconst services = yield* Layer.build(constructor(credentials))\n\t\t\tconst socket = yield* Socket.makeWebSocket(\n\t\t\t\t`ws+unix://${options.path}:${path}`,\n\t\t\t).pipe(Effect.provideContext(services))\n\t\t\treturn yield* Channel.fromSocket(socket)\n\t\t},\n\t\tEffect.mapError((error) =>\n\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t),\n\t),\n})\nexport const Config = Schema.Struct({ path: Schema.String })\nexport default Plugin.make({\n\tname: \"remote-unix-connector\",\n\tconfig: Config,\n\tinject: [Path.Path],\n\tapply: Effect.fnUntraced(function* (config) {\n\t\tconst path = yield* Path.Path\n\t\tconst directory = yield* ConfigDirectory\n\t\tyield* Graft.provide(\n\t\t\tConnector,\n\t\t\tmake({\n\t\t\t\tpath: path.resolve(\n\t\t\t\t\tOption.getOrElse(directory, () => \".\"),\n\t\t\t\t\tconfig.path,\n\t\t\t\t),\n\t\t\t}),\n\t\t)\n\t}),\n})\n"],"mappings":";;;;;;;;;;AAYA,MAAa,aAAyC;CACrD,UAAU;CACV,WAAW;CACX,SAAS;CACT,SAAS,CAAC,QAAQ;AACnB;AACA,MAAM,eAAe,gBACpB,MAAM,QACL,OAAO,uBACN,QACA,IAAI,GAAG,KAAK,UAAU;CACrB,SACC,YAAY,SAAS,kBAClB,EAAE,eAAe,SAAS,MAAM,YAAY,KAAK,EAAE,IACnD,CAAC;CACL,mBAAmB;CACnB,YAAY;AACb,CAAC,CACH;AACD,MAAa,QAAQ,aAAwC;CAC5D;CACA,SAAS,OAAO,WACf,WAAW,aAAa;EACvB,MAAM,WAAW,OAAO,MAAM,MAAM,YAAY,WAAW,CAAC;EAC5D,MAAM,SAAS,OAAO,OAAO,cAC5B,aAAa,QAAQ,KAAK,GAAG,MAC9B,CAAC,CAAC,KAAK,OAAO,eAAe,QAAQ,CAAC;EACtC,OAAO,OAAOA,WAAmB,MAAM;CACxC,GACA,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;AACD;AACA,MAAa,SAAS,OAAO,OAAO,EAAE,MAAM,OAAO,OAAO,CAAC;AAC3D,IAAA,eAAe,OAAO,KAAK;CAC1B,MAAM;CACN,QAAQ;CACR,QAAQ,CAAC,KAAK,IAAI;CAClB,OAAO,OAAO,WAAW,WAAW,QAAQ;EAC3C,MAAM,OAAO,OAAO,KAAK;EACzB,MAAM,YAAY,OAAO;EACzB,OAAO,MAAM,QACZ,WACA,KAAK,EACJ,MAAM,KAAK,QACV,OAAO,UAAU,iBAAiB,GAAG,GACrC,OAAO,IACR,EACD,CAAC,CACF;CACD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"unix.js","names":["Channel.fromSocket"],"sources":["../../src/host/unix.ts"],"sourcesContent":["/** Options for the unix connector. */\nexport type { UnixOptions as Options } from \"../internal/transportOptions\"\nimport type { UnixOptions } from \"../internal/transportOptions\"\nimport { Plugin, Graft } from \"@graftland/graft\"\nimport { ConfigDirectory } from \"@graftland/loader\"\nimport { Cause, Effect, Layer, Option, Path, Redacted, Schema } from \"effect\"\nimport { Socket } from \"effect/socket\"\nimport WS from \"ws\"\nimport type { Prepared } from \"../Auth\"\nimport { Connector, type ConnectorApi } from \"../Transport\"\nimport { TransportError } from \"../Errors\"\nimport { path, protocol, payloadLimit } from \"../internal/websocket\"\nimport * as Channel from \"../internal/socketChannel\"\n\nexport const properties: ConnectorApi[\"properties\"] = {\n\tprotocol: \"unix\",\n\tencrypted: false,\n\tnetwork: false,\n\tcarries: [\"header\"],\n}\nconst constructor = (credentials: Prepared) =>\n\tLayer.succeed(\n\t\tSocket.WebSocketConstructor,\n\t\t(url) =>\n\t\t\tnew WS(url, protocol, {\n\t\t\t\theaders:\n\t\t\t\t\tcredentials._tag === \"Authorization\"\n\t\t\t\t\t\t? { authorization: Redacted.value(credentials.value) }\n\t\t\t\t\t\t: {},\n\t\t\t\tperMessageDeflate: false,\n\t\t\t\tmaxPayload: payloadLimit,\n\t\t\t}),\n\t)\nexport const make = (options: UnixOptions): ConnectorApi => ({\n\tproperties,\n\tconnect: Effect.fnUntraced(\n\t\tfunction* (credentials) {\n\t\t\tconst services = yield* Layer.build(constructor(credentials))\n\t\t\tconst socket = yield* Socket.makeWebSocket(\n\t\t\t\t`ws+unix://${options.path}:${path}`,\n\t\t\t).pipe(Effect.provideContext(services))\n\t\t\treturn yield* Channel.fromSocket(socket)\n\t\t},\n\t\tEffect.mapError((error) =>\n\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t),\n\t),\n})\nexport const Config = Schema.Struct({ path: Schema.String })\nexport default Plugin.make({\n\tname: \"remote-unix-connector\",\n\tconfig: Config,\n\tinject: [Path.Path],\n\tapply: Effect.fnUntraced(function* (config) {\n\t\tconst path = yield* Path.Path\n\t\tconst directory = yield* ConfigDirectory\n\t\tyield* Graft.provide(\n\t\t\tConnector,\n\t\t\tmake({\n\t\t\t\tpath: path.resolve(\n\t\t\t\t\tOption.getOrElse(directory, () => \".\"),\n\t\t\t\t\tconfig.path,\n\t\t\t\t),\n\t\t\t}),\n\t\t)\n\t}),\n})\n"],"mappings":";;;;;;;;;;AAcA,MAAa,aAAyC;CACrD,UAAU;CACV,WAAW;CACX,SAAS;CACT,SAAS,CAAC,QAAQ;AACnB;AACA,MAAM,eAAe,gBACpB,MAAM,QACL,OAAO,uBACN,QACA,IAAI,GAAG,KAAK,UAAU;CACrB,SACC,YAAY,SAAS,kBAClB,EAAE,eAAe,SAAS,MAAM,YAAY,KAAK,EAAE,IACnD,CAAC;CACL,mBAAmB;CACnB,YAAY;AACb,CAAC,CACH;AACD,MAAa,QAAQ,aAAwC;CAC5D;CACA,SAAS,OAAO,WACf,WAAW,aAAa;EACvB,MAAM,WAAW,OAAO,MAAM,MAAM,YAAY,WAAW,CAAC;EAC5D,MAAM,SAAS,OAAO,OAAO,cAC5B,aAAa,QAAQ,KAAK,GAAG,MAC9B,CAAC,CAAC,KAAK,OAAO,eAAe,QAAQ,CAAC;EACtC,OAAO,OAAOA,WAAmB,MAAM;CACxC,GACA,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;AACD;AACA,MAAa,SAAS,OAAO,OAAO,EAAE,MAAM,OAAO,OAAO,CAAC;AAC3D,IAAA,eAAe,OAAO,KAAK;CAC1B,MAAM;CACN,QAAQ;CACR,QAAQ,CAAC,KAAK,IAAI;CAClB,OAAO,OAAO,WAAW,WAAW,QAAQ;EAC3C,MAAM,OAAO,OAAO,KAAK;EACzB,MAAM,YAAY,OAAO;EACzB,OAAO,MAAM,QACZ,WACA,KAAK,EACJ,MAAM,KAAK,QACV,OAAO,UAAU,iBAAiB,GAAG,GACrC,OAAO,IACR,EACD,CAAC,CACF;CACD,CAAC;AACF,CAAC"}
@@ -9,5 +9,5 @@ export declare const Config: Schema.Struct<{
9
9
  }>;
10
10
  export declare const make: (options: WebsocketOptions, properties: ConnectorApi["properties"]) => ConnectorApi;
11
11
  declare const _default: any;
12
- export { _default as default };
12
+ export { type WebsocketOptions as Options, _default as default };
13
13
  //# sourceMappingURL=websocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","names":[],"sources":["../../src/host/websocket.ts"],"mappings":";;;;qBAUa,QAAM,OAAA;;;;;qBAKN,OAAI,SACP,kBAAgB,YACb,+BACV"}
1
+ {"version":3,"file":"websocket.d.ts","names":[],"sources":["../../src/host/websocket.ts"],"mappings":";;;;qBAYa,QAAM,OAAA;;;;;qBAKN,OAAI,SACP,kBAAgB,YACb,+BACV"}
@@ -1,8 +1,8 @@
1
- import { a as provide, l as make$1 } from "../Graft-BsYq3F-J.js";
1
+ import { a as provide, l as make$1 } from "../Graft-B71CPA2Y.js";
2
2
  import { t as Connector } from "../Transport-DULzpsgR.js";
3
- import { c as TransportError } from "../Errors-oPsTLY7l.js";
3
+ import { u as TransportError } from "../Errors-DYhsGZcZ.js";
4
4
  import { t as ConfigDirectory } from "../ConfigDirectory-BCC6q2R4.js";
5
- import { n as Url, o as properties, r as open, t as fromSocket } from "../socketChannel-KmtzF-9G.js";
5
+ import { n as Url, o as properties, r as open, t as fromSocket } from "../socketChannel-CJvL2DiB.js";
6
6
  import { Cause, Effect, FileSystem, Option, Path, Schema } from "effect";
7
7
  // packages/remote/src/host/websocket.ts
8
8
  /** Configured Connector; certificate paths belong to the enclosing configuration. */
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","names":["Websocket.Url","Websocket.open","Channel.fromSocket","Websocket.properties"],"sources":["../../src/host/websocket.ts"],"sourcesContent":["import type { WebsocketOptions } from \"../internal/transportOptions\"\nimport { Plugin, Graft } from \"@graftland/graft\"\nimport { Cause, Effect, FileSystem, Option, Path, Schema } from \"effect\"\nimport { Connector, type ConnectorApi } from \"../Transport\"\nimport { TransportError } from \"../Errors\"\nimport { ConfigDirectory } from \"@graftland/loader\"\nimport * as Websocket from \"../internal/websocket\"\nimport * as Channel from \"../internal/socketChannel\"\n\n/** Configured Connector; certificate paths belong to the enclosing configuration. */\nexport const Config = Schema.Struct({\n\turl: Websocket.Url,\n\tca: Schema.optionalKey(Schema.String),\n\tservername: Schema.optionalKey(Schema.String),\n})\nexport const make = (\n\toptions: WebsocketOptions,\n\tproperties: ConnectorApi[\"properties\"],\n): ConnectorApi => ({\n\tproperties,\n\tconnect: (prepared) =>\n\t\tWebsocket.open(\n\t\t\toptions,\n\t\t\tprepared._tag === \"Certificate\"\n\t\t\t\t? { certificate: prepared.value }\n\t\t\t\t: prepared._tag === \"Authorization\"\n\t\t\t\t\t? { authorization: prepared.value }\n\t\t\t\t\t: {},\n\t\t).pipe(\n\t\t\tEffect.flatMap(Channel.fromSocket),\n\t\t\tEffect.mapError((error) =>\n\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t),\n\t\t),\n})\nexport default Plugin.make({\n\tname: \"remote-websocket-connector\",\n\tconfig: Config,\n\tinject: [FileSystem.FileSystem, Path.Path],\n\tapply: Effect.fnUntraced(function* (config) {\n\t\tconst fs = yield* FileSystem.FileSystem\n\t\tconst path = yield* Path.Path\n\t\tconst directory = yield* ConfigDirectory.pipe(\n\t\t\tEffect.map(Option.getOrElse(() => \".\")),\n\t\t)\n\t\tconst ca =\n\t\t\tconfig.ca === undefined\n\t\t\t\t? undefined\n\t\t\t\t: yield* fs.readFileString(path.resolve(directory, config.ca))\n\t\tyield* Graft.provide(\n\t\t\tConnector,\n\t\t\tmake(\n\t\t\t\t{\n\t\t\t\t\turl: config.url.href,\n\t\t\t\t\ttls: {\n\t\t\t\t\t\t...(ca === undefined ? {} : { ca }),\n\t\t\t\t\t\t...(config.servername === undefined\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: { servername: config.servername }),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tWebsocket.properties(config.url),\n\t\t\t),\n\t\t)\n\t}),\n})\n"],"mappings":";;;;;;;;;AAUA,MAAa,SAAS,OAAO,OAAO;CACnC,KAAKA;CACL,IAAI,OAAO,YAAY,OAAO,MAAM;CACpC,YAAY,OAAO,YAAY,OAAO,MAAM;AAC7C,CAAC;AACD,MAAa,QACZ,SACA,gBACmB;CACnB;CACA,UAAU,aACTC,KACC,SACA,SAAS,SAAS,gBACf,EAAE,aAAa,SAAS,MAAM,IAC9B,SAAS,SAAS,kBACjB,EAAE,eAAe,SAAS,MAAM,IAChC,CAAC,CACN,CAAC,CAAC,KACD,OAAO,QAAQC,UAAkB,GACjC,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;AACF;AACA,IAAA,oBAAe,OAAO,KAAK;CAC1B,MAAM;CACN,QAAQ;CACR,QAAQ,CAAC,WAAW,YAAY,KAAK,IAAI;CACzC,OAAO,OAAO,WAAW,WAAW,QAAQ;EAC3C,MAAM,KAAK,OAAO,WAAW;EAC7B,MAAM,OAAO,OAAO,KAAK;EACzB,MAAM,YAAY,OAAO,gBAAgB,KACxC,OAAO,IAAI,OAAO,gBAAgB,GAAG,CAAC,CACvC;EACA,MAAM,KACL,OAAO,OAAO,KAAA,IACX,KAAA,IACA,OAAO,GAAG,eAAe,KAAK,QAAQ,WAAW,OAAO,EAAE,CAAC;EAC/D,OAAO,MAAM,QACZ,WACA,KACC;GACC,KAAK,OAAO,IAAI;GAChB,KAAK;IACJ,GAAI,OAAO,KAAA,IAAY,CAAC,IAAI,EAAE,GAAG;IACjC,GAAI,OAAO,eAAe,KAAA,IACvB,CAAC,IACD,EAAE,YAAY,OAAO,WAAW;GACpC;EACD,GACAC,WAAqB,OAAO,GAAG,CAChC,CACD;CACD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"websocket.js","names":["Websocket.Url","Websocket.open","Channel.fromSocket","Websocket.properties"],"sources":["../../src/host/websocket.ts"],"sourcesContent":["/** Options for the websocket connector. */\nexport type { WebsocketOptions as Options } from \"../internal/transportOptions\"\nimport type { WebsocketOptions } from \"../internal/transportOptions\"\nimport { Plugin, Graft } from \"@graftland/graft\"\nimport { Cause, Effect, FileSystem, Option, Path, Schema } from \"effect\"\nimport { Connector, type ConnectorApi } from \"../Transport\"\nimport { TransportError } from \"../Errors\"\nimport { ConfigDirectory } from \"@graftland/loader\"\nimport * as Websocket from \"../internal/websocket\"\nimport * as Channel from \"../internal/socketChannel\"\n\n/** Configured Connector; certificate paths belong to the enclosing configuration. */\nexport const Config = Schema.Struct({\n\turl: Websocket.Url,\n\tca: Schema.optionalKey(Schema.String),\n\tservername: Schema.optionalKey(Schema.String),\n})\nexport const make = (\n\toptions: WebsocketOptions,\n\tproperties: ConnectorApi[\"properties\"],\n): ConnectorApi => ({\n\tproperties,\n\tconnect: (prepared) =>\n\t\tWebsocket.open(\n\t\t\toptions,\n\t\t\tprepared._tag === \"Certificate\"\n\t\t\t\t? { certificate: prepared.value }\n\t\t\t\t: prepared._tag === \"Authorization\"\n\t\t\t\t\t? { authorization: prepared.value }\n\t\t\t\t\t: {},\n\t\t).pipe(\n\t\t\tEffect.flatMap(Channel.fromSocket),\n\t\t\tEffect.mapError((error) =>\n\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t),\n\t\t),\n})\nexport default Plugin.make({\n\tname: \"remote-websocket-connector\",\n\tconfig: Config,\n\tinject: [FileSystem.FileSystem, Path.Path],\n\tapply: Effect.fnUntraced(function* (config) {\n\t\tconst fs = yield* FileSystem.FileSystem\n\t\tconst path = yield* Path.Path\n\t\tconst directory = yield* ConfigDirectory.pipe(\n\t\t\tEffect.map(Option.getOrElse(() => \".\")),\n\t\t)\n\t\tconst ca =\n\t\t\tconfig.ca === undefined\n\t\t\t\t? undefined\n\t\t\t\t: yield* fs.readFileString(path.resolve(directory, config.ca))\n\t\tyield* Graft.provide(\n\t\t\tConnector,\n\t\t\tmake(\n\t\t\t\t{\n\t\t\t\t\turl: config.url.href,\n\t\t\t\t\ttls: {\n\t\t\t\t\t\t...(ca === undefined ? {} : { ca }),\n\t\t\t\t\t\t...(config.servername === undefined\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: { servername: config.servername }),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tWebsocket.properties(config.url),\n\t\t\t),\n\t\t)\n\t}),\n})\n"],"mappings":";;;;;;;;;AAYA,MAAa,SAAS,OAAO,OAAO;CACnC,KAAKA;CACL,IAAI,OAAO,YAAY,OAAO,MAAM;CACpC,YAAY,OAAO,YAAY,OAAO,MAAM;AAC7C,CAAC;AACD,MAAa,QACZ,SACA,gBACmB;CACnB;CACA,UAAU,aACTC,KACC,SACA,SAAS,SAAS,gBACf,EAAE,aAAa,SAAS,MAAM,IAC9B,SAAS,SAAS,kBACjB,EAAE,eAAe,SAAS,MAAM,IAChC,CAAC,CACN,CAAC,CAAC,KACD,OAAO,QAAQC,UAAkB,GACjC,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;AACF;AACA,IAAA,oBAAe,OAAO,KAAK;CAC1B,MAAM;CACN,QAAQ;CACR,QAAQ,CAAC,WAAW,YAAY,KAAK,IAAI;CACzC,OAAO,OAAO,WAAW,WAAW,QAAQ;EAC3C,MAAM,KAAK,OAAO,WAAW;EAC7B,MAAM,OAAO,OAAO,KAAK;EACzB,MAAM,YAAY,OAAO,gBAAgB,KACxC,OAAO,IAAI,OAAO,gBAAgB,GAAG,CAAC,CACvC;EACA,MAAM,KACL,OAAO,OAAO,KAAA,IACX,KAAA,IACA,OAAO,GAAG,eAAe,KAAK,QAAQ,WAAW,OAAO,EAAE,CAAC;EAC/D,OAAO,MAAM,QACZ,WACA,KACC;GACC,KAAK,OAAO,IAAI;GAChB,KAAK;IACJ,GAAI,OAAO,KAAA,IAAY,CAAC,IAAI,EAAE,GAAG;IACjC,GAAI,OAAO,eAAe,KAAA,IACvB,CAAC,IACD,EAAE,YAAY,OAAO,WAAW;GACpC;EACD,GACAC,WAAqB,OAAO,GAAG,CAChC,CACD;CACD,CAAC;AACF,CAAC"}
@@ -1,4 +1,3 @@
1
- import { Graft, Plugin } from "@graftland/graft";
2
- declare const plugin: Plugin.Plugin<void, void, Graft.ServiceConflict>;
1
+ declare const plugin: any;
3
2
  export { plugin as default };
4
3
  //# sourceMappingURL=worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","names":[],"sources":["../../src/host/worker.ts"],"mappings":";cAoFM,QAAQ,OAAO,mBAAmB,MAAM"}
1
+ {"version":3,"file":"worker.d.ts","names":[],"sources":["../../src/host/worker.ts"],"mappings":"A,cAoFM"}
@@ -1,9 +1,8 @@
1
- import { d as service } from "../Graft-BsYq3F-J.js";
1
+ import { d as service } from "../Graft-B71CPA2Y.js";
2
2
  import { n as WorkerTransport } from "../directTransport-DrexuPSm.js";
3
- import { a as ProcessExited, c as TransportError } from "../Errors-oPsTLY7l.js";
4
- import { n as Bootstrap, t as make } from "../workerChannel-P82YdNjh.js";
5
- import { t as make$1 } from "../FailureGroup-BcH0XOBi.js";
6
- import { n as cleanupCause } from "../cleanup-BPWr-5U9.js";
3
+ import { o as ProcessExited, u as TransportError } from "../Errors-DYhsGZcZ.js";
4
+ import { n as Bootstrap, t as make } from "../workerChannel-C8hhBJzA.js";
5
+ import { r as cleanupCause, t as make$1 } from "../FailureGroup-BgT73AaR.js";
7
6
  import { Cause, Deferred, Effect, FiberSet, Option, Schema } from "effect";
8
7
  import { Worker } from "node:worker_threads";
9
8
  // packages/remote/src/host/worker.ts
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","names":["FailureGroup.make","Channel.make"],"sources":["../../src/host/worker.ts"],"sourcesContent":["import { Plugin, type Graft } from \"@graftland/graft\"\nimport { Cause, Deferred, Effect, FiberSet, Option, Schema } from \"effect\"\nimport { Worker } from \"node:worker_threads\"\nimport { WorkerTransport } from \"../internal/directTransport\"\nimport { ProcessExited, TransportError } from \"../Errors\"\nimport * as Channel from \"../internal/workerChannel\"\nimport * as FailureGroup from \"../internal/FailureGroup\"\nimport { Bootstrap } from \"../internal/workerBootstrap\"\nimport { cleanupCause } from \"../internal/cleanup\"\n\nconst start: typeof WorkerTransport.Service.start = Effect.fnUntraced(\n\tfunction* (options) {\n\t\tconst data = yield* Schema.encodeEffect(Bootstrap)(options).pipe(\n\t\t\tEffect.mapError((error) =>\n\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t),\n\t\t)\n\t\tconst exited = yield* Deferred.make<number>()\n\t\tconst failures = yield* FailureGroup.make<TransportError>()\n\t\tconst callbacks = yield* FiberSet.make()\n\t\tconst run = yield* FiberSet.runtime(callbacks)()\n\t\tconst onExit = (code: number) => run(Deferred.succeed(exited, code))\n\t\tconst onError = (error: Error) =>\n\t\t\trun(failures.fail(TransportError.make({ cause: Cause.die(error) })))\n\t\tconst worker = yield* Effect.acquireRelease(\n\t\t\tEffect.try({\n\t\t\t\ttry: () => {\n\t\t\t\t\tconst worker = new Worker(\n\t\t\t\t\t\tnew URL(\n\t\t\t\t\t\t\timport.meta.resolve(\"@graftland/plugin-remote/internal/worker\"),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tworkerData: data,\n\t\t\t\t\t\t\t...(options.execArgv === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: { execArgv: [...options.execArgv] }),\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t\tworker.on(\"exit\", onExit)\n\t\t\t\t\tworker.on(\"error\", onError)\n\t\t\t\t\treturn worker\n\t\t\t\t},\n\t\t\t\tcatch: (cause) => TransportError.make({ cause: Cause.die(cause) }),\n\t\t\t}),\n\t\t\t(worker) =>\n\t\t\t\tEffect.tryPromise({\n\t\t\t\t\ttry: () => worker.terminate(),\n\t\t\t\t\tcatch: (cause) => TransportError.make({ cause: Cause.die(cause) }),\n\t\t\t\t}).pipe(\n\t\t\t\t\tEffect.andThen(Deferred.await(exited)),\n\t\t\t\t\tEffect.ensuring(\n\t\t\t\t\t\tEffect.sync(() => {\n\t\t\t\t\t\t\tworker.off(\"exit\", onExit)\n\t\t\t\t\t\t\tworker.off(\"error\", onError)\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\tEffect.catchCause((cause) => Effect.failCause(cleanupCause(cause))),\n\t\t\t\t),\n\t\t)\n\t\tconst threadId = worker.threadId\n\t\tconst channel = yield* Channel.make(worker)\n\t\treturn {\n\t\t\tchannel,\n\t\t\tpid: Option.none(),\n\t\t\tthreadId,\n\t\t\tfailure: failures.await,\n\t\t\texited: Deferred.await(exited).pipe(\n\t\t\t\tEffect.flatMap((exitCode) =>\n\t\t\t\t\tfailures.cause.pipe(\n\t\t\t\t\t\tEffect.map((statusCause) =>\n\t\t\t\t\t\t\tProcessExited.make({\n\t\t\t\t\t\t\t\tpid: Option.none(),\n\t\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\t\texitCode,\n\t\t\t\t\t\t\t\tstderr: \"\",\n\t\t\t\t\t\t\t\tstatusCause,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t}\n\t},\n)\nconst plugin: Plugin.Plugin<void, void, Graft.ServiceConflict> = Plugin.service(\n\tWorkerTransport,\n\tEffect.succeed({ start }),\n\t{ name: \"remote-thread-transport\" },\n)\nexport default plugin\n"],"mappings":";;;;;;;;;;AAUA,MAAM,QAA8C,OAAO,WAC1D,WAAW,SAAS;CACnB,MAAM,OAAO,OAAO,OAAO,aAAa,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,KAC3D,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;CACA,MAAM,SAAS,OAAO,SAAS,KAAa;CAC5C,MAAM,WAAW,OAAOA,OAAkC;CAC1D,MAAM,YAAY,OAAO,SAAS,KAAK;CACvC,MAAM,MAAM,OAAO,SAAS,QAAQ,SAAS,CAAC,CAAC;CAC/C,MAAM,UAAU,SAAiB,IAAI,SAAS,QAAQ,QAAQ,IAAI,CAAC;CACnE,MAAM,WAAW,UAChB,IAAI,SAAS,KAAK,eAAe,KAAK,EAAE,OAAO,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;CACpE,MAAM,SAAS,OAAO,OAAO,eAC5B,OAAO,IAAI;EACV,WAAW;GACV,MAAM,SAAS,IAAI,OAClB,IAAI,IACH,YAAY,QAAQ,0CAA0C,CAC/D,GACA;IACC,YAAY;IACZ,GAAI,QAAQ,aAAa,KAAA,IACtB,CAAC,IACD,EAAE,UAAU,CAAC,GAAG,QAAQ,QAAQ,EAAE;GACtC,CACD;GACA,OAAO,GAAG,QAAQ,MAAM;GACxB,OAAO,GAAG,SAAS,OAAO;GAC1B,OAAO;EACR;EACA,QAAQ,UAAU,eAAe,KAAK,EAAE,OAAO,MAAM,IAAI,KAAK,EAAE,CAAC;CAClE,CAAC,IACA,WACA,OAAO,WAAW;EACjB,WAAW,OAAO,UAAU;EAC5B,QAAQ,UAAU,eAAe,KAAK,EAAE,OAAO,MAAM,IAAI,KAAK,EAAE,CAAC;CAClE,CAAC,CAAC,CAAC,KACF,OAAO,QAAQ,SAAS,MAAM,MAAM,CAAC,GACrC,OAAO,SACN,OAAO,WAAW;EACjB,OAAO,IAAI,QAAQ,MAAM;EACzB,OAAO,IAAI,SAAS,OAAO;CAC5B,CAAC,CACF,GACA,OAAO,YAAY,UAAU,OAAO,UAAU,aAAa,KAAK,CAAC,CAAC,CACnE,CACF;CACA,MAAM,WAAW,OAAO;CAExB,OAAO;EACN,SAAA,OAFsBC,KAAa,MAAM;EAGzC,KAAK,OAAO,KAAK;EACjB;EACA,SAAS,SAAS;EAClB,QAAQ,SAAS,MAAM,MAAM,CAAC,CAAC,KAC9B,OAAO,SAAS,aACf,SAAS,MAAM,KACd,OAAO,KAAK,gBACX,cAAc,KAAK;GAClB,KAAK,OAAO,KAAK;GACjB;GACA;GACA,QAAQ;GACR;EACD,CAAC,CACF,CACD,CACD,CACD;CACD;AACD,CACD;AACA,MAAM,SAA2D,OAAO,QACvE,iBACA,OAAO,QAAQ,EAAE,MAAM,CAAC,GACxB,EAAE,MAAM,0BAA0B,CACnC"}
1
+ {"version":3,"file":"worker.js","names":["FailureGroup.make","Channel.make"],"sources":["../../src/host/worker.ts"],"sourcesContent":["import { Plugin } from \"@graftland/graft\"\nimport { Cause, Deferred, Effect, FiberSet, Option, Schema } from \"effect\"\nimport { Worker } from \"node:worker_threads\"\nimport { WorkerTransport } from \"../internal/directTransport\"\nimport { ProcessExited, TransportError } from \"../Errors\"\nimport * as Channel from \"../internal/workerChannel\"\nimport * as FailureGroup from \"../internal/FailureGroup\"\nimport { Bootstrap } from \"../internal/workerBootstrap\"\nimport { cleanupCause } from \"../internal/cleanup\"\n\nconst start: typeof WorkerTransport.Service.start = Effect.fnUntraced(\n\tfunction* (options) {\n\t\tconst data = yield* Schema.encodeEffect(Bootstrap)(options).pipe(\n\t\t\tEffect.mapError((error) =>\n\t\t\t\tTransportError.make({ cause: Cause.fail(error) }),\n\t\t\t),\n\t\t)\n\t\tconst exited = yield* Deferred.make<number>()\n\t\tconst failures = yield* FailureGroup.make<TransportError>()\n\t\tconst callbacks = yield* FiberSet.make()\n\t\tconst run = yield* FiberSet.runtime(callbacks)()\n\t\tconst onExit = (code: number) => run(Deferred.succeed(exited, code))\n\t\tconst onError = (error: Error) =>\n\t\t\trun(failures.fail(TransportError.make({ cause: Cause.die(error) })))\n\t\tconst worker = yield* Effect.acquireRelease(\n\t\t\tEffect.try({\n\t\t\t\ttry: () => {\n\t\t\t\t\tconst worker = new Worker(\n\t\t\t\t\t\tnew URL(\n\t\t\t\t\t\t\timport.meta.resolve(\"@graftland/plugin-remote/internal/worker\"),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tworkerData: data,\n\t\t\t\t\t\t\t...(options.execArgv === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: { execArgv: [...options.execArgv] }),\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t\tworker.on(\"exit\", onExit)\n\t\t\t\t\tworker.on(\"error\", onError)\n\t\t\t\t\treturn worker\n\t\t\t\t},\n\t\t\t\tcatch: (cause) => TransportError.make({ cause: Cause.die(cause) }),\n\t\t\t}),\n\t\t\t(worker) =>\n\t\t\t\tEffect.tryPromise({\n\t\t\t\t\ttry: () => worker.terminate(),\n\t\t\t\t\tcatch: (cause) => TransportError.make({ cause: Cause.die(cause) }),\n\t\t\t\t}).pipe(\n\t\t\t\t\tEffect.andThen(Deferred.await(exited)),\n\t\t\t\t\tEffect.ensuring(\n\t\t\t\t\t\tEffect.sync(() => {\n\t\t\t\t\t\t\tworker.off(\"exit\", onExit)\n\t\t\t\t\t\t\tworker.off(\"error\", onError)\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\tEffect.catchCause((cause) => Effect.failCause(cleanupCause(cause))),\n\t\t\t\t),\n\t\t)\n\t\tconst threadId = worker.threadId\n\t\tconst channel = yield* Channel.make(worker)\n\t\treturn {\n\t\t\tchannel,\n\t\t\tpid: Option.none(),\n\t\t\tthreadId,\n\t\t\tfailure: failures.await,\n\t\t\texited: Deferred.await(exited).pipe(\n\t\t\t\tEffect.flatMap((exitCode) =>\n\t\t\t\t\tfailures.cause.pipe(\n\t\t\t\t\t\tEffect.map((statusCause) =>\n\t\t\t\t\t\t\tProcessExited.make({\n\t\t\t\t\t\t\t\tpid: Option.none(),\n\t\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\t\texitCode,\n\t\t\t\t\t\t\t\tstderr: \"\",\n\t\t\t\t\t\t\t\tstatusCause,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t}\n\t},\n)\nconst plugin = Plugin.service(WorkerTransport, Effect.succeed({ start }), {\n\tname: \"remote-thread-transport\",\n})\nexport default plugin\n"],"mappings":";;;;;;;;;;AAUA,MAAM,QAA8C,OAAO,WAC1D,WAAW,SAAS;CACnB,MAAM,OAAO,OAAO,OAAO,aAAa,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,KAC3D,OAAO,UAAU,UAChB,eAAe,KAAK,EAAE,OAAO,MAAM,KAAK,KAAK,EAAE,CAAC,CACjD,CACD;CACA,MAAM,SAAS,OAAO,SAAS,KAAa;CAC5C,MAAM,WAAW,OAAOA,OAAkC;CAC1D,MAAM,YAAY,OAAO,SAAS,KAAK;CACvC,MAAM,MAAM,OAAO,SAAS,QAAQ,SAAS,CAAC,CAAC;CAC/C,MAAM,UAAU,SAAiB,IAAI,SAAS,QAAQ,QAAQ,IAAI,CAAC;CACnE,MAAM,WAAW,UAChB,IAAI,SAAS,KAAK,eAAe,KAAK,EAAE,OAAO,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;CACpE,MAAM,SAAS,OAAO,OAAO,eAC5B,OAAO,IAAI;EACV,WAAW;GACV,MAAM,SAAS,IAAI,OAClB,IAAI,IACH,YAAY,QAAQ,0CAA0C,CAC/D,GACA;IACC,YAAY;IACZ,GAAI,QAAQ,aAAa,KAAA,IACtB,CAAC,IACD,EAAE,UAAU,CAAC,GAAG,QAAQ,QAAQ,EAAE;GACtC,CACD;GACA,OAAO,GAAG,QAAQ,MAAM;GACxB,OAAO,GAAG,SAAS,OAAO;GAC1B,OAAO;EACR;EACA,QAAQ,UAAU,eAAe,KAAK,EAAE,OAAO,MAAM,IAAI,KAAK,EAAE,CAAC;CAClE,CAAC,IACA,WACA,OAAO,WAAW;EACjB,WAAW,OAAO,UAAU;EAC5B,QAAQ,UAAU,eAAe,KAAK,EAAE,OAAO,MAAM,IAAI,KAAK,EAAE,CAAC;CAClE,CAAC,CAAC,CAAC,KACF,OAAO,QAAQ,SAAS,MAAM,MAAM,CAAC,GACrC,OAAO,SACN,OAAO,WAAW;EACjB,OAAO,IAAI,QAAQ,MAAM;EACzB,OAAO,IAAI,SAAS,OAAO;CAC5B,CAAC,CACF,GACA,OAAO,YAAY,UAAU,OAAO,UAAU,aAAa,KAAK,CAAC,CAAC,CACnE,CACF;CACA,MAAM,WAAW,OAAO;CAExB,OAAO;EACN,SAAA,OAFsBC,KAAa,MAAM;EAGzC,KAAK,OAAO,KAAK;EACjB;EACA,SAAS,SAAS;EAClB,QAAQ,SAAS,MAAM,MAAM,CAAC,CAAC,KAC9B,OAAO,SAAS,aACf,SAAS,MAAM,KACd,OAAO,KAAK,gBACX,cAAc,KAAK;GAClB,KAAK,OAAO,KAAK;GACjB;GACA;GACA,QAAQ;GACR;EACD,CAAC,CACF,CACD,CACD,CACD;CACD;AACD,CACD;AACA,MAAM,SAAS,OAAO,QAAQ,iBAAiB,OAAO,QAAQ,EAAE,MAAM,CAAC,GAAG,EACzE,MAAM,0BACP,CAAC"}