@opencode/client 0.0.0-dev-20552 → 0.0.0-dev-20555

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 (52) hide show
  1. package/dist/chunks/{pty-handoff-1y4a697q.js → shared-events-1y4a697q.js} +1 -1
  2. package/dist/chunks/{pty-handoff-vvwt8khz.js → shared-events-5myj1ht6.js} +9 -9
  3. package/dist/chunks/{pty-handoff-e5ea35j7.js → shared-events-e5ea35j7.js} +1 -1
  4. package/dist/chunks/{pty-handoff-frbwqjmf.js → shared-events-frbwqjmf.js} +1 -1
  5. package/dist/chunks/{pty-handoff-cqfz2qxq.js → shared-events-mdvk8mfx.js} +4 -4
  6. package/dist/chunks/{pty-handoff-w1w809zr.js → shared-events-mnyft54j.js} +5 -5
  7. package/dist/chunks/{pty-handoff-71wkqa80.js → shared-events-qwh0mczy.js} +1 -1
  8. package/dist/chunks/{pty-handoff-qzsnm4q8.js → shared-events-qzsnm4q8.js} +2 -2
  9. package/dist/chunks/{pty-handoff-5yf5aaev.js → shared-events-raw99g3w.js} +6 -6
  10. package/dist/chunks/{pty-handoff-t1xa31vm.js → shared-events-t1xa31vm.js} +1 -1
  11. package/dist/contract.js +1 -1
  12. package/dist/effect/client.js +8 -8
  13. package/dist/effect/generated/client-error.js +1 -1
  14. package/dist/effect/generated/client.js +5 -5
  15. package/dist/effect/generated/index.js +4 -4
  16. package/dist/effect/index.js +8 -8
  17. package/dist/effect/rpc.js +4 -4
  18. package/dist/effect/service.js +23 -8
  19. package/dist/promise/client.js +7 -7
  20. package/dist/promise/generated/client-error.js +1 -1
  21. package/dist/promise/generated/client.js +2 -2
  22. package/dist/promise/generated/index.js +8 -8
  23. package/dist/promise/generated/types.js +1 -1
  24. package/dist/promise/index.js +10 -10
  25. package/dist/promise/rpc.js +2 -2
  26. package/dist/promise/service.js +23 -8
  27. package/dist/pty-handoff.js +1 -1
  28. package/dist/rpc-runtime.js +1 -1
  29. package/dist/service-contender.js +1 -1
  30. package/dist/service-timing.js +1 -1
  31. package/dist/service-version.js +1 -1
  32. package/dist/service.js +1 -1
  33. package/dist/shared-events.js +1 -1
  34. package/dist/solid/connection.js +1 -1
  35. package/dist/solid/data.js +9 -9
  36. package/dist/solid/index.js +11 -11
  37. package/dist/solid/pty.js +1 -1
  38. package/package.json +4 -4
  39. /package/dist/chunks/{pty-handoff-6f43cgzz.js → shared-events-6f43cgzz.js} +0 -0
  40. /package/dist/chunks/{pty-handoff-6mptkzbc.js → shared-events-6mptkzbc.js} +0 -0
  41. /package/dist/chunks/{pty-handoff-7f0py9js.js → shared-events-7f0py9js.js} +0 -0
  42. /package/dist/chunks/{pty-handoff-9rqn6x4v.js → shared-events-9rqn6x4v.js} +0 -0
  43. /package/dist/chunks/{pty-handoff-gne7h7mq.js → shared-events-gne7h7mq.js} +0 -0
  44. /package/dist/chunks/{pty-handoff-js54wxgp.js → shared-events-js54wxgp.js} +0 -0
  45. /package/dist/chunks/{pty-handoff-m2eywc8w.js → shared-events-m2eywc8w.js} +0 -0
  46. /package/dist/chunks/{pty-handoff-qav6mfdz.js → shared-events-qav6mfdz.js} +0 -0
  47. /package/dist/chunks/{pty-handoff-sxt88q69.js → shared-events-sxt88q69.js} +0 -0
  48. /package/dist/chunks/{pty-handoff-vmytr4q8.js → shared-events-vmytr4q8.js} +0 -0
  49. /package/dist/chunks/{pty-handoff-vt9jbch8.js → shared-events-vt9jbch8.js} +0 -0
  50. /package/dist/chunks/{pty-handoff-vyas3vgt.js → shared-events-vyas3vgt.js} +0 -0
  51. /package/dist/chunks/{pty-handoff-xgnj2w4v.js → shared-events-xgnj2w4v.js} +0 -0
  52. /package/dist/chunks/{pty-handoff-ydhz1zrh.js → shared-events-ydhz1zrh.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isRpcError2,
3
3
  isRpcInternalError2
4
- } from "./pty-handoff-vt9jbch8.js";
4
+ } from "./shared-events-vt9jbch8.js";
5
5
 
6
6
  // src/promise/rpc.ts
7
7
  function makeRpc2(raw, events) {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  make7
3
- } from "./pty-handoff-frbwqjmf.js";
3
+ } from "./shared-events-frbwqjmf.js";
4
4
  import {
5
5
  ClientError3
6
- } from "./pty-handoff-7f0py9js.js";
6
+ } from "./shared-events-7f0py9js.js";
7
7
  import {
8
- make5
9
- } from "./pty-handoff-5yf5aaev.js";
8
+ make6
9
+ } from "./shared-events-raw99g3w.js";
10
10
  import {
11
- make6,
11
+ make5,
12
12
  aborted2
13
- } from "./pty-handoff-w1w809zr.js";
13
+ } from "./shared-events-mnyft54j.js";
14
14
  import {
15
15
  __export
16
- } from "./pty-handoff-9rqn6x4v.js";
16
+ } from "./shared-events-9rqn6x4v.js";
17
17
 
18
18
  // src/effect/client.ts
19
19
  var exports_client3 = {};
@@ -30,7 +30,7 @@ var CurrentHeaders = Context.Reference("@opencode/client/effect/rpc/headers", {
30
30
  });
31
31
  var make4 = Effect.fn("OpenCode.make")(function* (options) {
32
32
  const httpClient = yield* HttpClient.HttpClient;
33
- const raw = yield* make5(options).pipe(Effect.provideService(HttpClient.HttpClient, HttpClient.mapRequestEffect(httpClient, (request) => Effect.map(CurrentHeaders, (headers) => headers ? HttpClientRequest.setHeaders(request, new Headers(headers)) : request))));
33
+ const raw = yield* make6(options).pipe(Effect.provideService(HttpClient.HttpClient, HttpClient.mapRequestEffect(httpClient, (request) => Effect.map(CurrentHeaders, (headers) => headers ? HttpClientRequest.setHeaders(request, new Headers(headers)) : request))));
34
34
  const context = yield* Effect.context();
35
35
  const native = raw.event.subscribe();
36
36
 
@@ -45,7 +45,7 @@ var make4 = Effect.fn("OpenCode.make")(function* (options) {
45
45
  return {
46
46
  ...raw,
47
47
  event: { ...raw.event, subscribe },
48
- rpc: Object.assign(make6((input, options) => raw.rpc.call(input).pipe(Effect.provideService(CurrentHeaders, options?.headers)), subscribe), raw.rpc)
48
+ rpc: Object.assign(make5((input, options) => raw.rpc.call(input).pipe(Effect.provideService(CurrentHeaders, options?.headers)), subscribe), raw.rpc)
49
49
  };
50
50
  });
51
51
 
@@ -2,7 +2,7 @@ import {
2
2
  isFormNotFoundError2,
3
3
  isFormAlreadySettledError2,
4
4
  isPermissionNotFoundError2
5
- } from "./pty-handoff-vt9jbch8.js";
5
+ } from "./shared-events-vt9jbch8.js";
6
6
 
7
7
  // src/solid/data.ts
8
8
  import { Worktree } from "@opencode/schema/worktree";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-handoff-9rqn6x4v.js";
3
+ } from "./shared-events-9rqn6x4v.js";
4
4
 
5
5
  // src/shared-events.ts
6
6
  var exports_shared_events = {};
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  make7
3
- } from "./pty-handoff-frbwqjmf.js";
3
+ } from "./shared-events-frbwqjmf.js";
4
4
  import {
5
5
  make3
6
- } from "./pty-handoff-qzsnm4q8.js";
6
+ } from "./shared-events-qzsnm4q8.js";
7
7
  import {
8
8
  makeRpc2
9
- } from "./pty-handoff-1y4a697q.js";
9
+ } from "./shared-events-1y4a697q.js";
10
10
  import {
11
11
  __export
12
- } from "./pty-handoff-9rqn6x4v.js";
12
+ } from "./shared-events-9rqn6x4v.js";
13
13
 
14
14
  // src/promise/client.ts
15
15
  var exports_client = {};
@@ -3,20 +3,20 @@ import {
3
3
  readError2,
4
4
  event2,
5
5
  eventType2
6
- } from "./pty-handoff-t1xa31vm.js";
6
+ } from "./shared-events-t1xa31vm.js";
7
7
  import {
8
8
  __export
9
- } from "./pty-handoff-9rqn6x4v.js";
9
+ } from "./shared-events-9rqn6x4v.js";
10
10
 
11
11
  // src/effect/rpc.ts
12
12
  var exports_rpc = {};
13
13
  __export(exports_rpc, {
14
14
  RpcClientRuntime: () => exports_rpc,
15
15
  aborted: () => aborted2,
16
- make: () => make6
16
+ make: () => make5
17
17
  });
18
18
  import { Effect, Stream } from "effect";
19
- function make6(call, subscribe) {
19
+ function make5(call, subscribe) {
20
20
  return (definition) => {
21
21
  const methods = Object.fromEntries(Object.entries(definition.methods).map(([name, method]) => [
22
22
  name,
@@ -59,4 +59,4 @@ function aborted2(signal) {
59
59
  });
60
60
  }
61
61
 
62
- export { make6, aborted2, exports_rpc };
62
+ export { make5, aborted2, exports_rpc };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-handoff-9rqn6x4v.js";
3
+ } from "./shared-events-9rqn6x4v.js";
4
4
 
5
5
  // src/pty-handoff.ts
6
6
  var exports_pty_handoff = {};
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ClientError2
3
- } from "./pty-handoff-js54wxgp.js";
3
+ } from "./shared-events-js54wxgp.js";
4
4
  import {
5
5
  __export
6
- } from "./pty-handoff-9rqn6x4v.js";
6
+ } from "./shared-events-9rqn6x4v.js";
7
7
 
8
8
  // src/promise/generated/client.ts
9
9
  var exports_client2 = {};
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  ClientApi2
3
- } from "./pty-handoff-vmytr4q8.js";
3
+ } from "./shared-events-vmytr4q8.js";
4
4
  import {
5
5
  ClientError3
6
- } from "./pty-handoff-7f0py9js.js";
6
+ } from "./shared-events-7f0py9js.js";
7
7
  import {
8
8
  __export
9
- } from "./pty-handoff-9rqn6x4v.js";
9
+ } from "./shared-events-9rqn6x4v.js";
10
10
 
11
11
  // src/effect/generated/client.ts
12
12
  var exports_client4 = {};
13
13
  __export(exports_client4, {
14
- make: () => make5
14
+ make: () => make6
15
15
  });
16
16
  import { Effect, Stream, Schema } from "effect";
17
17
  import { Sse } from "effect/unstable/encoding";
@@ -613,6 +613,6 @@ var adaptClient = (raw) => ({
613
613
  websearch: adaptGroupWebsearch(raw["server.websearch"]),
614
614
  config: adaptGroupConfig(raw["server.config"])
615
615
  });
616
- var make5 = (options) => HttpApiClient.make(ClientApi2, options).pipe(Effect.map(adaptClient));
616
+ var make6 = (options) => HttpApiClient.make(ClientApi2, options).pipe(Effect.map(adaptClient));
617
617
 
618
- export { make5, exports_client4 };
618
+ export { make6, exports_client4 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./pty-handoff-9rqn6x4v.js";
3
+ } from "./shared-events-9rqn6x4v.js";
4
4
 
5
5
  // src/rpc-runtime.ts
6
6
  var exports_rpc_runtime = {};
package/dist/contract.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  effectOmitEndpoints2,
4
4
  groupNames2,
5
5
  promiseOmitEndpoints2
6
- } from "./chunks/pty-handoff-vmytr4q8.js";
6
+ } from "./chunks/shared-events-vmytr4q8.js";
7
7
  export {
8
8
  ClientApi2 as ClientApi,
9
9
  effectOmitEndpoints2 as effectOmitEndpoints,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  make4,
3
3
  exports_client3
4
- } from "../chunks/pty-handoff-vvwt8khz.js";
5
- import"../chunks/pty-handoff-6mptkzbc.js";
6
- import"../chunks/pty-handoff-5yf5aaev.js";
7
- import"../chunks/pty-handoff-7f0py9js.js";
8
- import"../chunks/pty-handoff-w1w809zr.js";
9
- import"../chunks/pty-handoff-vmytr4q8.js";
10
- import"../chunks/pty-handoff-t1xa31vm.js";
11
- import"../chunks/pty-handoff-frbwqjmf.js";
4
+ } from "../chunks/shared-events-5myj1ht6.js";
5
+ import"../chunks/shared-events-6mptkzbc.js";
6
+ import"../chunks/shared-events-mnyft54j.js";
7
+ import"../chunks/shared-events-raw99g3w.js";
8
+ import"../chunks/shared-events-7f0py9js.js";
9
+ import"../chunks/shared-events-frbwqjmf.js";
10
+ import"../chunks/shared-events-vmytr4q8.js";
11
+ import"../chunks/shared-events-t1xa31vm.js";
12
12
  export {
13
13
  exports_client3 as OpenCode,
14
14
  make4 as make
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ClientError3
3
- } from "../../chunks/pty-handoff-7f0py9js.js";
3
+ } from "../../chunks/shared-events-7f0py9js.js";
4
4
  export {
5
5
  ClientError3 as ClientError
6
6
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
- make5
3
- } from "../../chunks/pty-handoff-5yf5aaev.js";
4
- import"../../chunks/pty-handoff-7f0py9js.js";
5
- import"../../chunks/pty-handoff-vmytr4q8.js";
2
+ make6
3
+ } from "../../chunks/shared-events-raw99g3w.js";
4
+ import"../../chunks/shared-events-7f0py9js.js";
5
+ import"../../chunks/shared-events-vmytr4q8.js";
6
6
  export {
7
- make5 as make
7
+ make6 as make
8
8
  };
@@ -1,11 +1,11 @@
1
- import"../../chunks/pty-handoff-6mptkzbc.js";
1
+ import"../../chunks/shared-events-6mptkzbc.js";
2
2
  import {
3
3
  exports_client4
4
- } from "../../chunks/pty-handoff-5yf5aaev.js";
4
+ } from "../../chunks/shared-events-raw99g3w.js";
5
5
  import {
6
6
  ClientError3
7
- } from "../../chunks/pty-handoff-7f0py9js.js";
8
- import"../../chunks/pty-handoff-vmytr4q8.js";
7
+ } from "../../chunks/shared-events-7f0py9js.js";
8
+ import"../../chunks/shared-events-vmytr4q8.js";
9
9
  export {
10
10
  ClientError3 as ClientError,
11
11
  exports_client4 as OpenCode
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ClientError3
3
- } from "../chunks/pty-handoff-7f0py9js.js";
4
- import"../chunks/pty-handoff-vmytr4q8.js";
5
- import"../chunks/pty-handoff-5yf5aaev.js";
6
- import"../chunks/pty-handoff-6mptkzbc.js";
7
- import"../chunks/pty-handoff-frbwqjmf.js";
8
- import"../chunks/pty-handoff-t1xa31vm.js";
9
- import"../chunks/pty-handoff-w1w809zr.js";
3
+ } from "../chunks/shared-events-7f0py9js.js";
4
+ import"../chunks/shared-events-vmytr4q8.js";
5
+ import"../chunks/shared-events-raw99g3w.js";
6
+ import"../chunks/shared-events-6mptkzbc.js";
7
+ import"../chunks/shared-events-frbwqjmf.js";
8
+ import"../chunks/shared-events-t1xa31vm.js";
9
+ import"../chunks/shared-events-mnyft54j.js";
10
10
  import {
11
11
  exports_client3
12
- } from "../chunks/pty-handoff-vvwt8khz.js";
12
+ } from "../chunks/shared-events-5myj1ht6.js";
13
13
 
14
14
  // src/effect/index.ts
15
15
  import { Agent } from "@opencode/schema/agent";
@@ -1,11 +1,11 @@
1
1
  import {
2
- make6,
2
+ make5,
3
3
  aborted2,
4
4
  exports_rpc
5
- } from "../chunks/pty-handoff-w1w809zr.js";
6
- import"../chunks/pty-handoff-t1xa31vm.js";
5
+ } from "../chunks/shared-events-mnyft54j.js";
6
+ import"../chunks/shared-events-t1xa31vm.js";
7
7
  export {
8
8
  exports_rpc as RpcClientRuntime,
9
9
  aborted2 as aborted,
10
- make6 as make
10
+ make5 as make
11
11
  };
@@ -2,21 +2,21 @@ import {
2
2
  spawnServiceContender2,
3
3
  contenderFailure2,
4
4
  contenderFinished2
5
- } from "../chunks/pty-handoff-6f43cgzz.js";
5
+ } from "../chunks/shared-events-6f43cgzz.js";
6
6
  import {
7
7
  defaultEnsureTiming2,
8
8
  ensureTiming2
9
- } from "../chunks/pty-handoff-xgnj2w4v.js";
9
+ } from "../chunks/shared-events-xgnj2w4v.js";
10
10
  import {
11
11
  matchesVersion2
12
- } from "../chunks/pty-handoff-sxt88q69.js";
12
+ } from "../chunks/shared-events-sxt88q69.js";
13
13
  import {
14
14
  prepare2,
15
15
  environment2,
16
16
  complete2,
17
17
  clear2
18
- } from "../chunks/pty-handoff-71wkqa80.js";
19
- import"../chunks/pty-handoff-qav6mfdz.js";
18
+ } from "../chunks/shared-events-qwh0mczy.js";
19
+ import"../chunks/shared-events-qav6mfdz.js";
20
20
 
21
21
  // src/effect/service.ts
22
22
  import { Effect, FileSystem, Option, Schedule, Schema } from "effect";
@@ -50,6 +50,7 @@ var ensure = Effect.fn("service.ensure")(function* (options = {}) {
50
50
  let announced = false;
51
51
  let lastSpawn = 0;
52
52
  let spawnDelay = timing.spawnDelay;
53
+ let failure;
53
54
  const announce = (reason, previousVersion) => Effect.sync(() => {
54
55
  if (announced)
55
56
  return;
@@ -82,6 +83,13 @@ var ensure = Effect.fn("service.ensure")(function* (options = {}) {
82
83
  yield* Effect.logWarning("Background service is unresponsive; recovery cannot preserve persistent terminals");
83
84
  yield* Effect.tryPromise(() => clear2(options.file ?? fallback()));
84
85
  yield* terminate(info, options, timing);
86
+ for (const item of contenders) {
87
+ if (item.child.pid === info.pid || contenderFinished2(item)) {
88
+ item.release();
89
+ contenders.delete(item);
90
+ }
91
+ }
92
+ failure = undefined;
85
93
  timeouts = undefined;
86
94
  lastSpawn = Date.now() - spawnDelay;
87
95
  }
@@ -108,19 +116,26 @@ var ensure = Effect.fn("service.ensure")(function* (options = {}) {
108
116
  file: options.file,
109
117
  pty: service2.state === "ready" ? "handoff" : "clear"
110
118
  }).pipe(Effect.ignore);
119
+ for (const item of contenders) {
120
+ if (item.child.pid === service2.info.pid || contenderFinished2(item)) {
121
+ item.release();
122
+ contenders.delete(item);
123
+ }
124
+ }
125
+ failure = undefined;
111
126
  lastSpawn = 0;
112
127
  return Option.none();
113
128
  } else if (lastSpawn === 0 && info !== undefined)
114
129
  lastSpawn = Date.now();
115
130
  const finished = [...contenders].filter(contenderFinished2);
116
- const failure = finished.map(contenderFailure2).find((error) => error !== undefined);
131
+ failure ??= finished.map(contenderFailure2).find((error) => error !== undefined);
117
132
  if (finished.some((item) => item.child.exitCode === 0)) {
118
133
  spawnDelay = Math.min(spawnDelay * 2, timing.maxSpawnDelay);
119
134
  }
120
135
  finished.forEach((item) => contenders.delete(item));
121
136
  if (failure !== undefined && contenders.size === 0)
122
137
  return yield* Effect.fail(failure);
123
- if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {
138
+ if (failure === undefined && contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {
124
139
  yield* announce("missing");
125
140
  contenders.add(yield* spawnContender);
126
141
  lastSpawn = Date.now();
@@ -131,7 +146,7 @@ var ensure = Effect.fn("service.ensure")(function* (options = {}) {
131
146
  schedule: Schedule.spaced(timing.pollInterval).pipe(Schedule.upTo({ duration: timing.promiseTimeout }))
132
147
  }), Effect.ensuring(Effect.sync(() => contenders.forEach((contender) => contender.release()))));
133
148
  if (Option.isNone(found))
134
- return yield* Effect.fail(new Error("Timed out waiting for the background service to start"));
149
+ return yield* Effect.fail(failure ?? new Error("Timed out waiting for the background service to start"));
135
150
  return found.value.endpoint;
136
151
  });
137
152
  var stop = Effect.fn("service.stop")(function* (options = {}) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  make2,
3
3
  exports_client
4
- } from "../chunks/pty-handoff-cqfz2qxq.js";
5
- import"../chunks/pty-handoff-vyas3vgt.js";
6
- import"../chunks/pty-handoff-qzsnm4q8.js";
7
- import"../chunks/pty-handoff-js54wxgp.js";
8
- import"../chunks/pty-handoff-1y4a697q.js";
9
- import"../chunks/pty-handoff-vt9jbch8.js";
10
- import"../chunks/pty-handoff-frbwqjmf.js";
4
+ } from "../chunks/shared-events-mdvk8mfx.js";
5
+ import"../chunks/shared-events-vyas3vgt.js";
6
+ import"../chunks/shared-events-1y4a697q.js";
7
+ import"../chunks/shared-events-vt9jbch8.js";
8
+ import"../chunks/shared-events-qzsnm4q8.js";
9
+ import"../chunks/shared-events-js54wxgp.js";
10
+ import"../chunks/shared-events-frbwqjmf.js";
11
11
  export {
12
12
  exports_client as OpenCode,
13
13
  make2 as make
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ClientError2
3
- } from "../../chunks/pty-handoff-js54wxgp.js";
3
+ } from "../../chunks/shared-events-js54wxgp.js";
4
4
  export {
5
5
  ClientError2 as ClientError
6
6
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  make3
3
- } from "../../chunks/pty-handoff-qzsnm4q8.js";
4
- import"../../chunks/pty-handoff-js54wxgp.js";
3
+ } from "../../chunks/shared-events-qzsnm4q8.js";
4
+ import"../../chunks/shared-events-js54wxgp.js";
5
5
  export {
6
6
  make3 as make
7
7
  };
@@ -1,10 +1,4 @@
1
- import"../../chunks/pty-handoff-vyas3vgt.js";
2
- import {
3
- exports_client2
4
- } from "../../chunks/pty-handoff-qzsnm4q8.js";
5
- import {
6
- ClientError2
7
- } from "../../chunks/pty-handoff-js54wxgp.js";
1
+ import"../../chunks/shared-events-vyas3vgt.js";
8
2
  import {
9
3
  isInvalidRequestError2,
10
4
  isUnauthorizedError2,
@@ -39,7 +33,13 @@ import {
39
33
  isShellNotFoundError2,
40
34
  isWorktreeError2,
41
35
  isVcsInitNotSupportedError2
42
- } from "../../chunks/pty-handoff-vt9jbch8.js";
36
+ } from "../../chunks/shared-events-vt9jbch8.js";
37
+ import {
38
+ exports_client2
39
+ } from "../../chunks/shared-events-qzsnm4q8.js";
40
+ import {
41
+ ClientError2
42
+ } from "../../chunks/shared-events-js54wxgp.js";
43
43
  export {
44
44
  ClientError2 as ClientError,
45
45
  exports_client2 as OpenCode,
@@ -32,7 +32,7 @@ import {
32
32
  isShellNotFoundError2,
33
33
  isWorktreeError2,
34
34
  isVcsInitNotSupportedError2
35
- } from "../../chunks/pty-handoff-vt9jbch8.js";
35
+ } from "../../chunks/shared-events-vt9jbch8.js";
36
36
  export {
37
37
  isAgentNotFoundError2 as isAgentNotFoundError,
38
38
  isCommandExecutionError2 as isCommandExecutionError,
@@ -1,13 +1,9 @@
1
- import"../chunks/pty-handoff-m2eywc8w.js";
1
+ import"../chunks/shared-events-m2eywc8w.js";
2
2
  import {
3
3
  exports_client
4
- } from "../chunks/pty-handoff-cqfz2qxq.js";
5
- import"../chunks/pty-handoff-vyas3vgt.js";
6
- import"../chunks/pty-handoff-qzsnm4q8.js";
7
- import {
8
- ClientError2
9
- } from "../chunks/pty-handoff-js54wxgp.js";
10
- import"../chunks/pty-handoff-1y4a697q.js";
4
+ } from "../chunks/shared-events-mdvk8mfx.js";
5
+ import"../chunks/shared-events-vyas3vgt.js";
6
+ import"../chunks/shared-events-1y4a697q.js";
11
7
  import {
12
8
  isInvalidRequestError2,
13
9
  isUnauthorizedError2,
@@ -42,8 +38,12 @@ import {
42
38
  isShellNotFoundError2,
43
39
  isWorktreeError2,
44
40
  isVcsInitNotSupportedError2
45
- } from "../chunks/pty-handoff-vt9jbch8.js";
46
- import"../chunks/pty-handoff-frbwqjmf.js";
41
+ } from "../chunks/shared-events-vt9jbch8.js";
42
+ import"../chunks/shared-events-qzsnm4q8.js";
43
+ import {
44
+ ClientError2
45
+ } from "../chunks/shared-events-js54wxgp.js";
46
+ import"../chunks/shared-events-frbwqjmf.js";
47
47
  export {
48
48
  ClientError2 as ClientError,
49
49
  exports_client as OpenCode,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  makeRpc2
3
- } from "../chunks/pty-handoff-1y4a697q.js";
4
- import"../chunks/pty-handoff-vt9jbch8.js";
3
+ } from "../chunks/shared-events-1y4a697q.js";
4
+ import"../chunks/shared-events-vt9jbch8.js";
5
5
  export {
6
6
  makeRpc2 as makeRpc
7
7
  };
@@ -2,21 +2,21 @@ import {
2
2
  spawnServiceContender2,
3
3
  contenderFailure2,
4
4
  contenderFinished2
5
- } from "../chunks/pty-handoff-6f43cgzz.js";
5
+ } from "../chunks/shared-events-6f43cgzz.js";
6
6
  import {
7
7
  defaultEnsureTiming2,
8
8
  ensureTiming2
9
- } from "../chunks/pty-handoff-xgnj2w4v.js";
9
+ } from "../chunks/shared-events-xgnj2w4v.js";
10
10
  import {
11
11
  matchesVersion2
12
- } from "../chunks/pty-handoff-sxt88q69.js";
12
+ } from "../chunks/shared-events-sxt88q69.js";
13
13
  import {
14
14
  prepare2,
15
15
  environment2,
16
16
  complete2,
17
17
  clear2
18
- } from "../chunks/pty-handoff-71wkqa80.js";
19
- import"../chunks/pty-handoff-qav6mfdz.js";
18
+ } from "../chunks/shared-events-qwh0mczy.js";
19
+ import"../chunks/shared-events-qav6mfdz.js";
20
20
 
21
21
  // src/promise/service.ts
22
22
  import { readFile, rm } from "node:fs/promises";
@@ -40,6 +40,7 @@ async function ensure(options = {}) {
40
40
  let announced = false;
41
41
  let lastSpawn = 0;
42
42
  let spawnDelay = timing.spawnDelay;
43
+ let failure;
43
44
  const announce = (reason, previousVersion) => {
44
45
  if (announced)
45
46
  return;
@@ -59,7 +60,7 @@ async function ensure(options = {}) {
59
60
  try {
60
61
  while (true) {
61
62
  if (Date.now() >= deadline)
62
- throw new Error("Timed out waiting for the background service to start");
63
+ throw failure ?? new Error("Timed out waiting for the background service to start");
63
64
  const registration = await registered(options.file, timing.requestTimeout);
64
65
  if (registration.timedOut && registration.info !== undefined) {
65
66
  timeouts = {
@@ -71,6 +72,13 @@ async function ensure(options = {}) {
71
72
  console.warn("Background service is unresponsive; recovery cannot preserve persistent terminals");
72
73
  await clear2(options.file ?? fallback());
73
74
  await terminate(registration.info, options, timing);
75
+ for (const item of contenders) {
76
+ if (item.child.pid === registration.info.pid || contenderFinished2(item)) {
77
+ item.release();
78
+ contenders.delete(item);
79
+ }
80
+ }
81
+ failure = undefined;
74
82
  timeouts = undefined;
75
83
  lastSpawn = Date.now() - spawnDelay;
76
84
  }
@@ -99,20 +107,27 @@ async function ensure(options = {}) {
99
107
  }).catch(() => {
100
108
  return;
101
109
  });
110
+ for (const item of contenders) {
111
+ if (item.child.pid === service2.info.pid || contenderFinished2(item)) {
112
+ item.release();
113
+ contenders.delete(item);
114
+ }
115
+ }
116
+ failure = undefined;
102
117
  lastSpawn = 0;
103
118
  }
104
119
  } else {
105
120
  if (lastSpawn === 0 && registration.info !== undefined)
106
121
  lastSpawn = Date.now();
107
122
  const finished = [...contenders].filter(contenderFinished2);
108
- const failure = finished.map(contenderFailure2).find((error) => error !== undefined);
123
+ failure ??= finished.map(contenderFailure2).find((error) => error !== undefined);
109
124
  if (finished.some((item) => item.child.exitCode === 0)) {
110
125
  spawnDelay = Math.min(spawnDelay * 2, timing.maxSpawnDelay);
111
126
  }
112
127
  finished.forEach((item) => contenders.delete(item));
113
128
  if (failure !== undefined && contenders.size === 0)
114
129
  throw failure;
115
- if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {
130
+ if (failure === undefined && contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {
116
131
  announce("missing");
117
132
  contenders.add(await spawnContender());
118
133
  lastSpawn = Date.now();
@@ -4,7 +4,7 @@ import {
4
4
  complete2,
5
5
  clear2,
6
6
  exports_pty_handoff
7
- } from "./chunks/pty-handoff-71wkqa80.js";
7
+ } from "./chunks/shared-events-qwh0mczy.js";
8
8
  export {
9
9
  exports_pty_handoff as PtyHandoff,
10
10
  clear2 as clear,
@@ -4,7 +4,7 @@ import {
4
4
  event2,
5
5
  eventType2,
6
6
  exports_rpc_runtime
7
- } from "./chunks/pty-handoff-t1xa31vm.js";
7
+ } from "./chunks/shared-events-t1xa31vm.js";
8
8
  export {
9
9
  exports_rpc_runtime as RpcRuntime,
10
10
  event2 as event,
@@ -2,7 +2,7 @@ import {
2
2
  spawnServiceContender2,
3
3
  contenderFailure2,
4
4
  contenderFinished2
5
- } from "./chunks/pty-handoff-6f43cgzz.js";
5
+ } from "./chunks/shared-events-6f43cgzz.js";
6
6
  export {
7
7
  contenderFailure2 as contenderFailure,
8
8
  contenderFinished2 as contenderFinished,
@@ -2,7 +2,7 @@ import {
2
2
  defaultEnsureTiming2,
3
3
  ensureTiming2,
4
4
  withEnsureTiming2
5
- } from "./chunks/pty-handoff-xgnj2w4v.js";
5
+ } from "./chunks/shared-events-xgnj2w4v.js";
6
6
  export {
7
7
  defaultEnsureTiming2 as defaultEnsureTiming,
8
8
  ensureTiming2 as ensureTiming,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  matchesVersion2
3
- } from "./chunks/pty-handoff-sxt88q69.js";
3
+ } from "./chunks/shared-events-sxt88q69.js";
4
4
  export {
5
5
  matchesVersion2 as matchesVersion
6
6
  };
package/dist/service.js CHANGED
@@ -1 +1 @@
1
- import"./chunks/pty-handoff-qav6mfdz.js";
1
+ import"./chunks/shared-events-qav6mfdz.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  make7,
3
3
  exports_shared_events
4
- } from "./chunks/pty-handoff-frbwqjmf.js";
4
+ } from "./chunks/shared-events-frbwqjmf.js";
5
5
  export {
6
6
  exports_shared_events as SharedEvents,
7
7
  make7 as make
@@ -2,7 +2,7 @@ import {
2
2
  defaultIdleTimeout2,
3
3
  foregroundIdleThreshold2,
4
4
  createClientConnection2
5
- } from "../chunks/pty-handoff-ydhz1zrh.js";
5
+ } from "../chunks/shared-events-ydhz1zrh.js";
6
6
  export {
7
7
  createClientConnection2 as createClientConnection,
8
8
  defaultIdleTimeout2 as defaultIdleTimeout,
@@ -2,15 +2,15 @@ import {
2
2
  settleMs2,
3
3
  locationKey2,
4
4
  createData2
5
- } from "../chunks/pty-handoff-e5ea35j7.js";
6
- import"../chunks/pty-handoff-m2eywc8w.js";
7
- import"../chunks/pty-handoff-cqfz2qxq.js";
8
- import"../chunks/pty-handoff-vyas3vgt.js";
9
- import"../chunks/pty-handoff-qzsnm4q8.js";
10
- import"../chunks/pty-handoff-js54wxgp.js";
11
- import"../chunks/pty-handoff-1y4a697q.js";
12
- import"../chunks/pty-handoff-vt9jbch8.js";
13
- import"../chunks/pty-handoff-frbwqjmf.js";
5
+ } from "../chunks/shared-events-e5ea35j7.js";
6
+ import"../chunks/shared-events-m2eywc8w.js";
7
+ import"../chunks/shared-events-mdvk8mfx.js";
8
+ import"../chunks/shared-events-vyas3vgt.js";
9
+ import"../chunks/shared-events-1y4a697q.js";
10
+ import"../chunks/shared-events-vt9jbch8.js";
11
+ import"../chunks/shared-events-qzsnm4q8.js";
12
+ import"../chunks/shared-events-js54wxgp.js";
13
+ import"../chunks/shared-events-frbwqjmf.js";
14
14
  export {
15
15
  createData2 as createData,
16
16
  locationKey2 as locationKey,
@@ -1,25 +1,25 @@
1
- import"../chunks/pty-handoff-js54wxgp.js";
2
- import"../chunks/pty-handoff-qzsnm4q8.js";
3
- import"../chunks/pty-handoff-vt9jbch8.js";
4
- import"../chunks/pty-handoff-vyas3vgt.js";
5
- import"../chunks/pty-handoff-frbwqjmf.js";
6
- import"../chunks/pty-handoff-1y4a697q.js";
7
- import"../chunks/pty-handoff-cqfz2qxq.js";
8
- import"../chunks/pty-handoff-m2eywc8w.js";
1
+ import"../chunks/shared-events-js54wxgp.js";
2
+ import"../chunks/shared-events-qzsnm4q8.js";
3
+ import"../chunks/shared-events-vt9jbch8.js";
4
+ import"../chunks/shared-events-vyas3vgt.js";
5
+ import"../chunks/shared-events-frbwqjmf.js";
6
+ import"../chunks/shared-events-1y4a697q.js";
7
+ import"../chunks/shared-events-mdvk8mfx.js";
8
+ import"../chunks/shared-events-m2eywc8w.js";
9
9
  import {
10
10
  settleMs2,
11
11
  locationKey2,
12
12
  createData2
13
- } from "../chunks/pty-handoff-e5ea35j7.js";
13
+ } from "../chunks/shared-events-e5ea35j7.js";
14
14
  import {
15
15
  defaultIdleTimeout2,
16
16
  foregroundIdleThreshold2,
17
17
  createClientConnection2
18
- } from "../chunks/pty-handoff-ydhz1zrh.js";
18
+ } from "../chunks/shared-events-ydhz1zrh.js";
19
19
  import {
20
20
  createPtyClient2,
21
21
  createPersistentPtyClient2
22
- } from "../chunks/pty-handoff-gne7h7mq.js";
22
+ } from "../chunks/shared-events-gne7h7mq.js";
23
23
  export {
24
24
  createClientConnection2 as createClientConnection,
25
25
  createData2 as createData,
package/dist/solid/pty.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createPtyClient2,
3
3
  createPersistentPtyClient2
4
- } from "../chunks/pty-handoff-gne7h7mq.js";
4
+ } from "../chunks/shared-events-gne7h7mq.js";
5
5
  export {
6
6
  createPersistentPtyClient2 as createPersistentPtyClient,
7
7
  createPtyClient2 as createPtyClient
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@opencode/client",
4
- "version": "0.0.0-dev-20552",
4
+ "version": "0.0.0-dev-20555",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -57,8 +57,8 @@
57
57
  "typecheck": "tsgo --noEmit"
58
58
  },
59
59
  "dependencies": {
60
- "@opencode/schema": "0.0.0-dev-20552",
61
- "@opencode/protocol": "0.0.0-dev-20552"
60
+ "@opencode/schema": "0.0.0-dev-20555",
61
+ "@opencode/protocol": "0.0.0-dev-20555"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "effect": "4.0.0-rc.112",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  "devDependencies": {
76
76
  "@effect/platform-node": "4.0.0-rc.112",
77
- "@opencode/httpapi-codegen": "0.0.0-dev-20552",
77
+ "@opencode/httpapi-codegen": "0.0.0-dev-20555",
78
78
  "@tsconfig/bun": "1.0.9",
79
79
  "@types/bun": "1.4.0",
80
80
  "@typescript/native-preview": "7.0.0-dev.20251207.1",