@opencode-ai/client 0.0.0-next-16779 → 0.0.0-next-16781
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/effect/service.js
CHANGED
|
@@ -37,7 +37,6 @@ export const ensure = Effect.fn("service.ensure")(function* (options = {}) {
|
|
|
37
37
|
let announced = false;
|
|
38
38
|
let lastSpawn = 0;
|
|
39
39
|
let spawnDelay = 5_000;
|
|
40
|
-
let ownerHeld = false;
|
|
41
40
|
const announce = (reason, previousVersion) => Effect.sync(() => {
|
|
42
41
|
if (announced)
|
|
43
42
|
return;
|
|
@@ -66,7 +65,6 @@ export const ensure = Effect.fn("service.ensure")(function* (options = {}) {
|
|
|
66
65
|
const info = registration.info;
|
|
67
66
|
const service = registration.service;
|
|
68
67
|
if (service !== undefined) {
|
|
69
|
-
ownerHeld = false;
|
|
70
68
|
spawnDelay = 5_000;
|
|
71
69
|
const compatible = !service.legacy && (options.version === undefined || service.version === options.version);
|
|
72
70
|
if (compatible && service.state === "ready")
|
|
@@ -82,15 +80,14 @@ export const ensure = Effect.fn("service.ensure")(function* (options = {}) {
|
|
|
82
80
|
}
|
|
83
81
|
else if (lastSpawn === 0 && info !== undefined)
|
|
84
82
|
lastSpawn = Date.now();
|
|
85
|
-
const failure = [...contenders].map(contenderFailure).find((error) => error !== undefined);
|
|
86
|
-
if (failure !== undefined)
|
|
87
|
-
return yield* Effect.fail(failure);
|
|
88
83
|
const finished = [...contenders].filter(contenderFinished);
|
|
84
|
+
const failure = finished.map(contenderFailure).find((error) => error !== undefined);
|
|
89
85
|
if (finished.some((item) => item.child.exitCode === 0)) {
|
|
90
|
-
ownerHeld = true;
|
|
91
86
|
spawnDelay = Math.min(spawnDelay * 2, 30_000);
|
|
92
87
|
}
|
|
93
88
|
finished.forEach((item) => contenders.delete(item));
|
|
89
|
+
if (failure !== undefined && contenders.size === 0)
|
|
90
|
+
return yield* Effect.fail(failure);
|
|
94
91
|
// Keep one candidate plus one lock probe so a pre-lock stall cannot block recovery.
|
|
95
92
|
if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {
|
|
96
93
|
yield* announce("missing");
|
package/dist/promise/service.js
CHANGED
|
@@ -22,7 +22,6 @@ export async function ensure(options = {}) {
|
|
|
22
22
|
let announced = false;
|
|
23
23
|
let lastSpawn = 0;
|
|
24
24
|
let spawnDelay = 5_000;
|
|
25
|
-
let ownerHeld = false;
|
|
26
25
|
const announce = (reason, previousVersion) => {
|
|
27
26
|
if (announced)
|
|
28
27
|
return;
|
|
@@ -51,7 +50,6 @@ export async function ensure(options = {}) {
|
|
|
51
50
|
throw new Error("Timed out waiting for the background service to start");
|
|
52
51
|
const registration = await registered(options.file, true);
|
|
53
52
|
if (registration.service !== undefined) {
|
|
54
|
-
ownerHeld = false;
|
|
55
53
|
spawnDelay = 5_000;
|
|
56
54
|
const service = registration.service;
|
|
57
55
|
const compatible = !service.legacy && (options.version === undefined || service.version === options.version);
|
|
@@ -68,15 +66,14 @@ export async function ensure(options = {}) {
|
|
|
68
66
|
else {
|
|
69
67
|
if (lastSpawn === 0 && registration.info !== undefined)
|
|
70
68
|
lastSpawn = Date.now();
|
|
71
|
-
const failure = [...contenders].map(contenderFailure).find((error) => error !== undefined);
|
|
72
|
-
if (failure !== undefined)
|
|
73
|
-
throw failure;
|
|
74
69
|
const finished = [...contenders].filter(contenderFinished);
|
|
70
|
+
const failure = finished.map(contenderFailure).find((error) => error !== undefined);
|
|
75
71
|
if (finished.some((item) => item.child.exitCode === 0)) {
|
|
76
|
-
ownerHeld = true;
|
|
77
72
|
spawnDelay = Math.min(spawnDelay * 2, 30_000);
|
|
78
73
|
}
|
|
79
74
|
finished.forEach((item) => contenders.delete(item));
|
|
75
|
+
if (failure !== undefined && contenders.size === 0)
|
|
76
|
+
throw failure;
|
|
80
77
|
// Keep one candidate plus one lock probe so a pre-lock stall cannot block recovery.
|
|
81
78
|
if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {
|
|
82
79
|
announce("missing");
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@opencode-ai/client",
|
|
4
|
-
"version": "0.0.0-next-
|
|
4
|
+
"version": "0.0.0-next-16781",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"typecheck": "tsgo --noEmit"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@opencode-ai/schema": "0.0.0-next-
|
|
57
|
-
"@opencode-ai/protocol": "0.0.0-next-
|
|
56
|
+
"@opencode-ai/schema": "0.0.0-next-16781",
|
|
57
|
+
"@opencode-ai/protocol": "0.0.0-next-16781"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"effect": "4.0.0-beta.101"
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@effect/platform-node": "4.0.0-beta.101",
|
|
69
|
-
"@opencode-ai/httpapi-codegen": "0.0.0-next-
|
|
69
|
+
"@opencode-ai/httpapi-codegen": "0.0.0-next-16781",
|
|
70
70
|
"@tsconfig/bun": "1.0.9",
|
|
71
71
|
"@types/bun": "1.3.13",
|
|
72
72
|
"@typescript/native-preview": "7.0.0-dev.20251207.1",
|