@opencode/client 0.0.0-beta-19275

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 (62) hide show
  1. package/README.md +27 -0
  2. package/dist/contract.d.ts +1 -0
  3. package/dist/contract.js +1 -0
  4. package/dist/effect/api/api.d.ts +2659 -0
  5. package/dist/effect/api/api.js +0 -0
  6. package/dist/effect/api.d.ts +8 -0
  7. package/dist/effect/api.js +0 -0
  8. package/dist/effect/client.d.ts +2535 -0
  9. package/dist/effect/client.js +29 -0
  10. package/dist/effect/generated/client-error.d.ts +7 -0
  11. package/dist/effect/generated/client-error.js +5 -0
  12. package/dist/effect/generated/client.d.ts +2534 -0
  13. package/dist/effect/generated/client.js +602 -0
  14. package/dist/effect/generated/index.d.ts +2 -0
  15. package/dist/effect/generated/index.js +2 -0
  16. package/dist/effect/index.d.ts +35 -0
  17. package/dist/effect/index.js +30 -0
  18. package/dist/effect/rpc.d.ts +20 -0
  19. package/dist/effect/rpc.js +49 -0
  20. package/dist/effect/service.d.ts +78 -0
  21. package/dist/effect/service.js +259 -0
  22. package/dist/promise/api.d.ts +24 -0
  23. package/dist/promise/api.js +0 -0
  24. package/dist/promise/client.d.ts +257 -0
  25. package/dist/promise/client.js +13 -0
  26. package/dist/promise/generated/client-error.d.ts +6 -0
  27. package/dist/promise/generated/client-error.js +8 -0
  28. package/dist/promise/generated/client.d.ts +264 -0
  29. package/dist/promise/generated/client.js +1425 -0
  30. package/dist/promise/generated/index.d.ts +3 -0
  31. package/dist/promise/generated/index.js +3 -0
  32. package/dist/promise/generated/types.d.ts +8717 -0
  33. package/dist/promise/generated/types.js +30 -0
  34. package/dist/promise/index.d.ts +6 -0
  35. package/dist/promise/index.js +2 -0
  36. package/dist/promise/rpc.d.ts +32 -0
  37. package/dist/promise/rpc.js +86 -0
  38. package/dist/promise/service.d.ts +26 -0
  39. package/dist/promise/service.js +247 -0
  40. package/dist/pty-handoff.d.ts +9 -0
  41. package/dist/pty-handoff.js +121 -0
  42. package/dist/rpc-runtime.d.ts +21 -0
  43. package/dist/rpc-runtime.js +32 -0
  44. package/dist/service-contender.d.ts +11 -0
  45. package/dist/service-contender.js +56 -0
  46. package/dist/service-timing.d.ts +13 -0
  47. package/dist/service-timing.js +19 -0
  48. package/dist/service-version.d.ts +2 -0
  49. package/dist/service-version.js +9 -0
  50. package/dist/service.d.ts +52 -0
  51. package/dist/service.js +0 -0
  52. package/dist/shared-events.d.ts +11 -0
  53. package/dist/shared-events.js +137 -0
  54. package/dist/solid/connection.d.ts +37 -0
  55. package/dist/solid/connection.js +246 -0
  56. package/dist/solid/data.d.ts +199 -0
  57. package/dist/solid/data.js +1724 -0
  58. package/dist/solid/index.d.ts +3 -0
  59. package/dist/solid/index.js +3 -0
  60. package/dist/solid/pty.d.ts +22 -0
  61. package/dist/solid/pty.js +43 -0
  62. package/package.json +85 -0
@@ -0,0 +1,1425 @@
1
+ import { ClientError } from "./client-error.js";
2
+ const maxSseEventBytes = 16 * 1024 * 1024;
3
+ export function make(options) {
4
+ const fetch = options.fetch ?? globalThis.fetch;
5
+ const prepare = (descriptor, requestOptions) => {
6
+ const url = new URL(descriptor.path, options.baseUrl);
7
+ for (const [key, value] of Object.entries(descriptor.query ?? {}))
8
+ appendQuery(url.searchParams, key, value);
9
+ const headers = new Headers(options.headers);
10
+ for (const [key, value] of Object.entries(descriptor.headers ?? {})) {
11
+ if (value !== undefined && value !== null)
12
+ headers.set(key, String(value));
13
+ }
14
+ for (const [key, value] of new Headers(requestOptions?.headers))
15
+ headers.set(key, value);
16
+ if (descriptor.body !== undefined && !headers.has("content-type"))
17
+ headers.set("content-type", "application/json");
18
+ return {
19
+ url,
20
+ init: {
21
+ method: descriptor.method,
22
+ signal: requestOptions?.signal,
23
+ headers,
24
+ body: descriptor.body === undefined ? undefined : JSON.stringify(descriptor.body),
25
+ },
26
+ };
27
+ };
28
+ const execute = async (descriptor, requestOptions) => {
29
+ try {
30
+ const prepared = prepare(descriptor, requestOptions);
31
+ return await fetch(prepared.url, prepared.init);
32
+ }
33
+ catch (cause) {
34
+ throw new ClientError("Transport", { cause });
35
+ }
36
+ };
37
+ const responseError = async (response, descriptor) => {
38
+ if (descriptor.declaredStatuses.includes(response.status))
39
+ throw await json(response);
40
+ try {
41
+ await response.body?.cancel();
42
+ }
43
+ catch { }
44
+ throw new ClientError("UnexpectedStatus", { cause: { status: response.status } });
45
+ };
46
+ const request = async (descriptor, requestOptions) => {
47
+ const response = await execute(descriptor, requestOptions);
48
+ if (response.status !== descriptor.successStatus)
49
+ return responseError(response, descriptor);
50
+ if (descriptor.binary)
51
+ return new Uint8Array(await response.arrayBuffer());
52
+ if (descriptor.empty) {
53
+ try {
54
+ await response.body?.cancel();
55
+ }
56
+ catch { }
57
+ return undefined;
58
+ }
59
+ return (await json(response));
60
+ };
61
+ const sse = (descriptor, requestOptions) => ({
62
+ async *[Symbol.asyncIterator]() {
63
+ const response = await execute(descriptor, requestOptions);
64
+ if (response.status !== descriptor.successStatus)
65
+ await responseError(response, descriptor);
66
+ if (!isContentType(response, "text/event-stream")) {
67
+ try {
68
+ await response.body?.cancel();
69
+ }
70
+ catch { }
71
+ throw new ClientError("UnsupportedContentType");
72
+ }
73
+ if (response.body === null)
74
+ throw new ClientError("MalformedResponse");
75
+ const reader = response.body.getReader();
76
+ const decoder = new TextDecoder();
77
+ let buffer = "";
78
+ try {
79
+ while (true) {
80
+ let next;
81
+ try {
82
+ next = await reader.read();
83
+ }
84
+ catch (cause) {
85
+ throw new ClientError("Transport", { cause });
86
+ }
87
+ if (!next.done)
88
+ requestOptions?.onActivity?.();
89
+ buffer += decoder.decode(next.value, { stream: !next.done });
90
+ if (buffer.length > maxSseEventBytes)
91
+ throw new ClientError("SseEventTooLarge");
92
+ const trailingCarriageReturn = !next.done && buffer.endsWith("\r");
93
+ if (trailingCarriageReturn)
94
+ buffer = buffer.slice(0, -1);
95
+ buffer = buffer.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
96
+ if (trailingCarriageReturn)
97
+ buffer += "\r";
98
+ if (next.done && buffer !== "")
99
+ buffer += "\n\n";
100
+ let boundary = buffer.indexOf("\n\n");
101
+ while (boundary >= 0) {
102
+ const block = buffer.slice(0, boundary);
103
+ buffer = buffer.slice(boundary + 2);
104
+ const data = block
105
+ .split("\n")
106
+ .flatMap((line) => (line.startsWith("data:") ? [line.slice(5).trimStart()] : []))
107
+ .join("\n");
108
+ if (data !== "") {
109
+ try {
110
+ yield JSON.parse(data);
111
+ }
112
+ catch (cause) {
113
+ throw new ClientError("MalformedResponse", { cause });
114
+ }
115
+ }
116
+ boundary = buffer.indexOf("\n\n");
117
+ }
118
+ if (next.done)
119
+ return;
120
+ }
121
+ }
122
+ finally {
123
+ try {
124
+ await reader.cancel();
125
+ }
126
+ catch { }
127
+ reader.releaseLock();
128
+ }
129
+ },
130
+ });
131
+ return {
132
+ health: {
133
+ get: (requestOptions) => request({ method: "GET", path: `/api/health`, successStatus: 200, declaredStatuses: [400, 401], empty: false }, requestOptions),
134
+ },
135
+ server: {
136
+ get: (requestOptions) => request({ method: "GET", path: `/api/server`, successStatus: 200, declaredStatuses: [400, 401], empty: false }, requestOptions),
137
+ },
138
+ location: {
139
+ get: (input, requestOptions) => request({
140
+ method: "GET",
141
+ path: `/api/location`,
142
+ query: { location: input?.["location"] },
143
+ successStatus: 200,
144
+ declaredStatuses: [400, 401],
145
+ empty: false,
146
+ }, requestOptions),
147
+ },
148
+ agent: {
149
+ list: (input, requestOptions) => request({
150
+ method: "GET",
151
+ path: `/api/agent`,
152
+ query: { location: input?.["location"] },
153
+ successStatus: 200,
154
+ declaredStatuses: [400, 401],
155
+ empty: false,
156
+ }, requestOptions),
157
+ get: (input, requestOptions) => request({
158
+ method: "GET",
159
+ path: `/api/agent/${encodeURIComponent(input.agentID)}`,
160
+ query: { location: input["location"] },
161
+ successStatus: 200,
162
+ declaredStatuses: [400, 401, 404],
163
+ empty: false,
164
+ }, requestOptions),
165
+ },
166
+ plugin: {
167
+ list: (input, requestOptions) => request({
168
+ method: "GET",
169
+ path: `/api/plugin`,
170
+ query: { location: input?.["location"] },
171
+ successStatus: 200,
172
+ declaredStatuses: [400, 401],
173
+ empty: false,
174
+ }, requestOptions),
175
+ awaitActivation: (input, requestOptions) => request({
176
+ method: "POST",
177
+ path: `/api/plugin/await-activation`,
178
+ query: { location: input?.["location"] },
179
+ successStatus: 204,
180
+ declaredStatuses: [400, 401],
181
+ empty: true,
182
+ }, requestOptions),
183
+ check: (input, requestOptions) => request({
184
+ method: "POST",
185
+ path: `/api/plugin/check`,
186
+ query: { location: input?.["location"] },
187
+ body: { target: input?.["target"] },
188
+ successStatus: 200,
189
+ declaredStatuses: [400, 401],
190
+ empty: false,
191
+ }, requestOptions),
192
+ update: (input, requestOptions) => request({
193
+ method: "POST",
194
+ path: `/api/plugin/update`,
195
+ query: { location: input["location"] },
196
+ body: { targets: input["targets"] },
197
+ successStatus: 204,
198
+ declaredStatuses: [400, 401, 503],
199
+ empty: true,
200
+ }, requestOptions),
201
+ },
202
+ session: {
203
+ list: (input, requestOptions) => request({
204
+ method: "GET",
205
+ path: `/api/session`,
206
+ query: {
207
+ workspace: input?.["workspace"],
208
+ limit: input?.["limit"],
209
+ order: input?.["order"],
210
+ search: input?.["search"],
211
+ parentID: input?.["parentID"],
212
+ directory: input?.["directory"],
213
+ project: input?.["project"],
214
+ subpath: input?.["subpath"],
215
+ cursor: input?.["cursor"],
216
+ },
217
+ successStatus: 200,
218
+ declaredStatuses: [400, 401],
219
+ empty: false,
220
+ }, requestOptions),
221
+ stats: (input, requestOptions) => request({
222
+ method: "GET",
223
+ path: `/api/session/stats`,
224
+ query: {
225
+ from: input?.["from"],
226
+ to: input?.["to"],
227
+ project: input?.["project"],
228
+ timezone: input?.["timezone"],
229
+ tools: input?.["tools"],
230
+ },
231
+ successStatus: 200,
232
+ declaredStatuses: [400, 401],
233
+ empty: false,
234
+ }, requestOptions).then((value) => value.data),
235
+ create: (input, requestOptions) => request({
236
+ method: "POST",
237
+ path: `/api/session`,
238
+ body: {
239
+ id: input?.["id"],
240
+ title: input?.["title"],
241
+ agent: input?.["agent"],
242
+ model: input?.["model"],
243
+ location: input?.["location"],
244
+ metadata: input?.["metadata"],
245
+ },
246
+ successStatus: 200,
247
+ declaredStatuses: [400, 401],
248
+ empty: false,
249
+ }, requestOptions).then((value) => value.data),
250
+ import: (input, requestOptions) => request({
251
+ method: "POST",
252
+ path: `/api/session/import`,
253
+ body: { info: input["info"], messages: input["messages"], location: input["location"] },
254
+ successStatus: 200,
255
+ declaredStatuses: [400, 401, 404, 409],
256
+ empty: false,
257
+ }, requestOptions).then((value) => value.data),
258
+ export: (input, requestOptions) => request({
259
+ method: "GET",
260
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/export`,
261
+ query: { sanitize: input["sanitize"] },
262
+ successStatus: 200,
263
+ declaredStatuses: [400, 401, 404, 500],
264
+ empty: false,
265
+ }, requestOptions).then((value) => value.data),
266
+ active: (requestOptions) => request({
267
+ method: "GET",
268
+ path: `/api/session/active`,
269
+ successStatus: 200,
270
+ declaredStatuses: [400, 401],
271
+ empty: false,
272
+ }, requestOptions).then((value) => value.data),
273
+ get: (input, requestOptions) => request({
274
+ method: "GET",
275
+ path: `/api/session/${encodeURIComponent(input.sessionID)}`,
276
+ successStatus: 200,
277
+ declaredStatuses: [400, 401, 404],
278
+ empty: false,
279
+ }, requestOptions).then((value) => value.data),
280
+ remove: (input, requestOptions) => request({
281
+ method: "DELETE",
282
+ path: `/api/session/${encodeURIComponent(input.sessionID)}`,
283
+ successStatus: 204,
284
+ declaredStatuses: [400, 401, 404],
285
+ empty: true,
286
+ }, requestOptions),
287
+ fork: (input, requestOptions) => request({
288
+ method: "POST",
289
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/fork`,
290
+ body: { boundary: input["boundary"] },
291
+ successStatus: 200,
292
+ declaredStatuses: [400, 401, 404],
293
+ empty: false,
294
+ }, requestOptions).then((value) => value.data),
295
+ switchAgent: (input, requestOptions) => request({
296
+ method: "POST",
297
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/agent`,
298
+ body: { agent: input["agent"] },
299
+ successStatus: 204,
300
+ declaredStatuses: [400, 401, 404],
301
+ empty: true,
302
+ }, requestOptions),
303
+ switchModel: (input, requestOptions) => request({
304
+ method: "POST",
305
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/model`,
306
+ body: { model: input["model"] },
307
+ successStatus: 204,
308
+ declaredStatuses: [400, 401, 404],
309
+ empty: true,
310
+ }, requestOptions),
311
+ rename: (input, requestOptions) => request({
312
+ method: "POST",
313
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/rename`,
314
+ body: { title: input["title"] },
315
+ successStatus: 204,
316
+ declaredStatuses: [400, 401, 404],
317
+ empty: true,
318
+ }, requestOptions),
319
+ move: (input, requestOptions) => request({
320
+ method: "POST",
321
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/move`,
322
+ body: { directory: input["directory"], workspaceID: input["workspaceID"], delivery: input["delivery"] },
323
+ successStatus: 204,
324
+ declaredStatuses: [400, 401, 404],
325
+ empty: true,
326
+ }, requestOptions),
327
+ prompt: (input, requestOptions) => request({
328
+ method: "POST",
329
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/prompt`,
330
+ body: {
331
+ id: input["id"],
332
+ text: input["text"],
333
+ files: input["files"],
334
+ agents: input["agents"],
335
+ skills: input["skills"],
336
+ metadata: input["metadata"],
337
+ delivery: input["delivery"],
338
+ resume: input["resume"],
339
+ },
340
+ successStatus: 200,
341
+ declaredStatuses: [400, 401, 404, 409],
342
+ empty: false,
343
+ }, requestOptions).then((value) => value.data),
344
+ command: (input, requestOptions) => request({
345
+ method: "POST",
346
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/command`,
347
+ body: {
348
+ command: input["command"],
349
+ text: input["text"],
350
+ files: input["files"],
351
+ agents: input["agents"],
352
+ skills: input["skills"],
353
+ delivery: input["delivery"],
354
+ },
355
+ successStatus: 204,
356
+ declaredStatuses: [400, 401, 404, 500],
357
+ empty: true,
358
+ }, requestOptions),
359
+ skill: (input, requestOptions) => request({
360
+ method: "POST",
361
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/skill`,
362
+ body: { id: input["id"], skill: input["skill"], resume: input["resume"] },
363
+ successStatus: 204,
364
+ declaredStatuses: [400, 401, 404],
365
+ empty: true,
366
+ }, requestOptions),
367
+ synthetic: (input, requestOptions) => request({
368
+ method: "POST",
369
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/synthetic`,
370
+ body: {
371
+ id: input["id"],
372
+ text: input["text"],
373
+ description: input["description"],
374
+ metadata: input["metadata"],
375
+ delivery: input["delivery"],
376
+ resume: input["resume"],
377
+ },
378
+ successStatus: 200,
379
+ declaredStatuses: [400, 401, 404, 409],
380
+ empty: false,
381
+ }, requestOptions).then((value) => value.data),
382
+ shell: (input, requestOptions) => request({
383
+ method: "POST",
384
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/shell`,
385
+ body: { id: input["id"], command: input["command"] },
386
+ successStatus: 204,
387
+ declaredStatuses: [400, 401, 404],
388
+ empty: true,
389
+ }, requestOptions),
390
+ compact: (input, requestOptions) => request({
391
+ method: "POST",
392
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/compact`,
393
+ body: { id: input["id"], delivery: input["delivery"] },
394
+ successStatus: 200,
395
+ declaredStatuses: [400, 401, 404, 409],
396
+ empty: false,
397
+ }, requestOptions).then((value) => value.data),
398
+ wait: (input, requestOptions) => request({
399
+ method: "POST",
400
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/wait`,
401
+ successStatus: 204,
402
+ declaredStatuses: [400, 401, 404, 503],
403
+ empty: true,
404
+ }, requestOptions),
405
+ revert: {
406
+ stage: (input, requestOptions) => request({
407
+ method: "POST",
408
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/revert/stage`,
409
+ body: { messageID: input["messageID"], files: input["files"] },
410
+ successStatus: 200,
411
+ declaredStatuses: [400, 401, 404, 409, 500],
412
+ empty: false,
413
+ }, requestOptions).then((value) => value.data),
414
+ clear: (input, requestOptions) => request({
415
+ method: "POST",
416
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/revert/clear`,
417
+ successStatus: 204,
418
+ declaredStatuses: [400, 401, 404, 409, 500],
419
+ empty: true,
420
+ }, requestOptions),
421
+ commit: (input, requestOptions) => request({
422
+ method: "POST",
423
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/revert/commit`,
424
+ successStatus: 204,
425
+ declaredStatuses: [400, 401, 404, 409],
426
+ empty: true,
427
+ }, requestOptions),
428
+ },
429
+ context: (input, requestOptions) => request({
430
+ method: "GET",
431
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/context`,
432
+ successStatus: 200,
433
+ declaredStatuses: [400, 401, 404, 500],
434
+ empty: false,
435
+ }, requestOptions).then((value) => value.data),
436
+ inbox: {
437
+ list: (input, requestOptions) => request({
438
+ method: "GET",
439
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/inbox`,
440
+ successStatus: 200,
441
+ declaredStatuses: [400, 401, 404],
442
+ empty: false,
443
+ }, requestOptions).then((value) => value.data),
444
+ cancel: (input, requestOptions) => request({
445
+ method: "DELETE",
446
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/inbox/${encodeURIComponent(input.inboxID)}`,
447
+ successStatus: 204,
448
+ declaredStatuses: [400, 401, 404, 409],
449
+ empty: true,
450
+ }, requestOptions),
451
+ steer: (input, requestOptions) => request({
452
+ method: "POST",
453
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/inbox/${encodeURIComponent(input.inboxID)}/steer`,
454
+ successStatus: 204,
455
+ declaredStatuses: [400, 401, 404, 409],
456
+ empty: true,
457
+ }, requestOptions),
458
+ queue: (input, requestOptions) => request({
459
+ method: "POST",
460
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/inbox/${encodeURIComponent(input.inboxID)}/queue`,
461
+ successStatus: 204,
462
+ declaredStatuses: [400, 401, 404, 409],
463
+ empty: true,
464
+ }, requestOptions),
465
+ },
466
+ instructions: {
467
+ entry: {
468
+ list: (input, requestOptions) => request({
469
+ method: "GET",
470
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/instructions/entries`,
471
+ successStatus: 200,
472
+ declaredStatuses: [400, 401, 404],
473
+ empty: false,
474
+ }, requestOptions).then((value) => value.data),
475
+ put: (input, requestOptions) => request({
476
+ method: "PUT",
477
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/instructions/entries/${encodeURIComponent(input.key)}`,
478
+ body: { value: input["value"] },
479
+ successStatus: 204,
480
+ declaredStatuses: [400, 401, 404, 413],
481
+ empty: true,
482
+ }, requestOptions),
483
+ remove: (input, requestOptions) => request({
484
+ method: "DELETE",
485
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/instructions/entries/${encodeURIComponent(input.key)}`,
486
+ successStatus: 204,
487
+ declaredStatuses: [400, 401, 404],
488
+ empty: true,
489
+ }, requestOptions),
490
+ },
491
+ },
492
+ generate: (input, requestOptions) => request({
493
+ method: "POST",
494
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/generate`,
495
+ body: { prompt: input["prompt"] },
496
+ successStatus: 200,
497
+ declaredStatuses: [400, 401, 404, 503],
498
+ empty: false,
499
+ }, requestOptions).then((value) => value.data),
500
+ log: (input, requestOptions) => sse({
501
+ method: "GET",
502
+ path: `/api/experimental/session/${encodeURIComponent(input.sessionID)}/log`,
503
+ query: { after: input["after"], follow: input["follow"] },
504
+ successStatus: 200,
505
+ declaredStatuses: [400, 401, 404],
506
+ empty: false,
507
+ }, requestOptions),
508
+ interrupt: (input, requestOptions) => request({
509
+ method: "POST",
510
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/interrupt`,
511
+ query: { continue: input["continue"] },
512
+ successStatus: 200,
513
+ declaredStatuses: [400, 401, 404],
514
+ empty: false,
515
+ }, requestOptions),
516
+ background: (input, requestOptions) => request({
517
+ method: "POST",
518
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/background`,
519
+ successStatus: 204,
520
+ declaredStatuses: [400, 401, 404],
521
+ empty: true,
522
+ }, requestOptions),
523
+ message: (input, requestOptions) => request({
524
+ method: "GET",
525
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}`,
526
+ successStatus: 200,
527
+ declaredStatuses: [400, 401, 404],
528
+ empty: false,
529
+ }, requestOptions).then((value) => value.data),
530
+ messageUpdate: (input, requestOptions) => request({
531
+ method: "PATCH",
532
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}`,
533
+ body: { content: input["content"] },
534
+ successStatus: 200,
535
+ declaredStatuses: [400, 401, 404, 409],
536
+ empty: false,
537
+ }, requestOptions).then((value) => value.data),
538
+ environment: (input, requestOptions) => request({
539
+ method: "PUT",
540
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/environment`,
541
+ body: { variables: input["variables"] },
542
+ successStatus: 204,
543
+ declaredStatuses: [400, 401, 404],
544
+ empty: true,
545
+ }, requestOptions),
546
+ view: (input, requestOptions) => request({
547
+ method: "POST",
548
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/view`,
549
+ body: { idle: input["idle"] },
550
+ successStatus: 204,
551
+ declaredStatuses: [400, 401, 404],
552
+ empty: true,
553
+ }, requestOptions),
554
+ },
555
+ message: {
556
+ list: (input, requestOptions) => request({
557
+ method: "GET",
558
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/message`,
559
+ query: { limit: input["limit"], order: input["order"], cursor: input["cursor"] },
560
+ successStatus: 200,
561
+ declaredStatuses: [400, 401, 404, 500],
562
+ empty: false,
563
+ }, requestOptions),
564
+ },
565
+ model: {
566
+ list: (input, requestOptions) => request({
567
+ method: "GET",
568
+ path: `/api/model`,
569
+ query: { location: input?.["location"] },
570
+ successStatus: 200,
571
+ declaredStatuses: [400, 401, 503],
572
+ empty: false,
573
+ }, requestOptions),
574
+ default: (input, requestOptions) => request({
575
+ method: "GET",
576
+ path: `/api/model/default`,
577
+ query: { location: input?.["location"] },
578
+ successStatus: 200,
579
+ declaredStatuses: [400, 401, 503],
580
+ empty: false,
581
+ }, requestOptions),
582
+ },
583
+ generate: {
584
+ text: (input, requestOptions) => request({
585
+ method: "POST",
586
+ path: `/api/generate`,
587
+ body: { prompt: input["prompt"], model: input["model"] },
588
+ successStatus: 200,
589
+ declaredStatuses: [400, 401, 503],
590
+ empty: false,
591
+ }, requestOptions).then((value) => value.data),
592
+ },
593
+ provider: {
594
+ list: (input, requestOptions) => request({
595
+ method: "GET",
596
+ path: `/api/provider`,
597
+ query: { location: input?.["location"] },
598
+ successStatus: 200,
599
+ declaredStatuses: [400, 401, 503],
600
+ empty: false,
601
+ }, requestOptions),
602
+ get: (input, requestOptions) => request({
603
+ method: "GET",
604
+ path: `/api/provider/${encodeURIComponent(input.providerID)}`,
605
+ query: { location: input["location"] },
606
+ successStatus: 200,
607
+ declaredStatuses: [400, 401, 404, 503],
608
+ empty: false,
609
+ }, requestOptions),
610
+ },
611
+ integration: {
612
+ list: (input, requestOptions) => request({
613
+ method: "GET",
614
+ path: `/api/integration`,
615
+ query: { location: input?.["location"] },
616
+ successStatus: 200,
617
+ declaredStatuses: [400, 401],
618
+ empty: false,
619
+ }, requestOptions),
620
+ get: (input, requestOptions) => request({
621
+ method: "GET",
622
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}`,
623
+ query: { location: input["location"] },
624
+ successStatus: 200,
625
+ declaredStatuses: [400, 401],
626
+ empty: false,
627
+ }, requestOptions),
628
+ wellknown: {
629
+ add: (input, requestOptions) => request({
630
+ method: "POST",
631
+ path: `/api/experimental/integration/wellknown`,
632
+ query: { location: input["location"] },
633
+ body: { url: input["url"] },
634
+ successStatus: 204,
635
+ declaredStatuses: [400, 401],
636
+ empty: true,
637
+ }, requestOptions),
638
+ },
639
+ connect: {
640
+ key: (input, requestOptions) => request({
641
+ method: "POST",
642
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/key`,
643
+ query: { location: input["location"] },
644
+ body: { key: input["key"], answer: input["answer"], label: input["label"] },
645
+ successStatus: 204,
646
+ declaredStatuses: [400, 401],
647
+ empty: true,
648
+ }, requestOptions),
649
+ },
650
+ oauth: {
651
+ connect: (input, requestOptions) => request({
652
+ method: "POST",
653
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth`,
654
+ query: { location: input["location"] },
655
+ body: { methodID: input["methodID"], answer: input["answer"], label: input["label"] },
656
+ successStatus: 200,
657
+ declaredStatuses: [400, 401],
658
+ empty: false,
659
+ }, requestOptions),
660
+ status: (input, requestOptions) => request({
661
+ method: "GET",
662
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth/${encodeURIComponent(input.attemptID)}`,
663
+ query: { location: input["location"] },
664
+ successStatus: 200,
665
+ declaredStatuses: [400, 401],
666
+ empty: false,
667
+ }, requestOptions),
668
+ complete: (input, requestOptions) => request({
669
+ method: "POST",
670
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth/${encodeURIComponent(input.attemptID)}/complete`,
671
+ query: { location: input["location"] },
672
+ body: { code: input["code"] },
673
+ successStatus: 204,
674
+ declaredStatuses: [400, 401],
675
+ empty: true,
676
+ }, requestOptions),
677
+ cancel: (input, requestOptions) => request({
678
+ method: "DELETE",
679
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth/${encodeURIComponent(input.attemptID)}`,
680
+ query: { location: input["location"] },
681
+ successStatus: 204,
682
+ declaredStatuses: [400, 401],
683
+ empty: true,
684
+ }, requestOptions),
685
+ },
686
+ command: {
687
+ connect: (input, requestOptions) => request({
688
+ method: "POST",
689
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/command`,
690
+ query: { location: input["location"] },
691
+ body: { methodID: input["methodID"], label: input["label"] },
692
+ successStatus: 200,
693
+ declaredStatuses: [400, 401],
694
+ empty: false,
695
+ }, requestOptions),
696
+ status: (input, requestOptions) => request({
697
+ method: "GET",
698
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/command/${encodeURIComponent(input.attemptID)}`,
699
+ query: { location: input["location"] },
700
+ successStatus: 200,
701
+ declaredStatuses: [400, 401],
702
+ empty: false,
703
+ }, requestOptions),
704
+ cancel: (input, requestOptions) => request({
705
+ method: "DELETE",
706
+ path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/command/${encodeURIComponent(input.attemptID)}`,
707
+ query: { location: input["location"] },
708
+ successStatus: 204,
709
+ declaredStatuses: [400, 401],
710
+ empty: true,
711
+ }, requestOptions),
712
+ },
713
+ },
714
+ mcp: {
715
+ list: (input, requestOptions) => request({
716
+ method: "GET",
717
+ path: `/api/mcp`,
718
+ query: { location: input?.["location"] },
719
+ successStatus: 200,
720
+ declaredStatuses: [400, 401],
721
+ empty: false,
722
+ }, requestOptions),
723
+ add: (input, requestOptions) => request({
724
+ method: "PUT",
725
+ path: `/api/mcp/${encodeURIComponent(input.server)}`,
726
+ query: { location: input["location"] },
727
+ body: { config: input["config"] },
728
+ successStatus: 204,
729
+ declaredStatuses: [400, 401],
730
+ empty: true,
731
+ }, requestOptions),
732
+ remove: (input, requestOptions) => request({
733
+ method: "DELETE",
734
+ path: `/api/mcp/${encodeURIComponent(input.server)}`,
735
+ query: { location: input["location"] },
736
+ successStatus: 204,
737
+ declaredStatuses: [400, 401, 404],
738
+ empty: true,
739
+ }, requestOptions),
740
+ connect: (input, requestOptions) => request({
741
+ method: "POST",
742
+ path: `/api/mcp/${encodeURIComponent(input.server)}/connect`,
743
+ query: { location: input["location"] },
744
+ successStatus: 204,
745
+ declaredStatuses: [400, 401, 404],
746
+ empty: true,
747
+ }, requestOptions),
748
+ disconnect: (input, requestOptions) => request({
749
+ method: "POST",
750
+ path: `/api/mcp/${encodeURIComponent(input.server)}/disconnect`,
751
+ query: { location: input["location"] },
752
+ successStatus: 204,
753
+ declaredStatuses: [400, 401, 404],
754
+ empty: true,
755
+ }, requestOptions),
756
+ resource: {
757
+ catalog: (input, requestOptions) => request({
758
+ method: "GET",
759
+ path: `/api/mcp/resource`,
760
+ query: { location: input?.["location"] },
761
+ successStatus: 200,
762
+ declaredStatuses: [400, 401],
763
+ empty: false,
764
+ }, requestOptions),
765
+ },
766
+ },
767
+ credential: {
768
+ update: (input, requestOptions) => request({
769
+ method: "PATCH",
770
+ path: `/api/credential/${encodeURIComponent(input.credentialID)}`,
771
+ query: { location: input["location"] },
772
+ body: { label: input["label"] },
773
+ successStatus: 204,
774
+ declaredStatuses: [400, 401],
775
+ empty: true,
776
+ }, requestOptions),
777
+ activate: (input, requestOptions) => request({
778
+ method: "POST",
779
+ path: `/api/credential/${encodeURIComponent(input.credentialID)}/activate`,
780
+ query: { location: input["location"] },
781
+ successStatus: 204,
782
+ declaredStatuses: [400, 401],
783
+ empty: true,
784
+ }, requestOptions),
785
+ remove: (input, requestOptions) => request({
786
+ method: "DELETE",
787
+ path: `/api/credential/${encodeURIComponent(input.credentialID)}`,
788
+ query: { location: input["location"] },
789
+ successStatus: 204,
790
+ declaredStatuses: [400, 401],
791
+ empty: true,
792
+ }, requestOptions),
793
+ },
794
+ project: {
795
+ list: (requestOptions) => request({ method: "GET", path: `/api/project`, successStatus: 200, declaredStatuses: [400, 401], empty: false }, requestOptions),
796
+ update: (input, requestOptions) => request({
797
+ method: "PATCH",
798
+ path: `/api/project/${encodeURIComponent(input.projectID)}`,
799
+ body: {
800
+ canonical: input["canonical"],
801
+ name: input["name"],
802
+ icon: input["icon"],
803
+ commands: input["commands"],
804
+ },
805
+ successStatus: 200,
806
+ declaredStatuses: [400, 401, 404],
807
+ empty: false,
808
+ }, requestOptions),
809
+ current: (input, requestOptions) => request({
810
+ method: "GET",
811
+ path: `/api/project/current`,
812
+ query: { location: input?.["location"] },
813
+ successStatus: 200,
814
+ declaredStatuses: [400, 401],
815
+ empty: false,
816
+ }, requestOptions),
817
+ },
818
+ form: {
819
+ request: {
820
+ list: (input, requestOptions) => request({
821
+ method: "GET",
822
+ path: `/api/form/request`,
823
+ query: { location: input?.["location"] },
824
+ successStatus: 200,
825
+ declaredStatuses: [400, 401],
826
+ empty: false,
827
+ }, requestOptions),
828
+ },
829
+ list: (input, requestOptions) => request({
830
+ method: "GET",
831
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/form`,
832
+ successStatus: 200,
833
+ declaredStatuses: [400, 401, 404],
834
+ empty: false,
835
+ }, requestOptions).then((value) => value.data),
836
+ create: (input, requestOptions) => request({
837
+ method: "POST",
838
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/form`,
839
+ body: { id: input["id"], title: input["title"], metadata: input["metadata"], fields: input["fields"] },
840
+ successStatus: 200,
841
+ declaredStatuses: [400, 401, 404, 409],
842
+ empty: false,
843
+ }, requestOptions).then((value) => value.data),
844
+ get: (input, requestOptions) => request({
845
+ method: "GET",
846
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/form/${encodeURIComponent(input.formID)}`,
847
+ successStatus: 200,
848
+ declaredStatuses: [400, 401, 404],
849
+ empty: false,
850
+ }, requestOptions).then((value) => value.data),
851
+ state: (input, requestOptions) => request({
852
+ method: "GET",
853
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/form/${encodeURIComponent(input.formID)}/state`,
854
+ successStatus: 200,
855
+ declaredStatuses: [400, 401, 404],
856
+ empty: false,
857
+ }, requestOptions).then((value) => value.data),
858
+ reply: (input, requestOptions) => request({
859
+ method: "POST",
860
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/form/${encodeURIComponent(input.formID)}/reply`,
861
+ body: { answer: input["answer"] },
862
+ successStatus: 204,
863
+ declaredStatuses: [400, 401, 404, 409],
864
+ empty: true,
865
+ }, requestOptions),
866
+ cancel: (input, requestOptions) => request({
867
+ method: "POST",
868
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/form/${encodeURIComponent(input.formID)}/cancel`,
869
+ successStatus: 204,
870
+ declaredStatuses: [400, 401, 404, 409],
871
+ empty: true,
872
+ }, requestOptions),
873
+ },
874
+ permission: {
875
+ request: {
876
+ list: (input, requestOptions) => request({
877
+ method: "GET",
878
+ path: `/api/permission/request`,
879
+ query: { location: input?.["location"] },
880
+ successStatus: 200,
881
+ declaredStatuses: [400, 401],
882
+ empty: false,
883
+ }, requestOptions),
884
+ },
885
+ saved: {
886
+ list: (input, requestOptions) => request({
887
+ method: "GET",
888
+ path: `/api/permission/saved`,
889
+ query: { projectID: input?.["projectID"] },
890
+ successStatus: 200,
891
+ declaredStatuses: [400, 401],
892
+ empty: false,
893
+ }, requestOptions).then((value) => value.data),
894
+ remove: (input, requestOptions) => request({
895
+ method: "DELETE",
896
+ path: `/api/permission/saved/${encodeURIComponent(input.id)}`,
897
+ successStatus: 204,
898
+ declaredStatuses: [400, 401],
899
+ empty: true,
900
+ }, requestOptions),
901
+ },
902
+ create: (input, requestOptions) => request({
903
+ method: "POST",
904
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/permission`,
905
+ body: {
906
+ id: input["id"],
907
+ action: input["action"],
908
+ resources: input["resources"],
909
+ save: input["save"],
910
+ metadata: input["metadata"],
911
+ source: input["source"],
912
+ agent: input["agent"],
913
+ },
914
+ successStatus: 200,
915
+ declaredStatuses: [400, 401, 404],
916
+ empty: false,
917
+ }, requestOptions).then((value) => value.data),
918
+ list: (input, requestOptions) => request({
919
+ method: "GET",
920
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/permission`,
921
+ successStatus: 200,
922
+ declaredStatuses: [400, 401, 404],
923
+ empty: false,
924
+ }, requestOptions).then((value) => value.data),
925
+ get: (input, requestOptions) => request({
926
+ method: "GET",
927
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/permission/${encodeURIComponent(input.requestID)}`,
928
+ successStatus: 200,
929
+ declaredStatuses: [400, 401, 404],
930
+ empty: false,
931
+ }, requestOptions).then((value) => value.data),
932
+ reply: (input, requestOptions) => request({
933
+ method: "POST",
934
+ path: `/api/session/${encodeURIComponent(input.sessionID)}/permission/${encodeURIComponent(input.requestID)}/reply`,
935
+ body: { reply: input["reply"], message: input["message"] },
936
+ successStatus: 204,
937
+ declaredStatuses: [400, 401, 404],
938
+ empty: true,
939
+ }, requestOptions),
940
+ },
941
+ file: {
942
+ read: (input, requestOptions) => request({
943
+ method: "GET",
944
+ path: `/api/fs/read/${encodePath(input.path)}`,
945
+ query: { location: input["location"] },
946
+ successStatus: 200,
947
+ declaredStatuses: [400, 401],
948
+ empty: false,
949
+ binary: true,
950
+ }, requestOptions),
951
+ list: (input, requestOptions) => request({
952
+ method: "GET",
953
+ path: `/api/fs/list`,
954
+ query: { location: input?.["location"], path: input?.["path"] },
955
+ successStatus: 200,
956
+ declaredStatuses: [400, 401],
957
+ empty: false,
958
+ }, requestOptions),
959
+ find: (input, requestOptions) => request({
960
+ method: "GET",
961
+ path: `/api/fs/find`,
962
+ query: { location: input["location"], query: input["query"], type: input["type"], limit: input["limit"] },
963
+ successStatus: 200,
964
+ declaredStatuses: [400, 401],
965
+ empty: false,
966
+ }, requestOptions),
967
+ },
968
+ command: {
969
+ list: (input, requestOptions) => request({
970
+ method: "GET",
971
+ path: `/api/command`,
972
+ query: { location: input?.["location"] },
973
+ successStatus: 200,
974
+ declaredStatuses: [400, 401],
975
+ empty: false,
976
+ }, requestOptions),
977
+ },
978
+ skill: {
979
+ list: (input, requestOptions) => request({
980
+ method: "GET",
981
+ path: `/api/skill`,
982
+ query: { location: input?.["location"] },
983
+ successStatus: 200,
984
+ declaredStatuses: [400, 401],
985
+ empty: false,
986
+ }, requestOptions),
987
+ },
988
+ rpc: {
989
+ call: (input, requestOptions) => request({
990
+ method: "POST",
991
+ path: `/api/rpc/${encodeURIComponent(input.rpcID)}/${encodeURIComponent(input.method)}`,
992
+ query: { location: input["location"] },
993
+ body: { input: input["input"] },
994
+ successStatus: 200,
995
+ declaredStatuses: [400, 401, 500],
996
+ empty: false,
997
+ }, requestOptions),
998
+ },
999
+ event: {
1000
+ subscribe: (requestOptions) => sse({ method: "GET", path: `/api/event`, successStatus: 200, declaredStatuses: [400, 401], empty: false }, requestOptions),
1001
+ },
1002
+ pty: {
1003
+ list: (input, requestOptions) => request({
1004
+ method: "GET",
1005
+ path: `/api/pty`,
1006
+ query: { location: input?.["location"] },
1007
+ successStatus: 200,
1008
+ declaredStatuses: [400, 401],
1009
+ empty: false,
1010
+ }, requestOptions),
1011
+ create: (input, requestOptions) => request({
1012
+ method: "POST",
1013
+ path: `/api/pty`,
1014
+ query: { location: input?.["location"] },
1015
+ body: {
1016
+ command: input?.["command"],
1017
+ args: input?.["args"],
1018
+ cwd: input?.["cwd"],
1019
+ title: input?.["title"],
1020
+ env: input?.["env"],
1021
+ },
1022
+ successStatus: 200,
1023
+ declaredStatuses: [400, 401],
1024
+ empty: false,
1025
+ }, requestOptions),
1026
+ get: (input, requestOptions) => request({
1027
+ method: "GET",
1028
+ path: `/api/pty/${encodeURIComponent(input.ptyID)}`,
1029
+ query: { location: input["location"] },
1030
+ successStatus: 200,
1031
+ declaredStatuses: [400, 401, 404],
1032
+ empty: false,
1033
+ }, requestOptions),
1034
+ update: (input, requestOptions) => request({
1035
+ method: "PUT",
1036
+ path: `/api/pty/${encodeURIComponent(input.ptyID)}`,
1037
+ query: { location: input["location"] },
1038
+ body: { title: input["title"], size: input["size"] },
1039
+ successStatus: 200,
1040
+ declaredStatuses: [400, 401, 404],
1041
+ empty: false,
1042
+ }, requestOptions),
1043
+ remove: (input, requestOptions) => request({
1044
+ method: "DELETE",
1045
+ path: `/api/pty/${encodeURIComponent(input.ptyID)}`,
1046
+ query: { location: input["location"] },
1047
+ successStatus: 204,
1048
+ declaredStatuses: [400, 401, 404],
1049
+ empty: true,
1050
+ }, requestOptions),
1051
+ connect: {
1052
+ token: (input, requestOptions) => request({
1053
+ method: "POST",
1054
+ path: `/api/pty/${encodeURIComponent(input.ptyID)}/connect-token`,
1055
+ query: { location: input["location"] },
1056
+ headers: { "x-opencode-ticket": input["x-opencode-ticket"] },
1057
+ successStatus: 200,
1058
+ declaredStatuses: [400, 401, 403, 404],
1059
+ empty: false,
1060
+ }, requestOptions),
1061
+ },
1062
+ },
1063
+ experimental: {
1064
+ persistentPty: {
1065
+ read: (input, requestOptions) => request({
1066
+ method: "GET",
1067
+ path: `/api/experimental/session/${encodeURIComponent(input.sessionID)}/terminal/read`,
1068
+ query: { lines: input["lines"] },
1069
+ successStatus: 200,
1070
+ declaredStatuses: [400, 401, 503],
1071
+ empty: false,
1072
+ }, requestOptions).then((value) => value.data),
1073
+ list: (input, requestOptions) => request({
1074
+ method: "GET",
1075
+ path: `/api/experimental/session/${encodeURIComponent(input.sessionID)}/terminal`,
1076
+ successStatus: 200,
1077
+ declaredStatuses: [400, 401, 503],
1078
+ empty: false,
1079
+ }, requestOptions).then((value) => value.data),
1080
+ create: (input, requestOptions) => request({
1081
+ method: "POST",
1082
+ path: `/api/experimental/session/${encodeURIComponent(input.sessionID)}/terminal`,
1083
+ body: {
1084
+ command: input["command"],
1085
+ args: input["args"],
1086
+ cwd: input["cwd"],
1087
+ title: input["title"],
1088
+ env: input["env"],
1089
+ size: input["size"],
1090
+ },
1091
+ successStatus: 200,
1092
+ declaredStatuses: [400, 401, 503],
1093
+ empty: false,
1094
+ }, requestOptions).then((value) => value.data),
1095
+ shutdown: (requestOptions) => request({
1096
+ method: "POST",
1097
+ path: `/api/experimental/persistent-pty/shutdown`,
1098
+ successStatus: 204,
1099
+ declaredStatuses: [400, 401, 503],
1100
+ empty: true,
1101
+ }, requestOptions),
1102
+ handoff: (requestOptions) => request({
1103
+ method: "POST",
1104
+ path: `/api/experimental/persistent-pty/handoff`,
1105
+ successStatus: 200,
1106
+ declaredStatuses: [400, 401, 503],
1107
+ empty: false,
1108
+ }, requestOptions),
1109
+ get: (input, requestOptions) => request({
1110
+ method: "GET",
1111
+ path: `/api/experimental/persistent-pty/${encodeURIComponent(input.ptyID)}`,
1112
+ successStatus: 200,
1113
+ declaredStatuses: [400, 401, 404, 503],
1114
+ empty: false,
1115
+ }, requestOptions).then((value) => value.data),
1116
+ update: (input, requestOptions) => request({
1117
+ method: "PUT",
1118
+ path: `/api/experimental/persistent-pty/${encodeURIComponent(input.ptyID)}`,
1119
+ body: { attachmentID: input["attachmentID"], size: input["size"] },
1120
+ successStatus: 200,
1121
+ declaredStatuses: [400, 401, 404, 503],
1122
+ empty: false,
1123
+ }, requestOptions).then((value) => value.data),
1124
+ snapshot: (input, requestOptions) => request({
1125
+ method: "GET",
1126
+ path: `/api/experimental/persistent-pty/${encodeURIComponent(input.ptyID)}/snapshot`,
1127
+ successStatus: 200,
1128
+ declaredStatuses: [400, 401, 404, 503],
1129
+ empty: false,
1130
+ }, requestOptions).then((value) => value.data),
1131
+ remove: (input, requestOptions) => request({
1132
+ method: "DELETE",
1133
+ path: `/api/experimental/persistent-pty/${encodeURIComponent(input.ptyID)}`,
1134
+ successStatus: 204,
1135
+ declaredStatuses: [400, 401, 404, 503],
1136
+ empty: true,
1137
+ }, requestOptions),
1138
+ connectToken: (input, requestOptions) => request({
1139
+ method: "POST",
1140
+ path: `/api/experimental/persistent-pty/${encodeURIComponent(input.ptyID)}/connect-token`,
1141
+ headers: { "x-opencode-ticket": input["x-opencode-ticket"] },
1142
+ successStatus: 200,
1143
+ declaredStatuses: [400, 401, 403, 404, 503],
1144
+ empty: false,
1145
+ }, requestOptions).then((value) => value.data),
1146
+ },
1147
+ },
1148
+ shell: {
1149
+ list: (input, requestOptions) => request({
1150
+ method: "GET",
1151
+ path: `/api/shell`,
1152
+ query: { location: input?.["location"] },
1153
+ successStatus: 200,
1154
+ declaredStatuses: [400, 401],
1155
+ empty: false,
1156
+ }, requestOptions),
1157
+ create: (input, requestOptions) => request({
1158
+ method: "POST",
1159
+ path: `/api/shell`,
1160
+ query: { location: input["location"] },
1161
+ body: {
1162
+ command: input["command"],
1163
+ cwd: input["cwd"],
1164
+ timeout: input["timeout"],
1165
+ metadata: input["metadata"],
1166
+ },
1167
+ successStatus: 200,
1168
+ declaredStatuses: [400, 401],
1169
+ empty: false,
1170
+ }, requestOptions),
1171
+ get: (input, requestOptions) => request({
1172
+ method: "GET",
1173
+ path: `/api/shell/${encodeURIComponent(input.id)}`,
1174
+ query: { location: input["location"] },
1175
+ successStatus: 200,
1176
+ declaredStatuses: [400, 401, 404],
1177
+ empty: false,
1178
+ }, requestOptions),
1179
+ timeout: (input, requestOptions) => request({
1180
+ method: "PATCH",
1181
+ path: `/api/shell/${encodeURIComponent(input.id)}/timeout`,
1182
+ query: { location: input["location"] },
1183
+ body: { timeout: input["timeout"] },
1184
+ successStatus: 200,
1185
+ declaredStatuses: [400, 401, 404],
1186
+ empty: false,
1187
+ }, requestOptions),
1188
+ output: (input, requestOptions) => request({
1189
+ method: "GET",
1190
+ path: `/api/shell/${encodeURIComponent(input.id)}/output`,
1191
+ query: { location: input["location"], cursor: input["cursor"], limit: input["limit"] },
1192
+ successStatus: 200,
1193
+ declaredStatuses: [400, 401, 404],
1194
+ empty: false,
1195
+ }, requestOptions),
1196
+ remove: (input, requestOptions) => request({
1197
+ method: "DELETE",
1198
+ path: `/api/shell/${encodeURIComponent(input.id)}`,
1199
+ query: { location: input["location"] },
1200
+ successStatus: 204,
1201
+ declaredStatuses: [400, 401, 404],
1202
+ empty: true,
1203
+ }, requestOptions),
1204
+ },
1205
+ reference: {
1206
+ list: (input, requestOptions) => request({
1207
+ method: "GET",
1208
+ path: `/api/reference`,
1209
+ query: { location: input?.["location"] },
1210
+ successStatus: 200,
1211
+ declaredStatuses: [400, 401],
1212
+ empty: false,
1213
+ }, requestOptions),
1214
+ },
1215
+ worktree: {
1216
+ list: (input, requestOptions) => request({
1217
+ method: "GET",
1218
+ path: `/api/worktree`,
1219
+ query: { location: input?.["location"] },
1220
+ successStatus: 200,
1221
+ declaredStatuses: [400, 401],
1222
+ empty: false,
1223
+ }, requestOptions),
1224
+ create: (input, requestOptions) => request({
1225
+ method: "POST",
1226
+ path: `/api/worktree`,
1227
+ query: { location: input?.["location"] },
1228
+ body: {
1229
+ strategy: input?.["strategy"],
1230
+ from: input?.["from"],
1231
+ branch: input?.["branch"],
1232
+ directory: input?.["directory"],
1233
+ name: input?.["name"],
1234
+ },
1235
+ successStatus: 200,
1236
+ declaredStatuses: [400, 401],
1237
+ empty: false,
1238
+ }, requestOptions),
1239
+ remove: (input, requestOptions) => request({
1240
+ method: "DELETE",
1241
+ path: `/api/worktree`,
1242
+ query: { location: input["location"] },
1243
+ body: { directory: input["directory"], force: input["force"] },
1244
+ successStatus: 204,
1245
+ declaredStatuses: [400, 401],
1246
+ empty: true,
1247
+ }, requestOptions),
1248
+ refresh: (input, requestOptions) => request({
1249
+ method: "POST",
1250
+ path: `/api/worktree/refresh`,
1251
+ query: { location: input?.["location"] },
1252
+ successStatus: 204,
1253
+ declaredStatuses: [400, 401],
1254
+ empty: true,
1255
+ }, requestOptions),
1256
+ },
1257
+ workspace: {
1258
+ create: (input, requestOptions) => request({
1259
+ method: "POST",
1260
+ path: `/api/workspace`,
1261
+ body: { id: input["id"], provider: input["provider"] },
1262
+ successStatus: 200,
1263
+ declaredStatuses: [400, 401, 404, 409],
1264
+ empty: false,
1265
+ }, requestOptions).then((value) => value.data),
1266
+ destroy: (input, requestOptions) => request({
1267
+ method: "DELETE",
1268
+ path: `/api/workspace/${encodeURIComponent(input.workspaceID)}`,
1269
+ successStatus: 200,
1270
+ declaredStatuses: [400, 401, 500],
1271
+ empty: false,
1272
+ }, requestOptions),
1273
+ },
1274
+ vcs: {
1275
+ get: (input, requestOptions) => request({
1276
+ method: "GET",
1277
+ path: `/api/vcs`,
1278
+ query: { location: input?.["location"] },
1279
+ successStatus: 200,
1280
+ declaredStatuses: [400, 401],
1281
+ empty: false,
1282
+ }, requestOptions),
1283
+ base: (input, requestOptions) => request({
1284
+ method: "GET",
1285
+ path: `/api/vcs/base`,
1286
+ query: { location: input?.["location"] },
1287
+ successStatus: 200,
1288
+ declaredStatuses: [400, 401, 503],
1289
+ empty: false,
1290
+ }, requestOptions),
1291
+ status: (input, requestOptions) => request({
1292
+ method: "GET",
1293
+ path: `/api/vcs/status`,
1294
+ query: { location: input?.["location"] },
1295
+ successStatus: 200,
1296
+ declaredStatuses: [400, 401],
1297
+ empty: false,
1298
+ }, requestOptions),
1299
+ branches: (input, requestOptions) => request({
1300
+ method: "GET",
1301
+ path: `/api/vcs/branches`,
1302
+ query: { location: input?.["location"], search: input?.["search"], limit: input?.["limit"] },
1303
+ successStatus: 200,
1304
+ declaredStatuses: [400, 401],
1305
+ empty: false,
1306
+ }, requestOptions),
1307
+ diff: (input, requestOptions) => request({
1308
+ method: "GET",
1309
+ path: `/api/vcs/diff`,
1310
+ query: { location: input["location"], mode: input["mode"], base: input["base"], context: input["context"] },
1311
+ successStatus: 200,
1312
+ declaredStatuses: [400, 401, 503],
1313
+ empty: false,
1314
+ }, requestOptions),
1315
+ },
1316
+ debug: {
1317
+ location: {
1318
+ list: (requestOptions) => request({
1319
+ method: "GET",
1320
+ path: `/api/debug/location`,
1321
+ successStatus: 200,
1322
+ declaredStatuses: [400, 401],
1323
+ empty: false,
1324
+ }, requestOptions),
1325
+ evict: (input, requestOptions) => request({
1326
+ method: "DELETE",
1327
+ path: `/api/debug/location`,
1328
+ query: { location: input?.["location"] },
1329
+ successStatus: 204,
1330
+ declaredStatuses: [400, 401],
1331
+ empty: true,
1332
+ }, requestOptions),
1333
+ },
1334
+ },
1335
+ migration: {
1336
+ v1: {
1337
+ status: (requestOptions) => request({
1338
+ method: "GET",
1339
+ path: `/api/experimental/migration/v1`,
1340
+ successStatus: 200,
1341
+ declaredStatuses: [400, 401],
1342
+ empty: false,
1343
+ }, requestOptions),
1344
+ },
1345
+ },
1346
+ websearch: {
1347
+ providers: (input, requestOptions) => request({
1348
+ method: "GET",
1349
+ path: `/api/websearch/provider`,
1350
+ query: { location: input?.["location"] },
1351
+ successStatus: 200,
1352
+ declaredStatuses: [400, 401, 503],
1353
+ empty: false,
1354
+ }, requestOptions),
1355
+ query: (input, requestOptions) => request({
1356
+ method: "POST",
1357
+ path: `/api/websearch`,
1358
+ query: { location: input["location"] },
1359
+ body: { query: input["query"], providerID: input["providerID"] },
1360
+ successStatus: 200,
1361
+ declaredStatuses: [400, 401, 503],
1362
+ empty: false,
1363
+ }, requestOptions),
1364
+ },
1365
+ config: {
1366
+ get: (input, requestOptions) => request({
1367
+ method: "GET",
1368
+ path: `/api/config`,
1369
+ query: { location: input?.["location"] },
1370
+ successStatus: 200,
1371
+ declaredStatuses: [400, 401],
1372
+ empty: false,
1373
+ }, requestOptions),
1374
+ },
1375
+ };
1376
+ }
1377
+ function encodePath(value) {
1378
+ return value.split("/").map(encodeURIComponent).join("/");
1379
+ }
1380
+ function appendQuery(params, key, value) {
1381
+ if (value === undefined)
1382
+ return;
1383
+ if (value === null) {
1384
+ params.append(key, "null");
1385
+ return;
1386
+ }
1387
+ if (Array.isArray(value)) {
1388
+ for (const item of value)
1389
+ appendQuery(params, key, item);
1390
+ return;
1391
+ }
1392
+ if (typeof value === "object") {
1393
+ for (const [child, item] of Object.entries(value))
1394
+ appendQuery(params, `${key}[${child}]`, item);
1395
+ return;
1396
+ }
1397
+ params.append(key, String(value));
1398
+ }
1399
+ async function json(response) {
1400
+ if (!isContentType(response, "application/json") && !response.headers.get("content-type")?.includes("+json")) {
1401
+ try {
1402
+ await response.body?.cancel();
1403
+ }
1404
+ catch { }
1405
+ throw new ClientError("UnsupportedContentType");
1406
+ }
1407
+ let text;
1408
+ try {
1409
+ text = await response.text();
1410
+ }
1411
+ catch (cause) {
1412
+ throw new ClientError("Transport", { cause });
1413
+ }
1414
+ if (text === "")
1415
+ throw new ClientError("MalformedResponse");
1416
+ try {
1417
+ return JSON.parse(text);
1418
+ }
1419
+ catch (cause) {
1420
+ throw new ClientError("MalformedResponse", { cause });
1421
+ }
1422
+ }
1423
+ function isContentType(response, expected) {
1424
+ return response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase() === expected;
1425
+ }