@nikcli-ai/sdk 1.160.0 → 1.162.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.
@@ -0,0 +1,1276 @@
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.text)
51
+ return (await response.text());
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
+ buffer += decoder.decode(next.value, { stream: !next.done });
88
+ if (buffer.length > maxSseEventBytes)
89
+ throw new ClientError("SseEventTooLarge");
90
+ const trailingCarriageReturn = !next.done && buffer.endsWith("\r");
91
+ if (trailingCarriageReturn)
92
+ buffer = buffer.slice(0, -1);
93
+ buffer = buffer.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
94
+ if (trailingCarriageReturn)
95
+ buffer += "\r";
96
+ if (next.done && buffer !== "")
97
+ buffer += "\n\n";
98
+ let boundary = buffer.indexOf("\n\n");
99
+ while (boundary >= 0) {
100
+ const block = buffer.slice(0, boundary);
101
+ buffer = buffer.slice(boundary + 2);
102
+ const data = block
103
+ .split("\n")
104
+ .flatMap((line) => (line.startsWith("data:") ? [line.slice(5).trimStart()] : []))
105
+ .join("\n");
106
+ if (data !== "") {
107
+ try {
108
+ yield JSON.parse(data);
109
+ }
110
+ catch (cause) {
111
+ throw new ClientError("MalformedResponse", { cause });
112
+ }
113
+ }
114
+ boundary = buffer.indexOf("\n\n");
115
+ }
116
+ if (next.done)
117
+ return;
118
+ }
119
+ }
120
+ finally {
121
+ try {
122
+ await reader.cancel();
123
+ }
124
+ catch { }
125
+ reader.releaseLock();
126
+ }
127
+ },
128
+ });
129
+ return {
130
+ "top-level": {
131
+ dispose: (requestOptions) => request({ method: "POST", path: `/instance/dispose`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
132
+ path: (requestOptions) => request({ method: "GET", path: `/path`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
133
+ vcs: (requestOptions) => request({ method: "GET", path: `/vcs`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
134
+ vcsStatus: (requestOptions) => request({ method: "GET", path: `/vcs/status`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
135
+ vcsDiffRaw: (requestOptions) => request({ method: "GET", path: `/vcs/diff/raw`, successStatus: 200, declaredStatuses: [], empty: false, text: true }, requestOptions),
136
+ vcsApply: (input, requestOptions) => request({
137
+ method: "POST",
138
+ path: `/vcs/apply`,
139
+ body: { patch: input["patch"] },
140
+ successStatus: 200,
141
+ declaredStatuses: [400],
142
+ empty: false,
143
+ }, requestOptions),
144
+ command: (requestOptions) => request({ method: "GET", path: `/command`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
145
+ agent: (requestOptions) => request({ method: "GET", path: `/agent`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
146
+ skill: (requestOptions) => request({ method: "GET", path: `/skill`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
147
+ lsp: (requestOptions) => request({ method: "GET", path: `/lsp`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
148
+ formatter: (requestOptions) => request({ method: "GET", path: `/formatter`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
149
+ },
150
+ analytics: {
151
+ global: (requestOptions) => request({ method: "GET", path: `/analytics/global`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
152
+ daily: (input, requestOptions) => request({
153
+ method: "GET",
154
+ path: `/analytics/daily`,
155
+ query: { from: input?.["from"], to: input?.["to"], days: input?.["days"] },
156
+ successStatus: 200,
157
+ declaredStatuses: [],
158
+ empty: false,
159
+ }, requestOptions),
160
+ session: (input, requestOptions) => request({
161
+ method: "GET",
162
+ path: `/analytics/session/${encodeURIComponent(input.sessionID)}`,
163
+ successStatus: 200,
164
+ declaredStatuses: [404],
165
+ empty: false,
166
+ }, requestOptions),
167
+ sessions: (requestOptions) => request({ method: "GET", path: `/analytics/sessions`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
168
+ leaderboard: (requestOptions) => request({ method: "GET", path: `/analytics/leaderboard`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
169
+ },
170
+ app: {
171
+ log: (input, requestOptions) => request({
172
+ method: "POST",
173
+ path: `/log`,
174
+ body: {
175
+ service: input["service"],
176
+ level: input["level"],
177
+ message: input["message"],
178
+ extra: input["extra"],
179
+ },
180
+ successStatus: 200,
181
+ declaredStatuses: [],
182
+ empty: false,
183
+ }, requestOptions),
184
+ skillCreate: (input, requestOptions) => request({
185
+ method: "POST",
186
+ path: `/skill`,
187
+ body: {
188
+ name: input["name"],
189
+ description: input["description"],
190
+ category: input["category"],
191
+ tags: input["tags"],
192
+ content: input["content"],
193
+ scope: input["scope"],
194
+ },
195
+ successStatus: 200,
196
+ declaredStatuses: [],
197
+ empty: false,
198
+ }, requestOptions),
199
+ skillDelete: (input, requestOptions) => request({
200
+ method: "DELETE",
201
+ path: `/skill/${encodeURIComponent(input.name)}`,
202
+ successStatus: 200,
203
+ declaredStatuses: [],
204
+ empty: false,
205
+ }, requestOptions),
206
+ },
207
+ brain: {
208
+ status: (requestOptions) => request({ method: "GET", path: `/brain`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
209
+ trigger: (input, requestOptions) => request({
210
+ method: "POST",
211
+ path: `/brain/trigger`,
212
+ body: { force: input?.["force"] },
213
+ successStatus: 200,
214
+ declaredStatuses: [],
215
+ empty: false,
216
+ }, requestOptions),
217
+ },
218
+ config: {
219
+ get: (requestOptions) => request({ method: "GET", path: `/config`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
220
+ update: (input, requestOptions) => request({
221
+ method: "PATCH",
222
+ path: `/config`,
223
+ body: input["payload"],
224
+ successStatus: 200,
225
+ declaredStatuses: [400],
226
+ empty: false,
227
+ }, requestOptions),
228
+ providers: (requestOptions) => request({ method: "GET", path: `/config/providers`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
229
+ },
230
+ connectors: {
231
+ status: (requestOptions) => request({ method: "GET", path: `/connectors`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
232
+ authSet: (input, requestOptions) => request({
233
+ method: "POST",
234
+ path: `/connectors/${encodeURIComponent(input.name)}/auth`,
235
+ body: input["payload"],
236
+ successStatus: 200,
237
+ declaredStatuses: [400],
238
+ empty: false,
239
+ }, requestOptions),
240
+ authRemove: (input, requestOptions) => request({
241
+ method: "DELETE",
242
+ path: `/connectors/${encodeURIComponent(input.name)}/auth`,
243
+ successStatus: 200,
244
+ declaredStatuses: [],
245
+ empty: false,
246
+ }, requestOptions),
247
+ invalidate: (input, requestOptions) => request({
248
+ method: "POST",
249
+ path: `/connectors/invalidate`,
250
+ body: { name: input?.["name"] },
251
+ successStatus: 200,
252
+ declaredStatuses: [],
253
+ empty: false,
254
+ }, requestOptions),
255
+ },
256
+ doctor: {
257
+ run: (requestOptions) => request({ method: "GET", path: `/doctor`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
258
+ },
259
+ experimental: {
260
+ toolIDs: (requestOptions) => request({ method: "GET", path: `/experimental/tool/ids`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
261
+ tools: (input, requestOptions) => request({
262
+ method: "GET",
263
+ path: `/experimental/tool`,
264
+ query: { provider: input["provider"], model: input["model"] },
265
+ successStatus: 200,
266
+ declaredStatuses: [],
267
+ empty: false,
268
+ }, requestOptions),
269
+ worktreeCreate: (input, requestOptions) => request({
270
+ method: "POST",
271
+ path: `/experimental/worktree`,
272
+ body: {
273
+ name: input?.["name"],
274
+ branch: input?.["branch"],
275
+ branchPrefix: input?.["branchPrefix"],
276
+ baseBranch: input?.["baseBranch"],
277
+ remote: input?.["remote"],
278
+ startCommand: input?.["startCommand"],
279
+ },
280
+ successStatus: 200,
281
+ declaredStatuses: [],
282
+ empty: false,
283
+ }, requestOptions),
284
+ worktree: (requestOptions) => request({ method: "GET", path: `/experimental/worktree`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
285
+ worktreeRemove: (input, requestOptions) => request({
286
+ method: "DELETE",
287
+ path: `/experimental/worktree`,
288
+ body: { directory: input["directory"] },
289
+ successStatus: 200,
290
+ declaredStatuses: [],
291
+ empty: false,
292
+ }, requestOptions),
293
+ worktreeReset: (input, requestOptions) => request({
294
+ method: "POST",
295
+ path: `/experimental/worktree/reset`,
296
+ body: { directory: input["directory"] },
297
+ successStatus: 200,
298
+ declaredStatuses: [],
299
+ empty: false,
300
+ }, requestOptions),
301
+ resource: (requestOptions) => request({ method: "GET", path: `/experimental/resource`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
302
+ managedWorktreeCreate: (input, requestOptions) => request({
303
+ method: "POST",
304
+ path: `/experimental/managed-worktree`,
305
+ body: { from: input["from"], name: input["name"], into: input["into"] },
306
+ successStatus: 200,
307
+ declaredStatuses: [],
308
+ empty: false,
309
+ }, requestOptions),
310
+ managedWorktreeRemove: (input, requestOptions) => request({
311
+ method: "DELETE",
312
+ path: `/experimental/managed-worktree`,
313
+ body: { at: input["at"] },
314
+ successStatus: 200,
315
+ declaredStatuses: [],
316
+ empty: false,
317
+ }, requestOptions),
318
+ managedWorktreeLink: (input, requestOptions) => request({
319
+ method: "POST",
320
+ path: `/experimental/managed-worktree/link`,
321
+ body: { at: input["at"], to: input["to"] },
322
+ successStatus: 200,
323
+ declaredStatuses: [],
324
+ empty: false,
325
+ }, requestOptions),
326
+ managedWorktreeChildren: (input, requestOptions) => request({
327
+ method: "GET",
328
+ path: `/experimental/managed-worktree/children`,
329
+ query: { of: input["of"] },
330
+ successStatus: 200,
331
+ declaredStatuses: [],
332
+ empty: false,
333
+ }, requestOptions),
334
+ managedWorktreeAncestors: (input, requestOptions) => request({
335
+ method: "GET",
336
+ path: `/experimental/managed-worktree/ancestors`,
337
+ query: { of: input["of"] },
338
+ successStatus: 200,
339
+ declaredStatuses: [],
340
+ empty: false,
341
+ }, requestOptions),
342
+ managedWorktreeList: (requestOptions) => request({
343
+ method: "GET",
344
+ path: `/experimental/managed-worktree`,
345
+ successStatus: 200,
346
+ declaredStatuses: [],
347
+ empty: false,
348
+ }, requestOptions),
349
+ },
350
+ file: {
351
+ findText: (input, requestOptions) => request({
352
+ method: "GET",
353
+ path: `/find`,
354
+ query: { pattern: input["pattern"] },
355
+ successStatus: 200,
356
+ declaredStatuses: [],
357
+ empty: false,
358
+ }, requestOptions),
359
+ findFile: (input, requestOptions) => request({
360
+ method: "GET",
361
+ path: `/find/file`,
362
+ query: { query: input["query"], dirs: input["dirs"], type: input["type"], limit: input["limit"] },
363
+ successStatus: 200,
364
+ declaredStatuses: [],
365
+ empty: false,
366
+ }, requestOptions),
367
+ findSymbol: (input, requestOptions) => request({
368
+ method: "GET",
369
+ path: `/find/symbol`,
370
+ query: { query: input["query"] },
371
+ successStatus: 200,
372
+ declaredStatuses: [],
373
+ empty: false,
374
+ }, requestOptions),
375
+ list: (input, requestOptions) => request({
376
+ method: "GET",
377
+ path: `/file`,
378
+ query: { path: input["path"] },
379
+ successStatus: 200,
380
+ declaredStatuses: [],
381
+ empty: false,
382
+ }, requestOptions),
383
+ content: (input, requestOptions) => request({
384
+ method: "GET",
385
+ path: `/file/content`,
386
+ query: { path: input["path"] },
387
+ successStatus: 200,
388
+ declaredStatuses: [],
389
+ empty: false,
390
+ }, requestOptions),
391
+ write: (input, requestOptions) => request({
392
+ method: "PUT",
393
+ path: `/file/content`,
394
+ body: { path: input["path"], content: input["content"] },
395
+ successStatus: 200,
396
+ declaredStatuses: [],
397
+ empty: false,
398
+ }, requestOptions),
399
+ status: (requestOptions) => request({ method: "GET", path: `/file/status`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
400
+ },
401
+ global: {
402
+ health: (requestOptions) => request({ method: "GET", path: `/global/health`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
403
+ dispose: (requestOptions) => request({ method: "POST", path: `/global/dispose`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
404
+ },
405
+ mcp: {
406
+ status: (requestOptions) => request({ method: "GET", path: `/mcp`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
407
+ add: (input, requestOptions) => request({
408
+ method: "POST",
409
+ path: `/mcp`,
410
+ body: { name: input["name"], config: input["config"] },
411
+ successStatus: 200,
412
+ declaredStatuses: [],
413
+ empty: false,
414
+ }, requestOptions),
415
+ startAuth: (input, requestOptions) => request({
416
+ method: "POST",
417
+ path: `/mcp/${encodeURIComponent(input.name)}/auth`,
418
+ successStatus: 200,
419
+ declaredStatuses: [400],
420
+ empty: false,
421
+ }, requestOptions),
422
+ authCallback: (input, requestOptions) => request({
423
+ method: "POST",
424
+ path: `/mcp/${encodeURIComponent(input.name)}/auth/callback`,
425
+ body: { code: input["code"] },
426
+ successStatus: 200,
427
+ declaredStatuses: [],
428
+ empty: false,
429
+ }, requestOptions),
430
+ authenticate: (input, requestOptions) => request({
431
+ method: "POST",
432
+ path: `/mcp/${encodeURIComponent(input.name)}/auth/authenticate`,
433
+ successStatus: 200,
434
+ declaredStatuses: [400],
435
+ empty: false,
436
+ }, requestOptions),
437
+ removeAuth: (input, requestOptions) => request({
438
+ method: "DELETE",
439
+ path: `/mcp/${encodeURIComponent(input.name)}/auth`,
440
+ successStatus: 200,
441
+ declaredStatuses: [],
442
+ empty: false,
443
+ }, requestOptions),
444
+ connect: (input, requestOptions) => request({
445
+ method: "POST",
446
+ path: `/mcp/${encodeURIComponent(input.name)}/connect`,
447
+ successStatus: 200,
448
+ declaredStatuses: [],
449
+ empty: false,
450
+ }, requestOptions),
451
+ disconnect: (input, requestOptions) => request({
452
+ method: "POST",
453
+ path: `/mcp/${encodeURIComponent(input.name)}/disconnect`,
454
+ successStatus: 200,
455
+ declaredStatuses: [],
456
+ empty: false,
457
+ }, requestOptions),
458
+ toggle: (input, requestOptions) => request({
459
+ method: "POST",
460
+ path: `/mcp/${encodeURIComponent(input.name)}/toggle`,
461
+ body: { enabled: input["enabled"] },
462
+ successStatus: 200,
463
+ declaredStatuses: [],
464
+ empty: false,
465
+ }, requestOptions),
466
+ },
467
+ mission: {
468
+ list: (requestOptions) => request({ method: "GET", path: `/mission`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
469
+ templates: (requestOptions) => request({ method: "GET", path: `/mission/templates`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
470
+ generate: (input, requestOptions) => request({
471
+ method: "POST",
472
+ path: `/mission/generate`,
473
+ body: { description: input["description"], model: input["model"], agent: input["agent"] },
474
+ successStatus: 200,
475
+ declaredStatuses: [400],
476
+ empty: false,
477
+ }, requestOptions),
478
+ recentExecs: (input, requestOptions) => request({
479
+ method: "GET",
480
+ path: `/mission/execs/recent`,
481
+ query: { limit: input?.["limit"] },
482
+ successStatus: 200,
483
+ declaredStatuses: [],
484
+ empty: false,
485
+ }, requestOptions),
486
+ get: (input, requestOptions) => request({
487
+ method: "GET",
488
+ path: `/mission/${encodeURIComponent(input.id)}`,
489
+ successStatus: 200,
490
+ declaredStatuses: [404],
491
+ empty: false,
492
+ }, requestOptions),
493
+ upsert: (input, requestOptions) => request({
494
+ method: "PUT",
495
+ path: `/mission`,
496
+ body: input["payload"],
497
+ successStatus: 200,
498
+ declaredStatuses: [400],
499
+ empty: false,
500
+ }, requestOptions),
501
+ update: (input, requestOptions) => request({
502
+ method: "POST",
503
+ path: `/mission/${encodeURIComponent(input.id)}`,
504
+ body: input["payload"],
505
+ successStatus: 200,
506
+ declaredStatuses: [404, 400],
507
+ empty: false,
508
+ }, requestOptions),
509
+ remove: (input, requestOptions) => request({
510
+ method: "DELETE",
511
+ path: `/mission/${encodeURIComponent(input.id)}`,
512
+ successStatus: 200,
513
+ declaredStatuses: [404],
514
+ empty: false,
515
+ }, requestOptions),
516
+ start: (input, requestOptions) => request({
517
+ method: "POST",
518
+ path: `/mission/${encodeURIComponent(input.id)}/start`,
519
+ successStatus: 200,
520
+ declaredStatuses: [404],
521
+ empty: false,
522
+ }, requestOptions),
523
+ pause: (input, requestOptions) => request({
524
+ method: "POST",
525
+ path: `/mission/${encodeURIComponent(input.id)}/pause`,
526
+ successStatus: 200,
527
+ declaredStatuses: [404],
528
+ empty: false,
529
+ }, requestOptions),
530
+ cancel: (input, requestOptions) => request({
531
+ method: "POST",
532
+ path: `/mission/${encodeURIComponent(input.id)}/cancel`,
533
+ successStatus: 200,
534
+ declaredStatuses: [404],
535
+ empty: false,
536
+ }, requestOptions),
537
+ featureMutate: (input, requestOptions) => request({
538
+ method: "POST",
539
+ path: `/mission/${encodeURIComponent(input.id)}/feature/${encodeURIComponent(input.featureID)}`,
540
+ body: { status: input["status"], error: input["error"], appendDependsOn: input["appendDependsOn"] },
541
+ successStatus: 200,
542
+ declaredStatuses: [404, 400],
543
+ empty: false,
544
+ }, requestOptions),
545
+ execs: (input, requestOptions) => request({
546
+ method: "GET",
547
+ path: `/mission/${encodeURIComponent(input.id)}/execs`,
548
+ query: { limit: input["limit"] },
549
+ successStatus: 200,
550
+ declaredStatuses: [],
551
+ empty: false,
552
+ }, requestOptions),
553
+ },
554
+ project: {
555
+ list: (requestOptions) => request({ method: "GET", path: `/project`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
556
+ current: (requestOptions) => request({ method: "GET", path: `/project/current`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
557
+ update: (input, requestOptions) => request({
558
+ method: "PATCH",
559
+ path: `/project/${encodeURIComponent(input.projectID)}`,
560
+ body: { name: input["name"], icon: input["icon"] },
561
+ successStatus: 200,
562
+ declaredStatuses: [],
563
+ empty: false,
564
+ }, requestOptions),
565
+ },
566
+ provider: {
567
+ list: (requestOptions) => request({ method: "GET", path: `/provider`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
568
+ auth: (requestOptions) => request({ method: "GET", path: `/provider/auth`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
569
+ api: (input, requestOptions) => request({
570
+ method: "POST",
571
+ path: `/provider/${encodeURIComponent(input.providerID)}/api`,
572
+ body: { key: input["key"] },
573
+ successStatus: 200,
574
+ declaredStatuses: [],
575
+ empty: false,
576
+ }, requestOptions),
577
+ removeAuth: (input, requestOptions) => request({
578
+ method: "DELETE",
579
+ path: `/provider/${encodeURIComponent(input.providerID)}/auth`,
580
+ successStatus: 200,
581
+ declaredStatuses: [],
582
+ empty: false,
583
+ }, requestOptions),
584
+ oauthAuthorize: (input, requestOptions) => request({
585
+ method: "POST",
586
+ path: `/provider/${encodeURIComponent(input.providerID)}/oauth/authorize`,
587
+ body: { method: input["method"] },
588
+ successStatus: 200,
589
+ declaredStatuses: [],
590
+ empty: false,
591
+ }, requestOptions),
592
+ oauthCallback: (input, requestOptions) => request({
593
+ method: "POST",
594
+ path: `/provider/${encodeURIComponent(input.providerID)}/oauth/callback`,
595
+ body: { method: input["method"], code: input["code"] },
596
+ successStatus: 200,
597
+ declaredStatuses: [],
598
+ empty: false,
599
+ }, requestOptions),
600
+ },
601
+ question: {
602
+ list: (requestOptions) => request({ method: "GET", path: `/question`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
603
+ reply: (input, requestOptions) => request({
604
+ method: "POST",
605
+ path: `/question/${encodeURIComponent(input.requestID)}/reply`,
606
+ body: { answers: input["answers"] },
607
+ successStatus: 200,
608
+ declaredStatuses: [],
609
+ empty: false,
610
+ }, requestOptions),
611
+ reject: (input, requestOptions) => request({
612
+ method: "POST",
613
+ path: `/question/${encodeURIComponent(input.requestID)}/reject`,
614
+ successStatus: 200,
615
+ declaredStatuses: [],
616
+ empty: false,
617
+ }, requestOptions),
618
+ },
619
+ permission: {
620
+ list: (requestOptions) => request({ method: "GET", path: `/permission`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
621
+ reply: (input, requestOptions) => request({
622
+ method: "POST",
623
+ path: `/permission/${encodeURIComponent(input.requestID)}/reply`,
624
+ body: { reply: input["reply"], message: input["message"] },
625
+ successStatus: 200,
626
+ declaredStatuses: [],
627
+ empty: false,
628
+ }, requestOptions),
629
+ },
630
+ pty: {
631
+ list: (requestOptions) => request({ method: "GET", path: `/pty`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
632
+ create: (input, requestOptions) => request({
633
+ method: "POST",
634
+ path: `/pty`,
635
+ body: {
636
+ command: input?.["command"],
637
+ args: input?.["args"],
638
+ cwd: input?.["cwd"],
639
+ title: input?.["title"],
640
+ env: input?.["env"],
641
+ },
642
+ successStatus: 200,
643
+ declaredStatuses: [400],
644
+ empty: false,
645
+ }, requestOptions),
646
+ get: (input, requestOptions) => request({
647
+ method: "GET",
648
+ path: `/pty/${encodeURIComponent(input.ptyID)}`,
649
+ successStatus: 200,
650
+ declaredStatuses: [404],
651
+ empty: false,
652
+ }, requestOptions),
653
+ update: (input, requestOptions) => request({
654
+ method: "PUT",
655
+ path: `/pty/${encodeURIComponent(input.ptyID)}`,
656
+ body: { title: input["title"], size: input["size"] },
657
+ successStatus: 200,
658
+ declaredStatuses: [404],
659
+ empty: false,
660
+ }, requestOptions),
661
+ remove: (input, requestOptions) => request({
662
+ method: "DELETE",
663
+ path: `/pty/${encodeURIComponent(input.ptyID)}`,
664
+ successStatus: 200,
665
+ declaredStatuses: [],
666
+ empty: false,
667
+ }, requestOptions),
668
+ },
669
+ loop: {
670
+ list: (requestOptions) => request({ method: "GET", path: `/loop`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
671
+ templates: (requestOptions) => request({ method: "GET", path: `/loop/templates`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
672
+ generate: (input, requestOptions) => request({
673
+ method: "POST",
674
+ path: `/loop/generate`,
675
+ body: { description: input["description"], model: input["model"], agent: input["agent"] },
676
+ successStatus: 200,
677
+ declaredStatuses: [400],
678
+ empty: false,
679
+ }, requestOptions),
680
+ recentRuns: (input, requestOptions) => request({
681
+ method: "GET",
682
+ path: `/loop/runs/recent`,
683
+ query: { limit: input?.["limit"] },
684
+ successStatus: 200,
685
+ declaredStatuses: [],
686
+ empty: false,
687
+ }, requestOptions),
688
+ get: (input, requestOptions) => request({
689
+ method: "GET",
690
+ path: `/loop/${encodeURIComponent(input.id)}`,
691
+ successStatus: 200,
692
+ declaredStatuses: [404],
693
+ empty: false,
694
+ }, requestOptions),
695
+ upsert: (input, requestOptions) => request({
696
+ method: "PUT",
697
+ path: `/loop`,
698
+ body: input["payload"],
699
+ successStatus: 200,
700
+ declaredStatuses: [400],
701
+ empty: false,
702
+ }, requestOptions),
703
+ update: (input, requestOptions) => request({
704
+ method: "POST",
705
+ path: `/loop/${encodeURIComponent(input.id)}`,
706
+ body: input["payload"],
707
+ successStatus: 200,
708
+ declaredStatuses: [404, 400],
709
+ empty: false,
710
+ }, requestOptions),
711
+ remove: (input, requestOptions) => request({
712
+ method: "DELETE",
713
+ path: `/loop/${encodeURIComponent(input.id)}`,
714
+ successStatus: 200,
715
+ declaredStatuses: [404],
716
+ empty: false,
717
+ }, requestOptions),
718
+ toggle: (input, requestOptions) => request({
719
+ method: "POST",
720
+ path: `/loop/${encodeURIComponent(input.id)}/toggle`,
721
+ body: { enabled: input["enabled"] },
722
+ successStatus: 200,
723
+ declaredStatuses: [404],
724
+ empty: false,
725
+ }, requestOptions),
726
+ run: (input, requestOptions) => request({
727
+ method: "POST",
728
+ path: `/loop/${encodeURIComponent(input.id)}/run`,
729
+ successStatus: 200,
730
+ declaredStatuses: [404],
731
+ empty: false,
732
+ }, requestOptions),
733
+ abort: (input, requestOptions) => request({
734
+ method: "POST",
735
+ path: `/loop/${encodeURIComponent(input.id)}/abort`,
736
+ successStatus: 200,
737
+ declaredStatuses: [404],
738
+ empty: false,
739
+ }, requestOptions),
740
+ pause: (input, requestOptions) => request({
741
+ method: "POST",
742
+ path: `/loop/${encodeURIComponent(input.id)}/pause`,
743
+ successStatus: 200,
744
+ declaredStatuses: [404],
745
+ empty: false,
746
+ }, requestOptions),
747
+ resume: (input, requestOptions) => request({
748
+ method: "POST",
749
+ path: `/loop/${encodeURIComponent(input.id)}/resume`,
750
+ successStatus: 200,
751
+ declaredStatuses: [404],
752
+ empty: false,
753
+ }, requestOptions),
754
+ runs: (input, requestOptions) => request({
755
+ method: "GET",
756
+ path: `/loop/${encodeURIComponent(input.id)}/runs`,
757
+ query: { limit: input["limit"] },
758
+ successStatus: 200,
759
+ declaredStatuses: [],
760
+ empty: false,
761
+ }, requestOptions),
762
+ },
763
+ session: {
764
+ list: (input, requestOptions) => request({
765
+ method: "GET",
766
+ path: `/session`,
767
+ query: {
768
+ directory: input?.["directory"],
769
+ roots: input?.["roots"],
770
+ start: input?.["start"],
771
+ search: input?.["search"],
772
+ limit: input?.["limit"],
773
+ },
774
+ successStatus: 200,
775
+ declaredStatuses: [],
776
+ empty: false,
777
+ }, requestOptions),
778
+ create: (input, requestOptions) => request({
779
+ method: "POST",
780
+ path: `/session`,
781
+ body: {
782
+ parentID: input?.["parentID"],
783
+ title: input?.["title"],
784
+ permission: input?.["permission"],
785
+ skills: input?.["skills"],
786
+ github: input?.["github"],
787
+ workspaceID: input?.["workspaceID"],
788
+ },
789
+ successStatus: 200,
790
+ declaredStatuses: [],
791
+ empty: false,
792
+ }, requestOptions),
793
+ status: (requestOptions) => request({ method: "GET", path: `/session/status`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
794
+ get: (input, requestOptions) => request({
795
+ method: "GET",
796
+ path: `/session/${encodeURIComponent(input.sessionID)}`,
797
+ successStatus: 200,
798
+ declaredStatuses: [404, 409],
799
+ empty: false,
800
+ }, requestOptions),
801
+ remove: (input, requestOptions) => request({
802
+ method: "DELETE",
803
+ path: `/session/${encodeURIComponent(input.sessionID)}`,
804
+ successStatus: 200,
805
+ declaredStatuses: [404, 409],
806
+ empty: false,
807
+ }, requestOptions),
808
+ update: (input, requestOptions) => request({
809
+ method: "PATCH",
810
+ path: `/session/${encodeURIComponent(input.sessionID)}`,
811
+ body: { title: input["title"], time: input["time"] },
812
+ successStatus: 200,
813
+ declaredStatuses: [404, 409],
814
+ empty: false,
815
+ }, requestOptions),
816
+ fork: (input, requestOptions) => request({
817
+ method: "POST",
818
+ path: `/session/${encodeURIComponent(input.sessionID)}/fork`,
819
+ body: { messageID: input["messageID"] },
820
+ successStatus: 200,
821
+ declaredStatuses: [404, 409],
822
+ empty: false,
823
+ }, requestOptions),
824
+ abort: (input, requestOptions) => request({
825
+ method: "POST",
826
+ path: `/session/${encodeURIComponent(input.sessionID)}/abort`,
827
+ successStatus: 200,
828
+ declaredStatuses: [],
829
+ empty: false,
830
+ }, requestOptions),
831
+ revert: (input, requestOptions) => request({
832
+ method: "POST",
833
+ path: `/session/${encodeURIComponent(input.sessionID)}/revert`,
834
+ body: { messageID: input["messageID"], partID: input["partID"] },
835
+ successStatus: 200,
836
+ declaredStatuses: [404, 409],
837
+ empty: false,
838
+ }, requestOptions),
839
+ unrevert: (input, requestOptions) => request({
840
+ method: "POST",
841
+ path: `/session/${encodeURIComponent(input.sessionID)}/unrevert`,
842
+ successStatus: 200,
843
+ declaredStatuses: [404, 409],
844
+ empty: false,
845
+ }, requestOptions),
846
+ share: (input, requestOptions) => request({
847
+ method: "POST",
848
+ path: `/session/${encodeURIComponent(input.sessionID)}/share`,
849
+ successStatus: 200,
850
+ declaredStatuses: [404, 409],
851
+ empty: false,
852
+ }, requestOptions),
853
+ unshare: (input, requestOptions) => request({
854
+ method: "DELETE",
855
+ path: `/session/${encodeURIComponent(input.sessionID)}/share`,
856
+ successStatus: 200,
857
+ declaredStatuses: [404, 409],
858
+ empty: false,
859
+ }, requestOptions),
860
+ summarize: (input, requestOptions) => request({
861
+ method: "POST",
862
+ path: `/session/${encodeURIComponent(input.sessionID)}/summarize`,
863
+ body: { providerID: input["providerID"], modelID: input["modelID"], auto: input["auto"] },
864
+ successStatus: 200,
865
+ declaredStatuses: [404, 409],
866
+ empty: false,
867
+ }, requestOptions),
868
+ command: (input, requestOptions) => request({
869
+ method: "POST",
870
+ path: `/session/${encodeURIComponent(input.sessionID)}/command`,
871
+ body: {
872
+ messageID: input["messageID"],
873
+ agent: input["agent"],
874
+ model: input["model"],
875
+ arguments: input["arguments"],
876
+ command: input["command"],
877
+ variant: input["variant"],
878
+ parts: input["parts"],
879
+ },
880
+ successStatus: 200,
881
+ declaredStatuses: [404, 409],
882
+ empty: false,
883
+ }, requestOptions),
884
+ shell: (input, requestOptions) => request({
885
+ method: "POST",
886
+ path: `/session/${encodeURIComponent(input.sessionID)}/shell`,
887
+ body: { agent: input["agent"], model: input["model"], command: input["command"] },
888
+ successStatus: 200,
889
+ declaredStatuses: [404, 409],
890
+ empty: false,
891
+ }, requestOptions),
892
+ permissionRespond: (input, requestOptions) => request({
893
+ method: "POST",
894
+ path: `/session/${encodeURIComponent(input.sessionID)}/permissions/${encodeURIComponent(input.permissionID)}`,
895
+ body: { response: input["response"] },
896
+ successStatus: 200,
897
+ declaredStatuses: [404, 409],
898
+ empty: false,
899
+ }, requestOptions),
900
+ children: (input, requestOptions) => request({
901
+ method: "GET",
902
+ path: `/session/${encodeURIComponent(input.sessionID)}/children`,
903
+ successStatus: 200,
904
+ declaredStatuses: [404, 409],
905
+ empty: false,
906
+ }, requestOptions),
907
+ todo: (input, requestOptions) => request({
908
+ method: "GET",
909
+ path: `/session/${encodeURIComponent(input.sessionID)}/todo`,
910
+ successStatus: 200,
911
+ declaredStatuses: [404, 409],
912
+ empty: false,
913
+ }, requestOptions),
914
+ diff: (input, requestOptions) => request({
915
+ method: "GET",
916
+ path: `/session/${encodeURIComponent(input.sessionID)}/diff`,
917
+ query: { messageID: input["messageID"] },
918
+ successStatus: 200,
919
+ declaredStatuses: [404, 409],
920
+ empty: false,
921
+ }, requestOptions),
922
+ messages: (input, requestOptions) => request({
923
+ method: "GET",
924
+ path: `/session/${encodeURIComponent(input.sessionID)}/message`,
925
+ query: { limit: input["limit"] },
926
+ successStatus: 200,
927
+ declaredStatuses: [404, 409],
928
+ empty: false,
929
+ }, requestOptions),
930
+ message: (input, requestOptions) => request({
931
+ method: "GET",
932
+ path: `/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}`,
933
+ successStatus: 200,
934
+ declaredStatuses: [404, 409],
935
+ empty: false,
936
+ }, requestOptions),
937
+ messageRemove: (input, requestOptions) => request({
938
+ method: "DELETE",
939
+ path: `/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}`,
940
+ successStatus: 200,
941
+ declaredStatuses: [404, 409],
942
+ empty: false,
943
+ }, requestOptions),
944
+ partRemove: (input, requestOptions) => request({
945
+ method: "DELETE",
946
+ path: `/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}/part/${encodeURIComponent(input.partID)}`,
947
+ successStatus: 200,
948
+ declaredStatuses: [404, 409],
949
+ empty: false,
950
+ }, requestOptions),
951
+ partUpdate: (input, requestOptions) => request({
952
+ method: "PATCH",
953
+ path: `/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}/part/${encodeURIComponent(input.partID)}`,
954
+ body: input["payload"],
955
+ successStatus: 200,
956
+ declaredStatuses: [404, 409],
957
+ empty: false,
958
+ }, requestOptions),
959
+ v2Entries: (input, requestOptions) => request({
960
+ method: "GET",
961
+ path: `/session/${encodeURIComponent(input.sessionID)}/v2/entries`,
962
+ successStatus: 200,
963
+ declaredStatuses: [404, 409],
964
+ empty: false,
965
+ }, requestOptions),
966
+ v2State: (input, requestOptions) => request({
967
+ method: "GET",
968
+ path: `/session/${encodeURIComponent(input.sessionID)}/v2/state`,
969
+ successStatus: 200,
970
+ declaredStatuses: [404, 409],
971
+ empty: false,
972
+ }, requestOptions),
973
+ v2Events: (input, requestOptions) => request({
974
+ method: "GET",
975
+ path: `/session/${encodeURIComponent(input.sessionID)}/v2/events`,
976
+ successStatus: 200,
977
+ declaredStatuses: [404, 409],
978
+ empty: false,
979
+ }, requestOptions),
980
+ instructions: (input, requestOptions) => request({
981
+ method: "GET",
982
+ path: `/session/${encodeURIComponent(input.sessionID)}/instructions`,
983
+ successStatus: 200,
984
+ declaredStatuses: [404, 409],
985
+ empty: false,
986
+ }, requestOptions),
987
+ contextBreakdown: (input, requestOptions) => request({
988
+ method: "GET",
989
+ path: `/session/${encodeURIComponent(input.sessionID)}/context`,
990
+ successStatus: 200,
991
+ declaredStatuses: [404, 409],
992
+ empty: false,
993
+ }, requestOptions),
994
+ contextToggle: (input, requestOptions) => request({
995
+ method: "POST",
996
+ path: `/session/${encodeURIComponent(input.sessionID)}/context/toggle`,
997
+ body: { kind: input["kind"], key: input["key"], enabled: input["enabled"] },
998
+ successStatus: 200,
999
+ declaredStatuses: [404, 409],
1000
+ empty: false,
1001
+ }, requestOptions),
1002
+ goal: (input, requestOptions) => request({
1003
+ method: "GET",
1004
+ path: `/session/${encodeURIComponent(input.sessionID)}/goal`,
1005
+ successStatus: 200,
1006
+ declaredStatuses: [],
1007
+ empty: false,
1008
+ }, requestOptions),
1009
+ background: (input, requestOptions) => request({
1010
+ method: "GET",
1011
+ path: `/session/${encodeURIComponent(input.sessionID)}/background`,
1012
+ successStatus: 200,
1013
+ declaredStatuses: [404],
1014
+ empty: false,
1015
+ }, requestOptions),
1016
+ backgroundInspect: (input, requestOptions) => request({
1017
+ method: "GET",
1018
+ path: `/session/${encodeURIComponent(input.sessionID)}/background/${encodeURIComponent(input.delegationID)}`,
1019
+ successStatus: 200,
1020
+ declaredStatuses: [],
1021
+ empty: false,
1022
+ }, requestOptions),
1023
+ backgroundRead: (input, requestOptions) => request({
1024
+ method: "GET",
1025
+ path: `/session/${encodeURIComponent(input.sessionID)}/background/${encodeURIComponent(input.delegationID)}/read`,
1026
+ successStatus: 200,
1027
+ declaredStatuses: [],
1028
+ empty: false,
1029
+ }, requestOptions),
1030
+ backgroundCancel: (input, requestOptions) => request({
1031
+ method: "POST",
1032
+ path: `/session/${encodeURIComponent(input.sessionID)}/background/${encodeURIComponent(input.delegationID)}/cancel`,
1033
+ successStatus: 200,
1034
+ declaredStatuses: [],
1035
+ empty: false,
1036
+ }, requestOptions),
1037
+ monitor: (input, requestOptions) => request({
1038
+ method: "GET",
1039
+ path: `/session/${encodeURIComponent(input.sessionID)}/monitor/${encodeURIComponent(input.monitorID)}`,
1040
+ successStatus: 200,
1041
+ declaredStatuses: [404, 409],
1042
+ empty: false,
1043
+ }, requestOptions),
1044
+ monitorLog: (input, requestOptions) => request({
1045
+ method: "GET",
1046
+ path: `/session/${encodeURIComponent(input.sessionID)}/monitor/${encodeURIComponent(input.monitorID)}/log`,
1047
+ query: { lines: input["lines"] },
1048
+ successStatus: 200,
1049
+ declaredStatuses: [404, 409],
1050
+ empty: false,
1051
+ }, requestOptions),
1052
+ monitorCancel: (input, requestOptions) => request({
1053
+ method: "POST",
1054
+ path: `/session/${encodeURIComponent(input.sessionID)}/monitor/${encodeURIComponent(input.monitorID)}/cancel`,
1055
+ successStatus: 200,
1056
+ declaredStatuses: [404, 409],
1057
+ empty: false,
1058
+ }, requestOptions),
1059
+ },
1060
+ sync: {
1061
+ start: (input, requestOptions) => request({
1062
+ method: "POST",
1063
+ path: `/sync/start`,
1064
+ body: { url: input["url"], token: input["token"], projectID: input["projectID"] },
1065
+ successStatus: 200,
1066
+ declaredStatuses: [],
1067
+ empty: false,
1068
+ }, requestOptions),
1069
+ replay: (input, requestOptions) => request({
1070
+ method: "POST",
1071
+ path: `/sync/replay`,
1072
+ body: {
1073
+ projectID: input["projectID"],
1074
+ aggregate: input["aggregate"],
1075
+ data: input["data"],
1076
+ origin: input["origin"],
1077
+ },
1078
+ successStatus: 200,
1079
+ declaredStatuses: [],
1080
+ empty: false,
1081
+ }, requestOptions),
1082
+ history: (input, requestOptions) => request({
1083
+ method: "GET",
1084
+ path: `/sync/history`,
1085
+ query: {
1086
+ projectID: input["projectID"],
1087
+ aggregate: input["aggregate"],
1088
+ since: input["since"],
1089
+ limit: input["limit"],
1090
+ },
1091
+ successStatus: 200,
1092
+ declaredStatuses: [],
1093
+ empty: false,
1094
+ }, requestOptions),
1095
+ snapshot: (input, requestOptions) => request({
1096
+ method: "GET",
1097
+ path: `/sync/snapshot`,
1098
+ query: { projectID: input["projectID"], aggregate: input["aggregate"] },
1099
+ successStatus: 200,
1100
+ declaredStatuses: [],
1101
+ empty: false,
1102
+ }, requestOptions),
1103
+ },
1104
+ tui: {
1105
+ appendPrompt: (input, requestOptions) => request({
1106
+ method: "POST",
1107
+ path: `/tui/append-prompt`,
1108
+ body: input["payload"],
1109
+ successStatus: 200,
1110
+ declaredStatuses: [400],
1111
+ empty: false,
1112
+ }, requestOptions),
1113
+ openHelp: (requestOptions) => request({ method: "POST", path: `/tui/open-help`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1114
+ openSessions: (requestOptions) => request({ method: "POST", path: `/tui/open-sessions`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1115
+ openThemes: (requestOptions) => request({ method: "POST", path: `/tui/open-themes`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1116
+ openModels: (requestOptions) => request({ method: "POST", path: `/tui/open-models`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1117
+ submitPrompt: (requestOptions) => request({ method: "POST", path: `/tui/submit-prompt`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1118
+ clearPrompt: (requestOptions) => request({ method: "POST", path: `/tui/clear-prompt`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1119
+ executeCommand: (input, requestOptions) => request({
1120
+ method: "POST",
1121
+ path: `/tui/execute-command`,
1122
+ body: input["payload"],
1123
+ successStatus: 200,
1124
+ declaredStatuses: [400],
1125
+ empty: false,
1126
+ }, requestOptions),
1127
+ showToast: (input, requestOptions) => request({
1128
+ method: "POST",
1129
+ path: `/tui/show-toast`,
1130
+ body: input["payload"],
1131
+ successStatus: 200,
1132
+ declaredStatuses: [400],
1133
+ empty: false,
1134
+ }, requestOptions),
1135
+ publish: (input, requestOptions) => request({
1136
+ method: "POST",
1137
+ path: `/tui/publish`,
1138
+ body: input["payload"],
1139
+ successStatus: 200,
1140
+ declaredStatuses: [400],
1141
+ empty: false,
1142
+ }, requestOptions),
1143
+ selectSession: (input, requestOptions) => request({
1144
+ method: "POST",
1145
+ path: `/tui/select-session`,
1146
+ body: input["payload"],
1147
+ successStatus: 200,
1148
+ declaredStatuses: [400, 404],
1149
+ empty: false,
1150
+ }, requestOptions),
1151
+ controlNext: (requestOptions) => request({ method: "GET", path: `/tui/control/next`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1152
+ controlResponse: (input, requestOptions) => request({
1153
+ method: "POST",
1154
+ path: `/tui/control/response`,
1155
+ body: input["payload"],
1156
+ successStatus: 200,
1157
+ declaredStatuses: [],
1158
+ empty: false,
1159
+ }, requestOptions),
1160
+ },
1161
+ workspace: {
1162
+ adaptors: (requestOptions) => request({
1163
+ method: "GET",
1164
+ path: `/experimental/workspace/adaptor`,
1165
+ successStatus: 200,
1166
+ declaredStatuses: [],
1167
+ empty: false,
1168
+ }, requestOptions),
1169
+ syncList: (requestOptions) => request({
1170
+ method: "POST",
1171
+ path: `/experimental/workspace/sync-list`,
1172
+ successStatus: 204,
1173
+ declaredStatuses: [],
1174
+ empty: true,
1175
+ }, requestOptions),
1176
+ status: (requestOptions) => request({
1177
+ method: "GET",
1178
+ path: `/experimental/workspace/status`,
1179
+ successStatus: 200,
1180
+ declaredStatuses: [],
1181
+ empty: false,
1182
+ }, requestOptions),
1183
+ create: (input, requestOptions) => request({
1184
+ method: "POST",
1185
+ path: `/experimental/workspace/${encodeURIComponent(input.id)}`,
1186
+ body: { branch: input["branch"], config: input["config"] },
1187
+ successStatus: 200,
1188
+ declaredStatuses: [],
1189
+ empty: false,
1190
+ }, requestOptions),
1191
+ list: (requestOptions) => request({ method: "GET", path: `/experimental/workspace`, successStatus: 200, declaredStatuses: [], empty: false }, requestOptions),
1192
+ remove: (input, requestOptions) => request({
1193
+ method: "DELETE",
1194
+ path: `/experimental/workspace/${encodeURIComponent(input.id)}`,
1195
+ successStatus: 200,
1196
+ declaredStatuses: [],
1197
+ empty: false,
1198
+ }, requestOptions),
1199
+ restore: (input, requestOptions) => request({
1200
+ method: "POST",
1201
+ path: `/experimental/workspace/${encodeURIComponent(input.id)}/restore`,
1202
+ query: { timeoutMs: input["timeoutMs"] },
1203
+ successStatus: 200,
1204
+ declaredStatuses: [],
1205
+ empty: false,
1206
+ }, requestOptions),
1207
+ sessionRestore: (input, requestOptions) => request({
1208
+ method: "POST",
1209
+ path: `/experimental/workspace/${encodeURIComponent(input.id)}/session/${encodeURIComponent(input.sessionID)}/restore`,
1210
+ query: { timeoutMs: input["timeoutMs"] },
1211
+ successStatus: 200,
1212
+ declaredStatuses: [],
1213
+ empty: false,
1214
+ }, requestOptions),
1215
+ warp: (input, requestOptions) => request({
1216
+ method: "POST",
1217
+ path: `/experimental/workspace/warp`,
1218
+ body: {
1219
+ id: input["id"],
1220
+ sessionID: input["sessionID"],
1221
+ copyChanges: input["copyChanges"],
1222
+ timeoutMs: input["timeoutMs"],
1223
+ },
1224
+ successStatus: 204,
1225
+ declaredStatuses: [],
1226
+ empty: true,
1227
+ }, requestOptions),
1228
+ },
1229
+ };
1230
+ }
1231
+ function appendQuery(params, key, value) {
1232
+ if (value === undefined)
1233
+ return;
1234
+ if (value === null) {
1235
+ params.append(key, "null");
1236
+ return;
1237
+ }
1238
+ if (Array.isArray(value)) {
1239
+ for (const item of value)
1240
+ appendQuery(params, key, item);
1241
+ return;
1242
+ }
1243
+ if (typeof value === "object") {
1244
+ for (const [child, item] of Object.entries(value))
1245
+ appendQuery(params, `${key}[${child}]`, item);
1246
+ return;
1247
+ }
1248
+ params.append(key, String(value));
1249
+ }
1250
+ async function json(response) {
1251
+ if (!isContentType(response, "application/json") && !response.headers.get("content-type")?.includes("+json")) {
1252
+ try {
1253
+ await response.body?.cancel();
1254
+ }
1255
+ catch { }
1256
+ throw new ClientError("UnsupportedContentType");
1257
+ }
1258
+ let text;
1259
+ try {
1260
+ text = await response.text();
1261
+ }
1262
+ catch (cause) {
1263
+ throw new ClientError("Transport", { cause });
1264
+ }
1265
+ if (text === "")
1266
+ throw new ClientError("MalformedResponse");
1267
+ try {
1268
+ return JSON.parse(text);
1269
+ }
1270
+ catch (cause) {
1271
+ throw new ClientError("MalformedResponse", { cause });
1272
+ }
1273
+ }
1274
+ function isContentType(response, expected) {
1275
+ return response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase() === expected;
1276
+ }