@opencode-ai/client
Advanced tools
@@ -40,3 +40,2 @@ import { ServiceStatus } from "@opencode-ai/protocol/groups/health"; | ||
| let spawnDelay = 5_000; | ||
| let ownerHeld = false; | ||
| const announce = (reason, previousVersion) => Effect.sync(() => { | ||
@@ -70,3 +69,2 @@ if (announced) | ||
| if (service !== undefined) { | ||
| ownerHeld = false; | ||
| spawnDelay = 5_000; | ||
@@ -87,11 +85,10 @@ const compatible = !service.legacy && (options.version === undefined || service.version === options.version); | ||
| lastSpawn = Date.now(); | ||
| const failure = [...contenders].map(contenderFailure).find((error) => error !== undefined); | ||
| if (failure !== undefined) | ||
| return yield* Effect.fail(failure); | ||
| const finished = [...contenders].filter(contenderFinished); | ||
| const failure = finished.map(contenderFailure).find((error) => error !== undefined); | ||
| if (finished.some((item) => item.child.exitCode === 0)) { | ||
| ownerHeld = true; | ||
| spawnDelay = Math.min(spawnDelay * 2, 30_000); | ||
| } | ||
| finished.forEach((item) => contenders.delete(item)); | ||
| if (failure !== undefined && contenders.size === 0) | ||
| return yield* Effect.fail(failure); | ||
| // Keep one candidate plus one lock probe so a pre-lock stall cannot block recovery. | ||
@@ -98,0 +95,0 @@ if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) { |
@@ -25,3 +25,2 @@ import { readFile } from "node:fs/promises"; | ||
| let spawnDelay = 5_000; | ||
| let ownerHeld = false; | ||
| const announce = (reason, previousVersion) => { | ||
@@ -55,3 +54,2 @@ if (announced) | ||
| if (registration.service !== undefined) { | ||
| ownerHeld = false; | ||
| spawnDelay = 5_000; | ||
@@ -73,11 +71,10 @@ const service = registration.service; | ||
| lastSpawn = Date.now(); | ||
| const failure = [...contenders].map(contenderFailure).find((error) => error !== undefined); | ||
| if (failure !== undefined) | ||
| throw failure; | ||
| const finished = [...contenders].filter(contenderFinished); | ||
| const failure = finished.map(contenderFailure).find((error) => error !== undefined); | ||
| if (finished.some((item) => item.child.exitCode === 0)) { | ||
| ownerHeld = true; | ||
| spawnDelay = Math.min(spawnDelay * 2, 30_000); | ||
| } | ||
| finished.forEach((item) => contenders.delete(item)); | ||
| if (failure !== undefined && contenders.size === 0) | ||
| throw failure; | ||
| // Keep one candidate plus one lock probe so a pre-lock stall cannot block recovery. | ||
@@ -84,0 +81,0 @@ if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) { |
+4
-4
| { | ||
| "$schema": "https://json.schemastore.org/package.json", | ||
| "name": "@opencode-ai/client", | ||
| "version": "0.0.0-next-16779", | ||
| "version": "0.0.0-next-16781", | ||
| "type": "module", | ||
@@ -56,4 +56,4 @@ "license": "MIT", | ||
| "dependencies": { | ||
| "@opencode-ai/schema": "0.0.0-next-16779", | ||
| "@opencode-ai/protocol": "0.0.0-next-16779" | ||
| "@opencode-ai/schema": "0.0.0-next-16781", | ||
| "@opencode-ai/protocol": "0.0.0-next-16781" | ||
| }, | ||
@@ -70,3 +70,3 @@ "peerDependencies": { | ||
| "@effect/platform-node": "4.0.0-beta.101", | ||
| "@opencode-ai/httpapi-codegen": "0.0.0-next-16779", | ||
| "@opencode-ai/httpapi-codegen": "0.0.0-next-16781", | ||
| "@tsconfig/bun": "1.0.9", | ||
@@ -73,0 +73,0 @@ "@types/bun": "1.3.13", |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
587896
-0.02%14376
-0.04%+ Added
+ Added
- Removed
- Removed