@shardflux/sdk 0.5.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,1832 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/healthz": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** Liveness */
14
+ get: operations["getHealthz"];
15
+ put?: never;
16
+ post?: never;
17
+ delete?: never;
18
+ options?: never;
19
+ head?: never;
20
+ patch?: never;
21
+ trace?: never;
22
+ };
23
+ "/readyz": {
24
+ parameters: {
25
+ query?: never;
26
+ header?: never;
27
+ path?: never;
28
+ cookie?: never;
29
+ };
30
+ /** Readiness (database reachable, schema at the required version, not draining) */
31
+ get: operations["getReadyz"];
32
+ put?: never;
33
+ post?: never;
34
+ delete?: never;
35
+ options?: never;
36
+ head?: never;
37
+ patch?: never;
38
+ trace?: never;
39
+ };
40
+ "/v1/meta": {
41
+ parameters: {
42
+ query?: never;
43
+ header?: never;
44
+ path?: never;
45
+ cookie?: never;
46
+ };
47
+ /** Release identity */
48
+ get: operations["getMeta"];
49
+ put?: never;
50
+ post?: never;
51
+ delete?: never;
52
+ options?: never;
53
+ head?: never;
54
+ patch?: never;
55
+ trace?: never;
56
+ };
57
+ "/v1/workspaces/{workspace_id}/exec": {
58
+ parameters: {
59
+ query?: never;
60
+ header?: never;
61
+ path: {
62
+ workspace_id: components["parameters"]["WorkspaceId"];
63
+ };
64
+ cookie?: never;
65
+ };
66
+ get?: never;
67
+ put?: never;
68
+ /**
69
+ * Start a command (idempotent by session_id)
70
+ * @description Requires tool `exec`. argv is executed directly (no shell).
71
+ */
72
+ post: operations["execStart"];
73
+ delete?: never;
74
+ options?: never;
75
+ head?: never;
76
+ patch?: never;
77
+ trace?: never;
78
+ };
79
+ "/v1/workspaces/{workspace_id}/exec/{session_id}": {
80
+ parameters: {
81
+ query?: never;
82
+ header?: never;
83
+ path: {
84
+ workspace_id: components["parameters"]["WorkspaceId"];
85
+ session_id: components["parameters"]["SessionId"];
86
+ };
87
+ cookie?: never;
88
+ };
89
+ /** Session status */
90
+ get: operations["execGet"];
91
+ put?: never;
92
+ post?: never;
93
+ delete?: never;
94
+ options?: never;
95
+ head?: never;
96
+ patch?: never;
97
+ trace?: never;
98
+ };
99
+ "/v1/workspaces/{workspace_id}/exec/{session_id}/output": {
100
+ parameters: {
101
+ query?: never;
102
+ header?: never;
103
+ path: {
104
+ workspace_id: components["parameters"]["WorkspaceId"];
105
+ session_id: components["parameters"]["SessionId"];
106
+ };
107
+ cookie?: never;
108
+ };
109
+ /**
110
+ * Read or stream output from byte offsets
111
+ * @description Streams `OutputEvent` objects as NDJSON (default) or Server-Sent
112
+ * Events (`Accept: text/event-stream`). With `follow=true` (default) the
113
+ * stream stays open until the session ends (a final `exit` event) or the
114
+ * client disconnects; `heartbeat` events are sent every 15 s. With
115
+ * `follow=false` it returns the output that exists and ends (plus `exit`
116
+ * if the session already ended). Resume with the next offsets.
117
+ */
118
+ get: operations["execOutput"];
119
+ put?: never;
120
+ post?: never;
121
+ delete?: never;
122
+ options?: never;
123
+ head?: never;
124
+ patch?: never;
125
+ trace?: never;
126
+ };
127
+ "/v1/workspaces/{workspace_id}/exec/{session_id}/attach": {
128
+ parameters: {
129
+ query?: never;
130
+ header?: never;
131
+ path: {
132
+ workspace_id: components["parameters"]["WorkspaceId"];
133
+ session_id: components["parameters"]["SessionId"];
134
+ };
135
+ cookie?: never;
136
+ };
137
+ /**
138
+ * WebSocket attach (output with offsets; signal/cancel)
139
+ * @description WebSocket upgrade. Server messages are JSON `OutputEvent` text frames.
140
+ * Client messages are JSON `ExecClientMessage`. Close codes: 1000 after
141
+ * the `exit` event, 1001 on gateway shutdown (reconnect with offsets),
142
+ * 4401 unauthenticated, 4403 forbidden, 4409 stale epoch / workspace
143
+ * busy / workspace not running, 4410 workspace gone, 4429 rate limited,
144
+ * 4500/4503/4504 internal/unavailable/timeout (4000 + HTTP status; see
145
+ * "WebSocket close codes" above; the close reason is compact JSON with
146
+ * the error `code`). A refused upgrade from an allowed Origin is
147
+ * accepted and closed with these codes after one text frame that is
148
+ * exactly the `ErrorBody`.
149
+ * `signal`/`cancel` messages are refused with an `error` message
150
+ * (`workspace_busy`) while a snapshot capture holds the gate.
151
+ */
152
+ get: operations["execAttach"];
153
+ put?: never;
154
+ post?: never;
155
+ delete?: never;
156
+ options?: never;
157
+ head?: never;
158
+ patch?: never;
159
+ trace?: never;
160
+ };
161
+ "/v1/workspaces/{workspace_id}/exec/{session_id}/signal": {
162
+ parameters: {
163
+ query?: never;
164
+ header?: never;
165
+ path: {
166
+ workspace_id: components["parameters"]["WorkspaceId"];
167
+ session_id: components["parameters"]["SessionId"];
168
+ };
169
+ cookie?: never;
170
+ };
171
+ get?: never;
172
+ put?: never;
173
+ /** Send a signal to the session's process group */
174
+ post: operations["execSignal"];
175
+ delete?: never;
176
+ options?: never;
177
+ head?: never;
178
+ patch?: never;
179
+ trace?: never;
180
+ };
181
+ "/v1/workspaces/{workspace_id}/exec/{session_id}/cancel": {
182
+ parameters: {
183
+ query?: never;
184
+ header?: never;
185
+ path: {
186
+ workspace_id: components["parameters"]["WorkspaceId"];
187
+ session_id: components["parameters"]["SessionId"];
188
+ };
189
+ cookie?: never;
190
+ };
191
+ get?: never;
192
+ put?: never;
193
+ /** SIGTERM the process group, SIGKILL after grace */
194
+ post: operations["execCancel"];
195
+ delete?: never;
196
+ options?: never;
197
+ head?: never;
198
+ patch?: never;
199
+ trace?: never;
200
+ };
201
+ "/v1/workspaces/{workspace_id}/pty": {
202
+ parameters: {
203
+ query?: never;
204
+ header?: never;
205
+ path: {
206
+ workspace_id: components["parameters"]["WorkspaceId"];
207
+ };
208
+ cookie?: never;
209
+ };
210
+ get?: never;
211
+ put?: never;
212
+ /** Open a PTY session (idempotent by session_id) */
213
+ post: operations["ptyOpen"];
214
+ delete?: never;
215
+ options?: never;
216
+ head?: never;
217
+ patch?: never;
218
+ trace?: never;
219
+ };
220
+ "/v1/workspaces/{workspace_id}/pty/{session_id}": {
221
+ parameters: {
222
+ query?: never;
223
+ header?: never;
224
+ path: {
225
+ workspace_id: components["parameters"]["WorkspaceId"];
226
+ session_id: components["parameters"]["SessionId"];
227
+ };
228
+ cookie?: never;
229
+ };
230
+ /** PTY session status */
231
+ get: operations["ptyGet"];
232
+ put?: never;
233
+ post?: never;
234
+ /** Close (SIGHUP, then SIGKILL after grace) */
235
+ delete: operations["ptyClose"];
236
+ options?: never;
237
+ head?: never;
238
+ patch?: never;
239
+ trace?: never;
240
+ };
241
+ "/v1/workspaces/{workspace_id}/pty/{session_id}/resize": {
242
+ parameters: {
243
+ query?: never;
244
+ header?: never;
245
+ path: {
246
+ workspace_id: components["parameters"]["WorkspaceId"];
247
+ session_id: components["parameters"]["SessionId"];
248
+ };
249
+ cookie?: never;
250
+ };
251
+ get?: never;
252
+ put?: never;
253
+ /** Resize the terminal */
254
+ post: operations["ptyResize"];
255
+ delete?: never;
256
+ options?: never;
257
+ head?: never;
258
+ patch?: never;
259
+ trace?: never;
260
+ };
261
+ "/v1/workspaces/{workspace_id}/pty/{session_id}/input": {
262
+ parameters: {
263
+ query?: never;
264
+ header?: never;
265
+ path: {
266
+ workspace_id: components["parameters"]["WorkspaceId"];
267
+ session_id: components["parameters"]["SessionId"];
268
+ };
269
+ cookie?: never;
270
+ };
271
+ get?: never;
272
+ put?: never;
273
+ /** Write input bytes (use the WebSocket for interactive use) */
274
+ post: operations["ptyInput"];
275
+ delete?: never;
276
+ options?: never;
277
+ head?: never;
278
+ patch?: never;
279
+ trace?: never;
280
+ };
281
+ "/v1/workspaces/{workspace_id}/pty/{session_id}/attach": {
282
+ parameters: {
283
+ query?: never;
284
+ header?: never;
285
+ path: {
286
+ workspace_id: components["parameters"]["WorkspaceId"];
287
+ session_id: components["parameters"]["SessionId"];
288
+ };
289
+ cookie?: never;
290
+ };
291
+ /**
292
+ * WebSocket attach (input, output with offsets, resize)
293
+ * @description Server messages: JSON `PtyServerMessage` text frames (`output` with the
294
+ * byte offset of `data`, `exit`, `heartbeat`). Client messages: JSON
295
+ * `PtyClientMessage` text frames or binary frames (raw input bytes).
296
+ * Reconnect with `offset` = last offset + len(data) to resume. Close
297
+ * codes and refused upgrades as for exec attach (4401, 4403, 4409, 4410,
298
+ * 4429, 4500, 4503, 4504; JSON close reason). Input and resize are
299
+ * refused with an `error` message (`workspace_busy`) while a snapshot
300
+ * capture holds the gate.
301
+ */
302
+ get: operations["ptyAttach"];
303
+ put?: never;
304
+ post?: never;
305
+ delete?: never;
306
+ options?: never;
307
+ head?: never;
308
+ patch?: never;
309
+ trace?: never;
310
+ };
311
+ "/v1/workspaces/{workspace_id}/processes": {
312
+ parameters: {
313
+ query?: never;
314
+ header?: never;
315
+ path: {
316
+ workspace_id: components["parameters"]["WorkspaceId"];
317
+ };
318
+ cookie?: never;
319
+ };
320
+ /** List guest processes */
321
+ get: operations["processList"];
322
+ put?: never;
323
+ post?: never;
324
+ delete?: never;
325
+ options?: never;
326
+ head?: never;
327
+ patch?: never;
328
+ trace?: never;
329
+ };
330
+ "/v1/workspaces/{workspace_id}/processes/{pid}/signal": {
331
+ parameters: {
332
+ query?: never;
333
+ header?: never;
334
+ path: {
335
+ workspace_id: components["parameters"]["WorkspaceId"];
336
+ pid: number;
337
+ };
338
+ cookie?: never;
339
+ };
340
+ get?: never;
341
+ put?: never;
342
+ /** Signal a guest process */
343
+ post: operations["processSignal"];
344
+ delete?: never;
345
+ options?: never;
346
+ head?: never;
347
+ patch?: never;
348
+ trace?: never;
349
+ };
350
+ "/v1/workspaces/{workspace_id}/files": {
351
+ parameters: {
352
+ query: {
353
+ path: components["parameters"]["FilePath"];
354
+ };
355
+ header?: never;
356
+ path: {
357
+ workspace_id: components["parameters"]["WorkspaceId"];
358
+ };
359
+ cookie?: never;
360
+ };
361
+ /** Read a file (supports a single byte Range) */
362
+ get: operations["fileRead"];
363
+ /** Write a file (atomic replace or append) with a durable acknowledgement */
364
+ put: operations["fileWrite"];
365
+ post?: never;
366
+ /** Remove a file or directory */
367
+ delete: operations["fileRemove"];
368
+ options?: never;
369
+ head?: never;
370
+ patch?: never;
371
+ trace?: never;
372
+ };
373
+ "/v1/workspaces/{workspace_id}/files/stat": {
374
+ parameters: {
375
+ query: {
376
+ path: components["parameters"]["FilePath"];
377
+ };
378
+ header?: never;
379
+ path: {
380
+ workspace_id: components["parameters"]["WorkspaceId"];
381
+ };
382
+ cookie?: never;
383
+ };
384
+ /** Stat a path */
385
+ get: operations["fileStat"];
386
+ put?: never;
387
+ post?: never;
388
+ delete?: never;
389
+ options?: never;
390
+ head?: never;
391
+ patch?: never;
392
+ trace?: never;
393
+ };
394
+ "/v1/workspaces/{workspace_id}/files/list": {
395
+ parameters: {
396
+ query: {
397
+ path: components["parameters"]["FilePath"];
398
+ };
399
+ header?: never;
400
+ path: {
401
+ workspace_id: components["parameters"]["WorkspaceId"];
402
+ };
403
+ cookie?: never;
404
+ };
405
+ /** List a directory */
406
+ get: operations["fileList"];
407
+ put?: never;
408
+ post?: never;
409
+ delete?: never;
410
+ options?: never;
411
+ head?: never;
412
+ patch?: never;
413
+ trace?: never;
414
+ };
415
+ "/v1/workspaces/{workspace_id}/files/mkdir": {
416
+ parameters: {
417
+ query?: never;
418
+ header?: never;
419
+ path: {
420
+ workspace_id: components["parameters"]["WorkspaceId"];
421
+ };
422
+ cookie?: never;
423
+ };
424
+ get?: never;
425
+ put?: never;
426
+ /** Create a directory */
427
+ post: operations["fileMkdir"];
428
+ delete?: never;
429
+ options?: never;
430
+ head?: never;
431
+ patch?: never;
432
+ trace?: never;
433
+ };
434
+ "/v1/workspaces/{workspace_id}/files/move": {
435
+ parameters: {
436
+ query?: never;
437
+ header?: never;
438
+ path: {
439
+ workspace_id: components["parameters"]["WorkspaceId"];
440
+ };
441
+ cookie?: never;
442
+ };
443
+ get?: never;
444
+ put?: never;
445
+ /** Move/rename a path */
446
+ post: operations["fileMove"];
447
+ delete?: never;
448
+ options?: never;
449
+ head?: never;
450
+ patch?: never;
451
+ trace?: never;
452
+ };
453
+ "/v1/workspaces/{workspace_id}/git/clone": {
454
+ parameters: {
455
+ query?: never;
456
+ header?: never;
457
+ path: {
458
+ workspace_id: components["parameters"]["WorkspaceId"];
459
+ };
460
+ cookie?: never;
461
+ };
462
+ get?: never;
463
+ put?: never;
464
+ /** git clone (https URLs only; runs in the guest with explicit argv) */
465
+ post: operations["gitClone"];
466
+ delete?: never;
467
+ options?: never;
468
+ head?: never;
469
+ patch?: never;
470
+ trace?: never;
471
+ };
472
+ "/v1/workspaces/{workspace_id}/git/status": {
473
+ parameters: {
474
+ query: {
475
+ path: components["schemas"]["GuestPath"];
476
+ };
477
+ header?: never;
478
+ path: {
479
+ workspace_id: components["parameters"]["WorkspaceId"];
480
+ };
481
+ cookie?: never;
482
+ };
483
+ /** git status (parsed porcelain v1 with branch) */
484
+ get: operations["gitStatus"];
485
+ put?: never;
486
+ post?: never;
487
+ delete?: never;
488
+ options?: never;
489
+ head?: never;
490
+ patch?: never;
491
+ trace?: never;
492
+ };
493
+ "/v1/workspaces/{workspace_id}/git/commit": {
494
+ parameters: {
495
+ query?: never;
496
+ header?: never;
497
+ path: {
498
+ workspace_id: components["parameters"]["WorkspaceId"];
499
+ };
500
+ cookie?: never;
501
+ };
502
+ get?: never;
503
+ put?: never;
504
+ /** git add + commit */
505
+ post: operations["gitCommit"];
506
+ delete?: never;
507
+ options?: never;
508
+ head?: never;
509
+ patch?: never;
510
+ trace?: never;
511
+ };
512
+ "/v1/workspaces/{workspace_id}/browser/screenshot": {
513
+ parameters: {
514
+ query?: never;
515
+ header?: never;
516
+ path: {
517
+ workspace_id: components["parameters"]["WorkspaceId"];
518
+ };
519
+ cookie?: never;
520
+ };
521
+ get?: never;
522
+ put?: never;
523
+ /** Navigate headless Chromium in the guest and capture a PNG */
524
+ post: operations["browserScreenshot"];
525
+ delete?: never;
526
+ options?: never;
527
+ head?: never;
528
+ patch?: never;
529
+ trace?: never;
530
+ };
531
+ "/v1/workspaces/{workspace_id}/browser/content": {
532
+ parameters: {
533
+ query?: never;
534
+ header?: never;
535
+ path: {
536
+ workspace_id: components["parameters"]["WorkspaceId"];
537
+ };
538
+ cookie?: never;
539
+ };
540
+ get?: never;
541
+ put?: never;
542
+ /** Navigate headless Chromium in the guest and return the rendered DOM */
543
+ post: operations["browserContent"];
544
+ delete?: never;
545
+ options?: never;
546
+ head?: never;
547
+ patch?: never;
548
+ trace?: never;
549
+ };
550
+ "/v1/workspaces/{workspace_id}/keepalive": {
551
+ parameters: {
552
+ query?: never;
553
+ header?: never;
554
+ path: {
555
+ workspace_id: components["parameters"]["WorkspaceId"];
556
+ };
557
+ cookie?: never;
558
+ };
559
+ get?: never;
560
+ put?: never;
561
+ /**
562
+ * Keep the workspace hot for a while without tool traffic
563
+ * @description Sets `keepalive_until = max(current keepalive_until, now + seconds)`:
564
+ * a keepalive never shortens an earlier, longer one. `seconds` above the
565
+ * cell's `KEEPALIVE_MAX_SECONDS` (default 43200) -> `422
566
+ * validation_failed`. Any tool granted by the token authorizes the call;
567
+ * the tool gate does not apply and the call is not tool activity.
568
+ */
569
+ post: operations["workspaceKeepalive"];
570
+ delete?: never;
571
+ options?: never;
572
+ head?: never;
573
+ patch?: never;
574
+ trace?: never;
575
+ };
576
+ "/v1/workspaces/{workspace_id}/idle": {
577
+ parameters: {
578
+ query?: never;
579
+ header?: never;
580
+ path: {
581
+ workspace_id: components["parameters"]["WorkspaceId"];
582
+ };
583
+ cookie?: never;
584
+ };
585
+ /**
586
+ * Idle policy, activity and the projected automatic suspend
587
+ * @description `idle_since` = max(`last_tool_at`, `last_attach_at`, `keepalive_until`,
588
+ * `running_since`) (null when none is known; in the future while a
589
+ * keepalive is active). `suspend_at` = `idle_since` + `idle_minutes` when
590
+ * the policy is `suspend_after` and automatic suspend is enabled, else
591
+ * null. Activity lags tool traffic by up to `ACTIVITY_FLUSH_MS`. Any
592
+ * tool granted by the token authorizes the call; the tool gate does not
593
+ * apply and the call is not tool activity.
594
+ */
595
+ get: operations["workspaceIdle"];
596
+ put?: never;
597
+ post?: never;
598
+ delete?: never;
599
+ options?: never;
600
+ head?: never;
601
+ patch?: never;
602
+ trace?: never;
603
+ };
604
+ }
605
+ export type webhooks = Record<string, never>;
606
+ export interface components {
607
+ schemas: {
608
+ /** @enum {string} */
609
+ ErrorCode: "bad_request" | "unauthenticated" | "forbidden" | "not_found" | "conflict" | "stale_epoch" | "workspace_not_running" | "validation_failed" | "payload_too_large" | "range_not_satisfiable" | "rate_limited" | "capacity_pending" | "dependency_unavailable" | "timeout" | "internal_error" | "service_unavailable" | "workspace_busy";
610
+ ErrorBody: {
611
+ error: {
612
+ code: components["schemas"]["ErrorCode"];
613
+ message: string;
614
+ request_id: string;
615
+ retryable: boolean;
616
+ operation_id?: string;
617
+ details?: {
618
+ [key: string]: unknown;
619
+ };
620
+ };
621
+ };
622
+ Health: {
623
+ /** @enum {string} */
624
+ status: "ok" | "ready";
625
+ schema_version?: number;
626
+ };
627
+ Meta: {
628
+ release_id: string;
629
+ git_sha: string;
630
+ image_digest?: string | null;
631
+ schema_version: number | null;
632
+ required_schema_version: number;
633
+ environment: string;
634
+ cell_id: string;
635
+ region: string;
636
+ roles?: string[];
637
+ };
638
+ SessionIdValue: string;
639
+ /** @description Absolute path inside the workspace (relative to the guest files root). */
640
+ GuestPath: string;
641
+ /** @enum {string} */
642
+ SessionState: "starting" | "running" | "exited" | "failed_to_start" | "lost";
643
+ ExecStartRequest: {
644
+ session_id?: components["schemas"]["SessionIdValue"];
645
+ argv: string[];
646
+ env?: {
647
+ [key: string]: string;
648
+ };
649
+ cwd?: string;
650
+ user?: string;
651
+ /** @description Written to stdin, which is then closed (max 1 MiB decoded). */
652
+ stdin?: string;
653
+ /** Format: int64 */
654
+ timeout_ms?: number;
655
+ /** Format: int64 */
656
+ kill_grace_ms?: number;
657
+ secret_refs?: components["schemas"]["SecretRefs"];
658
+ };
659
+ /** @description Names of customer secrets (contracts §17) to inject as environment variables NAME=value of this process only. The cell resolves them at session start through the API with the caller's tool token (permission-checked and audited by the API); values are never logged, persisted or returned by the cell. Any name the caller may not use (unknown, not permitted for this workspace/project/tool) refuses the whole start with 403 forbidden (details.reason secret_not_available, details.names); nothing is started. A name that is also a key of `env` is refused (422 validation_failed). Requires a workspace tool token (browser stream tickets cannot resolve secrets: 403, details.reason secret_refs_require_tool_token). Resolution failures: 401 (token revoked/expired), 409 stale_epoch, 429 rate_limited, 503 dependency_unavailable. A retried start with the same session_id re-resolves the names; if a value changed since the first start the host refuses the different request (409 conflict). */
660
+ SecretRefs: string[];
661
+ ExecSession: {
662
+ session_id: string;
663
+ state: components["schemas"]["SessionState"];
664
+ /** @description True only in the response to the call that created the session. */
665
+ created: boolean;
666
+ pid?: number;
667
+ /** @description Set when state is exited (-1 when terminated by a signal). */
668
+ exit_code?: number | null;
669
+ term_signal?: number | null;
670
+ timed_out?: boolean;
671
+ canceled?: boolean;
672
+ /**
673
+ * Format: int64
674
+ * @description Next stdout byte offset.
675
+ */
676
+ stdout_size: number;
677
+ /**
678
+ * Format: int64
679
+ * @description Next stderr byte offset.
680
+ */
681
+ stderr_size: number;
682
+ /** Format: date-time */
683
+ created_at?: string;
684
+ /** Format: date-time */
685
+ started_at?: string | null;
686
+ /** Format: date-time */
687
+ ended_at?: string | null;
688
+ error?: string;
689
+ };
690
+ OutputEvent: {
691
+ /** @enum {string} */
692
+ type: "output" | "exit" | "heartbeat" | "error";
693
+ /** @enum {string} */
694
+ stream?: "stdout" | "stderr";
695
+ /**
696
+ * Format: int64
697
+ * @description Byte offset of data[0] within its stream.
698
+ */
699
+ offset?: number;
700
+ data?: string;
701
+ session?: components["schemas"]["ExecSession"];
702
+ error?: components["schemas"]["ErrorBody"];
703
+ };
704
+ ExecClientMessage: {
705
+ /** @enum {string} */
706
+ type: "signal" | "cancel";
707
+ signal?: components["schemas"]["SignalValue"];
708
+ /** Format: int64 */
709
+ grace_ms?: number;
710
+ };
711
+ /** @description Signal number (1-64) or name (e.g. "SIGTERM", "TERM"). */
712
+ SignalValue: number | string;
713
+ SignalRequest: {
714
+ signal: components["schemas"]["SignalValue"];
715
+ /**
716
+ * @description Signal only the leader instead of the process group (exec only).
717
+ * @default false
718
+ */
719
+ only_leader?: boolean;
720
+ };
721
+ CancelRequest: {
722
+ /** Format: int64 */
723
+ grace_ms?: number;
724
+ };
725
+ PtyOpenRequest: {
726
+ session_id?: components["schemas"]["SessionIdValue"];
727
+ argv?: string[];
728
+ env?: {
729
+ [key: string]: string;
730
+ };
731
+ cwd?: string;
732
+ user?: string;
733
+ /** @default 24 */
734
+ rows?: number;
735
+ /** @default 80 */
736
+ cols?: number;
737
+ secret_refs?: components["schemas"]["SecretRefs"];
738
+ };
739
+ PtySession: {
740
+ session_id: string;
741
+ state: components["schemas"]["SessionState"];
742
+ created: boolean;
743
+ pid?: number;
744
+ exit_code?: number | null;
745
+ term_signal?: number | null;
746
+ rows: number;
747
+ cols: number;
748
+ /** Format: int64 */
749
+ output_size: number;
750
+ /** Format: date-time */
751
+ created_at?: string;
752
+ /** Format: date-time */
753
+ ended_at?: string | null;
754
+ error?: string;
755
+ };
756
+ PtyResizeRequest: {
757
+ rows: number;
758
+ cols: number;
759
+ };
760
+ PtyInputRequest: {
761
+ /** @description Max 1 MiB decoded. */
762
+ data: string;
763
+ };
764
+ PtyServerMessage: {
765
+ /** @enum {string} */
766
+ type: "output" | "exit" | "heartbeat" | "error";
767
+ /** Format: int64 */
768
+ offset?: number;
769
+ data?: string;
770
+ session?: components["schemas"]["PtySession"];
771
+ error?: components["schemas"]["ErrorBody"];
772
+ };
773
+ PtyClientMessage: {
774
+ /** @enum {string} */
775
+ type: "input" | "resize";
776
+ data?: string;
777
+ rows?: number;
778
+ cols?: number;
779
+ };
780
+ Process: {
781
+ pid: number;
782
+ ppid?: number;
783
+ pgid?: number;
784
+ uid?: number;
785
+ state?: string;
786
+ comm: string;
787
+ cmdline?: string[];
788
+ /** Format: int64 */
789
+ rss_bytes?: number;
790
+ /** Format: int64 */
791
+ cpu_user_ms?: number;
792
+ /** Format: int64 */
793
+ cpu_system_ms?: number;
794
+ /** Format: date-time */
795
+ started_at?: string | null;
796
+ session_id?: string;
797
+ };
798
+ ProcessList: {
799
+ data: components["schemas"]["Process"][];
800
+ };
801
+ /** @enum {string} */
802
+ FileType: "file" | "directory" | "symlink" | "other";
803
+ FileInfo: {
804
+ path: string;
805
+ name: string;
806
+ type: components["schemas"]["FileType"];
807
+ /** Format: int64 */
808
+ size: number;
809
+ /** @description Octal permission bits, e.g. "0644". */
810
+ mode: string;
811
+ /** Format: date-time */
812
+ modified_at: string;
813
+ uid?: number;
814
+ gid?: number;
815
+ symlink_target?: string;
816
+ };
817
+ FileList: {
818
+ entries: components["schemas"]["FileInfo"][];
819
+ truncated: boolean;
820
+ };
821
+ FileWriteResult: {
822
+ path: string;
823
+ /** Format: int64 */
824
+ bytes_written: number;
825
+ sha256: string;
826
+ /** @description The file and its parent directory were fsync'd before this reply. */
827
+ durable: boolean;
828
+ file?: components["schemas"]["FileInfo"];
829
+ };
830
+ MkdirRequest: {
831
+ path: components["schemas"]["GuestPath"];
832
+ /** @default false */
833
+ parents?: boolean;
834
+ mode?: string;
835
+ };
836
+ MoveRequest: {
837
+ from: components["schemas"]["GuestPath"];
838
+ to: components["schemas"]["GuestPath"];
839
+ /** @default false */
840
+ overwrite?: boolean;
841
+ };
842
+ GitCloneRequest: {
843
+ /** @description HTTPS remote only. */
844
+ url: string;
845
+ path: components["schemas"]["GuestPath"];
846
+ branch?: string;
847
+ depth?: number;
848
+ /**
849
+ * Format: int64
850
+ * @default 600000
851
+ */
852
+ timeout_ms?: number;
853
+ };
854
+ GitCommitRequest: {
855
+ path: components["schemas"]["GuestPath"];
856
+ message: string;
857
+ /**
858
+ * @description Stage all changes (git add -A) before committing.
859
+ * @default true
860
+ */
861
+ all?: boolean;
862
+ paths?: string[];
863
+ author_name?: string;
864
+ author_email?: string;
865
+ };
866
+ GitResult: {
867
+ session_id: string;
868
+ exit_code: number;
869
+ stdout: string;
870
+ stderr: string;
871
+ truncated: boolean;
872
+ commit?: string;
873
+ };
874
+ GitStatus: {
875
+ exit_code: number;
876
+ branch: string;
877
+ upstream?: string;
878
+ ahead?: number;
879
+ behind?: number;
880
+ clean: boolean;
881
+ entries: {
882
+ /** @description Two-letter porcelain status. */
883
+ xy: string;
884
+ path: string;
885
+ orig_path?: string;
886
+ }[];
887
+ stderr?: string;
888
+ };
889
+ BrowserScreenshotRequest: {
890
+ url: string;
891
+ /** @default 1280 */
892
+ width?: number;
893
+ /** @default 800 */
894
+ height?: number;
895
+ /**
896
+ * Format: int64
897
+ * @default 30000
898
+ */
899
+ timeout_ms?: number;
900
+ };
901
+ BrowserContentRequest: {
902
+ url: string;
903
+ /**
904
+ * @default html
905
+ * @enum {string}
906
+ */
907
+ format?: "html" | "text";
908
+ /**
909
+ * Format: int64
910
+ * @default 30000
911
+ */
912
+ timeout_ms?: number;
913
+ };
914
+ BrowserContent: {
915
+ url: string;
916
+ /** @enum {string} */
917
+ format: "html" | "text";
918
+ content: string;
919
+ truncated: boolean;
920
+ };
921
+ KeepaliveRequest: {
922
+ /** @description Keep the workspace hot for this many seconds from now (1..KEEPALIVE_MAX_SECONDS). */
923
+ seconds: number;
924
+ };
925
+ KeepaliveResult: {
926
+ /** Format: date-time */
927
+ keepalive_until: string;
928
+ };
929
+ IdlePolicy: {
930
+ /** @enum {string} */
931
+ mode: "hot" | "suspend_after";
932
+ /** @description Set when mode is suspend_after. */
933
+ idle_minutes: number | null;
934
+ /**
935
+ * @description workspace = the workspace's own policy; default = the cell default (IDLE_DEFAULT_MODE / IDLE_DEFAULT_MINUTES).
936
+ * @enum {string}
937
+ */
938
+ source: "workspace" | "default";
939
+ };
940
+ IdleAutoSuspend: {
941
+ /** @description Policy is suspend_after and automatic suspend was not disabled (e.g. after repeated failures). */
942
+ enabled: boolean;
943
+ disabled_reason: string | null;
944
+ /** @description Consecutive failed automatic suspend attempts. */
945
+ failures: number;
946
+ /** Format: date-time */
947
+ backoff_until: string | null;
948
+ /** Format: uuid */
949
+ last_operation_id: string | null;
950
+ /** @description Error of the last failed automatic suspend (ErrorBody.error shape). */
951
+ last_error: {
952
+ [key: string]: unknown;
953
+ } | null;
954
+ };
955
+ IdleStatus: {
956
+ policy: components["schemas"]["IdlePolicy"];
957
+ /** @description Workspace observed_state (contracts §9). */
958
+ observed_state: string;
959
+ /** Format: date-time */
960
+ last_tool_at: string | null;
961
+ /** Format: date-time */
962
+ last_attach_at: string | null;
963
+ /** Format: date-time */
964
+ keepalive_until: string | null;
965
+ /** Format: date-time */
966
+ running_since: string | null;
967
+ /** Format: date-time */
968
+ idle_since: string | null;
969
+ /** Format: date-time */
970
+ suspend_at: string | null;
971
+ auto_suspend: components["schemas"]["IdleAutoSuspend"];
972
+ };
973
+ };
974
+ responses: {
975
+ /** @description Error (contracts §3). */
976
+ Error: {
977
+ headers: {
978
+ "X-Request-Id"?: string;
979
+ "Retry-After"?: number;
980
+ [name: string]: unknown;
981
+ };
982
+ content: {
983
+ "application/json": components["schemas"]["ErrorBody"];
984
+ };
985
+ };
986
+ };
987
+ parameters: {
988
+ WorkspaceId: string;
989
+ SessionId: components["schemas"]["SessionIdValue"];
990
+ FilePath: components["schemas"]["GuestPath"];
991
+ };
992
+ requestBodies: never;
993
+ headers: never;
994
+ pathItems: never;
995
+ }
996
+ export type $defs = Record<string, never>;
997
+ export interface operations {
998
+ getHealthz: {
999
+ parameters: {
1000
+ query?: never;
1001
+ header?: never;
1002
+ path?: never;
1003
+ cookie?: never;
1004
+ };
1005
+ requestBody?: never;
1006
+ responses: {
1007
+ /** @description Process is alive. */
1008
+ 200: {
1009
+ headers: {
1010
+ [name: string]: unknown;
1011
+ };
1012
+ content: {
1013
+ "application/json": components["schemas"]["Health"];
1014
+ };
1015
+ };
1016
+ };
1017
+ };
1018
+ getReadyz: {
1019
+ parameters: {
1020
+ query?: never;
1021
+ header?: never;
1022
+ path?: never;
1023
+ cookie?: never;
1024
+ };
1025
+ requestBody?: never;
1026
+ responses: {
1027
+ /** @description Ready. */
1028
+ 200: {
1029
+ headers: {
1030
+ [name: string]: unknown;
1031
+ };
1032
+ content: {
1033
+ "application/json": components["schemas"]["Health"];
1034
+ };
1035
+ };
1036
+ 503: components["responses"]["Error"];
1037
+ };
1038
+ };
1039
+ getMeta: {
1040
+ parameters: {
1041
+ query?: never;
1042
+ header?: never;
1043
+ path?: never;
1044
+ cookie?: never;
1045
+ };
1046
+ requestBody?: never;
1047
+ responses: {
1048
+ /** @description Release identity of this replica. */
1049
+ 200: {
1050
+ headers: {
1051
+ [name: string]: unknown;
1052
+ };
1053
+ content: {
1054
+ "application/json": components["schemas"]["Meta"];
1055
+ };
1056
+ };
1057
+ };
1058
+ };
1059
+ execStart: {
1060
+ parameters: {
1061
+ query?: never;
1062
+ header?: never;
1063
+ path: {
1064
+ workspace_id: components["parameters"]["WorkspaceId"];
1065
+ };
1066
+ cookie?: never;
1067
+ };
1068
+ requestBody: {
1069
+ content: {
1070
+ "application/json": components["schemas"]["ExecStartRequest"];
1071
+ };
1072
+ };
1073
+ responses: {
1074
+ /** @description The session already existed; nothing was run again. */
1075
+ 200: {
1076
+ headers: {
1077
+ [name: string]: unknown;
1078
+ };
1079
+ content: {
1080
+ "application/json": components["schemas"]["ExecSession"];
1081
+ };
1082
+ };
1083
+ /** @description Session created and started. */
1084
+ 201: {
1085
+ headers: {
1086
+ [name: string]: unknown;
1087
+ };
1088
+ content: {
1089
+ "application/json": components["schemas"]["ExecSession"];
1090
+ };
1091
+ };
1092
+ default: components["responses"]["Error"];
1093
+ };
1094
+ };
1095
+ execGet: {
1096
+ parameters: {
1097
+ query?: never;
1098
+ header?: never;
1099
+ path: {
1100
+ workspace_id: components["parameters"]["WorkspaceId"];
1101
+ session_id: components["parameters"]["SessionId"];
1102
+ };
1103
+ cookie?: never;
1104
+ };
1105
+ requestBody?: never;
1106
+ responses: {
1107
+ /** @description Session. */
1108
+ 200: {
1109
+ headers: {
1110
+ [name: string]: unknown;
1111
+ };
1112
+ content: {
1113
+ "application/json": components["schemas"]["ExecSession"];
1114
+ };
1115
+ };
1116
+ default: components["responses"]["Error"];
1117
+ };
1118
+ };
1119
+ execOutput: {
1120
+ parameters: {
1121
+ query?: {
1122
+ stdout_offset?: number;
1123
+ stderr_offset?: number;
1124
+ follow?: boolean;
1125
+ };
1126
+ header?: never;
1127
+ path: {
1128
+ workspace_id: components["parameters"]["WorkspaceId"];
1129
+ session_id: components["parameters"]["SessionId"];
1130
+ };
1131
+ cookie?: never;
1132
+ };
1133
+ requestBody?: never;
1134
+ responses: {
1135
+ /** @description Stream of OutputEvent. */
1136
+ 200: {
1137
+ headers: {
1138
+ [name: string]: unknown;
1139
+ };
1140
+ content: {
1141
+ "application/x-ndjson": components["schemas"]["OutputEvent"];
1142
+ "text/event-stream": string;
1143
+ };
1144
+ };
1145
+ default: components["responses"]["Error"];
1146
+ };
1147
+ };
1148
+ execAttach: {
1149
+ parameters: {
1150
+ query?: {
1151
+ stdout_offset?: number;
1152
+ stderr_offset?: number;
1153
+ ticket?: string;
1154
+ };
1155
+ header?: never;
1156
+ path: {
1157
+ workspace_id: components["parameters"]["WorkspaceId"];
1158
+ session_id: components["parameters"]["SessionId"];
1159
+ };
1160
+ cookie?: never;
1161
+ };
1162
+ requestBody?: never;
1163
+ responses: {
1164
+ /** @description Switching protocols. */
1165
+ 101: {
1166
+ headers: {
1167
+ [name: string]: unknown;
1168
+ };
1169
+ content?: never;
1170
+ };
1171
+ default: components["responses"]["Error"];
1172
+ };
1173
+ };
1174
+ execSignal: {
1175
+ parameters: {
1176
+ query?: never;
1177
+ header?: never;
1178
+ path: {
1179
+ workspace_id: components["parameters"]["WorkspaceId"];
1180
+ session_id: components["parameters"]["SessionId"];
1181
+ };
1182
+ cookie?: never;
1183
+ };
1184
+ requestBody: {
1185
+ content: {
1186
+ "application/json": components["schemas"]["SignalRequest"];
1187
+ };
1188
+ };
1189
+ responses: {
1190
+ /** @description Session after signalling. */
1191
+ 200: {
1192
+ headers: {
1193
+ [name: string]: unknown;
1194
+ };
1195
+ content: {
1196
+ "application/json": components["schemas"]["ExecSession"];
1197
+ };
1198
+ };
1199
+ default: components["responses"]["Error"];
1200
+ };
1201
+ };
1202
+ execCancel: {
1203
+ parameters: {
1204
+ query?: never;
1205
+ header?: never;
1206
+ path: {
1207
+ workspace_id: components["parameters"]["WorkspaceId"];
1208
+ session_id: components["parameters"]["SessionId"];
1209
+ };
1210
+ cookie?: never;
1211
+ };
1212
+ requestBody?: {
1213
+ content: {
1214
+ "application/json": components["schemas"]["CancelRequest"];
1215
+ };
1216
+ };
1217
+ responses: {
1218
+ /** @description Session after cancellation was requested. */
1219
+ 200: {
1220
+ headers: {
1221
+ [name: string]: unknown;
1222
+ };
1223
+ content: {
1224
+ "application/json": components["schemas"]["ExecSession"];
1225
+ };
1226
+ };
1227
+ default: components["responses"]["Error"];
1228
+ };
1229
+ };
1230
+ ptyOpen: {
1231
+ parameters: {
1232
+ query?: never;
1233
+ header?: never;
1234
+ path: {
1235
+ workspace_id: components["parameters"]["WorkspaceId"];
1236
+ };
1237
+ cookie?: never;
1238
+ };
1239
+ requestBody: {
1240
+ content: {
1241
+ "application/json": components["schemas"]["PtyOpenRequest"];
1242
+ };
1243
+ };
1244
+ responses: {
1245
+ /** @description Already existed. */
1246
+ 200: {
1247
+ headers: {
1248
+ [name: string]: unknown;
1249
+ };
1250
+ content: {
1251
+ "application/json": components["schemas"]["PtySession"];
1252
+ };
1253
+ };
1254
+ /** @description Created. */
1255
+ 201: {
1256
+ headers: {
1257
+ [name: string]: unknown;
1258
+ };
1259
+ content: {
1260
+ "application/json": components["schemas"]["PtySession"];
1261
+ };
1262
+ };
1263
+ default: components["responses"]["Error"];
1264
+ };
1265
+ };
1266
+ ptyGet: {
1267
+ parameters: {
1268
+ query?: never;
1269
+ header?: never;
1270
+ path: {
1271
+ workspace_id: components["parameters"]["WorkspaceId"];
1272
+ session_id: components["parameters"]["SessionId"];
1273
+ };
1274
+ cookie?: never;
1275
+ };
1276
+ requestBody?: never;
1277
+ responses: {
1278
+ /** @description Session. */
1279
+ 200: {
1280
+ headers: {
1281
+ [name: string]: unknown;
1282
+ };
1283
+ content: {
1284
+ "application/json": components["schemas"]["PtySession"];
1285
+ };
1286
+ };
1287
+ default: components["responses"]["Error"];
1288
+ };
1289
+ };
1290
+ ptyClose: {
1291
+ parameters: {
1292
+ query?: never;
1293
+ header?: never;
1294
+ path: {
1295
+ workspace_id: components["parameters"]["WorkspaceId"];
1296
+ session_id: components["parameters"]["SessionId"];
1297
+ };
1298
+ cookie?: never;
1299
+ };
1300
+ requestBody?: never;
1301
+ responses: {
1302
+ /** @description Session after close was requested. */
1303
+ 200: {
1304
+ headers: {
1305
+ [name: string]: unknown;
1306
+ };
1307
+ content: {
1308
+ "application/json": components["schemas"]["PtySession"];
1309
+ };
1310
+ };
1311
+ default: components["responses"]["Error"];
1312
+ };
1313
+ };
1314
+ ptyResize: {
1315
+ parameters: {
1316
+ query?: never;
1317
+ header?: never;
1318
+ path: {
1319
+ workspace_id: components["parameters"]["WorkspaceId"];
1320
+ session_id: components["parameters"]["SessionId"];
1321
+ };
1322
+ cookie?: never;
1323
+ };
1324
+ requestBody: {
1325
+ content: {
1326
+ "application/json": components["schemas"]["PtyResizeRequest"];
1327
+ };
1328
+ };
1329
+ responses: {
1330
+ /** @description Session. */
1331
+ 200: {
1332
+ headers: {
1333
+ [name: string]: unknown;
1334
+ };
1335
+ content: {
1336
+ "application/json": components["schemas"]["PtySession"];
1337
+ };
1338
+ };
1339
+ default: components["responses"]["Error"];
1340
+ };
1341
+ };
1342
+ ptyInput: {
1343
+ parameters: {
1344
+ query?: never;
1345
+ header?: never;
1346
+ path: {
1347
+ workspace_id: components["parameters"]["WorkspaceId"];
1348
+ session_id: components["parameters"]["SessionId"];
1349
+ };
1350
+ cookie?: never;
1351
+ };
1352
+ requestBody: {
1353
+ content: {
1354
+ "application/json": components["schemas"]["PtyInputRequest"];
1355
+ };
1356
+ };
1357
+ responses: {
1358
+ /** @description Session. */
1359
+ 200: {
1360
+ headers: {
1361
+ [name: string]: unknown;
1362
+ };
1363
+ content: {
1364
+ "application/json": components["schemas"]["PtySession"];
1365
+ };
1366
+ };
1367
+ default: components["responses"]["Error"];
1368
+ };
1369
+ };
1370
+ ptyAttach: {
1371
+ parameters: {
1372
+ query?: {
1373
+ offset?: number;
1374
+ ticket?: string;
1375
+ };
1376
+ header?: never;
1377
+ path: {
1378
+ workspace_id: components["parameters"]["WorkspaceId"];
1379
+ session_id: components["parameters"]["SessionId"];
1380
+ };
1381
+ cookie?: never;
1382
+ };
1383
+ requestBody?: never;
1384
+ responses: {
1385
+ /** @description Switching protocols. */
1386
+ 101: {
1387
+ headers: {
1388
+ [name: string]: unknown;
1389
+ };
1390
+ content?: never;
1391
+ };
1392
+ default: components["responses"]["Error"];
1393
+ };
1394
+ };
1395
+ processList: {
1396
+ parameters: {
1397
+ query?: never;
1398
+ header?: never;
1399
+ path: {
1400
+ workspace_id: components["parameters"]["WorkspaceId"];
1401
+ };
1402
+ cookie?: never;
1403
+ };
1404
+ requestBody?: never;
1405
+ responses: {
1406
+ /** @description Processes. */
1407
+ 200: {
1408
+ headers: {
1409
+ [name: string]: unknown;
1410
+ };
1411
+ content: {
1412
+ "application/json": components["schemas"]["ProcessList"];
1413
+ };
1414
+ };
1415
+ default: components["responses"]["Error"];
1416
+ };
1417
+ };
1418
+ processSignal: {
1419
+ parameters: {
1420
+ query?: never;
1421
+ header?: never;
1422
+ path: {
1423
+ workspace_id: components["parameters"]["WorkspaceId"];
1424
+ pid: number;
1425
+ };
1426
+ cookie?: never;
1427
+ };
1428
+ requestBody: {
1429
+ content: {
1430
+ "application/json": components["schemas"]["SignalRequest"];
1431
+ };
1432
+ };
1433
+ responses: {
1434
+ /** @description Signalled. */
1435
+ 204: {
1436
+ headers: {
1437
+ [name: string]: unknown;
1438
+ };
1439
+ content?: never;
1440
+ };
1441
+ default: components["responses"]["Error"];
1442
+ };
1443
+ };
1444
+ fileRead: {
1445
+ parameters: {
1446
+ query: {
1447
+ path: components["parameters"]["FilePath"];
1448
+ offset?: number;
1449
+ length?: number;
1450
+ };
1451
+ header?: {
1452
+ Range?: string;
1453
+ };
1454
+ path: {
1455
+ workspace_id: components["parameters"]["WorkspaceId"];
1456
+ };
1457
+ cookie?: never;
1458
+ };
1459
+ requestBody?: never;
1460
+ responses: {
1461
+ /** @description File content. */
1462
+ 200: {
1463
+ headers: {
1464
+ /** @description File size when the read started. */
1465
+ "X-File-Size"?: number;
1466
+ [name: string]: unknown;
1467
+ };
1468
+ content: {
1469
+ "application/octet-stream": string;
1470
+ };
1471
+ };
1472
+ /** @description Partial content. */
1473
+ 206: {
1474
+ headers: {
1475
+ "Content-Range"?: string;
1476
+ [name: string]: unknown;
1477
+ };
1478
+ content: {
1479
+ "application/octet-stream": string;
1480
+ };
1481
+ };
1482
+ default: components["responses"]["Error"];
1483
+ };
1484
+ };
1485
+ fileWrite: {
1486
+ parameters: {
1487
+ query: {
1488
+ path: components["parameters"]["FilePath"];
1489
+ /** @description Octal permission bits for a new file. */
1490
+ mode?: string;
1491
+ create_parents?: boolean;
1492
+ append?: boolean;
1493
+ };
1494
+ header?: {
1495
+ "Idempotency-Key"?: string;
1496
+ };
1497
+ path: {
1498
+ workspace_id: components["parameters"]["WorkspaceId"];
1499
+ };
1500
+ cookie?: never;
1501
+ };
1502
+ requestBody: {
1503
+ content: {
1504
+ "application/octet-stream": string;
1505
+ };
1506
+ };
1507
+ responses: {
1508
+ /** @description Written and fsync'd. */
1509
+ 200: {
1510
+ headers: {
1511
+ [name: string]: unknown;
1512
+ };
1513
+ content: {
1514
+ "application/json": components["schemas"]["FileWriteResult"];
1515
+ };
1516
+ };
1517
+ default: components["responses"]["Error"];
1518
+ };
1519
+ };
1520
+ fileRemove: {
1521
+ parameters: {
1522
+ query: {
1523
+ path: components["parameters"]["FilePath"];
1524
+ recursive?: boolean;
1525
+ };
1526
+ header?: never;
1527
+ path: {
1528
+ workspace_id: components["parameters"]["WorkspaceId"];
1529
+ };
1530
+ cookie?: never;
1531
+ };
1532
+ requestBody?: never;
1533
+ responses: {
1534
+ /** @description Removed. */
1535
+ 204: {
1536
+ headers: {
1537
+ [name: string]: unknown;
1538
+ };
1539
+ content?: never;
1540
+ };
1541
+ default: components["responses"]["Error"];
1542
+ };
1543
+ };
1544
+ fileStat: {
1545
+ parameters: {
1546
+ query: {
1547
+ path: components["parameters"]["FilePath"];
1548
+ };
1549
+ header?: never;
1550
+ path: {
1551
+ workspace_id: components["parameters"]["WorkspaceId"];
1552
+ };
1553
+ cookie?: never;
1554
+ };
1555
+ requestBody?: never;
1556
+ responses: {
1557
+ /** @description File info. */
1558
+ 200: {
1559
+ headers: {
1560
+ [name: string]: unknown;
1561
+ };
1562
+ content: {
1563
+ "application/json": components["schemas"]["FileInfo"];
1564
+ };
1565
+ };
1566
+ default: components["responses"]["Error"];
1567
+ };
1568
+ };
1569
+ fileList: {
1570
+ parameters: {
1571
+ query: {
1572
+ path: components["parameters"]["FilePath"];
1573
+ limit?: number;
1574
+ };
1575
+ header?: never;
1576
+ path: {
1577
+ workspace_id: components["parameters"]["WorkspaceId"];
1578
+ };
1579
+ cookie?: never;
1580
+ };
1581
+ requestBody?: never;
1582
+ responses: {
1583
+ /** @description Entries. */
1584
+ 200: {
1585
+ headers: {
1586
+ [name: string]: unknown;
1587
+ };
1588
+ content: {
1589
+ "application/json": components["schemas"]["FileList"];
1590
+ };
1591
+ };
1592
+ default: components["responses"]["Error"];
1593
+ };
1594
+ };
1595
+ fileMkdir: {
1596
+ parameters: {
1597
+ query?: never;
1598
+ header?: never;
1599
+ path: {
1600
+ workspace_id: components["parameters"]["WorkspaceId"];
1601
+ };
1602
+ cookie?: never;
1603
+ };
1604
+ requestBody: {
1605
+ content: {
1606
+ "application/json": components["schemas"]["MkdirRequest"];
1607
+ };
1608
+ };
1609
+ responses: {
1610
+ /** @description Directory info. */
1611
+ 200: {
1612
+ headers: {
1613
+ [name: string]: unknown;
1614
+ };
1615
+ content: {
1616
+ "application/json": components["schemas"]["FileInfo"];
1617
+ };
1618
+ };
1619
+ default: components["responses"]["Error"];
1620
+ };
1621
+ };
1622
+ fileMove: {
1623
+ parameters: {
1624
+ query?: never;
1625
+ header?: never;
1626
+ path: {
1627
+ workspace_id: components["parameters"]["WorkspaceId"];
1628
+ };
1629
+ cookie?: never;
1630
+ };
1631
+ requestBody: {
1632
+ content: {
1633
+ "application/json": components["schemas"]["MoveRequest"];
1634
+ };
1635
+ };
1636
+ responses: {
1637
+ /** @description Info of the destination. */
1638
+ 200: {
1639
+ headers: {
1640
+ [name: string]: unknown;
1641
+ };
1642
+ content: {
1643
+ "application/json": components["schemas"]["FileInfo"];
1644
+ };
1645
+ };
1646
+ default: components["responses"]["Error"];
1647
+ };
1648
+ };
1649
+ gitClone: {
1650
+ parameters: {
1651
+ query?: never;
1652
+ header?: never;
1653
+ path: {
1654
+ workspace_id: components["parameters"]["WorkspaceId"];
1655
+ };
1656
+ cookie?: never;
1657
+ };
1658
+ requestBody: {
1659
+ content: {
1660
+ "application/json": components["schemas"]["GitCloneRequest"];
1661
+ };
1662
+ };
1663
+ responses: {
1664
+ /** @description Command result (check exit_code). */
1665
+ 200: {
1666
+ headers: {
1667
+ [name: string]: unknown;
1668
+ };
1669
+ content: {
1670
+ "application/json": components["schemas"]["GitResult"];
1671
+ };
1672
+ };
1673
+ default: components["responses"]["Error"];
1674
+ };
1675
+ };
1676
+ gitStatus: {
1677
+ parameters: {
1678
+ query: {
1679
+ path: components["schemas"]["GuestPath"];
1680
+ };
1681
+ header?: never;
1682
+ path: {
1683
+ workspace_id: components["parameters"]["WorkspaceId"];
1684
+ };
1685
+ cookie?: never;
1686
+ };
1687
+ requestBody?: never;
1688
+ responses: {
1689
+ /** @description Repository status. */
1690
+ 200: {
1691
+ headers: {
1692
+ [name: string]: unknown;
1693
+ };
1694
+ content: {
1695
+ "application/json": components["schemas"]["GitStatus"];
1696
+ };
1697
+ };
1698
+ default: components["responses"]["Error"];
1699
+ };
1700
+ };
1701
+ gitCommit: {
1702
+ parameters: {
1703
+ query?: never;
1704
+ header?: never;
1705
+ path: {
1706
+ workspace_id: components["parameters"]["WorkspaceId"];
1707
+ };
1708
+ cookie?: never;
1709
+ };
1710
+ requestBody: {
1711
+ content: {
1712
+ "application/json": components["schemas"]["GitCommitRequest"];
1713
+ };
1714
+ };
1715
+ responses: {
1716
+ /** @description Command result (commit is set on success). */
1717
+ 200: {
1718
+ headers: {
1719
+ [name: string]: unknown;
1720
+ };
1721
+ content: {
1722
+ "application/json": components["schemas"]["GitResult"];
1723
+ };
1724
+ };
1725
+ default: components["responses"]["Error"];
1726
+ };
1727
+ };
1728
+ browserScreenshot: {
1729
+ parameters: {
1730
+ query?: never;
1731
+ header?: never;
1732
+ path: {
1733
+ workspace_id: components["parameters"]["WorkspaceId"];
1734
+ };
1735
+ cookie?: never;
1736
+ };
1737
+ requestBody: {
1738
+ content: {
1739
+ "application/json": components["schemas"]["BrowserScreenshotRequest"];
1740
+ };
1741
+ };
1742
+ responses: {
1743
+ /** @description PNG screenshot. */
1744
+ 200: {
1745
+ headers: {
1746
+ [name: string]: unknown;
1747
+ };
1748
+ content: {
1749
+ "image/png": string;
1750
+ };
1751
+ };
1752
+ default: components["responses"]["Error"];
1753
+ };
1754
+ };
1755
+ browserContent: {
1756
+ parameters: {
1757
+ query?: never;
1758
+ header?: never;
1759
+ path: {
1760
+ workspace_id: components["parameters"]["WorkspaceId"];
1761
+ };
1762
+ cookie?: never;
1763
+ };
1764
+ requestBody: {
1765
+ content: {
1766
+ "application/json": components["schemas"]["BrowserContentRequest"];
1767
+ };
1768
+ };
1769
+ responses: {
1770
+ /** @description Rendered content. */
1771
+ 200: {
1772
+ headers: {
1773
+ [name: string]: unknown;
1774
+ };
1775
+ content: {
1776
+ "application/json": components["schemas"]["BrowserContent"];
1777
+ };
1778
+ };
1779
+ default: components["responses"]["Error"];
1780
+ };
1781
+ };
1782
+ workspaceKeepalive: {
1783
+ parameters: {
1784
+ query?: never;
1785
+ header?: never;
1786
+ path: {
1787
+ workspace_id: components["parameters"]["WorkspaceId"];
1788
+ };
1789
+ cookie?: never;
1790
+ };
1791
+ requestBody: {
1792
+ content: {
1793
+ "application/json": components["schemas"]["KeepaliveRequest"];
1794
+ };
1795
+ };
1796
+ responses: {
1797
+ /** @description Effective keepalive. */
1798
+ 200: {
1799
+ headers: {
1800
+ [name: string]: unknown;
1801
+ };
1802
+ content: {
1803
+ "application/json": components["schemas"]["KeepaliveResult"];
1804
+ };
1805
+ };
1806
+ default: components["responses"]["Error"];
1807
+ };
1808
+ };
1809
+ workspaceIdle: {
1810
+ parameters: {
1811
+ query?: never;
1812
+ header?: never;
1813
+ path: {
1814
+ workspace_id: components["parameters"]["WorkspaceId"];
1815
+ };
1816
+ cookie?: never;
1817
+ };
1818
+ requestBody?: never;
1819
+ responses: {
1820
+ /** @description Idle status. */
1821
+ 200: {
1822
+ headers: {
1823
+ [name: string]: unknown;
1824
+ };
1825
+ content: {
1826
+ "application/json": components["schemas"]["IdleStatus"];
1827
+ };
1828
+ };
1829
+ default: components["responses"]["Error"];
1830
+ };
1831
+ };
1832
+ }