@opencode/client 2.0.8 → 2.0.10
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-contender-1tbj6z39.js +81 -0
- package/dist/chunks/service-contender-4tveyqeh.js +34 -0
- package/dist/chunks/service-contender-6mptkzbc.js +0 -0
- package/dist/chunks/service-contender-7p1wryha.js +30 -0
- package/dist/chunks/service-contender-9rqn6x4v.js +16 -0
- package/dist/chunks/service-contender-atpwm825.js +1638 -0
- package/dist/chunks/service-contender-baxqtw51.js +52 -0
- package/dist/chunks/service-contender-frbwqjmf.js +145 -0
- package/dist/chunks/service-contender-hv5bnxzg.js +594 -0
- package/dist/chunks/service-contender-m2eywc8w.js +0 -0
- package/dist/chunks/service-contender-n3c99vt5.js +11 -0
- package/dist/chunks/service-contender-pgjv2t62.js +112 -0
- package/dist/chunks/service-contender-qav6mfdz.js +0 -0
- package/dist/chunks/service-contender-radw39tv.js +1402 -0
- package/dist/chunks/service-contender-sxt88q69.js +12 -0
- package/dist/chunks/service-contender-t1xa31vm.js +39 -0
- package/dist/chunks/service-contender-txckps9j.js +57 -0
- package/dist/chunks/service-contender-vmytr4q8.js +4 -0
- package/dist/chunks/service-contender-vyas3vgt.js +0 -0
- package/dist/chunks/service-contender-xgnj2w4v.js +20 -0
- package/dist/chunks/service-contender-y2etg5bs.js +9 -0
- package/dist/chunks/service-contender-ydhz1zrh.js +238 -0
- package/dist/chunks/service-contender-yepdgb80.js +44 -0
- package/dist/chunks/service-contender-z6qdwcsf.js +62 -0
- package/dist/contract.js +12 -1
- package/dist/effect/client.d.ts +4 -4
- package/dist/effect/client.js +15 -29
- package/dist/effect/generated/client-error.js +6 -5
- package/dist/effect/generated/client.d.ts +4 -4
- package/dist/effect/generated/client.js +8 -582
- package/dist/effect/generated/index.js +12 -2
- package/dist/effect/index.js +75 -30
- package/dist/effect/rpc.js +11 -49
- package/dist/effect/service.js +238 -245
- package/dist/promise/client.js +14 -13
- package/dist/promise/generated/client-error.js +6 -8
- package/dist/promise/generated/client.js +7 -1396
- package/dist/promise/generated/index.js +75 -3
- package/dist/promise/generated/types.d.ts +90 -88
- package/dist/promise/generated/types.js +66 -34
- package/dist/promise/index.js +79 -2
- package/dist/promise/rpc.js +7 -86
- package/dist/promise/service.js +230 -227
- package/dist/pty-handoff.js +14 -121
- package/dist/rpc-runtime.js +14 -32
- package/dist/service-contender.js +10 -56
- package/dist/service-timing.d.ts +0 -1
- package/dist/service-timing.js +9 -18
- package/dist/service-version.js +6 -9
- package/dist/service.js +1 -0
- package/dist/shared-events.js +8 -137
- package/dist/solid/connection.js +10 -246
- package/dist/solid/data.js +18 -1774
- package/dist/solid/index.js +32 -3
- package/dist/solid/pty.js +8 -41
- package/package.json +4 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {
|
|
2
|
+
make7
|
|
3
|
+
} from "./service-contender-frbwqjmf.js";
|
|
4
|
+
import {
|
|
5
|
+
ClientError2
|
|
6
|
+
} from "./service-contender-y2etg5bs.js";
|
|
7
|
+
import {
|
|
8
|
+
make3
|
|
9
|
+
} from "./service-contender-hv5bnxzg.js";
|
|
10
|
+
import {
|
|
11
|
+
make4,
|
|
12
|
+
aborted2
|
|
13
|
+
} from "./service-contender-z6qdwcsf.js";
|
|
14
|
+
import {
|
|
15
|
+
__export
|
|
16
|
+
} from "./service-contender-9rqn6x4v.js";
|
|
17
|
+
|
|
18
|
+
// src/effect/client.ts
|
|
19
|
+
var exports_client = {};
|
|
20
|
+
__export(exports_client, {
|
|
21
|
+
OpenCode: () => exports_client,
|
|
22
|
+
make: () => make2
|
|
23
|
+
});
|
|
24
|
+
import { Cause, Context, Effect, Stream } from "effect";
|
|
25
|
+
import { HttpClient, HttpClientRequest } from "effect/unstable/http";
|
|
26
|
+
var CurrentHeaders = Context.Reference("@opencode/client/effect/rpc/headers", {
|
|
27
|
+
defaultValue: () => {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
var make2 = Effect.fn("OpenCode.make")(function* (options) {
|
|
32
|
+
const httpClient = yield* HttpClient.HttpClient;
|
|
33
|
+
const raw = yield* make3(options).pipe(Effect.provideService(HttpClient.HttpClient, HttpClient.mapRequestEffect(httpClient, (request) => Effect.map(CurrentHeaders, (headers) => headers ? HttpClientRequest.setHeaders(request, new Headers(headers)) : request))));
|
|
34
|
+
const context = yield* Effect.context();
|
|
35
|
+
const native = raw.event.subscribe();
|
|
36
|
+
|
|
37
|
+
class EventFailure {
|
|
38
|
+
cause;
|
|
39
|
+
constructor(cause) {
|
|
40
|
+
this.cause = cause;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
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 ClientError2({ cause: error })))));
|
|
45
|
+
return {
|
|
46
|
+
...raw,
|
|
47
|
+
event: { ...raw.event, subscribe },
|
|
48
|
+
rpc: Object.assign(make4((input, options) => raw.rpc.call(input).pipe(Effect.provideService(CurrentHeaders, options?.headers)), subscribe), raw.rpc)
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
export { make2, exports_client };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./service-contender-9rqn6x4v.js";
|
|
4
|
+
|
|
5
|
+
// src/shared-events.ts
|
|
6
|
+
var exports_shared_events = {};
|
|
7
|
+
__export(exports_shared_events, {
|
|
8
|
+
SharedEvents: () => exports_shared_events,
|
|
9
|
+
make: () => make7
|
|
10
|
+
});
|
|
11
|
+
function make7(connect) {
|
|
12
|
+
let current;
|
|
13
|
+
const capacity = 4096;
|
|
14
|
+
function stop(connection) {
|
|
15
|
+
connection.connected = undefined;
|
|
16
|
+
connection.controller.abort();
|
|
17
|
+
if (current === connection)
|
|
18
|
+
current = undefined;
|
|
19
|
+
}
|
|
20
|
+
async function run(connection) {
|
|
21
|
+
let iterator;
|
|
22
|
+
let completion = {};
|
|
23
|
+
try {
|
|
24
|
+
if (connection.controller.signal.aborted)
|
|
25
|
+
return;
|
|
26
|
+
iterator = connect(connection.controller.signal, () => {
|
|
27
|
+
connection.subscribers.forEach((subscriber) => subscriber.activity?.());
|
|
28
|
+
})[Symbol.asyncIterator]();
|
|
29
|
+
while (!connection.controller.signal.aborted) {
|
|
30
|
+
const item = await iterator.next();
|
|
31
|
+
if (item.done || connection.controller.signal.aborted)
|
|
32
|
+
break;
|
|
33
|
+
if (item.value.type === "server.connected")
|
|
34
|
+
connection.connected = item.value;
|
|
35
|
+
connection.subscribers.forEach((subscriber) => subscriber.push(item.value));
|
|
36
|
+
}
|
|
37
|
+
} catch (error) {
|
|
38
|
+
completion = { error };
|
|
39
|
+
} finally {
|
|
40
|
+
stop(connection);
|
|
41
|
+
try {
|
|
42
|
+
await iterator?.return?.();
|
|
43
|
+
} catch (error) {
|
|
44
|
+
if (!("error" in completion))
|
|
45
|
+
completion = { error };
|
|
46
|
+
}
|
|
47
|
+
connection.subscribers.forEach((subscriber) => subscriber.finish(completion));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
subscribe(options) {
|
|
52
|
+
return {
|
|
53
|
+
[Symbol.asyncIterator]() {
|
|
54
|
+
const pending = [];
|
|
55
|
+
const queued = [];
|
|
56
|
+
let started = false;
|
|
57
|
+
let completion;
|
|
58
|
+
let connection;
|
|
59
|
+
function finish(result, discard = true) {
|
|
60
|
+
completion = result;
|
|
61
|
+
if (discard)
|
|
62
|
+
queued.length = 0;
|
|
63
|
+
options?.signal?.removeEventListener("abort", abort);
|
|
64
|
+
if (connection?.subscribers.delete(subscriber) && !connection.subscribers.size)
|
|
65
|
+
stop(connection);
|
|
66
|
+
pending.splice(0).forEach((request) => {
|
|
67
|
+
if ("error" in result)
|
|
68
|
+
request.reject(result.error);
|
|
69
|
+
else
|
|
70
|
+
request.resolve({ done: true, value: undefined });
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function abort() {
|
|
74
|
+
finish({});
|
|
75
|
+
}
|
|
76
|
+
const subscriber = {
|
|
77
|
+
activity: options?.onActivity,
|
|
78
|
+
finish(result) {
|
|
79
|
+
finish(result, false);
|
|
80
|
+
},
|
|
81
|
+
push(value) {
|
|
82
|
+
if (completion)
|
|
83
|
+
return;
|
|
84
|
+
const request = pending.shift();
|
|
85
|
+
if (request) {
|
|
86
|
+
request.resolve({ done: false, value });
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (queued.length === capacity) {
|
|
90
|
+
finish({ error: new Error(`Event subscriber exceeded its ${capacity}-event capacity`) });
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
queued.push(value);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
function start() {
|
|
97
|
+
if (completion)
|
|
98
|
+
return;
|
|
99
|
+
const fresh = !current;
|
|
100
|
+
connection = current ?? {
|
|
101
|
+
controller: new AbortController,
|
|
102
|
+
subscribers: new Set
|
|
103
|
+
};
|
|
104
|
+
current = connection;
|
|
105
|
+
connection.subscribers.add(subscriber);
|
|
106
|
+
if (connection.connected)
|
|
107
|
+
subscriber.push(connection.connected);
|
|
108
|
+
if (fresh)
|
|
109
|
+
run(connection);
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
next() {
|
|
113
|
+
const value = queued.shift();
|
|
114
|
+
if (value)
|
|
115
|
+
return Promise.resolve({ done: false, value });
|
|
116
|
+
if (completion) {
|
|
117
|
+
if ("error" in completion)
|
|
118
|
+
return Promise.reject(completion.error);
|
|
119
|
+
return Promise.resolve({ done: true, value: undefined });
|
|
120
|
+
}
|
|
121
|
+
if (options?.signal?.aborted) {
|
|
122
|
+
abort();
|
|
123
|
+
return Promise.resolve({ done: true, value: undefined });
|
|
124
|
+
}
|
|
125
|
+
const request = Promise.withResolvers();
|
|
126
|
+
pending.push(request);
|
|
127
|
+
if (!started) {
|
|
128
|
+
started = true;
|
|
129
|
+
options?.signal?.addEventListener("abort", abort, { once: true });
|
|
130
|
+
start();
|
|
131
|
+
}
|
|
132
|
+
return request.promise;
|
|
133
|
+
},
|
|
134
|
+
return() {
|
|
135
|
+
finish({});
|
|
136
|
+
return Promise.resolve({ done: true, value: undefined });
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export { make7, exports_shared_events };
|