@opencode/client 2.0.28 → 2.0.29

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 (60) hide show
  1. package/dist/chunks/{service-probe-7x67cf1q.js → contract-1akb9sg5.js} +17 -17
  2. package/dist/chunks/{service-probe-1y4a697q.js → contract-1y4a697q.js} +1 -1
  3. package/dist/chunks/contract-7393xcww.js +30 -0
  4. package/dist/chunks/{service-probe-y2etg5bs.js → contract-7f0py9js.js} +2 -2
  5. package/dist/chunks/contract-8s2anffy.js +11 -0
  6. package/dist/chunks/{service-probe-2ny4vxct.js → contract-8ye1ye6f.js} +2 -2
  7. package/dist/chunks/{service-probe-frbwqjmf.js → contract-frbwqjmf.js} +1 -1
  8. package/dist/chunks/{service-probe-nwcpakzx.js → contract-js54wxgp.js} +2 -2
  9. package/dist/chunks/{service-probe-9vdz0zwn.js → contract-m77rqa4a.js} +48 -8
  10. package/dist/chunks/{service-probe-z6qdwcsf.js → contract-mnyft54j.js} +5 -5
  11. package/dist/chunks/{service-probe-ecs5ftka.js → contract-qfk0hgz0.js} +19 -19
  12. package/dist/chunks/{service-probe-t1xa31vm.js → contract-t1xa31vm.js} +1 -1
  13. package/dist/chunks/{service-probe-gx9wnkzr.js → contract-tpb4j56n.js} +1 -1
  14. package/dist/chunks/{service-probe-q4g3afnw.js → contract-x13xxskh.js} +10 -10
  15. package/dist/contract.js +1 -1
  16. package/dist/effect/client.js +12 -12
  17. package/dist/effect/generated/client-error.js +3 -3
  18. package/dist/effect/generated/client.js +5 -5
  19. package/dist/effect/generated/index.js +8 -8
  20. package/dist/effect/index.js +12 -12
  21. package/dist/effect/rpc.js +4 -4
  22. package/dist/effect/service.js +6 -6
  23. package/dist/promise/client.js +11 -11
  24. package/dist/promise/generated/client-error.js +3 -3
  25. package/dist/promise/generated/client.js +4 -4
  26. package/dist/promise/generated/index.js +8 -8
  27. package/dist/promise/generated/types.d.ts +5 -0
  28. package/dist/promise/generated/types.js +1 -1
  29. package/dist/promise/index.js +12 -12
  30. package/dist/promise/rpc.js +2 -2
  31. package/dist/promise/service.js +6 -6
  32. package/dist/pty-handoff.js +1 -1
  33. package/dist/rpc-runtime.js +1 -1
  34. package/dist/service-contender.js +1 -1
  35. package/dist/service-probe.js +3 -3
  36. package/dist/service-timing.js +1 -1
  37. package/dist/service-version.js +1 -1
  38. package/dist/service.js +1 -1
  39. package/dist/shared-events.js +1 -1
  40. package/dist/solid/connection.js +1 -1
  41. package/dist/solid/data.js +9 -9
  42. package/dist/solid/index.d.ts +1 -0
  43. package/dist/solid/index.js +15 -11
  44. package/dist/solid/pty.js +1 -1
  45. package/dist/solid/usage.d.ts +9 -0
  46. package/dist/solid/usage.js +6 -0
  47. package/package.json +4 -4
  48. package/dist/chunks/service-probe-wjyeq25y.js +0 -30
  49. /package/dist/chunks/{service-probe-6mptkzbc.js → contract-6mptkzbc.js} +0 -0
  50. /package/dist/chunks/{service-probe-9rqn6x4v.js → contract-9rqn6x4v.js} +0 -0
  51. /package/dist/chunks/{service-probe-gne7h7mq.js → contract-gne7h7mq.js} +0 -0
  52. /package/dist/chunks/{service-probe-m2eywc8w.js → contract-m2eywc8w.js} +0 -0
  53. /package/dist/chunks/{service-probe-qav6mfdz.js → contract-qav6mfdz.js} +0 -0
  54. /package/dist/chunks/{service-probe-sxt88q69.js → contract-sxt88q69.js} +0 -0
  55. /package/dist/chunks/{service-probe-ve4aws36.js → contract-ve4aws36.js} +0 -0
  56. /package/dist/chunks/{service-probe-vmytr4q8.js → contract-vmytr4q8.js} +0 -0
  57. /package/dist/chunks/{service-probe-vt9jbch8.js → contract-vt9jbch8.js} +0 -0
  58. /package/dist/chunks/{service-probe-vyas3vgt.js → contract-vyas3vgt.js} +0 -0
  59. /package/dist/chunks/{service-probe-xgnj2w4v.js → contract-xgnj2w4v.js} +0 -0
  60. /package/dist/chunks/{service-probe-ydhz1zrh.js → contract-ydhz1zrh.js} +0 -0
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  make7
3
- } from "./service-probe-frbwqjmf.js";
3
+ } from "./contract-frbwqjmf.js";
4
4
  import {
5
- ClientError2
6
- } from "./service-probe-y2etg5bs.js";
5
+ ClientError3
6
+ } from "./contract-7f0py9js.js";
7
7
  import {
8
- make3
9
- } from "./service-probe-q4g3afnw.js";
8
+ make6
9
+ } from "./contract-x13xxskh.js";
10
10
  import {
11
- make4,
11
+ make5,
12
12
  aborted2
13
- } from "./service-probe-z6qdwcsf.js";
13
+ } from "./contract-mnyft54j.js";
14
14
  import {
15
15
  __export
16
- } from "./service-probe-9rqn6x4v.js";
16
+ } from "./contract-9rqn6x4v.js";
17
17
 
18
18
  // src/effect/client.ts
19
- var exports_client = {};
20
- __export(exports_client, {
21
- OpenCode: () => exports_client,
22
- make: () => make2
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/http";
@@ -28,9 +28,9 @@ var CurrentHeaders = Context.Reference("@opencode/client/effect/rpc/headers", {
28
28
  return;
29
29
  }
30
30
  });
31
- var make2 = Effect.fn("OpenCode.make")(function* (options) {
31
+ var make4 = Effect.fn("OpenCode.make")(function* (options) {
32
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))));
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
 
@@ -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 ClientError2({ cause: error })))));
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(make4((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
 
52
- export { make2, exports_client };
52
+ export { make4, exports_client3 };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isRpcError2,
3
3
  isRpcInternalError2
4
- } from "./service-probe-vt9jbch8.js";
4
+ } from "./contract-vt9jbch8.js";
5
5
 
6
6
  // src/promise/rpc.ts
7
7
  function makeRpc2(raw, events) {
@@ -0,0 +1,30 @@
1
+ import {
2
+ make7
3
+ } from "./contract-frbwqjmf.js";
4
+ import {
5
+ make3
6
+ } from "./contract-qfk0hgz0.js";
7
+ import {
8
+ makeRpc2
9
+ } from "./contract-1y4a697q.js";
10
+ import {
11
+ __export
12
+ } from "./contract-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,9 +1,9 @@
1
1
  // src/effect/generated/client-error.ts
2
2
  import { Schema } from "effect";
3
3
 
4
- class ClientError2 extends Schema.TaggedError()("ClientError", {
4
+ class ClientError3 extends Schema.TaggedError()("ClientError", {
5
5
  cause: Schema.Defect()
6
6
  }) {
7
7
  }
8
8
 
9
- export { ClientError2 };
9
+ export { ClientError3 };
@@ -0,0 +1,11 @@
1
+ // src/solid/usage.ts
2
+ function lastAssistantWithUsage2(messages, boundary) {
3
+ const boundaryIndex = boundary ? messages.findIndex((message) => message.id === boundary) : -1;
4
+ if (boundary && boundaryIndex === -1)
5
+ return;
6
+ const end = boundaryIndex === -1 ? messages.length : boundaryIndex;
7
+ const compactionIndex = messages.findLastIndex((message, index) => message.type === "compaction" && message.status === "completed" && index < end);
8
+ return messages.findLast((message, index) => message.type === "assistant" && message.tokens !== undefined && index > compactionIndex && index < end);
9
+ }
10
+
11
+ export { lastAssistantWithUsage2 };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  defaultEnsureTiming2
3
- } from "./service-probe-xgnj2w4v.js";
3
+ } from "./contract-xgnj2w4v.js";
4
4
  import {
5
5
  matchesVersion2
6
- } from "./service-probe-sxt88q69.js";
6
+ } from "./contract-sxt88q69.js";
7
7
 
8
8
  // src/service-probe.ts
9
9
  import { homedir } from "node:os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./service-probe-9rqn6x4v.js";
3
+ } from "./contract-9rqn6x4v.js";
4
4
 
5
5
  // src/shared-events.ts
6
6
  var exports_shared_events = {};
@@ -1,5 +1,5 @@
1
1
  // src/promise/generated/client-error.ts
2
- class ClientError3 extends Error {
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 { ClientError3 };
12
+ export { ClientError2 };
@@ -2,7 +2,7 @@ import {
2
2
  isFormNotFoundError2,
3
3
  isFormAlreadySettledError2,
4
4
  isPermissionNotFoundError2
5
- } from "./service-probe-vt9jbch8.js";
5
+ } from "./contract-vt9jbch8.js";
6
6
 
7
7
  // src/solid/data.ts
8
8
  import { Worktree } from "@opencode/schema/worktree";
@@ -19,6 +19,32 @@ function locationKey2(location) {
19
19
  function locationQuery(ref) {
20
20
  return { directory: ref.directory };
21
21
  }
22
+ function optimisticFiles(files) {
23
+ const items = files?.flatMap((file) => {
24
+ if (!file.uri.startsWith("data:"))
25
+ return [];
26
+ const comma = file.uri.indexOf(",");
27
+ if (comma < 0)
28
+ return [];
29
+ const header = file.uri.slice(5, comma);
30
+ const parts = header.split(";");
31
+ if (!parts.slice(1).some((part) => part.toLowerCase() === "base64"))
32
+ return [];
33
+ const item = {
34
+ data: file.uri.slice(comma + 1),
35
+ mime: parts[0] || "application/octet-stream",
36
+ source: { type: "inline" }
37
+ };
38
+ if (file.name !== undefined)
39
+ item.name = file.name;
40
+ if (file.description !== undefined)
41
+ item.description = file.description;
42
+ if (file.mention !== undefined)
43
+ item.mention = { ...file.mention };
44
+ return [item];
45
+ });
46
+ return items?.length ? items : undefined;
47
+ }
22
48
  function formRequestOptions(sessionID, ref) {
23
49
  if (sessionID !== "global" || !ref)
24
50
  return;
@@ -89,6 +115,7 @@ function createSync() {
89
115
  }
90
116
  };
91
117
  }
118
+ var CHILD_PAGE = 200;
92
119
  function createData2(config) {
93
120
  const api = config.api;
94
121
  let disposed = false;
@@ -324,6 +351,12 @@ function createData2(config) {
324
351
  messageIndex.set(sessionID, created);
325
352
  return created;
326
353
  }
354
+ async function listChildren(input) {
355
+ const page = await api().session.list(input);
356
+ if (page.data.length < CHILD_PAGE || !page.cursor.next)
357
+ return page.data;
358
+ return [...page.data, ...await listChildren({ cursor: page.cursor.next, limit: CHILD_PAGE })];
359
+ }
327
360
  function resolveRoot(sessionID) {
328
361
  let current = sessionID;
329
362
  let parentID = store.session.info[sessionID]?.parentID;
@@ -467,7 +500,8 @@ function createData2(config) {
467
500
  });
468
501
  return;
469
502
  }
470
- case "session.model.selected":
503
+ case "session.model.selected": {
504
+ const previous = event.data.previous ?? store.session.info[event.data.sessionID]?.model;
471
505
  if (store.session.info[event.data.sessionID])
472
506
  setStore("session", "info", event.data.sessionID, "model", event.data.model);
473
507
  if (!store.session.message[event.data.sessionID])
@@ -476,6 +510,7 @@ function createData2(config) {
476
510
  id: messageIDFromEvent(event.id),
477
511
  type: "model-switched",
478
512
  model: event.data.model,
513
+ previous,
479
514
  time: { created: event.created }
480
515
  });
481
516
  refresh(() => api().session.message.get({ sessionID: event.data.sessionID, messageID: messageIDFromEvent(event.id) }).then((item) => {
@@ -487,6 +522,7 @@ function createData2(config) {
487
522
  });
488
523
  }));
489
524
  return;
525
+ }
490
526
  case "session.renamed": {
491
527
  refresh(() => {
492
528
  const family = sync.pending(`session.family:${event.data.sessionID}`) ? result.session.sync(event.data.sessionID, { children: true }) : Promise.resolve();
@@ -1310,6 +1346,14 @@ function createData2(config) {
1310
1346
  const id = request.id ?? SessionMessage.ID.create();
1311
1347
  const fresh = !messageIndex.get(request.sessionID)?.has(id) && !store.session.pending[request.sessionID]?.some((item) => item.id === id);
1312
1348
  if (fresh) {
1349
+ const files = optimisticFiles(request.files);
1350
+ const payload = {
1351
+ text: request.text,
1352
+ agents: request.agents?.map((agent) => ({ ...agent })),
1353
+ metadata: request.metadata
1354
+ };
1355
+ if (files)
1356
+ payload.files = files;
1313
1357
  outbox.add(id);
1314
1358
  admitLocal({
1315
1359
  id,
@@ -1317,11 +1361,7 @@ function createData2(config) {
1317
1361
  time: { created: Date.now() },
1318
1362
  type: "user",
1319
1363
  delivery: request.delivery ?? "steer",
1320
- payload: {
1321
- text: request.text,
1322
- agents: request.agents?.map((agent) => ({ ...agent })),
1323
- metadata: request.metadata
1324
- }
1364
+ payload
1325
1365
  });
1326
1366
  }
1327
1367
  return sendAdmission(request.sessionID, async () => {
@@ -1337,7 +1377,7 @@ function createData2(config) {
1337
1377
  return sync.run(options?.children ? `session.family:${sessionID}` : `session:${sessionID}`, async () => {
1338
1378
  const [info, children] = await Promise.all([
1339
1379
  api().session.get({ sessionID }),
1340
- options?.children ? api().session.list({ parentID: sessionID, order: "desc" }).then((response) => response.data) : []
1380
+ options?.children ? listChildren({ parentID: sessionID, order: "desc", limit: CHILD_PAGE }) : []
1341
1381
  ]);
1342
1382
  const sessions = [info, ...children];
1343
1383
  batch(() => {
@@ -3,20 +3,20 @@ import {
3
3
  readError2,
4
4
  event2,
5
5
  eventType2
6
- } from "./service-probe-t1xa31vm.js";
6
+ } from "./contract-t1xa31vm.js";
7
7
  import {
8
8
  __export
9
- } from "./service-probe-9rqn6x4v.js";
9
+ } from "./contract-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: () => make4
16
+ make: () => make5
17
17
  });
18
18
  import { Effect, Stream } from "effect";
19
- function make4(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 { make4, aborted2, exports_rpc };
62
+ export { make5, aborted2, exports_rpc };
@@ -1,17 +1,17 @@
1
1
  import {
2
- ClientError3
3
- } from "./service-probe-nwcpakzx.js";
2
+ ClientError2
3
+ } from "./contract-js54wxgp.js";
4
4
  import {
5
5
  __export
6
- } from "./service-probe-9rqn6x4v.js";
6
+ } from "./contract-9rqn6x4v.js";
7
7
 
8
8
  // src/promise/generated/client.ts
9
- var exports_client4 = {};
10
- __export(exports_client4, {
11
- make: () => make6
9
+ var exports_client2 = {};
10
+ __export(exports_client2, {
11
+ make: () => make3
12
12
  });
13
13
  var maxSseEventBytes = 16 * 1024 * 1024;
14
- function make6(options) {
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 ClientError3("Transport", { cause });
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 ClientError3("UnexpectedStatus", { cause: { status: response.status }, detail: String(response.status) });
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 ClientError3("UnsupportedContentType", { detail: response.headers.get("content-type") });
81
+ throw new ClientError2("UnsupportedContentType", { detail: response.headers.get("content-type") });
82
82
  }
83
83
  if (response.body === null)
84
- throw new ClientError3("MalformedResponse");
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 ClientError3("Transport", { cause });
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 ClientError3("SseEventTooLarge");
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 ClientError3("MalformedResponse", { cause });
127
+ throw new ClientError2("MalformedResponse", { cause });
128
128
  }
129
129
  }
130
130
  boundary = buffer.indexOf(`
@@ -1437,20 +1437,20 @@ async function json(response) {
1437
1437
  try {
1438
1438
  await response.body?.cancel();
1439
1439
  } catch {}
1440
- throw new ClientError3("UnsupportedContentType", { detail: response.headers.get("content-type") });
1440
+ throw new ClientError2("UnsupportedContentType", { detail: response.headers.get("content-type") });
1441
1441
  }
1442
1442
  let text;
1443
1443
  try {
1444
1444
  text = await response.text();
1445
1445
  } catch (cause) {
1446
- throw new ClientError3("Transport", { cause });
1446
+ throw new ClientError2("Transport", { cause });
1447
1447
  }
1448
1448
  if (text === "")
1449
- throw new ClientError3("MalformedResponse");
1449
+ throw new ClientError2("MalformedResponse");
1450
1450
  try {
1451
1451
  return JSON.parse(text);
1452
1452
  } catch (cause) {
1453
- throw new ClientError3("MalformedResponse", { cause });
1453
+ throw new ClientError2("MalformedResponse", { cause });
1454
1454
  }
1455
1455
  }
1456
1456
  function declared(body) {
@@ -1463,4 +1463,4 @@ function isContentType(response, expected) {
1463
1463
  return response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase() === expected;
1464
1464
  }
1465
1465
 
1466
- export { make6, exports_client4 };
1466
+ export { make3, exports_client2 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./service-probe-9rqn6x4v.js";
3
+ } from "./contract-9rqn6x4v.js";
4
4
 
5
5
  // src/rpc-runtime.ts
6
6
  var exports_rpc_runtime = {};
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __export
3
- } from "./service-probe-9rqn6x4v.js";
3
+ } from "./contract-9rqn6x4v.js";
4
4
 
5
5
  // src/pty-handoff.ts
6
6
  var exports_pty_handoff = {};
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  ClientApi2
3
- } from "./service-probe-vmytr4q8.js";
3
+ } from "./contract-vmytr4q8.js";
4
4
  import {
5
- ClientError2
6
- } from "./service-probe-y2etg5bs.js";
5
+ ClientError3
6
+ } from "./contract-7f0py9js.js";
7
7
  import {
8
8
  __export
9
- } from "./service-probe-9rqn6x4v.js";
9
+ } from "./contract-9rqn6x4v.js";
10
10
 
11
11
  // src/effect/generated/client.ts
12
- var exports_client2 = {};
13
- __export(exports_client2, {
14
- make: () => make3
12
+ var exports_client4 = {};
13
+ __export(exports_client4, {
14
+ make: () => make6
15
15
  });
16
16
  import { Effect, Stream, Schema } from "effect";
17
17
  import { Sse } from "effect/encoding";
18
18
  import { HttpClientError } from "effect/http";
19
19
  import { HttpApiClient } from "effect/http-api";
20
- var mapClientError = (error) => HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) ? new ClientError2({ cause: error }) : error;
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)));
@@ -618,6 +618,6 @@ var adaptClient = (raw) => ({
618
618
  websearch: adaptGroupWebsearch(raw["server.websearch"]),
619
619
  config: adaptGroupConfig(raw["server.config"])
620
620
  });
621
- var make3 = (options) => HttpApiClient.make(ClientApi2, options).pipe(Effect.map(adaptClient));
621
+ var make6 = (options) => HttpApiClient.make(ClientApi2, options).pipe(Effect.map(adaptClient));
622
622
 
623
- export { make3, exports_client2 };
623
+ export { make6, exports_client4 };
package/dist/contract.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  effectOmitEndpoints2,
4
4
  groupNames2,
5
5
  promiseOmitEndpoints2
6
- } from "./chunks/service-probe-vmytr4q8.js";
6
+ } from "./chunks/contract-vmytr4q8.js";
7
7
  export {
8
8
  ClientApi2 as ClientApi,
9
9
  effectOmitEndpoints2 as effectOmitEndpoints,
@@ -1,15 +1,15 @@
1
1
  import {
2
- make2,
3
- exports_client
4
- } from "../chunks/service-probe-7x67cf1q.js";
5
- import"../chunks/service-probe-6mptkzbc.js";
6
- import"../chunks/service-probe-q4g3afnw.js";
7
- import"../chunks/service-probe-y2etg5bs.js";
8
- import"../chunks/service-probe-z6qdwcsf.js";
9
- import"../chunks/service-probe-t1xa31vm.js";
10
- import"../chunks/service-probe-vmytr4q8.js";
11
- import"../chunks/service-probe-frbwqjmf.js";
2
+ make4,
3
+ exports_client3
4
+ } from "../chunks/contract-1akb9sg5.js";
5
+ import"../chunks/contract-mnyft54j.js";
6
+ import"../chunks/contract-6mptkzbc.js";
7
+ import"../chunks/contract-x13xxskh.js";
8
+ import"../chunks/contract-7f0py9js.js";
9
+ import"../chunks/contract-vmytr4q8.js";
10
+ import"../chunks/contract-t1xa31vm.js";
11
+ import"../chunks/contract-frbwqjmf.js";
12
12
  export {
13
- exports_client as OpenCode,
14
- make2 as make
13
+ exports_client3 as OpenCode,
14
+ make4 as make
15
15
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
- ClientError2
3
- } from "../../chunks/service-probe-y2etg5bs.js";
2
+ ClientError3
3
+ } from "../../chunks/contract-7f0py9js.js";
4
4
  export {
5
- ClientError2 as ClientError
5
+ ClientError3 as ClientError
6
6
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
- make3
3
- } from "../../chunks/service-probe-q4g3afnw.js";
4
- import"../../chunks/service-probe-y2etg5bs.js";
5
- import"../../chunks/service-probe-vmytr4q8.js";
2
+ make6
3
+ } from "../../chunks/contract-x13xxskh.js";
4
+ import"../../chunks/contract-7f0py9js.js";
5
+ import"../../chunks/contract-vmytr4q8.js";
6
6
  export {
7
- make3 as make
7
+ make6 as make
8
8
  };
@@ -1,12 +1,12 @@
1
- import"../../chunks/service-probe-6mptkzbc.js";
1
+ import"../../chunks/contract-6mptkzbc.js";
2
2
  import {
3
- exports_client2
4
- } from "../../chunks/service-probe-q4g3afnw.js";
3
+ exports_client4
4
+ } from "../../chunks/contract-x13xxskh.js";
5
5
  import {
6
- ClientError2
7
- } from "../../chunks/service-probe-y2etg5bs.js";
8
- import"../../chunks/service-probe-vmytr4q8.js";
6
+ ClientError3
7
+ } from "../../chunks/contract-7f0py9js.js";
8
+ import"../../chunks/contract-vmytr4q8.js";
9
9
  export {
10
- ClientError2 as ClientError,
11
- exports_client2 as OpenCode
10
+ ClientError3 as ClientError,
11
+ exports_client4 as OpenCode
12
12
  };
@@ -1,15 +1,15 @@
1
1
  import {
2
- ClientError2
3
- } from "../chunks/service-probe-y2etg5bs.js";
4
- import"../chunks/service-probe-vmytr4q8.js";
5
- import"../chunks/service-probe-q4g3afnw.js";
6
- import"../chunks/service-probe-6mptkzbc.js";
7
- import"../chunks/service-probe-frbwqjmf.js";
8
- import"../chunks/service-probe-t1xa31vm.js";
9
- import"../chunks/service-probe-z6qdwcsf.js";
2
+ ClientError3
3
+ } from "../chunks/contract-7f0py9js.js";
4
+ import"../chunks/contract-vmytr4q8.js";
5
+ import"../chunks/contract-x13xxskh.js";
6
+ import"../chunks/contract-6mptkzbc.js";
7
+ import"../chunks/contract-frbwqjmf.js";
8
+ import"../chunks/contract-t1xa31vm.js";
9
+ import"../chunks/contract-mnyft54j.js";
10
10
  import {
11
- exports_client
12
- } from "../chunks/service-probe-7x67cf1q.js";
11
+ exports_client3
12
+ } from "../chunks/contract-1akb9sg5.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
- ClientError2 as ClientError,
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
- exports_client as OpenCode,
57
+ exports_client3 as OpenCode,
58
58
  Permission,
59
59
  PermissionSaved,
60
60
  Project,
@@ -1,11 +1,11 @@
1
1
  import {
2
- make4,
2
+ make5,
3
3
  aborted2,
4
4
  exports_rpc
5
- } from "../chunks/service-probe-z6qdwcsf.js";
6
- import"../chunks/service-probe-t1xa31vm.js";
5
+ } from "../chunks/contract-mnyft54j.js";
6
+ import"../chunks/contract-t1xa31vm.js";
7
7
  export {
8
8
  exports_rpc as RpcClientRuntime,
9
9
  aborted2 as aborted,
10
- make4 as make
10
+ make5 as make
11
11
  };
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  spawnServiceContender2,
3
3
  contenderPool2
4
- } from "../chunks/service-probe-ve4aws36.js";
4
+ } from "../chunks/contract-ve4aws36.js";
5
5
  import {
6
6
  defaultEnsureTiming2,
7
7
  ensureTiming2
8
- } from "../chunks/service-probe-xgnj2w4v.js";
8
+ } from "../chunks/contract-xgnj2w4v.js";
9
9
  import {
10
10
  matchesVersion2
11
- } from "../chunks/service-probe-sxt88q69.js";
11
+ } from "../chunks/contract-sxt88q69.js";
12
12
  import {
13
13
  prepare2,
14
14
  environment2,
15
15
  complete2,
16
16
  clear2
17
- } from "../chunks/service-probe-gx9wnkzr.js";
17
+ } from "../chunks/contract-tpb4j56n.js";
18
18
  import {
19
19
  decide2,
20
20
  fallback2,
21
21
  same2,
22
22
  probeResult2,
23
23
  headers2
24
- } from "../chunks/service-probe-2ny4vxct.js";
25
- import"../chunks/service-probe-qav6mfdz.js";
24
+ } from "../chunks/contract-8ye1ye6f.js";
25
+ import"../chunks/contract-qav6mfdz.js";
26
26
 
27
27
  // src/effect/service.ts
28
28
  import { Effect, FileSystem, Option, Schedule, Schema } from "effect";
@@ -1,14 +1,14 @@
1
1
  import {
2
- make5,
3
- exports_client3
4
- } from "../chunks/service-probe-wjyeq25y.js";
5
- import"../chunks/service-probe-vyas3vgt.js";
6
- import"../chunks/service-probe-ecs5ftka.js";
7
- import"../chunks/service-probe-1y4a697q.js";
8
- import"../chunks/service-probe-nwcpakzx.js";
9
- import"../chunks/service-probe-vt9jbch8.js";
10
- import"../chunks/service-probe-frbwqjmf.js";
2
+ make2,
3
+ exports_client
4
+ } from "../chunks/contract-7393xcww.js";
5
+ import"../chunks/contract-1y4a697q.js";
6
+ import"../chunks/contract-vyas3vgt.js";
7
+ import"../chunks/contract-qfk0hgz0.js";
8
+ import"../chunks/contract-js54wxgp.js";
9
+ import"../chunks/contract-vt9jbch8.js";
10
+ import"../chunks/contract-frbwqjmf.js";
11
11
  export {
12
- exports_client3 as OpenCode,
13
- make5 as make
12
+ exports_client as OpenCode,
13
+ make2 as make
14
14
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
- ClientError3
3
- } from "../../chunks/service-probe-nwcpakzx.js";
2
+ ClientError2
3
+ } from "../../chunks/contract-js54wxgp.js";
4
4
  export {
5
- ClientError3 as ClientError
5
+ ClientError2 as ClientError
6
6
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
- make6
3
- } from "../../chunks/service-probe-ecs5ftka.js";
4
- import"../../chunks/service-probe-nwcpakzx.js";
2
+ make3
3
+ } from "../../chunks/contract-qfk0hgz0.js";
4
+ import"../../chunks/contract-js54wxgp.js";
5
5
  export {
6
- make6 as make
6
+ make3 as make
7
7
  };
@@ -1,10 +1,10 @@
1
- import"../../chunks/service-probe-vyas3vgt.js";
1
+ import"../../chunks/contract-vyas3vgt.js";
2
2
  import {
3
- exports_client4
4
- } from "../../chunks/service-probe-ecs5ftka.js";
3
+ exports_client2
4
+ } from "../../chunks/contract-qfk0hgz0.js";
5
5
  import {
6
- ClientError3
7
- } from "../../chunks/service-probe-nwcpakzx.js";
6
+ ClientError2
7
+ } from "../../chunks/contract-js54wxgp.js";
8
8
  import {
9
9
  isInvalidRequestError2,
10
10
  isUnauthorizedError2,
@@ -39,10 +39,10 @@ import {
39
39
  isShellNotFoundError2,
40
40
  isWorktreeError2,
41
41
  isVcsInitNotSupportedError2
42
- } from "../../chunks/service-probe-vt9jbch8.js";
42
+ } from "../../chunks/contract-vt9jbch8.js";
43
43
  export {
44
- ClientError3 as ClientError,
45
- exports_client4 as OpenCode,
44
+ ClientError2 as ClientError,
45
+ exports_client2 as OpenCode,
46
46
  isAgentNotFoundError2 as isAgentNotFoundError,
47
47
  isCommandExecutionError2 as isCommandExecutionError,
48
48
  isCommandNotFoundError2 as isCommandNotFoundError,
@@ -2952,6 +2952,11 @@ export type ConfigEntry = {
2952
2952
  };
2953
2953
  username?: string;
2954
2954
  permissions?: PermissionRuleset;
2955
+ policies?: Array<{
2956
+ action: "provider.use" | "tool.use" | "integration.use";
2957
+ resource: string;
2958
+ effect: "allow" | "deny";
2959
+ }>;
2955
2960
  agents?: {
2956
2961
  [x: string]: {
2957
2962
  model?: string | {
@@ -32,7 +32,7 @@ import {
32
32
  isShellNotFoundError2,
33
33
  isWorktreeError2,
34
34
  isVcsInitNotSupportedError2
35
- } from "../../chunks/service-probe-vt9jbch8.js";
35
+ } from "../../chunks/contract-vt9jbch8.js";
36
36
  export {
37
37
  isAgentNotFoundError2 as isAgentNotFoundError,
38
38
  isCommandExecutionError2 as isCommandExecutionError,
@@ -1,13 +1,13 @@
1
- import"../chunks/service-probe-m2eywc8w.js";
1
+ import"../chunks/contract-m2eywc8w.js";
2
2
  import {
3
- exports_client3
4
- } from "../chunks/service-probe-wjyeq25y.js";
5
- import"../chunks/service-probe-vyas3vgt.js";
6
- import"../chunks/service-probe-ecs5ftka.js";
7
- import"../chunks/service-probe-1y4a697q.js";
3
+ exports_client
4
+ } from "../chunks/contract-7393xcww.js";
5
+ import"../chunks/contract-1y4a697q.js";
6
+ import"../chunks/contract-vyas3vgt.js";
7
+ import"../chunks/contract-qfk0hgz0.js";
8
8
  import {
9
- ClientError3
10
- } from "../chunks/service-probe-nwcpakzx.js";
9
+ ClientError2
10
+ } from "../chunks/contract-js54wxgp.js";
11
11
  import {
12
12
  isInvalidRequestError2,
13
13
  isUnauthorizedError2,
@@ -42,11 +42,11 @@ import {
42
42
  isShellNotFoundError2,
43
43
  isWorktreeError2,
44
44
  isVcsInitNotSupportedError2
45
- } from "../chunks/service-probe-vt9jbch8.js";
46
- import"../chunks/service-probe-frbwqjmf.js";
45
+ } from "../chunks/contract-vt9jbch8.js";
46
+ import"../chunks/contract-frbwqjmf.js";
47
47
  export {
48
- ClientError3 as ClientError,
49
- exports_client3 as OpenCode,
48
+ ClientError2 as ClientError,
49
+ exports_client as OpenCode,
50
50
  isAgentNotFoundError2 as isAgentNotFoundError,
51
51
  isCommandExecutionError2 as isCommandExecutionError,
52
52
  isCommandNotFoundError2 as isCommandNotFoundError,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  makeRpc2
3
- } from "../chunks/service-probe-1y4a697q.js";
4
- import"../chunks/service-probe-vt9jbch8.js";
3
+ } from "../chunks/contract-1y4a697q.js";
4
+ import"../chunks/contract-vt9jbch8.js";
5
5
  export {
6
6
  makeRpc2 as makeRpc
7
7
  };
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  spawnServiceContender2,
3
3
  contenderPool2
4
- } from "../chunks/service-probe-ve4aws36.js";
4
+ } from "../chunks/contract-ve4aws36.js";
5
5
  import {
6
6
  defaultEnsureTiming2,
7
7
  ensureTiming2
8
- } from "../chunks/service-probe-xgnj2w4v.js";
8
+ } from "../chunks/contract-xgnj2w4v.js";
9
9
  import {
10
10
  matchesVersion2
11
- } from "../chunks/service-probe-sxt88q69.js";
11
+ } from "../chunks/contract-sxt88q69.js";
12
12
  import {
13
13
  prepare2,
14
14
  environment2,
15
15
  complete2,
16
16
  clear2
17
- } from "../chunks/service-probe-gx9wnkzr.js";
17
+ } from "../chunks/contract-tpb4j56n.js";
18
18
  import {
19
19
  decide2,
20
20
  fallback2,
21
21
  same2,
22
22
  probeResult2,
23
23
  headers2
24
- } from "../chunks/service-probe-2ny4vxct.js";
25
- import"../chunks/service-probe-qav6mfdz.js";
24
+ } from "../chunks/contract-8ye1ye6f.js";
25
+ import"../chunks/contract-qav6mfdz.js";
26
26
 
27
27
  // src/promise/service.ts
28
28
  import { readFile, rm } from "node:fs/promises";
@@ -4,7 +4,7 @@ import {
4
4
  complete2,
5
5
  clear2,
6
6
  exports_pty_handoff
7
- } from "./chunks/service-probe-gx9wnkzr.js";
7
+ } from "./chunks/contract-tpb4j56n.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/service-probe-t1xa31vm.js";
7
+ } from "./chunks/contract-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
  contenderPool2,
4
4
  contenderFinished2
5
- } from "./chunks/service-probe-ve4aws36.js";
5
+ } from "./chunks/contract-ve4aws36.js";
6
6
  export {
7
7
  contenderFinished2 as contenderFinished,
8
8
  contenderPool2 as contenderPool,
@@ -4,9 +4,9 @@ import {
4
4
  same2,
5
5
  probeResult2,
6
6
  headers2
7
- } from "./chunks/service-probe-2ny4vxct.js";
8
- import"./chunks/service-probe-sxt88q69.js";
9
- import"./chunks/service-probe-xgnj2w4v.js";
7
+ } from "./chunks/contract-8ye1ye6f.js";
8
+ import"./chunks/contract-xgnj2w4v.js";
9
+ import"./chunks/contract-sxt88q69.js";
10
10
  export {
11
11
  decide2 as decide,
12
12
  fallback2 as fallback,
@@ -2,7 +2,7 @@ import {
2
2
  defaultEnsureTiming2,
3
3
  ensureTiming2,
4
4
  withEnsureTiming2
5
- } from "./chunks/service-probe-xgnj2w4v.js";
5
+ } from "./chunks/contract-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/service-probe-sxt88q69.js";
3
+ } from "./chunks/contract-sxt88q69.js";
4
4
  export {
5
5
  matchesVersion2 as matchesVersion
6
6
  };
package/dist/service.js CHANGED
@@ -1 +1 @@
1
- import"./chunks/service-probe-qav6mfdz.js";
1
+ import"./chunks/contract-qav6mfdz.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  make7,
3
3
  exports_shared_events
4
- } from "./chunks/service-probe-frbwqjmf.js";
4
+ } from "./chunks/contract-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/service-probe-ydhz1zrh.js";
5
+ } from "../chunks/contract-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/service-probe-9vdz0zwn.js";
6
- import"../chunks/service-probe-m2eywc8w.js";
7
- import"../chunks/service-probe-wjyeq25y.js";
8
- import"../chunks/service-probe-vyas3vgt.js";
9
- import"../chunks/service-probe-ecs5ftka.js";
10
- import"../chunks/service-probe-1y4a697q.js";
11
- import"../chunks/service-probe-nwcpakzx.js";
12
- import"../chunks/service-probe-vt9jbch8.js";
13
- import"../chunks/service-probe-frbwqjmf.js";
5
+ } from "../chunks/contract-m77rqa4a.js";
6
+ import"../chunks/contract-m2eywc8w.js";
7
+ import"../chunks/contract-7393xcww.js";
8
+ import"../chunks/contract-1y4a697q.js";
9
+ import"../chunks/contract-vyas3vgt.js";
10
+ import"../chunks/contract-qfk0hgz0.js";
11
+ import"../chunks/contract-js54wxgp.js";
12
+ import"../chunks/contract-vt9jbch8.js";
13
+ import"../chunks/contract-frbwqjmf.js";
14
14
  export {
15
15
  createData2 as createData,
16
16
  locationKey2 as locationKey,
@@ -1,3 +1,4 @@
1
1
  export * from "./data";
2
2
  export * from "./connection";
3
3
  export * from "./pty";
4
+ export * from "./usage";
@@ -1,25 +1,28 @@
1
- import"../chunks/service-probe-nwcpakzx.js";
2
- import"../chunks/service-probe-ecs5ftka.js";
3
- import"../chunks/service-probe-vt9jbch8.js";
4
- import"../chunks/service-probe-vyas3vgt.js";
5
- import"../chunks/service-probe-frbwqjmf.js";
6
- import"../chunks/service-probe-1y4a697q.js";
7
- import"../chunks/service-probe-wjyeq25y.js";
8
- import"../chunks/service-probe-m2eywc8w.js";
1
+ import"../chunks/contract-js54wxgp.js";
2
+ import"../chunks/contract-qfk0hgz0.js";
3
+ import"../chunks/contract-vt9jbch8.js";
4
+ import"../chunks/contract-vyas3vgt.js";
5
+ import"../chunks/contract-frbwqjmf.js";
6
+ import"../chunks/contract-1y4a697q.js";
7
+ import"../chunks/contract-7393xcww.js";
8
+ import"../chunks/contract-m2eywc8w.js";
9
9
  import {
10
10
  settleMs2,
11
11
  locationKey2,
12
12
  createData2
13
- } from "../chunks/service-probe-9vdz0zwn.js";
13
+ } from "../chunks/contract-m77rqa4a.js";
14
14
  import {
15
15
  defaultIdleTimeout2,
16
16
  foregroundIdleThreshold2,
17
17
  createClientConnection2
18
- } from "../chunks/service-probe-ydhz1zrh.js";
18
+ } from "../chunks/contract-ydhz1zrh.js";
19
19
  import {
20
20
  createPtyClient2,
21
21
  createPersistentPtyClient2
22
- } from "../chunks/service-probe-gne7h7mq.js";
22
+ } from "../chunks/contract-gne7h7mq.js";
23
+ import {
24
+ lastAssistantWithUsage2
25
+ } from "../chunks/contract-8s2anffy.js";
23
26
  export {
24
27
  createClientConnection2 as createClientConnection,
25
28
  createData2 as createData,
@@ -27,6 +30,7 @@ export {
27
30
  createPtyClient2 as createPtyClient,
28
31
  defaultIdleTimeout2 as defaultIdleTimeout,
29
32
  foregroundIdleThreshold2 as foregroundIdleThreshold,
33
+ lastAssistantWithUsage2 as lastAssistantWithUsage,
30
34
  locationKey2 as locationKey,
31
35
  settleMs2 as settleMs
32
36
  };
package/dist/solid/pty.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createPtyClient2,
3
3
  createPersistentPtyClient2
4
- } from "../chunks/service-probe-gne7h7mq.js";
4
+ } from "../chunks/contract-gne7h7mq.js";
5
5
  export {
6
6
  createPersistentPtyClient2 as createPersistentPtyClient,
7
7
  createPtyClient2 as createPtyClient
@@ -0,0 +1,9 @@
1
+ import type { SessionMessageAssistant, SessionMessageInfo } from "../promise";
2
+ /**
3
+ * The assistant step whose tokens fill the context window now: the latest one after the last completed
4
+ * compaction and before the revert boundary. Every client shows context usage from this step, so the TUI
5
+ * and the desktop app agree on it.
6
+ */
7
+ export declare function lastAssistantWithUsage(messages: ReadonlyArray<SessionMessageInfo>, boundary?: string): (SessionMessageAssistant & {
8
+ tokens: NonNullable<SessionMessageAssistant["tokens"]>;
9
+ }) | undefined;
@@ -0,0 +1,6 @@
1
+ import {
2
+ lastAssistantWithUsage2
3
+ } from "../chunks/contract-8s2anffy.js";
4
+ export {
5
+ lastAssistantWithUsage2 as lastAssistantWithUsage
6
+ };
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": "2.0.28",
4
+ "version": "2.0.29",
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": "2.0.28",
61
- "@opencode/protocol": "2.0.28"
60
+ "@opencode/schema": "2.0.29",
61
+ "@opencode/protocol": "2.0.29"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "effect": "4.0.1",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  "devDependencies": {
76
76
  "@effect/platform-node": "4.0.1",
77
- "@opencode/httpapi-codegen": "2.0.28",
77
+ "@opencode/httpapi-codegen": "2.0.29",
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",
@@ -1,30 +0,0 @@
1
- import {
2
- make7
3
- } from "./service-probe-frbwqjmf.js";
4
- import {
5
- make6
6
- } from "./service-probe-ecs5ftka.js";
7
- import {
8
- makeRpc2
9
- } from "./service-probe-1y4a697q.js";
10
- import {
11
- __export
12
- } from "./service-probe-9rqn6x4v.js";
13
-
14
- // src/promise/client.ts
15
- var exports_client3 = {};
16
- __export(exports_client3, {
17
- OpenCode: () => exports_client3,
18
- make: () => make5
19
- });
20
- function make5(options) {
21
- const raw = make6(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 { make5, exports_client3 };