@opencode/client 2.0.23 → 2.0.24
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/chunks/{service-version-1y4a697q.js → pty-handoff-1y4a697q.js} +1 -1
- package/dist/chunks/{service-version-7yt87z36.js → pty-handoff-5yf5aaev.js} +10 -10
- package/dist/chunks/{service-version-02j88w0z.js → pty-handoff-71wkqa80.js} +1 -1
- package/dist/chunks/{service-version-y2etg5bs.js → pty-handoff-7f0py9js.js} +2 -2
- package/dist/chunks/pty-handoff-ank0d71z.js +75 -0
- package/dist/chunks/pty-handoff-cqfz2qxq.js +30 -0
- package/dist/chunks/{service-version-frbwqjmf.js → pty-handoff-frbwqjmf.js} +1 -1
- package/dist/chunks/{service-version-nwcpakzx.js → pty-handoff-js54wxgp.js} +2 -2
- package/dist/chunks/{service-version-21favj1f.js → pty-handoff-myyn5x39.js} +17 -17
- package/dist/chunks/{service-version-nyqggzs9.js → pty-handoff-qzsnm4q8.js} +19 -19
- package/dist/chunks/{service-version-e5ea35j7.js → pty-handoff-src6by76.js} +10 -1
- package/dist/chunks/{service-version-t1xa31vm.js → pty-handoff-t1xa31vm.js} +1 -1
- package/dist/chunks/{service-version-6f43cgzz.js → pty-handoff-ve4aws36.js} +47 -2
- package/dist/chunks/{service-version-z6qdwcsf.js → pty-handoff-w1w809zr.js} +5 -5
- package/dist/contract.js +1 -1
- package/dist/effect/client.js +12 -12
- package/dist/effect/generated/client-error.js +3 -3
- package/dist/effect/generated/client.js +5 -5
- package/dist/effect/generated/index.js +8 -8
- package/dist/effect/index.js +12 -12
- package/dist/effect/rpc.js +4 -4
- package/dist/effect/service.d.ts +5 -7
- package/dist/effect/service.js +39 -122
- package/dist/promise/client.js +11 -11
- package/dist/promise/generated/client-error.js +3 -3
- package/dist/promise/generated/client.js +4 -4
- package/dist/promise/generated/index.js +8 -8
- package/dist/promise/generated/types.js +1 -1
- package/dist/promise/index.js +12 -12
- package/dist/promise/rpc.js +2 -2
- package/dist/promise/service.d.ts +2 -4
- package/dist/promise/service.js +36 -122
- package/dist/pty-handoff.js +1 -1
- package/dist/rpc-runtime.js +1 -1
- package/dist/service-contender.d.ts +27 -1
- package/dist/service-contender.js +3 -3
- package/dist/service-probe.d.ts +53 -0
- package/dist/service-probe.js +13 -0
- package/dist/service-timing.js +1 -1
- package/dist/service-version.js +1 -1
- package/dist/service.js +1 -1
- package/dist/shared-events.js +1 -1
- package/dist/solid/connection.js +1 -1
- package/dist/solid/data.d.ts +3 -0
- package/dist/solid/data.js +9 -9
- package/dist/solid/index.js +11 -11
- package/dist/solid/pty.js +1 -1
- package/package.json +4 -4
- package/dist/chunks/service-version-gah0fg5v.js +0 -30
- /package/dist/chunks/{service-version-6mptkzbc.js → pty-handoff-6mptkzbc.js} +0 -0
- /package/dist/chunks/{service-version-9rqn6x4v.js → pty-handoff-9rqn6x4v.js} +0 -0
- /package/dist/chunks/{service-version-gne7h7mq.js → pty-handoff-gne7h7mq.js} +0 -0
- /package/dist/chunks/{service-version-m2eywc8w.js → pty-handoff-m2eywc8w.js} +0 -0
- /package/dist/chunks/{service-version-qav6mfdz.js → pty-handoff-qav6mfdz.js} +0 -0
- /package/dist/chunks/{service-version-sxt88q69.js → pty-handoff-sxt88q69.js} +0 -0
- /package/dist/chunks/{service-version-vmytr4q8.js → pty-handoff-vmytr4q8.js} +0 -0
- /package/dist/chunks/{service-version-vt9jbch8.js → pty-handoff-vt9jbch8.js} +0 -0
- /package/dist/chunks/{service-version-vyas3vgt.js → pty-handoff-vyas3vgt.js} +0 -0
- /package/dist/chunks/{service-version-xgnj2w4v.js → pty-handoff-xgnj2w4v.js} +0 -0
- /package/dist/chunks/{service-version-ydhz1zrh.js → pty-handoff-ydhz1zrh.js} +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ClientApi2
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./pty-handoff-vmytr4q8.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./
|
|
5
|
+
ClientError3
|
|
6
|
+
} from "./pty-handoff-7f0py9js.js";
|
|
7
7
|
import {
|
|
8
8
|
__export
|
|
9
|
-
} from "./
|
|
9
|
+
} from "./pty-handoff-9rqn6x4v.js";
|
|
10
10
|
|
|
11
11
|
// src/effect/generated/client.ts
|
|
12
|
-
var
|
|
13
|
-
__export(
|
|
14
|
-
make: () =>
|
|
12
|
+
var exports_client4 = {};
|
|
13
|
+
__export(exports_client4, {
|
|
14
|
+
make: () => make5
|
|
15
15
|
});
|
|
16
16
|
import { Effect, Stream, Schema } from "effect";
|
|
17
17
|
import { Sse } from "effect/unstable/encoding";
|
|
18
18
|
import { HttpClientError } from "effect/unstable/http";
|
|
19
19
|
import { HttpApiClient } from "effect/unstable/httpapi";
|
|
20
|
-
var mapClientError = (error) => HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) ? new
|
|
20
|
+
var mapClientError = (error) => HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) ? new ClientError3({ cause: error }) : error;
|
|
21
21
|
var preserveEffect = () => (effect) => effect;
|
|
22
22
|
var preserveStream = () => (stream) => stream;
|
|
23
23
|
var EndpointServerInfo = (raw) => () => preserveEffect()(raw["server.info"]({}).pipe(Effect.mapError(mapClientError)));
|
|
@@ -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
|
|
616
|
+
var make5 = (options) => HttpApiClient.make(ClientApi2, options).pipe(Effect.map(adaptClient));
|
|
617
617
|
|
|
618
|
-
export {
|
|
618
|
+
export { make5, exports_client4 };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// src/effect/generated/client-error.ts
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class ClientError3 extends Schema.TaggedError()("ClientError", {
|
|
5
5
|
cause: Schema.Defect()
|
|
6
6
|
}) {
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export {
|
|
9
|
+
export { ClientError3 };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defaultEnsureTiming2
|
|
3
|
+
} from "./pty-handoff-xgnj2w4v.js";
|
|
4
|
+
|
|
5
|
+
// src/service-probe.ts
|
|
6
|
+
import { homedir } from "node:os";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
function fallback2() {
|
|
9
|
+
return join(process.env["XDG_STATE_HOME"] ?? join(homedir(), ".local", "state"), "opencode", "service.json");
|
|
10
|
+
}
|
|
11
|
+
function same2(left, right) {
|
|
12
|
+
return left.id === right.id && left.version === right.version && left.url === right.url && left.pid === right.pid;
|
|
13
|
+
}
|
|
14
|
+
async function probeResult2(info, timeout = defaultEnsureTiming2.requestTimeout) {
|
|
15
|
+
const endpoint = {
|
|
16
|
+
url: info.url,
|
|
17
|
+
auth: info.password === undefined ? undefined : { type: "basic", username: "opencode", password: info.password }
|
|
18
|
+
};
|
|
19
|
+
const signal = AbortSignal.timeout(timeout);
|
|
20
|
+
const result = await fetch(new URL("/api/info", info.url), { headers: headers2(endpoint), signal }).then(async (response) => ({
|
|
21
|
+
response,
|
|
22
|
+
body: response.status === 404 ? undefined : await response.json()
|
|
23
|
+
})).catch(() => {
|
|
24
|
+
return;
|
|
25
|
+
});
|
|
26
|
+
if (result === undefined)
|
|
27
|
+
return { service: undefined, timedOut: signal.aborted };
|
|
28
|
+
const response = result.response;
|
|
29
|
+
if (response.status === 404)
|
|
30
|
+
return {
|
|
31
|
+
service: {
|
|
32
|
+
info,
|
|
33
|
+
endpoint,
|
|
34
|
+
version: info.version,
|
|
35
|
+
state: "ready",
|
|
36
|
+
compatible: false
|
|
37
|
+
},
|
|
38
|
+
timedOut: false
|
|
39
|
+
};
|
|
40
|
+
const serverInfo = decodeInfo(result.body);
|
|
41
|
+
if (serverInfo === undefined)
|
|
42
|
+
return { service: undefined, timedOut: false };
|
|
43
|
+
if (serverInfo.pid !== info.pid)
|
|
44
|
+
return { service: undefined, timedOut: false };
|
|
45
|
+
if (info.version !== undefined && serverInfo.version !== info.version)
|
|
46
|
+
return { service: undefined, timedOut: false };
|
|
47
|
+
return {
|
|
48
|
+
service: {
|
|
49
|
+
info,
|
|
50
|
+
endpoint,
|
|
51
|
+
version: serverInfo.version,
|
|
52
|
+
state: response.ok ? "ready" : response.status === 500 ? "failed" : "waiting",
|
|
53
|
+
compatible: true
|
|
54
|
+
},
|
|
55
|
+
timedOut: false
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function headers2(endpoint) {
|
|
59
|
+
if (endpoint.auth === undefined)
|
|
60
|
+
return;
|
|
61
|
+
return {
|
|
62
|
+
authorization: "Basic " + Buffer.from(endpoint.auth.username + ":" + endpoint.auth.password).toString("base64")
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function decodeInfo(input) {
|
|
66
|
+
if (typeof input !== "object" || input === null)
|
|
67
|
+
return;
|
|
68
|
+
if (!("version" in input) || typeof input.version !== "string")
|
|
69
|
+
return;
|
|
70
|
+
if (!("pid" in input) || typeof input.pid !== "number" || !Number.isInteger(input.pid) || input.pid < 0)
|
|
71
|
+
return;
|
|
72
|
+
return { version: input.version, pid: input.pid };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { fallback2, same2, probeResult2, headers2 };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
make7
|
|
3
|
+
} from "./pty-handoff-frbwqjmf.js";
|
|
4
|
+
import {
|
|
5
|
+
make3
|
|
6
|
+
} from "./pty-handoff-qzsnm4q8.js";
|
|
7
|
+
import {
|
|
8
|
+
makeRpc2
|
|
9
|
+
} from "./pty-handoff-1y4a697q.js";
|
|
10
|
+
import {
|
|
11
|
+
__export
|
|
12
|
+
} from "./pty-handoff-9rqn6x4v.js";
|
|
13
|
+
|
|
14
|
+
// src/promise/client.ts
|
|
15
|
+
var exports_client = {};
|
|
16
|
+
__export(exports_client, {
|
|
17
|
+
OpenCode: () => exports_client,
|
|
18
|
+
make: () => make2
|
|
19
|
+
});
|
|
20
|
+
function make2(options) {
|
|
21
|
+
const raw = make3(options);
|
|
22
|
+
const events = make7((signal, onActivity) => raw.event.subscribe({ signal, onActivity }));
|
|
23
|
+
return {
|
|
24
|
+
...raw,
|
|
25
|
+
rpc: Object.assign(makeRpc2(raw, events), raw.rpc),
|
|
26
|
+
event: events
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { make2, exports_client };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/promise/generated/client-error.ts
|
|
2
|
-
class
|
|
2
|
+
class ClientError2 extends Error {
|
|
3
3
|
reason;
|
|
4
4
|
name = "ClientError";
|
|
5
5
|
constructor(reason, options) {
|
|
@@ -9,4 +9,4 @@ class ClientError3 extends Error {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
export {
|
|
12
|
+
export { ClientError2 };
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
make7
|
|
3
|
-
} from "./
|
|
3
|
+
} from "./pty-handoff-frbwqjmf.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./
|
|
5
|
+
ClientError3
|
|
6
|
+
} from "./pty-handoff-7f0py9js.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
} from "./
|
|
8
|
+
make5
|
|
9
|
+
} from "./pty-handoff-5yf5aaev.js";
|
|
10
10
|
import {
|
|
11
|
-
|
|
11
|
+
make6,
|
|
12
12
|
aborted2
|
|
13
|
-
} from "./
|
|
13
|
+
} from "./pty-handoff-w1w809zr.js";
|
|
14
14
|
import {
|
|
15
15
|
__export
|
|
16
|
-
} from "./
|
|
16
|
+
} from "./pty-handoff-9rqn6x4v.js";
|
|
17
17
|
|
|
18
18
|
// src/effect/client.ts
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
OpenCode: () =>
|
|
22
|
-
make: () =>
|
|
19
|
+
var exports_client3 = {};
|
|
20
|
+
__export(exports_client3, {
|
|
21
|
+
OpenCode: () => exports_client3,
|
|
22
|
+
make: () => make4
|
|
23
23
|
});
|
|
24
24
|
import { Cause, Context, Effect, Stream } from "effect";
|
|
25
25
|
import { HttpClient, HttpClientRequest } from "effect/unstable/http";
|
|
@@ -28,9 +28,9 @@ var CurrentHeaders = Context.Reference("@opencode/client/effect/rpc/headers", {
|
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
-
var
|
|
31
|
+
var make4 = Effect.fn("OpenCode.make")(function* (options) {
|
|
32
32
|
const httpClient = yield* HttpClient.HttpClient;
|
|
33
|
-
const raw = yield*
|
|
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))));
|
|
34
34
|
const context = yield* Effect.context();
|
|
35
35
|
const native = raw.event.subscribe();
|
|
36
36
|
|
|
@@ -41,12 +41,12 @@ var make2 = Effect.fn("OpenCode.make")(function* (options) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
const shared = make7((signal) => Stream.toAsyncIterableWith(native.pipe(Stream.interruptWhen(aborted2(signal)), Stream.catchCause((cause) => Stream.fail(new EventFailure(cause)))), context));
|
|
44
|
-
const subscribe = () => Stream.fromAsyncIterable(shared.subscribe(), (error) => error).pipe(Stream.catch((error) => Stream.failCause(error instanceof EventFailure ? error.cause : Cause.fail(new
|
|
44
|
+
const subscribe = () => Stream.fromAsyncIterable(shared.subscribe(), (error) => error).pipe(Stream.catch((error) => Stream.failCause(error instanceof EventFailure ? error.cause : Cause.fail(new ClientError3({ cause: error })))));
|
|
45
45
|
return {
|
|
46
46
|
...raw,
|
|
47
47
|
event: { ...raw.event, subscribe },
|
|
48
|
-
rpc: Object.assign(
|
|
48
|
+
rpc: Object.assign(make6((input, options) => raw.rpc.call(input).pipe(Effect.provideService(CurrentHeaders, options?.headers)), subscribe), raw.rpc)
|
|
49
49
|
};
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
export {
|
|
52
|
+
export { make4, exports_client3 };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./
|
|
2
|
+
ClientError2
|
|
3
|
+
} from "./pty-handoff-js54wxgp.js";
|
|
4
4
|
import {
|
|
5
5
|
__export
|
|
6
|
-
} from "./
|
|
6
|
+
} from "./pty-handoff-9rqn6x4v.js";
|
|
7
7
|
|
|
8
8
|
// src/promise/generated/client.ts
|
|
9
|
-
var
|
|
10
|
-
__export(
|
|
11
|
-
make: () =>
|
|
9
|
+
var exports_client2 = {};
|
|
10
|
+
__export(exports_client2, {
|
|
11
|
+
make: () => make3
|
|
12
12
|
});
|
|
13
13
|
var maxSseEventBytes = 16 * 1024 * 1024;
|
|
14
|
-
function
|
|
14
|
+
function make3(options) {
|
|
15
15
|
const fetch = options.fetch ?? globalThis.fetch;
|
|
16
16
|
const prepare = (descriptor, requestOptions) => {
|
|
17
17
|
const baseUrl = new URL(options.baseUrl);
|
|
@@ -44,7 +44,7 @@ function make6(options) {
|
|
|
44
44
|
const prepared = prepare(descriptor, requestOptions);
|
|
45
45
|
return await fetch(prepared.url, prepared.init);
|
|
46
46
|
} catch (cause) {
|
|
47
|
-
throw new
|
|
47
|
+
throw new ClientError2("Transport", { cause });
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
50
|
const responseError = async (response, descriptor) => {
|
|
@@ -53,7 +53,7 @@ function make6(options) {
|
|
|
53
53
|
try {
|
|
54
54
|
await response.body?.cancel();
|
|
55
55
|
} catch {}
|
|
56
|
-
throw new
|
|
56
|
+
throw new ClientError2("UnexpectedStatus", { cause: { status: response.status }, detail: String(response.status) });
|
|
57
57
|
};
|
|
58
58
|
const request = async (descriptor, requestOptions) => {
|
|
59
59
|
const response = await execute(descriptor, requestOptions);
|
|
@@ -78,10 +78,10 @@ function make6(options) {
|
|
|
78
78
|
try {
|
|
79
79
|
await response.body?.cancel();
|
|
80
80
|
} catch {}
|
|
81
|
-
throw new
|
|
81
|
+
throw new ClientError2("UnsupportedContentType", { detail: response.headers.get("content-type") });
|
|
82
82
|
}
|
|
83
83
|
if (response.body === null)
|
|
84
|
-
throw new
|
|
84
|
+
throw new ClientError2("MalformedResponse");
|
|
85
85
|
const reader = response.body.getReader();
|
|
86
86
|
const decoder = new TextDecoder;
|
|
87
87
|
let buffer = "";
|
|
@@ -91,13 +91,13 @@ function make6(options) {
|
|
|
91
91
|
try {
|
|
92
92
|
next = await reader.read();
|
|
93
93
|
} catch (cause) {
|
|
94
|
-
throw new
|
|
94
|
+
throw new ClientError2("Transport", { cause });
|
|
95
95
|
}
|
|
96
96
|
if (!next.done)
|
|
97
97
|
requestOptions?.onActivity?.();
|
|
98
98
|
buffer += decoder.decode(next.value, { stream: !next.done });
|
|
99
99
|
if (buffer.length > maxSseEventBytes)
|
|
100
|
-
throw new
|
|
100
|
+
throw new ClientError2("SseEventTooLarge");
|
|
101
101
|
const trailingCarriageReturn = !next.done && buffer.endsWith("\r");
|
|
102
102
|
if (trailingCarriageReturn)
|
|
103
103
|
buffer = buffer.slice(0, -1);
|
|
@@ -124,7 +124,7 @@ function make6(options) {
|
|
|
124
124
|
try {
|
|
125
125
|
yield JSON.parse(data);
|
|
126
126
|
} catch (cause) {
|
|
127
|
-
throw new
|
|
127
|
+
throw new ClientError2("MalformedResponse", { cause });
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
boundary = buffer.indexOf(`
|
|
@@ -1421,20 +1421,20 @@ async function json(response) {
|
|
|
1421
1421
|
try {
|
|
1422
1422
|
await response.body?.cancel();
|
|
1423
1423
|
} catch {}
|
|
1424
|
-
throw new
|
|
1424
|
+
throw new ClientError2("UnsupportedContentType", { detail: response.headers.get("content-type") });
|
|
1425
1425
|
}
|
|
1426
1426
|
let text;
|
|
1427
1427
|
try {
|
|
1428
1428
|
text = await response.text();
|
|
1429
1429
|
} catch (cause) {
|
|
1430
|
-
throw new
|
|
1430
|
+
throw new ClientError2("Transport", { cause });
|
|
1431
1431
|
}
|
|
1432
1432
|
if (text === "")
|
|
1433
|
-
throw new
|
|
1433
|
+
throw new ClientError2("MalformedResponse");
|
|
1434
1434
|
try {
|
|
1435
1435
|
return JSON.parse(text);
|
|
1436
1436
|
} catch (cause) {
|
|
1437
|
-
throw new
|
|
1437
|
+
throw new ClientError2("MalformedResponse", { cause });
|
|
1438
1438
|
}
|
|
1439
1439
|
}
|
|
1440
1440
|
function declared(body) {
|
|
@@ -1447,4 +1447,4 @@ function isContentType(response, expected) {
|
|
|
1447
1447
|
return response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase() === expected;
|
|
1448
1448
|
}
|
|
1449
1449
|
|
|
1450
|
-
export {
|
|
1450
|
+
export { make3, exports_client2 };
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
isFormNotFoundError2,
|
|
3
3
|
isFormAlreadySettledError2,
|
|
4
4
|
isPermissionNotFoundError2
|
|
5
|
-
} from "./
|
|
5
|
+
} from "./pty-handoff-vt9jbch8.js";
|
|
6
6
|
|
|
7
7
|
// src/solid/data.ts
|
|
8
8
|
import { Worktree } from "@opencode/schema/worktree";
|
|
@@ -1162,6 +1162,9 @@ function createData2(config) {
|
|
|
1162
1162
|
status(sessionID) {
|
|
1163
1163
|
return store.session.active[sessionID] ?? "idle";
|
|
1164
1164
|
},
|
|
1165
|
+
active() {
|
|
1166
|
+
return Object.entries(store.session.active).flatMap(([sessionID, status]) => status === "running" ? [sessionID] : []);
|
|
1167
|
+
},
|
|
1165
1168
|
input: {
|
|
1166
1169
|
list(sessionID) {
|
|
1167
1170
|
return (store.session.pending[sessionID] ?? []).flatMap((item) => item.type === "compaction" ? [] : [item.id]);
|
|
@@ -1437,6 +1440,9 @@ function createData2(config) {
|
|
|
1437
1440
|
list(sessionID) {
|
|
1438
1441
|
return store.session.permission[sessionID];
|
|
1439
1442
|
},
|
|
1443
|
+
sessions() {
|
|
1444
|
+
return Object.entries(store.session.permission).flatMap(([sessionID, requests]) => requests.length > 0 ? [sessionID] : []);
|
|
1445
|
+
},
|
|
1440
1446
|
sync(sessionID) {
|
|
1441
1447
|
return sync.run(`session.permission:${sessionID}`, async () => {
|
|
1442
1448
|
setStore("session", "permission", sessionID, await api().permission.list({ sessionID }));
|
|
@@ -1463,6 +1469,9 @@ function createData2(config) {
|
|
|
1463
1469
|
const key = locationKey2(ref);
|
|
1464
1470
|
return forms?.filter((form) => form.location && locationKey2(form.location) === key);
|
|
1465
1471
|
},
|
|
1472
|
+
sessions() {
|
|
1473
|
+
return Object.entries(store.session.form).flatMap(([sessionID, forms]) => sessionID !== "global" && forms.length > 0 ? [sessionID] : []);
|
|
1474
|
+
},
|
|
1466
1475
|
sync(sessionID, ref) {
|
|
1467
1476
|
const key = `session.form:${sessionID}:${sessionID === "global" ? locationKey2(ref ?? defaultLocation()) : ""}`;
|
|
1468
1477
|
return sync.run(key, async () => {
|
|
@@ -37,7 +37,52 @@ function spawnServiceContender2(command, args, env) {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function contenderPool2(timing) {
|
|
41
|
+
const contenders = new Set;
|
|
42
|
+
let failure;
|
|
43
|
+
let spawnDelay = timing.spawnDelay;
|
|
44
|
+
let lastSpawn = 0;
|
|
45
|
+
return {
|
|
46
|
+
failure: () => failure,
|
|
47
|
+
serviceAnswered() {
|
|
48
|
+
spawnDelay = timing.spawnDelay;
|
|
49
|
+
},
|
|
50
|
+
evict(pid) {
|
|
51
|
+
for (const item of contenders) {
|
|
52
|
+
if (item.child.pid === pid || contenderFinished2(item)) {
|
|
53
|
+
item.release();
|
|
54
|
+
contenders.delete(item);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
failure = undefined;
|
|
58
|
+
lastSpawn = 0;
|
|
59
|
+
},
|
|
60
|
+
recruitNow() {
|
|
61
|
+
lastSpawn = Date.now() - spawnDelay;
|
|
62
|
+
},
|
|
63
|
+
reap() {
|
|
64
|
+
const finished = [...contenders].filter(contenderFinished2);
|
|
65
|
+
failure ??= finished.map(contenderFailure).find((error) => error !== undefined);
|
|
66
|
+
if (finished.some((item) => item.child.exitCode === 0))
|
|
67
|
+
spawnDelay = Math.min(spawnDelay * 2, timing.maxSpawnDelay);
|
|
68
|
+
finished.forEach((item) => contenders.delete(item));
|
|
69
|
+
return contenders.size === 0 ? failure : undefined;
|
|
70
|
+
},
|
|
71
|
+
shouldRecruit(registered) {
|
|
72
|
+
if (lastSpawn === 0 && registered)
|
|
73
|
+
lastSpawn = Date.now();
|
|
74
|
+
return failure === undefined && contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay;
|
|
75
|
+
},
|
|
76
|
+
add(contender) {
|
|
77
|
+
contenders.add(contender);
|
|
78
|
+
lastSpawn = Date.now();
|
|
79
|
+
},
|
|
80
|
+
releaseAll() {
|
|
81
|
+
contenders.forEach((contender) => contender.release());
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function contenderFailure(contender) {
|
|
41
86
|
const error = contender.error();
|
|
42
87
|
if (error !== undefined)
|
|
43
88
|
return error;
|
|
@@ -55,4 +100,4 @@ function startupError(message, stderr) {
|
|
|
55
100
|
${stderr}` : message);
|
|
56
101
|
}
|
|
57
102
|
|
|
58
|
-
export { spawnServiceContender2,
|
|
103
|
+
export { spawnServiceContender2, contenderPool2, contenderFinished2 };
|
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
readError2,
|
|
4
4
|
event2,
|
|
5
5
|
eventType2
|
|
6
|
-
} from "./
|
|
6
|
+
} from "./pty-handoff-t1xa31vm.js";
|
|
7
7
|
import {
|
|
8
8
|
__export
|
|
9
|
-
} from "./
|
|
9
|
+
} from "./pty-handoff-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: () =>
|
|
16
|
+
make: () => make6
|
|
17
17
|
});
|
|
18
18
|
import { Effect, Stream } from "effect";
|
|
19
|
-
function
|
|
19
|
+
function make6(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 {
|
|
62
|
+
export { make6, aborted2, exports_rpc };
|
package/dist/contract.js
CHANGED
package/dist/effect/client.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "../chunks/
|
|
5
|
-
import"../chunks/
|
|
6
|
-
import"../chunks/
|
|
7
|
-
import"../chunks/
|
|
8
|
-
import"../chunks/
|
|
9
|
-
import"../chunks/
|
|
10
|
-
import"../chunks/
|
|
11
|
-
import"../chunks/
|
|
2
|
+
make4,
|
|
3
|
+
exports_client3
|
|
4
|
+
} from "../chunks/pty-handoff-myyn5x39.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-frbwqjmf.js";
|
|
11
|
+
import"../chunks/pty-handoff-t1xa31vm.js";
|
|
12
12
|
export {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
exports_client3 as OpenCode,
|
|
14
|
+
make4 as make
|
|
15
15
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../../chunks/
|
|
4
|
-
import"../../chunks/
|
|
5
|
-
import"../../chunks/
|
|
2
|
+
make5
|
|
3
|
+
} from "../../chunks/pty-handoff-5yf5aaev.js";
|
|
4
|
+
import"../../chunks/pty-handoff-7f0py9js.js";
|
|
5
|
+
import"../../chunks/pty-handoff-vmytr4q8.js";
|
|
6
6
|
export {
|
|
7
|
-
|
|
7
|
+
make5 as make
|
|
8
8
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import"../../chunks/
|
|
1
|
+
import"../../chunks/pty-handoff-6mptkzbc.js";
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
} from "../../chunks/
|
|
3
|
+
exports_client4
|
|
4
|
+
} from "../../chunks/pty-handoff-5yf5aaev.js";
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
} from "../../chunks/
|
|
8
|
-
import"../../chunks/
|
|
6
|
+
ClientError3
|
|
7
|
+
} from "../../chunks/pty-handoff-7f0py9js.js";
|
|
8
|
+
import"../../chunks/pty-handoff-vmytr4q8.js";
|
|
9
9
|
export {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
ClientError3 as ClientError,
|
|
11
|
+
exports_client4 as OpenCode
|
|
12
12
|
};
|
package/dist/effect/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunks/
|
|
4
|
-
import"../chunks/
|
|
5
|
-
import"../chunks/
|
|
6
|
-
import"../chunks/
|
|
7
|
-
import"../chunks/
|
|
8
|
-
import"../chunks/
|
|
9
|
-
import"../chunks/
|
|
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";
|
|
10
10
|
import {
|
|
11
|
-
|
|
12
|
-
} from "../chunks/
|
|
11
|
+
exports_client3
|
|
12
|
+
} from "../chunks/pty-handoff-myyn5x39.js";
|
|
13
13
|
|
|
14
14
|
// src/effect/index.ts
|
|
15
15
|
import { Agent } from "@opencode/schema/agent";
|
|
@@ -43,7 +43,7 @@ import { PromptInput } from "@opencode/schema/prompt-input";
|
|
|
43
43
|
export {
|
|
44
44
|
AbsolutePath,
|
|
45
45
|
Agent,
|
|
46
|
-
|
|
46
|
+
ClientError3 as ClientError,
|
|
47
47
|
Command,
|
|
48
48
|
Config,
|
|
49
49
|
Credential,
|
|
@@ -54,7 +54,7 @@ export {
|
|
|
54
54
|
Integration,
|
|
55
55
|
Location,
|
|
56
56
|
Model,
|
|
57
|
-
|
|
57
|
+
exports_client3 as OpenCode,
|
|
58
58
|
Permission,
|
|
59
59
|
PermissionSaved,
|
|
60
60
|
Project,
|