@opencode/client 0.0.0-reserved → 2.0.0

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