@engineer-ai/sdk 1.2.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/client.d.ts +7 -0
  2. package/dist/client.js +25 -0
  3. package/dist/gen/client/client.gen.d.ts +2 -0
  4. package/dist/gen/client/client.gen.js +165 -0
  5. package/dist/gen/client/index.d.ts +7 -0
  6. package/dist/gen/client/index.js +5 -0
  7. package/dist/gen/client/types.gen.d.ts +127 -0
  8. package/dist/gen/client/types.gen.js +2 -0
  9. package/dist/gen/client/utils.gen.d.ts +38 -0
  10. package/dist/gen/client/utils.gen.js +226 -0
  11. package/dist/gen/client.gen.d.ts +12 -0
  12. package/dist/gen/client.gen.js +5 -0
  13. package/dist/gen/core/auth.gen.d.ts +18 -0
  14. package/dist/gen/core/auth.gen.js +14 -0
  15. package/dist/gen/core/bodySerializer.gen.d.ts +17 -0
  16. package/dist/gen/core/bodySerializer.gen.js +57 -0
  17. package/dist/gen/core/params.gen.d.ts +33 -0
  18. package/dist/gen/core/params.gen.js +89 -0
  19. package/dist/gen/core/pathSerializer.gen.d.ts +33 -0
  20. package/dist/gen/core/pathSerializer.gen.js +106 -0
  21. package/dist/gen/core/serverSentEvents.gen.d.ts +59 -0
  22. package/dist/gen/core/serverSentEvents.gen.js +117 -0
  23. package/dist/gen/core/types.gen.d.ts +78 -0
  24. package/dist/gen/core/types.gen.js +2 -0
  25. package/dist/gen/core/utils.gen.d.ts +14 -0
  26. package/dist/gen/core/utils.gen.js +69 -0
  27. package/dist/gen/sdk.gen.d.ts +403 -0
  28. package/dist/gen/sdk.gen.js +881 -0
  29. package/dist/gen/types.gen.d.ts +3379 -0
  30. package/dist/gen/types.gen.js +2 -0
  31. package/dist/index.d.ts +10 -0
  32. package/dist/index.js +16 -0
  33. package/dist/server.d.ts +23 -0
  34. package/dist/server.js +94 -0
  35. package/dist/v2/client.d.ts +7 -0
  36. package/dist/v2/client.js +27 -0
  37. package/dist/v2/gen/client/client.gen.d.ts +2 -0
  38. package/dist/v2/gen/client/client.gen.js +232 -0
  39. package/dist/v2/gen/client/index.d.ts +8 -0
  40. package/dist/v2/gen/client/index.js +6 -0
  41. package/dist/v2/gen/client/types.gen.d.ts +117 -0
  42. package/dist/v2/gen/client/types.gen.js +2 -0
  43. package/dist/v2/gen/client/utils.gen.d.ts +33 -0
  44. package/dist/v2/gen/client/utils.gen.js +226 -0
  45. package/dist/v2/gen/client.gen.d.ts +12 -0
  46. package/dist/v2/gen/client.gen.js +3 -0
  47. package/dist/v2/gen/core/auth.gen.d.ts +18 -0
  48. package/dist/v2/gen/core/auth.gen.js +14 -0
  49. package/dist/v2/gen/core/bodySerializer.gen.d.ts +25 -0
  50. package/dist/v2/gen/core/bodySerializer.gen.js +57 -0
  51. package/dist/v2/gen/core/params.gen.d.ts +43 -0
  52. package/dist/v2/gen/core/params.gen.js +102 -0
  53. package/dist/v2/gen/core/pathSerializer.gen.d.ts +33 -0
  54. package/dist/v2/gen/core/pathSerializer.gen.js +106 -0
  55. package/dist/v2/gen/core/queryKeySerializer.gen.d.ts +18 -0
  56. package/dist/v2/gen/core/queryKeySerializer.gen.js +93 -0
  57. package/dist/v2/gen/core/serverSentEvents.gen.d.ts +71 -0
  58. package/dist/v2/gen/core/serverSentEvents.gen.js +133 -0
  59. package/dist/v2/gen/core/types.gen.d.ts +78 -0
  60. package/dist/v2/gen/core/types.gen.js +2 -0
  61. package/dist/v2/gen/core/utils.gen.d.ts +19 -0
  62. package/dist/v2/gen/core/utils.gen.js +87 -0
  63. package/dist/v2/gen/sdk.gen.d.ts +1204 -0
  64. package/dist/v2/gen/sdk.gen.js +2373 -0
  65. package/dist/v2/gen/types.gen.d.ts +4858 -0
  66. package/dist/v2/gen/types.gen.js +2 -0
  67. package/dist/v2/index.d.ts +10 -0
  68. package/dist/v2/index.js +16 -0
  69. package/dist/v2/server.d.ts +23 -0
  70. package/dist/v2/server.js +94 -0
  71. package/package.json +1 -1
@@ -0,0 +1,4858 @@
1
+ export type ClientOptions = {
2
+ baseUrl: `${string}://${string}` | (string & {});
3
+ };
4
+ export type EventInstallationUpdated = {
5
+ type: "installation.updated";
6
+ properties: {
7
+ version: string;
8
+ };
9
+ };
10
+ export type EventEngineerUpdateAvailable = {
11
+ type: "engineer.update-available";
12
+ properties: {
13
+ version: string;
14
+ };
15
+ };
16
+ export type Project = {
17
+ id: string;
18
+ worktree: string;
19
+ vcs?: "git";
20
+ name?: string;
21
+ icon?: {
22
+ url?: string;
23
+ override?: string;
24
+ color?: string;
25
+ };
26
+ commands?: {
27
+ /**
28
+ * Startup script to run when creating a new workspace (worktree)
29
+ */
30
+ start?: string;
31
+ };
32
+ time: {
33
+ created: number;
34
+ updated: number;
35
+ initialized?: number;
36
+ };
37
+ sandboxes: Array<string>;
38
+ };
39
+ export type EventProjectUpdated = {
40
+ type: "project.updated";
41
+ properties: Project;
42
+ };
43
+ export type EventServerInstanceDisposed = {
44
+ type: "server.instance.disposed";
45
+ properties: {
46
+ directory: string;
47
+ };
48
+ };
49
+ export type EventServerConnected = {
50
+ type: "server.connected";
51
+ properties: {
52
+ [key: string]: unknown;
53
+ };
54
+ };
55
+ export type EventGlobalDisposed = {
56
+ type: "global.disposed";
57
+ properties: {
58
+ [key: string]: unknown;
59
+ };
60
+ };
61
+ export type EventLspClientDiagnostics = {
62
+ type: "lsp.client.diagnostics";
63
+ properties: {
64
+ serverID: string;
65
+ path: string;
66
+ };
67
+ };
68
+ export type EventLspUpdated = {
69
+ type: "lsp.updated";
70
+ properties: {
71
+ [key: string]: unknown;
72
+ };
73
+ };
74
+ export type EventFileEdited = {
75
+ type: "file.edited";
76
+ properties: {
77
+ file: string;
78
+ };
79
+ };
80
+ export type FileDiff = {
81
+ file: string;
82
+ before: string;
83
+ after: string;
84
+ additions: number;
85
+ deletions: number;
86
+ status?: "added" | "deleted" | "modified";
87
+ };
88
+ export type UserMessage = {
89
+ id: string;
90
+ sessionID: string;
91
+ role: "user";
92
+ time: {
93
+ created: number;
94
+ };
95
+ summary?: {
96
+ title?: string;
97
+ body?: string;
98
+ diffs: Array<FileDiff>;
99
+ };
100
+ agent: string;
101
+ model: {
102
+ providerID: string;
103
+ modelID: string;
104
+ };
105
+ system?: string;
106
+ bindId?: string;
107
+ tools?: {
108
+ [key: string]: boolean;
109
+ };
110
+ variant?: string;
111
+ hidden?: boolean;
112
+ skip?: boolean;
113
+ temporary?: boolean;
114
+ };
115
+ export type ProviderAuthError = {
116
+ name: "ProviderAuthError";
117
+ data: {
118
+ providerID: string;
119
+ message: string;
120
+ };
121
+ };
122
+ export type UnknownError = {
123
+ name: "UnknownError";
124
+ data: {
125
+ message: string;
126
+ };
127
+ };
128
+ export type MessageOutputLengthError = {
129
+ name: "MessageOutputLengthError";
130
+ data: {
131
+ [key: string]: unknown;
132
+ };
133
+ };
134
+ export type MessageAbortedError = {
135
+ name: "MessageAbortedError";
136
+ data: {
137
+ message: string;
138
+ };
139
+ };
140
+ export type ContextOverflowError = {
141
+ name: "ContextOverflowError";
142
+ data: {
143
+ message: string;
144
+ responseBody?: string;
145
+ };
146
+ };
147
+ export type ApiError = {
148
+ name: "APIError";
149
+ data: {
150
+ message: string;
151
+ statusCode?: number;
152
+ isRetryable: boolean;
153
+ responseHeaders?: {
154
+ [key: string]: string;
155
+ };
156
+ responseBody?: string;
157
+ metadata?: {
158
+ [key: string]: string;
159
+ };
160
+ };
161
+ };
162
+ export type AssistantMessage = {
163
+ id: string;
164
+ sessionID: string;
165
+ role: "assistant";
166
+ time: {
167
+ created: number;
168
+ completed?: number;
169
+ };
170
+ error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError | ContextOverflowError | ApiError;
171
+ parentID: string;
172
+ modelID: string;
173
+ providerID: string;
174
+ mode: string;
175
+ agent: string;
176
+ path: {
177
+ cwd: string;
178
+ root: string;
179
+ };
180
+ summary?: boolean;
181
+ hidden?: boolean;
182
+ skip?: boolean;
183
+ bindId?: string;
184
+ cost: number;
185
+ tokens: {
186
+ input: number;
187
+ output: number;
188
+ reasoning: number;
189
+ cache: {
190
+ read: number;
191
+ write: number;
192
+ };
193
+ };
194
+ variant?: string;
195
+ finish?: string;
196
+ };
197
+ export type Message = UserMessage | AssistantMessage;
198
+ export type EventMessageUpdated = {
199
+ type: "message.updated";
200
+ properties: {
201
+ info: Message;
202
+ };
203
+ };
204
+ export type EventMessageRemoved = {
205
+ type: "message.removed";
206
+ properties: {
207
+ sessionID: string;
208
+ messageID: string;
209
+ };
210
+ };
211
+ export type TextPart = {
212
+ id: string;
213
+ sessionID: string;
214
+ messageID: string;
215
+ type: "text";
216
+ text: string;
217
+ synthetic?: boolean;
218
+ ignored?: boolean;
219
+ time?: {
220
+ start: number;
221
+ end?: number;
222
+ };
223
+ metadata?: {
224
+ [key: string]: unknown;
225
+ };
226
+ };
227
+ export type SubtaskPart = {
228
+ id: string;
229
+ sessionID: string;
230
+ messageID: string;
231
+ type: "subtask";
232
+ prompt: string;
233
+ description: string;
234
+ agent: string;
235
+ model?: {
236
+ providerID: string;
237
+ modelID: string;
238
+ };
239
+ command?: string;
240
+ /**
241
+ * User-visible command text, e.g., '/commit'
242
+ */
243
+ userText?: string;
244
+ };
245
+ export type ReasoningPart = {
246
+ id: string;
247
+ sessionID: string;
248
+ messageID: string;
249
+ type: "reasoning";
250
+ text: string;
251
+ metadata?: {
252
+ [key: string]: unknown;
253
+ };
254
+ time: {
255
+ start: number;
256
+ end?: number;
257
+ };
258
+ };
259
+ export type FilePartSourceText = {
260
+ value: string;
261
+ start: number;
262
+ end: number;
263
+ };
264
+ export type FileSource = {
265
+ text: FilePartSourceText;
266
+ type: "file";
267
+ path: string;
268
+ };
269
+ export type Range = {
270
+ start: {
271
+ line: number;
272
+ character: number;
273
+ };
274
+ end: {
275
+ line: number;
276
+ character: number;
277
+ };
278
+ };
279
+ export type SymbolSource = {
280
+ text: FilePartSourceText;
281
+ type: "symbol";
282
+ path: string;
283
+ range: Range;
284
+ name: string;
285
+ kind: number;
286
+ };
287
+ export type ResourceSource = {
288
+ text: FilePartSourceText;
289
+ type: "resource";
290
+ clientName: string;
291
+ uri: string;
292
+ };
293
+ export type FilePartSource = FileSource | SymbolSource | ResourceSource;
294
+ export type FilePart = {
295
+ id: string;
296
+ sessionID: string;
297
+ messageID: string;
298
+ type: "file";
299
+ mime: string;
300
+ filename?: string;
301
+ url: string;
302
+ source?: FilePartSource;
303
+ };
304
+ export type ToolStatePending = {
305
+ status: "pending";
306
+ input: {
307
+ [key: string]: unknown;
308
+ };
309
+ raw: string;
310
+ };
311
+ export type ToolStateRunning = {
312
+ status: "running";
313
+ input: {
314
+ [key: string]: unknown;
315
+ };
316
+ title?: string;
317
+ metadata?: {
318
+ [key: string]: unknown;
319
+ };
320
+ time: {
321
+ start: number;
322
+ };
323
+ };
324
+ export type ToolStateCompleted = {
325
+ status: "completed";
326
+ input: {
327
+ [key: string]: unknown;
328
+ };
329
+ output: string;
330
+ title: string;
331
+ metadata: {
332
+ [key: string]: unknown;
333
+ };
334
+ time: {
335
+ start: number;
336
+ end: number;
337
+ compacted?: number;
338
+ };
339
+ attachments?: Array<FilePart>;
340
+ };
341
+ export type ToolStateError = {
342
+ status: "error";
343
+ input: {
344
+ [key: string]: unknown;
345
+ };
346
+ error: string;
347
+ metadata?: {
348
+ [key: string]: unknown;
349
+ };
350
+ time: {
351
+ start: number;
352
+ end: number;
353
+ };
354
+ };
355
+ export type ToolState = ToolStatePending | ToolStateRunning | ToolStateCompleted | ToolStateError;
356
+ export type ToolPart = {
357
+ id: string;
358
+ sessionID: string;
359
+ messageID: string;
360
+ type: "tool";
361
+ callID: string;
362
+ tool: string;
363
+ state: ToolState;
364
+ metadata?: {
365
+ [key: string]: unknown;
366
+ };
367
+ };
368
+ export type StepStartPart = {
369
+ id: string;
370
+ sessionID: string;
371
+ messageID: string;
372
+ type: "step-start";
373
+ snapshot?: string;
374
+ };
375
+ export type StepFinishPart = {
376
+ id: string;
377
+ sessionID: string;
378
+ messageID: string;
379
+ type: "step-finish";
380
+ reason: string;
381
+ snapshot?: string;
382
+ cost: number;
383
+ tokens: {
384
+ input: number;
385
+ output: number;
386
+ reasoning: number;
387
+ cache: {
388
+ read: number;
389
+ write: number;
390
+ };
391
+ };
392
+ };
393
+ export type SnapshotPart = {
394
+ id: string;
395
+ sessionID: string;
396
+ messageID: string;
397
+ type: "snapshot";
398
+ snapshot: string;
399
+ };
400
+ export type PatchPart = {
401
+ id: string;
402
+ sessionID: string;
403
+ messageID: string;
404
+ type: "patch";
405
+ hash: string;
406
+ files: Array<string>;
407
+ };
408
+ export type AgentPart = {
409
+ id: string;
410
+ sessionID: string;
411
+ messageID: string;
412
+ type: "agent";
413
+ name: string;
414
+ source?: {
415
+ value: string;
416
+ start: number;
417
+ end: number;
418
+ };
419
+ };
420
+ export type RetryPart = {
421
+ id: string;
422
+ sessionID: string;
423
+ messageID: string;
424
+ type: "retry";
425
+ attempt: number;
426
+ error: ApiError;
427
+ time: {
428
+ created: number;
429
+ };
430
+ };
431
+ export type CompactionPart = {
432
+ id: string;
433
+ sessionID: string;
434
+ messageID: string;
435
+ type: "compaction";
436
+ auto: boolean;
437
+ keepMessageId?: string;
438
+ hidden?: boolean;
439
+ };
440
+ export type Part = TextPart | SubtaskPart | ReasoningPart | FilePart | ToolPart | StepStartPart | StepFinishPart | SnapshotPart | PatchPart | AgentPart | RetryPart | CompactionPart;
441
+ export type EventMessagePartUpdated = {
442
+ type: "message.part.updated";
443
+ properties: {
444
+ part: Part;
445
+ delta?: string;
446
+ };
447
+ };
448
+ export type EventMessagePartRemoved = {
449
+ type: "message.part.removed";
450
+ properties: {
451
+ sessionID: string;
452
+ messageID: string;
453
+ partID: string;
454
+ };
455
+ };
456
+ export type PermissionRequest = {
457
+ id: string;
458
+ sessionID: string;
459
+ permission: string;
460
+ patterns: Array<string>;
461
+ metadata: {
462
+ [key: string]: unknown;
463
+ };
464
+ always: Array<string>;
465
+ tool?: {
466
+ messageID: string;
467
+ callID: string;
468
+ };
469
+ };
470
+ export type EventPermissionAsked = {
471
+ type: "permission.asked";
472
+ properties: PermissionRequest;
473
+ };
474
+ export type EventPermissionReplied = {
475
+ type: "permission.replied";
476
+ properties: {
477
+ sessionID: string;
478
+ requestID: string;
479
+ reply: "once" | "always" | "reject";
480
+ };
481
+ };
482
+ export type EventTuiPromptAppend = {
483
+ type: "tui.prompt.append";
484
+ properties: {
485
+ text: string;
486
+ };
487
+ };
488
+ export type EventTuiCommandExecute = {
489
+ type: "tui.command.execute";
490
+ properties: {
491
+ command: "session.list" | "session.new" | "session.share" | "session.interrupt" | "session.compact" | "session.page.up" | "session.page.down" | "session.line.up" | "session.line.down" | "session.half.page.up" | "session.half.page.down" | "session.first" | "session.last" | "prompt.clear" | "prompt.submit" | "agent.cycle" | string;
492
+ };
493
+ };
494
+ export type EventTuiToastShow = {
495
+ type: "tui.toast.show";
496
+ properties: {
497
+ title?: string;
498
+ message: string;
499
+ variant: "info" | "success" | "warning" | "error";
500
+ /**
501
+ * Duration in milliseconds
502
+ */
503
+ duration?: number;
504
+ };
505
+ };
506
+ export type EventTuiSessionSelect = {
507
+ type: "tui.session.select";
508
+ properties: {
509
+ /**
510
+ * Session ID to navigate to
511
+ */
512
+ sessionID: string;
513
+ };
514
+ };
515
+ export type EventMcpToolsChanged = {
516
+ type: "mcp.tools.changed";
517
+ properties: {
518
+ server: string;
519
+ };
520
+ };
521
+ export type EventMcpBrowserOpenFailed = {
522
+ type: "mcp.browser.open.failed";
523
+ properties: {
524
+ mcpName: string;
525
+ url: string;
526
+ };
527
+ };
528
+ export type EventWorktreeReady = {
529
+ type: "worktree.ready";
530
+ properties: {
531
+ name: string;
532
+ branch: string;
533
+ };
534
+ };
535
+ export type EventWorktreeFailed = {
536
+ type: "worktree.failed";
537
+ properties: {
538
+ message: string;
539
+ };
540
+ };
541
+ export type EventCommandExecuted = {
542
+ type: "command.executed";
543
+ properties: {
544
+ name: string;
545
+ sessionID: string;
546
+ arguments: string;
547
+ messageID: string;
548
+ };
549
+ };
550
+ export type EventSkillCreated = {
551
+ type: "skill.created";
552
+ properties: {
553
+ name: string;
554
+ description: string;
555
+ };
556
+ };
557
+ export type SessionStatus = {
558
+ type: "idle";
559
+ } | {
560
+ type: "retry";
561
+ attempt: number;
562
+ message: string;
563
+ next: number;
564
+ } | {
565
+ type: "busy";
566
+ };
567
+ export type EventSessionStatus = {
568
+ type: "session.status";
569
+ properties: {
570
+ sessionID: string;
571
+ status: SessionStatus;
572
+ };
573
+ };
574
+ export type EventSessionIdle = {
575
+ type: "session.idle";
576
+ properties: {
577
+ sessionID: string;
578
+ };
579
+ };
580
+ export type QuestionOption = {
581
+ /**
582
+ * Display text (1-5 words, concise)
583
+ */
584
+ label: string;
585
+ /**
586
+ * Explanation of choice
587
+ */
588
+ description: string;
589
+ };
590
+ export type QuestionInfo = {
591
+ /**
592
+ * Complete question
593
+ */
594
+ question: string;
595
+ /**
596
+ * Very short label (max 30 chars)
597
+ */
598
+ header: string;
599
+ /**
600
+ * Available choices
601
+ */
602
+ options: Array<QuestionOption>;
603
+ /**
604
+ * Allow selecting multiple choices
605
+ */
606
+ multiple?: boolean;
607
+ /**
608
+ * Allow typing a custom answer (default: true)
609
+ */
610
+ custom?: boolean;
611
+ };
612
+ export type QuestionRequest = {
613
+ id: string;
614
+ sessionID: string;
615
+ /**
616
+ * Questions to ask
617
+ */
618
+ questions: Array<QuestionInfo>;
619
+ tool?: {
620
+ messageID: string;
621
+ callID: string;
622
+ };
623
+ };
624
+ export type EventQuestionAsked = {
625
+ type: "question.asked";
626
+ properties: QuestionRequest;
627
+ };
628
+ export type QuestionAnswer = Array<string>;
629
+ export type EventQuestionReplied = {
630
+ type: "question.replied";
631
+ properties: {
632
+ sessionID: string;
633
+ requestID: string;
634
+ answers: Array<QuestionAnswer>;
635
+ };
636
+ };
637
+ export type EventQuestionRejected = {
638
+ type: "question.rejected";
639
+ properties: {
640
+ sessionID: string;
641
+ requestID: string;
642
+ };
643
+ };
644
+ export type EventTaskNotification = {
645
+ type: "task.notification";
646
+ properties: {
647
+ taskId: string;
648
+ parentSessionId: string;
649
+ status: "pending" | "running" | "completed" | "failed" | "cancelled";
650
+ description: string;
651
+ output?: string;
652
+ error?: string;
653
+ };
654
+ };
655
+ export type EventSessionMemoryExtracted = {
656
+ type: "session.memory.extracted";
657
+ properties: {
658
+ sessionID: string;
659
+ projectID: string;
660
+ };
661
+ };
662
+ export type EventSessionCompacted = {
663
+ type: "session.compacted";
664
+ properties: {
665
+ sessionID: string;
666
+ };
667
+ };
668
+ export type EventFileWatcherUpdated = {
669
+ type: "file.watcher.updated";
670
+ properties: {
671
+ file: string;
672
+ event: "add" | "change" | "unlink";
673
+ };
674
+ };
675
+ export type Todo = {
676
+ /**
677
+ * Unique identifier for the todo item
678
+ */
679
+ id: string;
680
+ /**
681
+ * Brief description of the task
682
+ */
683
+ content: string;
684
+ /**
685
+ * Current status of the task
686
+ */
687
+ status: "pending" | "in_progress" | "completed" | "cancelled";
688
+ /**
689
+ * Priority level of the task
690
+ */
691
+ priority: "high" | "medium" | "low";
692
+ /**
693
+ * Present-tense description for UI spinner (e.g. 'Running tests')
694
+ */
695
+ activeForm?: string;
696
+ /**
697
+ * Task IDs that this task blocks (must complete before they can start)
698
+ */
699
+ blocks: Array<string>;
700
+ /**
701
+ * Task IDs that block this task (must complete before this can start)
702
+ */
703
+ blockedBy: Array<string>;
704
+ /**
705
+ * Arbitrary metadata
706
+ */
707
+ metadata?: {
708
+ [key: string]: unknown;
709
+ };
710
+ /**
711
+ * Creation timestamp
712
+ */
713
+ createdAt: number;
714
+ /**
715
+ * Last update timestamp
716
+ */
717
+ updatedAt: number;
718
+ };
719
+ export type EventTodoUpdated = {
720
+ type: "todo.updated";
721
+ properties: {
722
+ sessionID: string;
723
+ todos: Array<Todo>;
724
+ };
725
+ };
726
+ export type EventTeamWorkerStarted = {
727
+ type: "team.worker.started";
728
+ properties: {
729
+ name: string;
730
+ role: string;
731
+ sessionId: string;
732
+ };
733
+ };
734
+ export type EventTeamWorkerStopped = {
735
+ type: "team.worker.stopped";
736
+ properties: {
737
+ name: string;
738
+ reason?: string;
739
+ };
740
+ };
741
+ export type EventTeamTaskAssigned = {
742
+ type: "team.task.assigned";
743
+ properties: {
744
+ sessionId: string;
745
+ taskId: string;
746
+ workerName: string;
747
+ description: string;
748
+ };
749
+ };
750
+ export type EventTeamTaskCompleted = {
751
+ type: "team.task.completed";
752
+ properties: {
753
+ sessionId: string;
754
+ taskId: string;
755
+ workerName: string;
756
+ result?: string;
757
+ };
758
+ };
759
+ export type EventTeamTaskFailed = {
760
+ type: "team.task.failed";
761
+ properties: {
762
+ sessionId: string;
763
+ taskId: string;
764
+ workerName: string;
765
+ error?: string;
766
+ };
767
+ };
768
+ export type EventTeamMessageReceived = {
769
+ type: "team.message.received";
770
+ properties: {
771
+ from: string;
772
+ to: string;
773
+ type: string;
774
+ };
775
+ };
776
+ export type EventTeamMemberHired = {
777
+ type: "team.member.hired";
778
+ properties: {
779
+ sessionId: string;
780
+ name: string;
781
+ role: string;
782
+ agentName: string;
783
+ };
784
+ };
785
+ export type EventTeamMemberFired = {
786
+ type: "team.member.fired";
787
+ properties: {
788
+ sessionId: string;
789
+ name: string;
790
+ };
791
+ };
792
+ export type EventTeamWorkerStatusChanged = {
793
+ type: "team.worker.status_changed";
794
+ properties: {
795
+ sessionId: string;
796
+ name: string;
797
+ status: "idle" | "working" | "offline";
798
+ currentTask?: string;
799
+ };
800
+ };
801
+ export type EventVcsBranchUpdated = {
802
+ type: "vcs.branch.updated";
803
+ properties: {
804
+ branch?: string;
805
+ directory: string;
806
+ };
807
+ };
808
+ export type PermissionAction = "allow" | "deny" | "ask";
809
+ export type PermissionRule = {
810
+ permission: string;
811
+ pattern: string;
812
+ action: PermissionAction;
813
+ };
814
+ export type PermissionRuleset = Array<PermissionRule>;
815
+ export type Session = {
816
+ id: string;
817
+ slug: string;
818
+ projectID: string;
819
+ directory: string;
820
+ parentID?: string;
821
+ type?: "session_memory_extraction";
822
+ summary?: {
823
+ additions: number;
824
+ deletions: number;
825
+ files: number;
826
+ diffs?: Array<FileDiff>;
827
+ };
828
+ share?: {
829
+ url: string;
830
+ };
831
+ title: string;
832
+ version: string;
833
+ time: {
834
+ created: number;
835
+ updated: number;
836
+ compacting?: number;
837
+ archived?: number;
838
+ };
839
+ permission?: PermissionRuleset;
840
+ worktreeDirectory?: string;
841
+ worktreePath?: string;
842
+ branch?: string;
843
+ mode?: "agent" | "plan" | "goal";
844
+ revert?: {
845
+ messageID: string;
846
+ partID?: string;
847
+ snapshot?: string;
848
+ diff?: string;
849
+ };
850
+ };
851
+ export type EventSessionCreated = {
852
+ type: "session.created";
853
+ properties: {
854
+ info: Session;
855
+ };
856
+ };
857
+ export type EventSessionUpdated = {
858
+ type: "session.updated";
859
+ properties: {
860
+ info: Session;
861
+ };
862
+ };
863
+ export type EventSessionDeleted = {
864
+ type: "session.deleted";
865
+ properties: {
866
+ info: Session;
867
+ };
868
+ };
869
+ export type EventSessionDiff = {
870
+ type: "session.diff";
871
+ properties: {
872
+ sessionID: string;
873
+ diff: Array<FileDiff>;
874
+ };
875
+ };
876
+ export type EventSessionError = {
877
+ type: "session.error";
878
+ properties: {
879
+ sessionID?: string;
880
+ error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError | ContextOverflowError | ApiError;
881
+ };
882
+ };
883
+ export type Pty = {
884
+ id: string;
885
+ title: string;
886
+ command: string;
887
+ args: Array<string>;
888
+ cwd: string;
889
+ status: "running" | "exited";
890
+ pid: number;
891
+ };
892
+ export type EventPtyCreated = {
893
+ type: "pty.created";
894
+ properties: {
895
+ info: Pty;
896
+ };
897
+ };
898
+ export type EventPtyUpdated = {
899
+ type: "pty.updated";
900
+ properties: {
901
+ info: Pty;
902
+ };
903
+ };
904
+ export type EventPtyExited = {
905
+ type: "pty.exited";
906
+ properties: {
907
+ id: string;
908
+ exitCode: number;
909
+ };
910
+ };
911
+ export type EventPtyDeleted = {
912
+ type: "pty.deleted";
913
+ properties: {
914
+ id: string;
915
+ };
916
+ };
917
+ export type Event = EventInstallationUpdated | EventEngineerUpdateAvailable | EventProjectUpdated | EventServerInstanceDisposed | EventServerConnected | EventGlobalDisposed | EventLspClientDiagnostics | EventLspUpdated | EventFileEdited | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated | EventMessagePartRemoved | EventPermissionAsked | EventPermissionReplied | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventWorktreeReady | EventWorktreeFailed | EventCommandExecuted | EventSkillCreated | EventSessionStatus | EventSessionIdle | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected | EventTaskNotification | EventSessionMemoryExtracted | EventSessionCompacted | EventFileWatcherUpdated | EventTodoUpdated | EventTeamWorkerStarted | EventTeamWorkerStopped | EventTeamTaskAssigned | EventTeamTaskCompleted | EventTeamTaskFailed | EventTeamMessageReceived | EventTeamMemberHired | EventTeamMemberFired | EventTeamWorkerStatusChanged | EventVcsBranchUpdated | EventSessionCreated | EventSessionUpdated | EventSessionDeleted | EventSessionDiff | EventSessionError | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted;
918
+ export type GlobalEvent = {
919
+ directory: string;
920
+ payload: Event;
921
+ };
922
+ /**
923
+ * Custom keybind configurations
924
+ */
925
+ export type KeybindsConfig = {
926
+ /**
927
+ * Leader key for keybind combinations
928
+ */
929
+ leader?: string;
930
+ /**
931
+ * Exit the application
932
+ */
933
+ app_exit?: string;
934
+ /**
935
+ * Open external editor
936
+ */
937
+ editor_open?: string;
938
+ /**
939
+ * List available themes
940
+ */
941
+ theme_list?: string;
942
+ /**
943
+ * Toggle sidebar
944
+ */
945
+ sidebar_toggle?: string;
946
+ /**
947
+ * Toggle session scrollbar
948
+ */
949
+ scrollbar_toggle?: string;
950
+ /**
951
+ * Toggle username visibility
952
+ */
953
+ username_toggle?: string;
954
+ /**
955
+ * View status
956
+ */
957
+ status_view?: string;
958
+ /**
959
+ * Export session to editor
960
+ */
961
+ session_export?: string;
962
+ /**
963
+ * Create a new session
964
+ */
965
+ session_new?: string;
966
+ /**
967
+ * List all sessions
968
+ */
969
+ session_list?: string;
970
+ /**
971
+ * Show session timeline
972
+ */
973
+ session_timeline?: string;
974
+ /**
975
+ * Fork session from message
976
+ */
977
+ session_fork?: string;
978
+ /**
979
+ * Rename session
980
+ */
981
+ session_rename?: string;
982
+ /**
983
+ * Delete session
984
+ */
985
+ session_delete?: string;
986
+ /**
987
+ * Delete worktree
988
+ */
989
+ worktree_delete?: string;
990
+ /**
991
+ * Delete stash entry
992
+ */
993
+ stash_delete?: string;
994
+ /**
995
+ * Open provider list from model dialog
996
+ */
997
+ model_provider_list?: string;
998
+ /**
999
+ * Toggle model favorite status
1000
+ */
1001
+ model_favorite_toggle?: string;
1002
+ /**
1003
+ * Interrupt current session
1004
+ */
1005
+ session_interrupt?: string;
1006
+ /**
1007
+ * Compact the session
1008
+ */
1009
+ session_compact?: string;
1010
+ /**
1011
+ * List worktrees
1012
+ */
1013
+ worktree_list?: string;
1014
+ /**
1015
+ * Scroll messages up by one page
1016
+ */
1017
+ messages_page_up?: string;
1018
+ /**
1019
+ * Scroll messages down by one page
1020
+ */
1021
+ messages_page_down?: string;
1022
+ /**
1023
+ * Scroll messages up by one line
1024
+ */
1025
+ messages_line_up?: string;
1026
+ /**
1027
+ * Scroll messages down by one line
1028
+ */
1029
+ messages_line_down?: string;
1030
+ /**
1031
+ * Scroll messages up by half page
1032
+ */
1033
+ messages_half_page_up?: string;
1034
+ /**
1035
+ * Scroll messages down by half page
1036
+ */
1037
+ messages_half_page_down?: string;
1038
+ /**
1039
+ * Navigate to first message
1040
+ */
1041
+ messages_first?: string;
1042
+ /**
1043
+ * Navigate to last message
1044
+ */
1045
+ messages_last?: string;
1046
+ /**
1047
+ * Navigate to next message
1048
+ */
1049
+ messages_next?: string;
1050
+ /**
1051
+ * Navigate to previous message
1052
+ */
1053
+ messages_previous?: string;
1054
+ /**
1055
+ * Navigate to last user message
1056
+ */
1057
+ messages_last_user?: string;
1058
+ /**
1059
+ * Copy message
1060
+ */
1061
+ messages_copy?: string;
1062
+ /**
1063
+ * Undo message
1064
+ */
1065
+ messages_undo?: string;
1066
+ /**
1067
+ * Redo message
1068
+ */
1069
+ messages_redo?: string;
1070
+ /**
1071
+ * Toggle code block concealment in messages
1072
+ */
1073
+ messages_toggle_conceal?: string;
1074
+ /**
1075
+ * Toggle tool details visibility
1076
+ */
1077
+ tool_details?: string;
1078
+ /**
1079
+ * List available models
1080
+ */
1081
+ model_list?: string;
1082
+ /**
1083
+ * List available commands
1084
+ */
1085
+ command_list?: string;
1086
+ /**
1087
+ * List agents
1088
+ */
1089
+ agent_list?: string;
1090
+ /**
1091
+ * Next agent
1092
+ */
1093
+ agent_cycle?: string;
1094
+ /**
1095
+ * Clear input field
1096
+ */
1097
+ input_clear?: string;
1098
+ /**
1099
+ * Paste from clipboard
1100
+ */
1101
+ input_paste?: string;
1102
+ /**
1103
+ * Submit input
1104
+ */
1105
+ input_submit?: string;
1106
+ /**
1107
+ * Insert newline in input
1108
+ */
1109
+ input_newline?: string;
1110
+ /**
1111
+ * Move cursor left in input
1112
+ */
1113
+ input_move_left?: string;
1114
+ /**
1115
+ * Move cursor right in input
1116
+ */
1117
+ input_move_right?: string;
1118
+ /**
1119
+ * Move cursor up in input
1120
+ */
1121
+ input_move_up?: string;
1122
+ /**
1123
+ * Move cursor down in input
1124
+ */
1125
+ input_move_down?: string;
1126
+ /**
1127
+ * Select left in input
1128
+ */
1129
+ input_select_left?: string;
1130
+ /**
1131
+ * Select right in input
1132
+ */
1133
+ input_select_right?: string;
1134
+ /**
1135
+ * Select up in input
1136
+ */
1137
+ input_select_up?: string;
1138
+ /**
1139
+ * Select down in input
1140
+ */
1141
+ input_select_down?: string;
1142
+ /**
1143
+ * Move to start of line in input
1144
+ */
1145
+ input_line_home?: string;
1146
+ /**
1147
+ * Move to end of line in input
1148
+ */
1149
+ input_line_end?: string;
1150
+ /**
1151
+ * Select to start of line in input
1152
+ */
1153
+ input_select_line_home?: string;
1154
+ /**
1155
+ * Select to end of line in input
1156
+ */
1157
+ input_select_line_end?: string;
1158
+ /**
1159
+ * Move to start of visual line in input
1160
+ */
1161
+ input_visual_line_home?: string;
1162
+ /**
1163
+ * Move to end of visual line in input
1164
+ */
1165
+ input_visual_line_end?: string;
1166
+ /**
1167
+ * Select to start of visual line in input
1168
+ */
1169
+ input_select_visual_line_home?: string;
1170
+ /**
1171
+ * Select to end of visual line in input
1172
+ */
1173
+ input_select_visual_line_end?: string;
1174
+ /**
1175
+ * Move to start of buffer in input
1176
+ */
1177
+ input_buffer_home?: string;
1178
+ /**
1179
+ * Move to end of buffer in input
1180
+ */
1181
+ input_buffer_end?: string;
1182
+ /**
1183
+ * Select to start of buffer in input
1184
+ */
1185
+ input_select_buffer_home?: string;
1186
+ /**
1187
+ * Select to end of buffer in input
1188
+ */
1189
+ input_select_buffer_end?: string;
1190
+ /**
1191
+ * Delete line in input
1192
+ */
1193
+ input_delete_line?: string;
1194
+ /**
1195
+ * Delete to end of line in input
1196
+ */
1197
+ input_delete_to_line_end?: string;
1198
+ /**
1199
+ * Delete to start of line in input
1200
+ */
1201
+ input_delete_to_line_start?: string;
1202
+ /**
1203
+ * Backspace in input
1204
+ */
1205
+ input_backspace?: string;
1206
+ /**
1207
+ * Delete character in input
1208
+ */
1209
+ input_delete?: string;
1210
+ /**
1211
+ * Undo in input
1212
+ */
1213
+ input_undo?: string;
1214
+ /**
1215
+ * Redo in input
1216
+ */
1217
+ input_redo?: string;
1218
+ /**
1219
+ * Move word forward in input
1220
+ */
1221
+ input_word_forward?: string;
1222
+ /**
1223
+ * Move word backward in input
1224
+ */
1225
+ input_word_backward?: string;
1226
+ /**
1227
+ * Select word forward in input
1228
+ */
1229
+ input_select_word_forward?: string;
1230
+ /**
1231
+ * Select word backward in input
1232
+ */
1233
+ input_select_word_backward?: string;
1234
+ /**
1235
+ * Delete word forward in input
1236
+ */
1237
+ input_delete_word_forward?: string;
1238
+ /**
1239
+ * Delete word backward in input
1240
+ */
1241
+ input_delete_word_backward?: string;
1242
+ /**
1243
+ * Previous history item
1244
+ */
1245
+ history_previous?: string;
1246
+ /**
1247
+ * Next history item
1248
+ */
1249
+ history_next?: string;
1250
+ /**
1251
+ * Next child session
1252
+ */
1253
+ session_child_cycle?: string;
1254
+ /**
1255
+ * Previous child session
1256
+ */
1257
+ session_child_cycle_reverse?: string;
1258
+ /**
1259
+ * Go to parent session
1260
+ */
1261
+ session_parent?: string;
1262
+ /**
1263
+ * Toggle tips on home screen
1264
+ */
1265
+ tips_toggle?: string;
1266
+ /**
1267
+ * Toggle thinking blocks visibility
1268
+ */
1269
+ display_thinking?: string;
1270
+ };
1271
+ /**
1272
+ * Log level
1273
+ */
1274
+ export type LogLevel = "DEBUG" | "INFO" | "WARN" | "ERROR";
1275
+ /**
1276
+ * Server configuration for engineer serve and web commands
1277
+ */
1278
+ export type ServerConfig = {
1279
+ /**
1280
+ * Port to listen on
1281
+ */
1282
+ port?: number;
1283
+ /**
1284
+ * Hostname to listen on
1285
+ */
1286
+ hostname?: string;
1287
+ /**
1288
+ * Enable mDNS service discovery
1289
+ */
1290
+ mdns?: boolean;
1291
+ /**
1292
+ * Custom domain name for mDNS service (default: engineer.local)
1293
+ */
1294
+ mdnsDomain?: string;
1295
+ /**
1296
+ * Additional domains to allow for CORS
1297
+ */
1298
+ cors?: Array<string>;
1299
+ };
1300
+ export type PermissionActionConfig = "ask" | "allow" | "deny";
1301
+ export type PermissionObjectConfig = {
1302
+ [key: string]: PermissionActionConfig;
1303
+ };
1304
+ export type PermissionRuleConfig = PermissionActionConfig | PermissionObjectConfig;
1305
+ export type PermissionConfig = {
1306
+ __originalKeys?: Array<string>;
1307
+ read?: PermissionRuleConfig;
1308
+ edit?: PermissionRuleConfig;
1309
+ glob?: PermissionRuleConfig;
1310
+ grep?: PermissionRuleConfig;
1311
+ list?: PermissionRuleConfig;
1312
+ bash?: PermissionRuleConfig;
1313
+ task?: PermissionRuleConfig;
1314
+ external_directory?: PermissionRuleConfig;
1315
+ todo_create?: PermissionActionConfig;
1316
+ todo_update?: PermissionActionConfig;
1317
+ todo_list?: PermissionActionConfig;
1318
+ todo_delete?: PermissionActionConfig;
1319
+ question?: PermissionActionConfig;
1320
+ webfetch?: PermissionActionConfig;
1321
+ websearch?: PermissionActionConfig;
1322
+ codesearch?: PermissionActionConfig;
1323
+ lsp?: PermissionRuleConfig;
1324
+ doom_loop?: PermissionActionConfig;
1325
+ skill?: PermissionRuleConfig;
1326
+ business_search?: PermissionActionConfig;
1327
+ [key: string]: PermissionRuleConfig | Array<string> | PermissionActionConfig | undefined;
1328
+ } | PermissionActionConfig;
1329
+ export type AgentConfig = {
1330
+ model?: string;
1331
+ /**
1332
+ * Default model variant for this agent (applies only when using the agent's configured model).
1333
+ */
1334
+ variant?: string;
1335
+ temperature?: number;
1336
+ top_p?: number;
1337
+ prompt?: string;
1338
+ /**
1339
+ * @deprecated Use 'permission' field instead
1340
+ */
1341
+ tools?: {
1342
+ [key: string]: boolean;
1343
+ };
1344
+ disable?: boolean;
1345
+ /**
1346
+ * Description of when to use the agent
1347
+ */
1348
+ description?: string;
1349
+ mode?: "subagent" | "primary" | "all";
1350
+ /**
1351
+ * Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)
1352
+ */
1353
+ hidden?: boolean;
1354
+ options?: {
1355
+ [key: string]: unknown;
1356
+ };
1357
+ /**
1358
+ * Hex color code (e.g., #FF5733) or theme color (e.g., primary)
1359
+ */
1360
+ color?: string | "primary" | "secondary" | "accent" | "success" | "warning" | "error" | "info";
1361
+ /**
1362
+ * Maximum number of agentic iterations before forcing text-only response
1363
+ */
1364
+ steps?: number;
1365
+ /**
1366
+ * @deprecated Use 'steps' field instead.
1367
+ */
1368
+ maxSteps?: number;
1369
+ permission?: PermissionConfig;
1370
+ [key: string]: unknown | string | number | {
1371
+ [key: string]: boolean;
1372
+ } | boolean | "subagent" | "primary" | "all" | {
1373
+ [key: string]: unknown;
1374
+ } | string | "primary" | "secondary" | "accent" | "success" | "warning" | "error" | "info" | number | PermissionConfig | undefined;
1375
+ };
1376
+ export type ProviderConfig = {
1377
+ api?: string;
1378
+ name?: string;
1379
+ env?: Array<string>;
1380
+ id?: string;
1381
+ npm?: string;
1382
+ models?: {
1383
+ [key: string]: {
1384
+ id?: string;
1385
+ name?: string;
1386
+ family?: string;
1387
+ release_date?: string;
1388
+ attachment?: boolean;
1389
+ reasoning?: boolean;
1390
+ temperature?: boolean;
1391
+ tool_call?: boolean;
1392
+ interleaved?: true | {
1393
+ field: "reasoning_content" | "reasoning_details";
1394
+ };
1395
+ cost?: {
1396
+ input: number;
1397
+ output: number;
1398
+ cache_read?: number;
1399
+ cache_write?: number;
1400
+ context_over_200k?: {
1401
+ input: number;
1402
+ output: number;
1403
+ cache_read?: number;
1404
+ cache_write?: number;
1405
+ };
1406
+ };
1407
+ limit?: {
1408
+ context: number;
1409
+ input?: number;
1410
+ output: number;
1411
+ };
1412
+ modalities?: {
1413
+ input: Array<"text" | "audio" | "image" | "video" | "pdf">;
1414
+ output: Array<"text" | "audio" | "image" | "video" | "pdf">;
1415
+ };
1416
+ experimental?: boolean;
1417
+ status?: "alpha" | "beta" | "deprecated";
1418
+ options?: {
1419
+ [key: string]: unknown;
1420
+ };
1421
+ headers?: {
1422
+ [key: string]: string;
1423
+ };
1424
+ provider?: {
1425
+ npm: string;
1426
+ };
1427
+ /**
1428
+ * Variant-specific configuration
1429
+ */
1430
+ variants?: {
1431
+ [key: string]: {
1432
+ /**
1433
+ * Disable this variant for the model
1434
+ */
1435
+ disabled?: boolean;
1436
+ [key: string]: unknown | boolean | undefined;
1437
+ };
1438
+ };
1439
+ /**
1440
+ * Load balancing candidates with weights
1441
+ */
1442
+ balance_models?: Array<{
1443
+ /**
1444
+ * Provider ID of the balanced model
1445
+ */
1446
+ providerID: string;
1447
+ /**
1448
+ * Model ID of the balanced model
1449
+ */
1450
+ modelID: string;
1451
+ /**
1452
+ * Weight for load balancing (0-1)
1453
+ */
1454
+ weight: number;
1455
+ }>;
1456
+ };
1457
+ };
1458
+ whitelist?: Array<string>;
1459
+ blacklist?: Array<string>;
1460
+ options?: {
1461
+ apiKey?: string;
1462
+ baseURL?: string;
1463
+ /**
1464
+ * GitHub Enterprise URL for copilot authentication
1465
+ */
1466
+ enterpriseUrl?: string;
1467
+ /**
1468
+ * Enable promptCacheKey for this provider (default false)
1469
+ */
1470
+ setCacheKey?: boolean;
1471
+ /**
1472
+ * Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.
1473
+ */
1474
+ timeout?: number | false;
1475
+ [key: string]: unknown | string | boolean | number | false | undefined;
1476
+ };
1477
+ };
1478
+ export type McpLocalConfig = {
1479
+ /**
1480
+ * Type of MCP server connection
1481
+ */
1482
+ type: "local";
1483
+ /**
1484
+ * Command and arguments to run the MCP server
1485
+ */
1486
+ command: Array<string>;
1487
+ /**
1488
+ * Environment variables to set when running the MCP server
1489
+ */
1490
+ environment?: {
1491
+ [key: string]: string;
1492
+ };
1493
+ /**
1494
+ * Enable or disable the MCP server on startup
1495
+ */
1496
+ enabled?: boolean;
1497
+ /**
1498
+ * Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified.
1499
+ */
1500
+ timeout?: number;
1501
+ };
1502
+ export type McpOAuthConfig = {
1503
+ /**
1504
+ * OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted.
1505
+ */
1506
+ clientId?: string;
1507
+ /**
1508
+ * OAuth client secret (if required by the authorization server)
1509
+ */
1510
+ clientSecret?: string;
1511
+ /**
1512
+ * OAuth scopes to request during authorization
1513
+ */
1514
+ scope?: string;
1515
+ };
1516
+ export type McpRemoteConfig = {
1517
+ /**
1518
+ * Type of MCP server connection
1519
+ */
1520
+ type: "remote";
1521
+ /**
1522
+ * URL of the remote MCP server
1523
+ */
1524
+ url: string;
1525
+ /**
1526
+ * Enable or disable the MCP server on startup
1527
+ */
1528
+ enabled?: boolean;
1529
+ /**
1530
+ * Headers to send with the request
1531
+ */
1532
+ headers?: {
1533
+ [key: string]: string;
1534
+ };
1535
+ /**
1536
+ * OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection.
1537
+ */
1538
+ oauth?: McpOAuthConfig | false;
1539
+ /**
1540
+ * Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified.
1541
+ */
1542
+ timeout?: number;
1543
+ };
1544
+ /**
1545
+ * @deprecated Always uses stretch layout.
1546
+ */
1547
+ export type LayoutConfig = "auto" | "stretch";
1548
+ export type Config = {
1549
+ /**
1550
+ * JSON schema reference for configuration validation
1551
+ */
1552
+ $schema?: string;
1553
+ /**
1554
+ * Theme name to use for the interface
1555
+ */
1556
+ theme?: string;
1557
+ keybinds?: KeybindsConfig;
1558
+ logLevel?: LogLevel;
1559
+ /**
1560
+ * TUI specific settings
1561
+ */
1562
+ tui?: {
1563
+ /**
1564
+ * TUI scroll speed
1565
+ */
1566
+ scroll_speed?: number;
1567
+ /**
1568
+ * Scroll acceleration settings
1569
+ */
1570
+ scroll_acceleration?: {
1571
+ /**
1572
+ * Enable scroll acceleration
1573
+ */
1574
+ enabled: boolean;
1575
+ };
1576
+ /**
1577
+ * Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column
1578
+ */
1579
+ diff_style?: "auto" | "stacked";
1580
+ };
1581
+ server?: ServerConfig;
1582
+ /**
1583
+ * Command configuration
1584
+ */
1585
+ command?: {
1586
+ [key: string]: {
1587
+ template: string;
1588
+ description?: string;
1589
+ agent?: string;
1590
+ model?: string;
1591
+ subtask?: boolean;
1592
+ immediate?: boolean;
1593
+ };
1594
+ };
1595
+ /**
1596
+ * Additional skill folder paths
1597
+ */
1598
+ skills?: {
1599
+ /**
1600
+ * Additional paths to skill folders
1601
+ */
1602
+ paths?: Array<string>;
1603
+ /**
1604
+ * URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)
1605
+ */
1606
+ urls?: Array<string>;
1607
+ };
1608
+ watcher?: {
1609
+ ignore?: Array<string>;
1610
+ };
1611
+ plugin?: Array<string>;
1612
+ snapshot?: boolean;
1613
+ /**
1614
+ * Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing
1615
+ */
1616
+ share?: "manual" | "auto" | "disabled";
1617
+ /**
1618
+ * @deprecated Use 'share' field instead. Share newly created sessions automatically
1619
+ */
1620
+ autoshare?: boolean;
1621
+ /**
1622
+ * Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications
1623
+ */
1624
+ autoupdate?: boolean | "notify";
1625
+ /**
1626
+ * Disable providers that are loaded automatically
1627
+ */
1628
+ disabled_providers?: Array<string>;
1629
+ /**
1630
+ * When set, ONLY these providers will be enabled. All other providers will be ignored
1631
+ */
1632
+ enabled_providers?: Array<string>;
1633
+ /**
1634
+ * Model to use in the format of provider/model, eg anthropic/claude-2
1635
+ */
1636
+ model?: string;
1637
+ /**
1638
+ * Small model to use for tasks like title generation in the format of provider/model
1639
+ */
1640
+ small_model?: string;
1641
+ /**
1642
+ * Model to use for memory extraction and analysis in the format of provider/model. If not set, memory extraction will be skipped.
1643
+ */
1644
+ memory_model?: string;
1645
+ /**
1646
+ * Enable goal mode (multi-agent orchestration). When false or unset, goal agent, /hire and /fire commands are hidden. Defaults to false.
1647
+ */
1648
+ goal_enabled?: boolean;
1649
+ /**
1650
+ * Team member configuration as an array of {name, role}, e.g. [{"name": "Frank", "role": "frontend"}, {"name": "Beck", "role": "backend"}]. Only entries with valid roles are used.
1651
+ */
1652
+ team_config?: Array<{
1653
+ name: string;
1654
+ role: string;
1655
+ }>;
1656
+ /**
1657
+ * Maximum number of team members allowed per role. Defaults to 2. When hiring, roles that have reached this limit will be unavailable.
1658
+ */
1659
+ max_per_role?: number;
1660
+ /**
1661
+ * Load balancing strategy for model selection (default: deterministic)
1662
+ */
1663
+ balance_strategy?: "deterministic";
1664
+ /**
1665
+ * Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid.
1666
+ */
1667
+ default_agent?: string;
1668
+ /**
1669
+ * Custom username to display in conversations instead of system username
1670
+ */
1671
+ username?: string;
1672
+ /**
1673
+ * Custom user ID to display in conversations instead of system user ID
1674
+ */
1675
+ userId?: string;
1676
+ /**
1677
+ * List of admin user IDs who can access beta models
1678
+ */
1679
+ admin_users?: Array<string>;
1680
+ /**
1681
+ * Custom access token to display in conversations instead of system access token
1682
+ */
1683
+ accessToken?: string;
1684
+ /**
1685
+ * @deprecated Use `agent` field instead.
1686
+ */
1687
+ mode?: {
1688
+ build?: AgentConfig;
1689
+ plan?: AgentConfig;
1690
+ [key: string]: AgentConfig | undefined;
1691
+ };
1692
+ /**
1693
+ * Agent configuration
1694
+ */
1695
+ agent?: {
1696
+ plan?: AgentConfig;
1697
+ agent?: AgentConfig;
1698
+ general?: AgentConfig;
1699
+ explore?: AgentConfig;
1700
+ business?: AgentConfig;
1701
+ verification?: AgentConfig;
1702
+ title?: AgentConfig;
1703
+ summary?: AgentConfig;
1704
+ compaction?: AgentConfig;
1705
+ sessionMemory?: AgentConfig;
1706
+ [key: string]: AgentConfig | undefined;
1707
+ };
1708
+ /**
1709
+ * Custom provider configurations and model overrides
1710
+ */
1711
+ provider?: {
1712
+ [key: string]: ProviderConfig;
1713
+ };
1714
+ /**
1715
+ * Check configuration
1716
+ */
1717
+ check?: {
1718
+ /**
1719
+ * Files to check
1720
+ */
1721
+ check_files?: Array<string>;
1722
+ /**
1723
+ * Files to ignore when checking
1724
+ */
1725
+ ignore_files?: Array<string>;
1726
+ };
1727
+ /**
1728
+ * MCP (Model Context Protocol) server configurations
1729
+ */
1730
+ mcp?: {
1731
+ [key: string]: McpLocalConfig | McpRemoteConfig | {
1732
+ enabled: boolean;
1733
+ };
1734
+ };
1735
+ formatter?: false | {
1736
+ [key: string]: {
1737
+ disabled?: boolean;
1738
+ command?: Array<string>;
1739
+ environment?: {
1740
+ [key: string]: string;
1741
+ };
1742
+ extensions?: Array<string>;
1743
+ };
1744
+ };
1745
+ lsp?: false | {
1746
+ [key: string]: {
1747
+ disabled: true;
1748
+ } | {
1749
+ command: Array<string>;
1750
+ extensions?: Array<string>;
1751
+ disabled?: boolean;
1752
+ env?: {
1753
+ [key: string]: string;
1754
+ };
1755
+ initialization?: {
1756
+ [key: string]: unknown;
1757
+ };
1758
+ };
1759
+ };
1760
+ /**
1761
+ * Additional instruction files or patterns to include
1762
+ */
1763
+ instructions?: Array<string>;
1764
+ layout?: LayoutConfig;
1765
+ permission?: PermissionConfig;
1766
+ tools?: {
1767
+ [key: string]: boolean;
1768
+ };
1769
+ enterprise?: {
1770
+ /**
1771
+ * Enterprise URL
1772
+ */
1773
+ url?: string;
1774
+ };
1775
+ compaction?: {
1776
+ /**
1777
+ * Enable automatic compaction when context is full (default: true)
1778
+ */
1779
+ auto?: boolean;
1780
+ /**
1781
+ * Enable pruning of old tool outputs (default: true)
1782
+ */
1783
+ prune?: boolean;
1784
+ /**
1785
+ * Enable time-based prune when prompt cache expires (default: true). Clears old tool results when gap since last assistant message exceeds 60 minutes.
1786
+ */
1787
+ timeBasedPrune?: boolean;
1788
+ /**
1789
+ * Enable session memory compaction (default: true). Uses pre-extracted session memory as summary for zero API cost.
1790
+ */
1791
+ sessionMemory?: boolean;
1792
+ /**
1793
+ * Enable dedup prune of duplicate read-only tool calls (default: true). Removes earlier identical tool calls, keeping the latest result.
1794
+ */
1795
+ dedupPrune?: boolean;
1796
+ };
1797
+ memory?: {
1798
+ /**
1799
+ * Enable built-in persistent memory (default: true)
1800
+ */
1801
+ enabled?: boolean;
1802
+ };
1803
+ /**
1804
+ * Enable knowledge base context injection plugin (default: false)
1805
+ */
1806
+ is_kdb_open?: boolean;
1807
+ /**
1808
+ * List of local repository URLs to clone and make available
1809
+ */
1810
+ local_repos?: Array<string>;
1811
+ experimental?: {
1812
+ /**
1813
+ * Enable the batch tool
1814
+ */
1815
+ batch_tool?: boolean;
1816
+ /**
1817
+ * Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)
1818
+ */
1819
+ openTelemetry?: boolean;
1820
+ /**
1821
+ * Tools that should only be available to primary agents.
1822
+ */
1823
+ primary_tools?: Array<string>;
1824
+ /**
1825
+ * Continue the agent loop when a tool call is denied
1826
+ */
1827
+ continue_loop_on_deny?: boolean;
1828
+ /**
1829
+ * Timeout in milliseconds for model context protocol (MCP) requests
1830
+ */
1831
+ mcp_timeout?: number;
1832
+ };
1833
+ };
1834
+ export type BadRequestError = {
1835
+ data: unknown;
1836
+ errors: Array<{
1837
+ [key: string]: unknown;
1838
+ }>;
1839
+ success: false;
1840
+ };
1841
+ export type OAuth = {
1842
+ type: "oauth";
1843
+ refresh: string;
1844
+ access: string;
1845
+ expires: number;
1846
+ accountId?: string;
1847
+ enterpriseUrl?: string;
1848
+ };
1849
+ export type ApiAuth = {
1850
+ type: "api";
1851
+ key: string;
1852
+ };
1853
+ export type WellKnownAuth = {
1854
+ type: "wellknown";
1855
+ key: string;
1856
+ userId?: string;
1857
+ userName?: string;
1858
+ expires?: number;
1859
+ };
1860
+ export type Auth = OAuth | ApiAuth | WellKnownAuth;
1861
+ export type NotFoundError = {
1862
+ name: "NotFoundError";
1863
+ data: {
1864
+ message: string;
1865
+ };
1866
+ };
1867
+ export type Model = {
1868
+ id: string;
1869
+ providerID: string;
1870
+ api: {
1871
+ id: string;
1872
+ url: string;
1873
+ npm: string;
1874
+ };
1875
+ name: string;
1876
+ family?: string;
1877
+ capabilities: {
1878
+ temperature: boolean;
1879
+ reasoning: boolean;
1880
+ attachment: boolean;
1881
+ toolcall: boolean;
1882
+ input: {
1883
+ text: boolean;
1884
+ audio: boolean;
1885
+ image: boolean;
1886
+ video: boolean;
1887
+ pdf: boolean;
1888
+ };
1889
+ output: {
1890
+ text: boolean;
1891
+ audio: boolean;
1892
+ image: boolean;
1893
+ video: boolean;
1894
+ pdf: boolean;
1895
+ };
1896
+ interleaved: boolean | {
1897
+ field: "reasoning_content" | "reasoning_details";
1898
+ };
1899
+ };
1900
+ cost: {
1901
+ input: number;
1902
+ output: number;
1903
+ cache: {
1904
+ read: number;
1905
+ write: number;
1906
+ };
1907
+ experimentalOver200K?: {
1908
+ input: number;
1909
+ output: number;
1910
+ cache: {
1911
+ read: number;
1912
+ write: number;
1913
+ };
1914
+ };
1915
+ };
1916
+ limit: {
1917
+ context: number;
1918
+ input?: number;
1919
+ output: number;
1920
+ };
1921
+ status: "alpha" | "beta" | "deprecated" | "active";
1922
+ options: {
1923
+ [key: string]: unknown;
1924
+ };
1925
+ headers: {
1926
+ [key: string]: string;
1927
+ };
1928
+ release_date: string;
1929
+ variants?: {
1930
+ [key: string]: {
1931
+ [key: string]: unknown;
1932
+ };
1933
+ };
1934
+ balance_models?: Array<{
1935
+ providerID: string;
1936
+ modelID: string;
1937
+ weight: number;
1938
+ }>;
1939
+ };
1940
+ export type Provider = {
1941
+ id: string;
1942
+ name: string;
1943
+ source: "env" | "config" | "custom" | "api";
1944
+ env: Array<string>;
1945
+ key?: string;
1946
+ options: {
1947
+ [key: string]: unknown;
1948
+ };
1949
+ models: {
1950
+ [key: string]: Model;
1951
+ };
1952
+ };
1953
+ export type ToolIds = Array<string>;
1954
+ export type ToolListItem = {
1955
+ id: string;
1956
+ description: string;
1957
+ parameters: unknown;
1958
+ };
1959
+ export type ToolList = Array<ToolListItem>;
1960
+ export type Worktree = {
1961
+ name: string;
1962
+ branch: string;
1963
+ directory: string;
1964
+ gitUrls: {
1965
+ [key: string]: string;
1966
+ };
1967
+ rootDir: string;
1968
+ createdAt?: number;
1969
+ };
1970
+ export type WorktreeCreateInput = {
1971
+ name?: string;
1972
+ /**
1973
+ * Additional startup script to run after the project's start command
1974
+ */
1975
+ startCommand?: string;
1976
+ };
1977
+ export type WorktreeRemoveInput = {
1978
+ directory: string;
1979
+ };
1980
+ export type WorktreeResetInput = {
1981
+ directory: string;
1982
+ };
1983
+ export type WorktreeSwitchInput = {
1984
+ directory: string;
1985
+ };
1986
+ export type McpResource = {
1987
+ name: string;
1988
+ uri: string;
1989
+ description?: string;
1990
+ mimeType?: string;
1991
+ client: string;
1992
+ };
1993
+ export type TextPartInput = {
1994
+ id?: string;
1995
+ type: "text";
1996
+ text: string;
1997
+ synthetic?: boolean;
1998
+ ignored?: boolean;
1999
+ time?: {
2000
+ start: number;
2001
+ end?: number;
2002
+ };
2003
+ metadata?: {
2004
+ [key: string]: unknown;
2005
+ };
2006
+ };
2007
+ export type FilePartInput = {
2008
+ id?: string;
2009
+ type: "file";
2010
+ mime: string;
2011
+ filename?: string;
2012
+ url: string;
2013
+ source?: FilePartSource;
2014
+ };
2015
+ export type AgentPartInput = {
2016
+ id?: string;
2017
+ type: "agent";
2018
+ name: string;
2019
+ source?: {
2020
+ value: string;
2021
+ start: number;
2022
+ end: number;
2023
+ };
2024
+ };
2025
+ export type SubtaskPartInput = {
2026
+ id?: string;
2027
+ type: "subtask";
2028
+ prompt: string;
2029
+ description: string;
2030
+ agent: string;
2031
+ model?: {
2032
+ providerID: string;
2033
+ modelID: string;
2034
+ };
2035
+ command?: string;
2036
+ /**
2037
+ * User-visible command text, e.g., '/commit'
2038
+ */
2039
+ userText?: string;
2040
+ };
2041
+ export type ProviderAuthMethod = {
2042
+ type: "oauth" | "api";
2043
+ label: string;
2044
+ };
2045
+ export type ProviderAuthAuthorization = {
2046
+ url: string;
2047
+ method: "auto" | "code";
2048
+ instructions: string;
2049
+ };
2050
+ export type Symbol = {
2051
+ name: string;
2052
+ kind: number;
2053
+ location: {
2054
+ uri: string;
2055
+ range: Range;
2056
+ };
2057
+ };
2058
+ export type FileNode = {
2059
+ name: string;
2060
+ path: string;
2061
+ absolute: string;
2062
+ type: "file" | "directory";
2063
+ ignored: boolean;
2064
+ };
2065
+ export type FileContent = {
2066
+ type: "text" | "binary";
2067
+ content: string;
2068
+ diff?: string;
2069
+ patch?: {
2070
+ oldFileName: string;
2071
+ newFileName: string;
2072
+ oldHeader?: string;
2073
+ newHeader?: string;
2074
+ hunks: Array<{
2075
+ oldStart: number;
2076
+ oldLines: number;
2077
+ newStart: number;
2078
+ newLines: number;
2079
+ lines: Array<string>;
2080
+ }>;
2081
+ index?: string;
2082
+ };
2083
+ encoding?: "base64";
2084
+ mimeType?: string;
2085
+ };
2086
+ export type File = {
2087
+ path: string;
2088
+ added: number;
2089
+ removed: number;
2090
+ status: "added" | "deleted" | "modified";
2091
+ };
2092
+ export type McpStatusConnected = {
2093
+ status: "connected";
2094
+ };
2095
+ export type McpStatusDisabled = {
2096
+ status: "disabled";
2097
+ };
2098
+ export type McpStatusFailed = {
2099
+ status: "failed";
2100
+ error: string;
2101
+ };
2102
+ export type McpStatusNeedsAuth = {
2103
+ status: "needs_auth";
2104
+ };
2105
+ export type McpStatusNeedsClientRegistration = {
2106
+ status: "needs_client_registration";
2107
+ error: string;
2108
+ };
2109
+ export type McpStatus = McpStatusConnected | McpStatusDisabled | McpStatusFailed | McpStatusNeedsAuth | McpStatusNeedsClientRegistration;
2110
+ export type Path = {
2111
+ home: string;
2112
+ state: string;
2113
+ config: string;
2114
+ worktree: string;
2115
+ directory: string;
2116
+ };
2117
+ export type VcsInfo = {
2118
+ branch: string;
2119
+ };
2120
+ export type Command = {
2121
+ name: string;
2122
+ description?: string;
2123
+ agent?: string;
2124
+ model?: string;
2125
+ source?: "command" | "mcp" | "skill";
2126
+ template: string;
2127
+ subtask?: boolean;
2128
+ immediate?: boolean;
2129
+ hints: Array<string>;
2130
+ };
2131
+ export type Agent = {
2132
+ name: string;
2133
+ description?: string;
2134
+ mode: "subagent" | "primary" | "all";
2135
+ native?: boolean;
2136
+ hidden?: boolean;
2137
+ topP?: number;
2138
+ temperature?: number;
2139
+ color?: string;
2140
+ permission: PermissionRuleset;
2141
+ model?: {
2142
+ modelID: string;
2143
+ providerID: string;
2144
+ };
2145
+ variant?: string;
2146
+ prompt?: string;
2147
+ options: {
2148
+ [key: string]: unknown;
2149
+ };
2150
+ steps?: number;
2151
+ };
2152
+ export type LspStatus = {
2153
+ id: string;
2154
+ name: string;
2155
+ root: string;
2156
+ status: "connected" | "error";
2157
+ };
2158
+ export type FormatterStatus = {
2159
+ name: string;
2160
+ extensions: Array<string>;
2161
+ enabled: boolean;
2162
+ };
2163
+ export type GlobalHealthData = {
2164
+ body?: never;
2165
+ path?: never;
2166
+ query?: never;
2167
+ url: "/global/health";
2168
+ };
2169
+ export type GlobalHealthResponses = {
2170
+ /**
2171
+ * Health information
2172
+ */
2173
+ 200: {
2174
+ healthy: true;
2175
+ version: string;
2176
+ };
2177
+ };
2178
+ export type GlobalHealthResponse = GlobalHealthResponses[keyof GlobalHealthResponses];
2179
+ export type GlobalEventData = {
2180
+ body?: never;
2181
+ path?: never;
2182
+ query?: never;
2183
+ url: "/global/event";
2184
+ };
2185
+ export type GlobalEventResponses = {
2186
+ /**
2187
+ * Event stream
2188
+ */
2189
+ 200: GlobalEvent;
2190
+ };
2191
+ export type GlobalEventResponse = GlobalEventResponses[keyof GlobalEventResponses];
2192
+ export type GlobalConfigGetData = {
2193
+ body?: never;
2194
+ path?: never;
2195
+ query?: never;
2196
+ url: "/global/config";
2197
+ };
2198
+ export type GlobalConfigGetResponses = {
2199
+ /**
2200
+ * Get global config info
2201
+ */
2202
+ 200: Config;
2203
+ };
2204
+ export type GlobalConfigGetResponse = GlobalConfigGetResponses[keyof GlobalConfigGetResponses];
2205
+ export type GlobalConfigUpdateData = {
2206
+ body?: Config;
2207
+ path?: never;
2208
+ query?: never;
2209
+ url: "/global/config";
2210
+ };
2211
+ export type GlobalConfigUpdateErrors = {
2212
+ /**
2213
+ * Bad request
2214
+ */
2215
+ 400: BadRequestError;
2216
+ };
2217
+ export type GlobalConfigUpdateError = GlobalConfigUpdateErrors[keyof GlobalConfigUpdateErrors];
2218
+ export type GlobalConfigUpdateResponses = {
2219
+ /**
2220
+ * Successfully updated global config
2221
+ */
2222
+ 200: Config;
2223
+ };
2224
+ export type GlobalConfigUpdateResponse = GlobalConfigUpdateResponses[keyof GlobalConfigUpdateResponses];
2225
+ export type GlobalDisposeData = {
2226
+ body?: never;
2227
+ path?: never;
2228
+ query?: never;
2229
+ url: "/global/dispose";
2230
+ };
2231
+ export type GlobalDisposeResponses = {
2232
+ /**
2233
+ * Global disposed
2234
+ */
2235
+ 200: boolean;
2236
+ };
2237
+ export type GlobalDisposeResponse = GlobalDisposeResponses[keyof GlobalDisposeResponses];
2238
+ export type AuthRemoveData = {
2239
+ body?: never;
2240
+ path: {
2241
+ providerID: string;
2242
+ };
2243
+ query?: never;
2244
+ url: "/auth/{providerID}";
2245
+ };
2246
+ export type AuthRemoveErrors = {
2247
+ /**
2248
+ * Bad request
2249
+ */
2250
+ 400: BadRequestError;
2251
+ };
2252
+ export type AuthRemoveError = AuthRemoveErrors[keyof AuthRemoveErrors];
2253
+ export type AuthRemoveResponses = {
2254
+ /**
2255
+ * Successfully removed authentication credentials
2256
+ */
2257
+ 200: boolean;
2258
+ };
2259
+ export type AuthRemoveResponse = AuthRemoveResponses[keyof AuthRemoveResponses];
2260
+ export type AuthSetData = {
2261
+ body?: Auth;
2262
+ path: {
2263
+ providerID: string;
2264
+ };
2265
+ query?: never;
2266
+ url: "/auth/{providerID}";
2267
+ };
2268
+ export type AuthSetErrors = {
2269
+ /**
2270
+ * Bad request
2271
+ */
2272
+ 400: BadRequestError;
2273
+ };
2274
+ export type AuthSetError = AuthSetErrors[keyof AuthSetErrors];
2275
+ export type AuthSetResponses = {
2276
+ /**
2277
+ * Successfully set authentication credentials
2278
+ */
2279
+ 200: boolean;
2280
+ };
2281
+ export type AuthSetResponse = AuthSetResponses[keyof AuthSetResponses];
2282
+ export type ProjectListData = {
2283
+ body?: never;
2284
+ path?: never;
2285
+ query?: {
2286
+ directory?: string;
2287
+ };
2288
+ url: "/project";
2289
+ };
2290
+ export type ProjectListResponses = {
2291
+ /**
2292
+ * List of projects
2293
+ */
2294
+ 200: Array<Project>;
2295
+ };
2296
+ export type ProjectListResponse = ProjectListResponses[keyof ProjectListResponses];
2297
+ export type ProjectCurrentData = {
2298
+ body?: never;
2299
+ path?: never;
2300
+ query?: {
2301
+ directory?: string;
2302
+ };
2303
+ url: "/project/current";
2304
+ };
2305
+ export type ProjectCurrentResponses = {
2306
+ /**
2307
+ * Current project information
2308
+ */
2309
+ 200: Project;
2310
+ };
2311
+ export type ProjectCurrentResponse = ProjectCurrentResponses[keyof ProjectCurrentResponses];
2312
+ export type ProjectUpdateData = {
2313
+ body?: {
2314
+ name?: string;
2315
+ icon?: {
2316
+ url?: string;
2317
+ override?: string;
2318
+ color?: string;
2319
+ };
2320
+ commands?: {
2321
+ /**
2322
+ * Startup script to run when creating a new workspace (worktree)
2323
+ */
2324
+ start?: string;
2325
+ };
2326
+ };
2327
+ path: {
2328
+ projectID: string;
2329
+ };
2330
+ query?: {
2331
+ directory?: string;
2332
+ };
2333
+ url: "/project/{projectID}";
2334
+ };
2335
+ export type ProjectUpdateErrors = {
2336
+ /**
2337
+ * Bad request
2338
+ */
2339
+ 400: BadRequestError;
2340
+ /**
2341
+ * Not found
2342
+ */
2343
+ 404: NotFoundError;
2344
+ };
2345
+ export type ProjectUpdateError = ProjectUpdateErrors[keyof ProjectUpdateErrors];
2346
+ export type ProjectUpdateResponses = {
2347
+ /**
2348
+ * Updated project information
2349
+ */
2350
+ 200: Project;
2351
+ };
2352
+ export type ProjectUpdateResponse = ProjectUpdateResponses[keyof ProjectUpdateResponses];
2353
+ export type PtyListData = {
2354
+ body?: never;
2355
+ path?: never;
2356
+ query?: {
2357
+ directory?: string;
2358
+ };
2359
+ url: "/pty";
2360
+ };
2361
+ export type PtyListResponses = {
2362
+ /**
2363
+ * List of sessions
2364
+ */
2365
+ 200: Array<Pty>;
2366
+ };
2367
+ export type PtyListResponse = PtyListResponses[keyof PtyListResponses];
2368
+ export type PtyCreateData = {
2369
+ body?: {
2370
+ command?: string;
2371
+ args?: Array<string>;
2372
+ cwd?: string;
2373
+ title?: string;
2374
+ env?: {
2375
+ [key: string]: string;
2376
+ };
2377
+ };
2378
+ path?: never;
2379
+ query?: {
2380
+ directory?: string;
2381
+ };
2382
+ url: "/pty";
2383
+ };
2384
+ export type PtyCreateErrors = {
2385
+ /**
2386
+ * Bad request
2387
+ */
2388
+ 400: BadRequestError;
2389
+ };
2390
+ export type PtyCreateError = PtyCreateErrors[keyof PtyCreateErrors];
2391
+ export type PtyCreateResponses = {
2392
+ /**
2393
+ * Created session
2394
+ */
2395
+ 200: Pty;
2396
+ };
2397
+ export type PtyCreateResponse = PtyCreateResponses[keyof PtyCreateResponses];
2398
+ export type PtyRemoveData = {
2399
+ body?: never;
2400
+ path: {
2401
+ ptyID: string;
2402
+ };
2403
+ query?: {
2404
+ directory?: string;
2405
+ };
2406
+ url: "/pty/{ptyID}";
2407
+ };
2408
+ export type PtyRemoveErrors = {
2409
+ /**
2410
+ * Not found
2411
+ */
2412
+ 404: NotFoundError;
2413
+ };
2414
+ export type PtyRemoveError = PtyRemoveErrors[keyof PtyRemoveErrors];
2415
+ export type PtyRemoveResponses = {
2416
+ /**
2417
+ * Session removed
2418
+ */
2419
+ 200: boolean;
2420
+ };
2421
+ export type PtyRemoveResponse = PtyRemoveResponses[keyof PtyRemoveResponses];
2422
+ export type PtyGetData = {
2423
+ body?: never;
2424
+ path: {
2425
+ ptyID: string;
2426
+ };
2427
+ query?: {
2428
+ directory?: string;
2429
+ };
2430
+ url: "/pty/{ptyID}";
2431
+ };
2432
+ export type PtyGetErrors = {
2433
+ /**
2434
+ * Not found
2435
+ */
2436
+ 404: NotFoundError;
2437
+ };
2438
+ export type PtyGetError = PtyGetErrors[keyof PtyGetErrors];
2439
+ export type PtyGetResponses = {
2440
+ /**
2441
+ * Session info
2442
+ */
2443
+ 200: Pty;
2444
+ };
2445
+ export type PtyGetResponse = PtyGetResponses[keyof PtyGetResponses];
2446
+ export type PtyUpdateData = {
2447
+ body?: {
2448
+ title?: string;
2449
+ size?: {
2450
+ rows: number;
2451
+ cols: number;
2452
+ };
2453
+ };
2454
+ path: {
2455
+ ptyID: string;
2456
+ };
2457
+ query?: {
2458
+ directory?: string;
2459
+ };
2460
+ url: "/pty/{ptyID}";
2461
+ };
2462
+ export type PtyUpdateErrors = {
2463
+ /**
2464
+ * Bad request
2465
+ */
2466
+ 400: BadRequestError;
2467
+ };
2468
+ export type PtyUpdateError = PtyUpdateErrors[keyof PtyUpdateErrors];
2469
+ export type PtyUpdateResponses = {
2470
+ /**
2471
+ * Updated session
2472
+ */
2473
+ 200: Pty;
2474
+ };
2475
+ export type PtyUpdateResponse = PtyUpdateResponses[keyof PtyUpdateResponses];
2476
+ export type PtyConnectData = {
2477
+ body?: never;
2478
+ path: {
2479
+ ptyID: string;
2480
+ };
2481
+ query?: {
2482
+ directory?: string;
2483
+ };
2484
+ url: "/pty/{ptyID}/connect";
2485
+ };
2486
+ export type PtyConnectErrors = {
2487
+ /**
2488
+ * Not found
2489
+ */
2490
+ 404: NotFoundError;
2491
+ };
2492
+ export type PtyConnectError = PtyConnectErrors[keyof PtyConnectErrors];
2493
+ export type PtyConnectResponses = {
2494
+ /**
2495
+ * Connected session
2496
+ */
2497
+ 200: boolean;
2498
+ };
2499
+ export type PtyConnectResponse = PtyConnectResponses[keyof PtyConnectResponses];
2500
+ export type ConfigGetData = {
2501
+ body?: never;
2502
+ path?: never;
2503
+ query?: {
2504
+ directory?: string;
2505
+ };
2506
+ url: "/config";
2507
+ };
2508
+ export type ConfigGetResponses = {
2509
+ /**
2510
+ * Get config info
2511
+ */
2512
+ 200: Config;
2513
+ };
2514
+ export type ConfigGetResponse = ConfigGetResponses[keyof ConfigGetResponses];
2515
+ export type ConfigUpdateData = {
2516
+ body?: Config;
2517
+ path?: never;
2518
+ query?: {
2519
+ directory?: string;
2520
+ };
2521
+ url: "/config";
2522
+ };
2523
+ export type ConfigUpdateErrors = {
2524
+ /**
2525
+ * Bad request
2526
+ */
2527
+ 400: BadRequestError;
2528
+ };
2529
+ export type ConfigUpdateError = ConfigUpdateErrors[keyof ConfigUpdateErrors];
2530
+ export type ConfigUpdateResponses = {
2531
+ /**
2532
+ * Successfully updated config
2533
+ */
2534
+ 200: Config;
2535
+ };
2536
+ export type ConfigUpdateResponse = ConfigUpdateResponses[keyof ConfigUpdateResponses];
2537
+ export type ConfigProvidersData = {
2538
+ body?: never;
2539
+ path?: never;
2540
+ query?: {
2541
+ directory?: string;
2542
+ };
2543
+ url: "/config/providers";
2544
+ };
2545
+ export type ConfigProvidersResponses = {
2546
+ /**
2547
+ * List of providers
2548
+ */
2549
+ 200: {
2550
+ providers: Array<Provider>;
2551
+ default: {
2552
+ [key: string]: string;
2553
+ };
2554
+ };
2555
+ };
2556
+ export type ConfigProvidersResponse = ConfigProvidersResponses[keyof ConfigProvidersResponses];
2557
+ export type ToolIdsData = {
2558
+ body?: never;
2559
+ path?: never;
2560
+ query?: {
2561
+ directory?: string;
2562
+ };
2563
+ url: "/experimental/tool/ids";
2564
+ };
2565
+ export type ToolIdsErrors = {
2566
+ /**
2567
+ * Bad request
2568
+ */
2569
+ 400: BadRequestError;
2570
+ };
2571
+ export type ToolIdsError = ToolIdsErrors[keyof ToolIdsErrors];
2572
+ export type ToolIdsResponses = {
2573
+ /**
2574
+ * Tool IDs
2575
+ */
2576
+ 200: ToolIds;
2577
+ };
2578
+ export type ToolIdsResponse = ToolIdsResponses[keyof ToolIdsResponses];
2579
+ export type ToolListData = {
2580
+ body?: never;
2581
+ path?: never;
2582
+ query: {
2583
+ directory?: string;
2584
+ provider: string;
2585
+ model: string;
2586
+ };
2587
+ url: "/experimental/tool";
2588
+ };
2589
+ export type ToolListErrors = {
2590
+ /**
2591
+ * Bad request
2592
+ */
2593
+ 400: BadRequestError;
2594
+ };
2595
+ export type ToolListError = ToolListErrors[keyof ToolListErrors];
2596
+ export type ToolListResponses = {
2597
+ /**
2598
+ * Tools
2599
+ */
2600
+ 200: ToolList;
2601
+ };
2602
+ export type ToolListResponse = ToolListResponses[keyof ToolListResponses];
2603
+ export type WorktreeRemoveData = {
2604
+ body?: WorktreeRemoveInput;
2605
+ path?: never;
2606
+ query?: {
2607
+ directory?: string;
2608
+ };
2609
+ url: "/experimental/worktree";
2610
+ };
2611
+ export type WorktreeRemoveErrors = {
2612
+ /**
2613
+ * Bad request
2614
+ */
2615
+ 400: BadRequestError;
2616
+ };
2617
+ export type WorktreeRemoveError = WorktreeRemoveErrors[keyof WorktreeRemoveErrors];
2618
+ export type WorktreeRemoveResponses = {
2619
+ /**
2620
+ * Worktree removed
2621
+ */
2622
+ 200: boolean;
2623
+ };
2624
+ export type WorktreeRemoveResponse = WorktreeRemoveResponses[keyof WorktreeRemoveResponses];
2625
+ export type WorktreeListData = {
2626
+ body?: never;
2627
+ path?: never;
2628
+ query?: {
2629
+ directory?: string;
2630
+ };
2631
+ url: "/experimental/worktree";
2632
+ };
2633
+ export type WorktreeListResponses = {
2634
+ /**
2635
+ * List of worktree directories
2636
+ */
2637
+ 200: Array<string>;
2638
+ };
2639
+ export type WorktreeListResponse = WorktreeListResponses[keyof WorktreeListResponses];
2640
+ export type WorktreeCreateData = {
2641
+ body?: WorktreeCreateInput;
2642
+ path?: never;
2643
+ query?: {
2644
+ directory?: string;
2645
+ };
2646
+ url: "/experimental/worktree";
2647
+ };
2648
+ export type WorktreeCreateErrors = {
2649
+ /**
2650
+ * Bad request
2651
+ */
2652
+ 400: BadRequestError;
2653
+ };
2654
+ export type WorktreeCreateError = WorktreeCreateErrors[keyof WorktreeCreateErrors];
2655
+ export type WorktreeCreateResponses = {
2656
+ /**
2657
+ * Worktree created
2658
+ */
2659
+ 200: Worktree;
2660
+ };
2661
+ export type WorktreeCreateResponse = WorktreeCreateResponses[keyof WorktreeCreateResponses];
2662
+ export type WorktreeListMetaData = {
2663
+ body?: never;
2664
+ path?: never;
2665
+ query?: {
2666
+ directory?: string;
2667
+ };
2668
+ url: "/experimental/worktree/meta";
2669
+ };
2670
+ export type WorktreeListMetaResponses = {
2671
+ /**
2672
+ * List of worktree metadata
2673
+ */
2674
+ 200: Array<{
2675
+ directory: string;
2676
+ branch: string;
2677
+ gitUrls: {
2678
+ [key: string]: string;
2679
+ };
2680
+ rootDir: string;
2681
+ createdAt: number;
2682
+ sessionId?: string;
2683
+ workspaceDirectory?: string;
2684
+ }>;
2685
+ };
2686
+ export type WorktreeListMetaResponse = WorktreeListMetaResponses[keyof WorktreeListMetaResponses];
2687
+ export type WorktreeResetData = {
2688
+ body?: WorktreeResetInput;
2689
+ path?: never;
2690
+ query?: {
2691
+ directory?: string;
2692
+ };
2693
+ url: "/experimental/worktree/reset";
2694
+ };
2695
+ export type WorktreeResetErrors = {
2696
+ /**
2697
+ * Bad request
2698
+ */
2699
+ 400: BadRequestError;
2700
+ };
2701
+ export type WorktreeResetError = WorktreeResetErrors[keyof WorktreeResetErrors];
2702
+ export type WorktreeResetResponses = {
2703
+ /**
2704
+ * Worktree reset
2705
+ */
2706
+ 200: boolean;
2707
+ };
2708
+ export type WorktreeResetResponse = WorktreeResetResponses[keyof WorktreeResetResponses];
2709
+ export type WorktreeSwitchData = {
2710
+ body?: WorktreeSwitchInput;
2711
+ path?: never;
2712
+ query?: {
2713
+ directory?: string;
2714
+ };
2715
+ url: "/experimental/worktree/switch";
2716
+ };
2717
+ export type WorktreeSwitchErrors = {
2718
+ /**
2719
+ * Bad request
2720
+ */
2721
+ 400: BadRequestError;
2722
+ };
2723
+ export type WorktreeSwitchError = WorktreeSwitchErrors[keyof WorktreeSwitchErrors];
2724
+ export type WorktreeSwitchResponses = {
2725
+ /**
2726
+ * Worktree switched
2727
+ */
2728
+ 200: boolean;
2729
+ };
2730
+ export type WorktreeSwitchResponse = WorktreeSwitchResponses[keyof WorktreeSwitchResponses];
2731
+ export type ExperimentalResourceListData = {
2732
+ body?: never;
2733
+ path?: never;
2734
+ query?: {
2735
+ directory?: string;
2736
+ };
2737
+ url: "/experimental/resource";
2738
+ };
2739
+ export type ExperimentalResourceListResponses = {
2740
+ /**
2741
+ * MCP resources
2742
+ */
2743
+ 200: {
2744
+ [key: string]: McpResource;
2745
+ };
2746
+ };
2747
+ export type ExperimentalResourceListResponse = ExperimentalResourceListResponses[keyof ExperimentalResourceListResponses];
2748
+ export type SessionListData = {
2749
+ body?: never;
2750
+ path?: never;
2751
+ query?: {
2752
+ /**
2753
+ * Filter sessions by project directory
2754
+ */
2755
+ directory?: string;
2756
+ /**
2757
+ * Only return root sessions (no parentID)
2758
+ */
2759
+ roots?: boolean;
2760
+ /**
2761
+ * Filter sessions updated on or after this timestamp (milliseconds since epoch)
2762
+ */
2763
+ start?: number;
2764
+ /**
2765
+ * Filter sessions by title (case-insensitive)
2766
+ */
2767
+ search?: string;
2768
+ /**
2769
+ * Maximum number of sessions to return
2770
+ */
2771
+ limit?: number;
2772
+ };
2773
+ url: "/session";
2774
+ };
2775
+ export type SessionListResponses = {
2776
+ /**
2777
+ * List of sessions
2778
+ */
2779
+ 200: Array<Session>;
2780
+ };
2781
+ export type SessionListResponse = SessionListResponses[keyof SessionListResponses];
2782
+ export type SessionCreateData = {
2783
+ body?: {
2784
+ parentID?: string;
2785
+ title?: string;
2786
+ type?: "session_memory_extraction";
2787
+ mode?: "agent" | "plan" | "goal";
2788
+ permission?: PermissionRuleset;
2789
+ };
2790
+ path?: never;
2791
+ query?: {
2792
+ directory?: string;
2793
+ };
2794
+ url: "/session";
2795
+ };
2796
+ export type SessionCreateErrors = {
2797
+ /**
2798
+ * Bad request
2799
+ */
2800
+ 400: BadRequestError;
2801
+ };
2802
+ export type SessionCreateError = SessionCreateErrors[keyof SessionCreateErrors];
2803
+ export type SessionCreateResponses = {
2804
+ /**
2805
+ * Successfully created session
2806
+ */
2807
+ 200: Session;
2808
+ };
2809
+ export type SessionCreateResponse = SessionCreateResponses[keyof SessionCreateResponses];
2810
+ export type SessionStatusData = {
2811
+ body?: never;
2812
+ path?: never;
2813
+ query?: {
2814
+ directory?: string;
2815
+ };
2816
+ url: "/session/status";
2817
+ };
2818
+ export type SessionStatusErrors = {
2819
+ /**
2820
+ * Bad request
2821
+ */
2822
+ 400: BadRequestError;
2823
+ };
2824
+ export type SessionStatusError = SessionStatusErrors[keyof SessionStatusErrors];
2825
+ export type SessionStatusResponses = {
2826
+ /**
2827
+ * Get session status
2828
+ */
2829
+ 200: {
2830
+ [key: string]: SessionStatus;
2831
+ };
2832
+ };
2833
+ export type SessionStatusResponse = SessionStatusResponses[keyof SessionStatusResponses];
2834
+ export type SessionDeleteData = {
2835
+ body?: never;
2836
+ path: {
2837
+ sessionID: string;
2838
+ };
2839
+ query?: {
2840
+ directory?: string;
2841
+ };
2842
+ url: "/session/{sessionID}";
2843
+ };
2844
+ export type SessionDeleteErrors = {
2845
+ /**
2846
+ * Bad request
2847
+ */
2848
+ 400: BadRequestError;
2849
+ /**
2850
+ * Not found
2851
+ */
2852
+ 404: NotFoundError;
2853
+ };
2854
+ export type SessionDeleteError = SessionDeleteErrors[keyof SessionDeleteErrors];
2855
+ export type SessionDeleteResponses = {
2856
+ /**
2857
+ * Successfully deleted session
2858
+ */
2859
+ 200: boolean;
2860
+ };
2861
+ export type SessionDeleteResponse = SessionDeleteResponses[keyof SessionDeleteResponses];
2862
+ export type SessionGetData = {
2863
+ body?: never;
2864
+ path: {
2865
+ sessionID: string;
2866
+ };
2867
+ query?: {
2868
+ directory?: string;
2869
+ };
2870
+ url: "/session/{sessionID}";
2871
+ };
2872
+ export type SessionGetErrors = {
2873
+ /**
2874
+ * Bad request
2875
+ */
2876
+ 400: BadRequestError;
2877
+ /**
2878
+ * Not found
2879
+ */
2880
+ 404: NotFoundError;
2881
+ };
2882
+ export type SessionGetError = SessionGetErrors[keyof SessionGetErrors];
2883
+ export type SessionGetResponses = {
2884
+ /**
2885
+ * Get session
2886
+ */
2887
+ 200: Session;
2888
+ };
2889
+ export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses];
2890
+ export type SessionUpdateData = {
2891
+ body?: {
2892
+ title?: string;
2893
+ worktreeDirectory?: string;
2894
+ time?: {
2895
+ archived?: number;
2896
+ };
2897
+ };
2898
+ path: {
2899
+ sessionID: string;
2900
+ };
2901
+ query?: {
2902
+ directory?: string;
2903
+ };
2904
+ url: "/session/{sessionID}";
2905
+ };
2906
+ export type SessionUpdateErrors = {
2907
+ /**
2908
+ * Bad request
2909
+ */
2910
+ 400: BadRequestError;
2911
+ /**
2912
+ * Not found
2913
+ */
2914
+ 404: NotFoundError;
2915
+ };
2916
+ export type SessionUpdateError = SessionUpdateErrors[keyof SessionUpdateErrors];
2917
+ export type SessionUpdateResponses = {
2918
+ /**
2919
+ * Successfully updated session
2920
+ */
2921
+ 200: Session;
2922
+ };
2923
+ export type SessionUpdateResponse = SessionUpdateResponses[keyof SessionUpdateResponses];
2924
+ export type SessionChildrenData = {
2925
+ body?: never;
2926
+ path: {
2927
+ sessionID: string;
2928
+ };
2929
+ query?: {
2930
+ directory?: string;
2931
+ };
2932
+ url: "/session/{sessionID}/children";
2933
+ };
2934
+ export type SessionChildrenErrors = {
2935
+ /**
2936
+ * Bad request
2937
+ */
2938
+ 400: BadRequestError;
2939
+ /**
2940
+ * Not found
2941
+ */
2942
+ 404: NotFoundError;
2943
+ };
2944
+ export type SessionChildrenError = SessionChildrenErrors[keyof SessionChildrenErrors];
2945
+ export type SessionChildrenResponses = {
2946
+ /**
2947
+ * List of children
2948
+ */
2949
+ 200: Array<Session>;
2950
+ };
2951
+ export type SessionChildrenResponse = SessionChildrenResponses[keyof SessionChildrenResponses];
2952
+ export type SessionTodoData = {
2953
+ body?: never;
2954
+ path: {
2955
+ /**
2956
+ * Session ID
2957
+ */
2958
+ sessionID: string;
2959
+ };
2960
+ query?: {
2961
+ directory?: string;
2962
+ };
2963
+ url: "/session/{sessionID}/todo";
2964
+ };
2965
+ export type SessionTodoErrors = {
2966
+ /**
2967
+ * Bad request
2968
+ */
2969
+ 400: BadRequestError;
2970
+ /**
2971
+ * Not found
2972
+ */
2973
+ 404: NotFoundError;
2974
+ };
2975
+ export type SessionTodoError = SessionTodoErrors[keyof SessionTodoErrors];
2976
+ export type SessionTodoResponses = {
2977
+ /**
2978
+ * Todo list
2979
+ */
2980
+ 200: Array<Todo>;
2981
+ };
2982
+ export type SessionTodoResponse = SessionTodoResponses[keyof SessionTodoResponses];
2983
+ export type SessionInitData = {
2984
+ body?: {
2985
+ modelID: string;
2986
+ providerID: string;
2987
+ messageID: string;
2988
+ };
2989
+ path: {
2990
+ /**
2991
+ * Session ID
2992
+ */
2993
+ sessionID: string;
2994
+ };
2995
+ query?: {
2996
+ directory?: string;
2997
+ };
2998
+ url: "/session/{sessionID}/init";
2999
+ };
3000
+ export type SessionInitErrors = {
3001
+ /**
3002
+ * Bad request
3003
+ */
3004
+ 400: BadRequestError;
3005
+ /**
3006
+ * Not found
3007
+ */
3008
+ 404: NotFoundError;
3009
+ };
3010
+ export type SessionInitError = SessionInitErrors[keyof SessionInitErrors];
3011
+ export type SessionInitResponses = {
3012
+ /**
3013
+ * 200
3014
+ */
3015
+ 200: boolean;
3016
+ };
3017
+ export type SessionInitResponse = SessionInitResponses[keyof SessionInitResponses];
3018
+ export type SessionForkData = {
3019
+ body?: {
3020
+ messageID?: string;
3021
+ };
3022
+ path: {
3023
+ sessionID: string;
3024
+ };
3025
+ query?: {
3026
+ directory?: string;
3027
+ };
3028
+ url: "/session/{sessionID}/fork";
3029
+ };
3030
+ export type SessionForkResponses = {
3031
+ /**
3032
+ * 200
3033
+ */
3034
+ 200: Session;
3035
+ };
3036
+ export type SessionForkResponse = SessionForkResponses[keyof SessionForkResponses];
3037
+ export type SessionAbortData = {
3038
+ body?: never;
3039
+ path: {
3040
+ sessionID: string;
3041
+ };
3042
+ query?: {
3043
+ directory?: string;
3044
+ };
3045
+ url: "/session/{sessionID}/abort";
3046
+ };
3047
+ export type SessionAbortErrors = {
3048
+ /**
3049
+ * Bad request
3050
+ */
3051
+ 400: BadRequestError;
3052
+ /**
3053
+ * Not found
3054
+ */
3055
+ 404: NotFoundError;
3056
+ };
3057
+ export type SessionAbortError = SessionAbortErrors[keyof SessionAbortErrors];
3058
+ export type SessionAbortResponses = {
3059
+ /**
3060
+ * Aborted session
3061
+ */
3062
+ 200: boolean;
3063
+ };
3064
+ export type SessionAbortResponse = SessionAbortResponses[keyof SessionAbortResponses];
3065
+ export type SessionUnshareData = {
3066
+ body?: never;
3067
+ path: {
3068
+ sessionID: string;
3069
+ };
3070
+ query?: {
3071
+ directory?: string;
3072
+ };
3073
+ url: "/session/{sessionID}/share";
3074
+ };
3075
+ export type SessionUnshareErrors = {
3076
+ /**
3077
+ * Bad request
3078
+ */
3079
+ 400: BadRequestError;
3080
+ /**
3081
+ * Not found
3082
+ */
3083
+ 404: NotFoundError;
3084
+ };
3085
+ export type SessionUnshareError = SessionUnshareErrors[keyof SessionUnshareErrors];
3086
+ export type SessionUnshareResponses = {
3087
+ /**
3088
+ * Successfully unshared session
3089
+ */
3090
+ 200: Session;
3091
+ };
3092
+ export type SessionUnshareResponse = SessionUnshareResponses[keyof SessionUnshareResponses];
3093
+ export type SessionShareData = {
3094
+ body?: never;
3095
+ path: {
3096
+ sessionID: string;
3097
+ };
3098
+ query?: {
3099
+ directory?: string;
3100
+ };
3101
+ url: "/session/{sessionID}/share";
3102
+ };
3103
+ export type SessionShareErrors = {
3104
+ /**
3105
+ * Bad request
3106
+ */
3107
+ 400: BadRequestError;
3108
+ /**
3109
+ * Not found
3110
+ */
3111
+ 404: NotFoundError;
3112
+ };
3113
+ export type SessionShareError = SessionShareErrors[keyof SessionShareErrors];
3114
+ export type SessionShareResponses = {
3115
+ /**
3116
+ * Successfully shared session
3117
+ */
3118
+ 200: Session;
3119
+ };
3120
+ export type SessionShareResponse = SessionShareResponses[keyof SessionShareResponses];
3121
+ export type SessionDiffData = {
3122
+ body?: never;
3123
+ path: {
3124
+ sessionID: string;
3125
+ };
3126
+ query?: {
3127
+ directory?: string;
3128
+ messageID?: string;
3129
+ };
3130
+ url: "/session/{sessionID}/diff";
3131
+ };
3132
+ export type SessionDiffResponses = {
3133
+ /**
3134
+ * Successfully retrieved diff
3135
+ */
3136
+ 200: Array<FileDiff>;
3137
+ };
3138
+ export type SessionDiffResponse = SessionDiffResponses[keyof SessionDiffResponses];
3139
+ export type SessionSummarizeData = {
3140
+ body?: {
3141
+ providerID: string;
3142
+ modelID: string;
3143
+ auto?: boolean;
3144
+ };
3145
+ path: {
3146
+ /**
3147
+ * Session ID
3148
+ */
3149
+ sessionID: string;
3150
+ };
3151
+ query?: {
3152
+ directory?: string;
3153
+ };
3154
+ url: "/session/{sessionID}/summarize";
3155
+ };
3156
+ export type SessionSummarizeErrors = {
3157
+ /**
3158
+ * Bad request
3159
+ */
3160
+ 400: BadRequestError;
3161
+ /**
3162
+ * Not found
3163
+ */
3164
+ 404: NotFoundError;
3165
+ };
3166
+ export type SessionSummarizeError = SessionSummarizeErrors[keyof SessionSummarizeErrors];
3167
+ export type SessionSummarizeResponses = {
3168
+ /**
3169
+ * Summarized session
3170
+ */
3171
+ 200: boolean;
3172
+ };
3173
+ export type SessionSummarizeResponse = SessionSummarizeResponses[keyof SessionSummarizeResponses];
3174
+ export type SessionMessagesData = {
3175
+ body?: never;
3176
+ path: {
3177
+ /**
3178
+ * Session ID
3179
+ */
3180
+ sessionID: string;
3181
+ };
3182
+ query?: {
3183
+ directory?: string;
3184
+ limit?: number;
3185
+ };
3186
+ url: "/session/{sessionID}/message";
3187
+ };
3188
+ export type SessionMessagesErrors = {
3189
+ /**
3190
+ * Bad request
3191
+ */
3192
+ 400: BadRequestError;
3193
+ /**
3194
+ * Not found
3195
+ */
3196
+ 404: NotFoundError;
3197
+ };
3198
+ export type SessionMessagesError = SessionMessagesErrors[keyof SessionMessagesErrors];
3199
+ export type SessionMessagesResponses = {
3200
+ /**
3201
+ * List of messages
3202
+ */
3203
+ 200: Array<{
3204
+ info: Message;
3205
+ parts: Array<Part>;
3206
+ }>;
3207
+ };
3208
+ export type SessionMessagesResponse = SessionMessagesResponses[keyof SessionMessagesResponses];
3209
+ export type SessionPromptData = {
3210
+ body?: {
3211
+ messageID?: string;
3212
+ model?: {
3213
+ providerID: string;
3214
+ modelID: string;
3215
+ };
3216
+ agent?: string;
3217
+ noReply?: boolean;
3218
+ /**
3219
+ * @deprecated tools and permissions have been merged, you can set permissions on the session itself now
3220
+ */
3221
+ tools?: {
3222
+ [key: string]: boolean;
3223
+ };
3224
+ system?: string;
3225
+ variant?: string;
3226
+ /**
3227
+ * Internal: prepend these parent session messages for prompt cache (fork mechanism)
3228
+ */
3229
+ forkMessages?: Array<unknown>;
3230
+ parts: Array<TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput>;
3231
+ };
3232
+ path: {
3233
+ /**
3234
+ * Session ID
3235
+ */
3236
+ sessionID: string;
3237
+ };
3238
+ query?: {
3239
+ directory?: string;
3240
+ };
3241
+ url: "/session/{sessionID}/message";
3242
+ };
3243
+ export type SessionPromptErrors = {
3244
+ /**
3245
+ * Bad request
3246
+ */
3247
+ 400: BadRequestError;
3248
+ /**
3249
+ * Not found
3250
+ */
3251
+ 404: NotFoundError;
3252
+ };
3253
+ export type SessionPromptError = SessionPromptErrors[keyof SessionPromptErrors];
3254
+ export type SessionPromptResponses = {
3255
+ /**
3256
+ * Created message
3257
+ */
3258
+ 200: {
3259
+ info: AssistantMessage;
3260
+ parts: Array<Part>;
3261
+ };
3262
+ };
3263
+ export type SessionPromptResponse = SessionPromptResponses[keyof SessionPromptResponses];
3264
+ export type SessionMessageData = {
3265
+ body?: never;
3266
+ path: {
3267
+ /**
3268
+ * Session ID
3269
+ */
3270
+ sessionID: string;
3271
+ /**
3272
+ * Message ID
3273
+ */
3274
+ messageID: string;
3275
+ };
3276
+ query?: {
3277
+ directory?: string;
3278
+ };
3279
+ url: "/session/{sessionID}/message/{messageID}";
3280
+ };
3281
+ export type SessionMessageErrors = {
3282
+ /**
3283
+ * Bad request
3284
+ */
3285
+ 400: BadRequestError;
3286
+ /**
3287
+ * Not found
3288
+ */
3289
+ 404: NotFoundError;
3290
+ };
3291
+ export type SessionMessageError = SessionMessageErrors[keyof SessionMessageErrors];
3292
+ export type SessionMessageResponses = {
3293
+ /**
3294
+ * Message
3295
+ */
3296
+ 200: {
3297
+ info: Message;
3298
+ parts: Array<Part>;
3299
+ };
3300
+ };
3301
+ export type SessionMessageResponse = SessionMessageResponses[keyof SessionMessageResponses];
3302
+ export type PartDeleteData = {
3303
+ body?: never;
3304
+ path: {
3305
+ /**
3306
+ * Session ID
3307
+ */
3308
+ sessionID: string;
3309
+ /**
3310
+ * Message ID
3311
+ */
3312
+ messageID: string;
3313
+ /**
3314
+ * Part ID
3315
+ */
3316
+ partID: string;
3317
+ };
3318
+ query?: {
3319
+ directory?: string;
3320
+ };
3321
+ url: "/session/{sessionID}/message/{messageID}/part/{partID}";
3322
+ };
3323
+ export type PartDeleteErrors = {
3324
+ /**
3325
+ * Bad request
3326
+ */
3327
+ 400: BadRequestError;
3328
+ /**
3329
+ * Not found
3330
+ */
3331
+ 404: NotFoundError;
3332
+ };
3333
+ export type PartDeleteError = PartDeleteErrors[keyof PartDeleteErrors];
3334
+ export type PartDeleteResponses = {
3335
+ /**
3336
+ * Successfully deleted part
3337
+ */
3338
+ 200: boolean;
3339
+ };
3340
+ export type PartDeleteResponse = PartDeleteResponses[keyof PartDeleteResponses];
3341
+ export type PartUpdateData = {
3342
+ body?: Part;
3343
+ path: {
3344
+ /**
3345
+ * Session ID
3346
+ */
3347
+ sessionID: string;
3348
+ /**
3349
+ * Message ID
3350
+ */
3351
+ messageID: string;
3352
+ /**
3353
+ * Part ID
3354
+ */
3355
+ partID: string;
3356
+ };
3357
+ query?: {
3358
+ directory?: string;
3359
+ };
3360
+ url: "/session/{sessionID}/message/{messageID}/part/{partID}";
3361
+ };
3362
+ export type PartUpdateErrors = {
3363
+ /**
3364
+ * Bad request
3365
+ */
3366
+ 400: BadRequestError;
3367
+ /**
3368
+ * Not found
3369
+ */
3370
+ 404: NotFoundError;
3371
+ };
3372
+ export type PartUpdateError = PartUpdateErrors[keyof PartUpdateErrors];
3373
+ export type PartUpdateResponses = {
3374
+ /**
3375
+ * Successfully updated part
3376
+ */
3377
+ 200: Part;
3378
+ };
3379
+ export type PartUpdateResponse = PartUpdateResponses[keyof PartUpdateResponses];
3380
+ export type SessionPromptAsyncData = {
3381
+ body?: {
3382
+ messageID?: string;
3383
+ model?: {
3384
+ providerID: string;
3385
+ modelID: string;
3386
+ };
3387
+ agent?: string;
3388
+ noReply?: boolean;
3389
+ /**
3390
+ * @deprecated tools and permissions have been merged, you can set permissions on the session itself now
3391
+ */
3392
+ tools?: {
3393
+ [key: string]: boolean;
3394
+ };
3395
+ system?: string;
3396
+ variant?: string;
3397
+ /**
3398
+ * Internal: prepend these parent session messages for prompt cache (fork mechanism)
3399
+ */
3400
+ forkMessages?: Array<unknown>;
3401
+ parts: Array<TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput>;
3402
+ };
3403
+ path: {
3404
+ /**
3405
+ * Session ID
3406
+ */
3407
+ sessionID: string;
3408
+ };
3409
+ query?: {
3410
+ directory?: string;
3411
+ };
3412
+ url: "/session/{sessionID}/prompt_async";
3413
+ };
3414
+ export type SessionPromptAsyncErrors = {
3415
+ /**
3416
+ * Bad request
3417
+ */
3418
+ 400: BadRequestError;
3419
+ /**
3420
+ * Not found
3421
+ */
3422
+ 404: NotFoundError;
3423
+ };
3424
+ export type SessionPromptAsyncError = SessionPromptAsyncErrors[keyof SessionPromptAsyncErrors];
3425
+ export type SessionPromptAsyncResponses = {
3426
+ /**
3427
+ * Prompt accepted
3428
+ */
3429
+ 204: void;
3430
+ };
3431
+ export type SessionPromptAsyncResponse = SessionPromptAsyncResponses[keyof SessionPromptAsyncResponses];
3432
+ export type SessionCommandData = {
3433
+ body?: {
3434
+ messageID?: string;
3435
+ agent?: string;
3436
+ model?: string;
3437
+ arguments: string;
3438
+ command: string;
3439
+ variant?: string;
3440
+ parts?: Array<{
3441
+ id?: string;
3442
+ type: "file";
3443
+ mime: string;
3444
+ filename?: string;
3445
+ url: string;
3446
+ source?: FilePartSource;
3447
+ }>;
3448
+ };
3449
+ path: {
3450
+ /**
3451
+ * Session ID
3452
+ */
3453
+ sessionID: string;
3454
+ };
3455
+ query?: {
3456
+ directory?: string;
3457
+ };
3458
+ url: "/session/{sessionID}/command";
3459
+ };
3460
+ export type SessionCommandErrors = {
3461
+ /**
3462
+ * Bad request
3463
+ */
3464
+ 400: BadRequestError;
3465
+ /**
3466
+ * Not found
3467
+ */
3468
+ 404: NotFoundError;
3469
+ };
3470
+ export type SessionCommandError = SessionCommandErrors[keyof SessionCommandErrors];
3471
+ export type SessionCommandResponses = {
3472
+ /**
3473
+ * Created message
3474
+ */
3475
+ 200: {
3476
+ info: AssistantMessage;
3477
+ parts: Array<Part>;
3478
+ };
3479
+ };
3480
+ export type SessionCommandResponse = SessionCommandResponses[keyof SessionCommandResponses];
3481
+ export type SessionShellData = {
3482
+ body?: {
3483
+ agent: string;
3484
+ model?: {
3485
+ providerID: string;
3486
+ modelID: string;
3487
+ };
3488
+ command: string;
3489
+ };
3490
+ path: {
3491
+ /**
3492
+ * Session ID
3493
+ */
3494
+ sessionID: string;
3495
+ };
3496
+ query?: {
3497
+ directory?: string;
3498
+ };
3499
+ url: "/session/{sessionID}/shell";
3500
+ };
3501
+ export type SessionShellErrors = {
3502
+ /**
3503
+ * Bad request
3504
+ */
3505
+ 400: BadRequestError;
3506
+ /**
3507
+ * Not found
3508
+ */
3509
+ 404: NotFoundError;
3510
+ };
3511
+ export type SessionShellError = SessionShellErrors[keyof SessionShellErrors];
3512
+ export type SessionShellResponses = {
3513
+ /**
3514
+ * Created message
3515
+ */
3516
+ 200: AssistantMessage;
3517
+ };
3518
+ export type SessionShellResponse = SessionShellResponses[keyof SessionShellResponses];
3519
+ export type SessionRevertData = {
3520
+ body?: {
3521
+ messageID: string;
3522
+ partID?: string;
3523
+ };
3524
+ path: {
3525
+ sessionID: string;
3526
+ };
3527
+ query?: {
3528
+ directory?: string;
3529
+ };
3530
+ url: "/session/{sessionID}/revert";
3531
+ };
3532
+ export type SessionRevertErrors = {
3533
+ /**
3534
+ * Bad request
3535
+ */
3536
+ 400: BadRequestError;
3537
+ /**
3538
+ * Not found
3539
+ */
3540
+ 404: NotFoundError;
3541
+ };
3542
+ export type SessionRevertError = SessionRevertErrors[keyof SessionRevertErrors];
3543
+ export type SessionRevertResponses = {
3544
+ /**
3545
+ * Updated session
3546
+ */
3547
+ 200: Session;
3548
+ };
3549
+ export type SessionRevertResponse = SessionRevertResponses[keyof SessionRevertResponses];
3550
+ export type SessionUnrevertData = {
3551
+ body?: never;
3552
+ path: {
3553
+ sessionID: string;
3554
+ };
3555
+ query?: {
3556
+ directory?: string;
3557
+ };
3558
+ url: "/session/{sessionID}/unrevert";
3559
+ };
3560
+ export type SessionUnrevertErrors = {
3561
+ /**
3562
+ * Bad request
3563
+ */
3564
+ 400: BadRequestError;
3565
+ /**
3566
+ * Not found
3567
+ */
3568
+ 404: NotFoundError;
3569
+ };
3570
+ export type SessionUnrevertError = SessionUnrevertErrors[keyof SessionUnrevertErrors];
3571
+ export type SessionUnrevertResponses = {
3572
+ /**
3573
+ * Updated session
3574
+ */
3575
+ 200: Session;
3576
+ };
3577
+ export type SessionUnrevertResponse = SessionUnrevertResponses[keyof SessionUnrevertResponses];
3578
+ export type PermissionRespondData = {
3579
+ body?: {
3580
+ response: "once" | "always" | "reject";
3581
+ };
3582
+ path: {
3583
+ sessionID: string;
3584
+ permissionID: string;
3585
+ };
3586
+ query?: {
3587
+ directory?: string;
3588
+ };
3589
+ url: "/session/{sessionID}/permissions/{permissionID}";
3590
+ };
3591
+ export type PermissionRespondErrors = {
3592
+ /**
3593
+ * Bad request
3594
+ */
3595
+ 400: BadRequestError;
3596
+ /**
3597
+ * Not found
3598
+ */
3599
+ 404: NotFoundError;
3600
+ };
3601
+ export type PermissionRespondError = PermissionRespondErrors[keyof PermissionRespondErrors];
3602
+ export type PermissionRespondResponses = {
3603
+ /**
3604
+ * Permission processed successfully
3605
+ */
3606
+ 200: boolean;
3607
+ };
3608
+ export type PermissionRespondResponse = PermissionRespondResponses[keyof PermissionRespondResponses];
3609
+ export type PermissionReplyData = {
3610
+ body?: {
3611
+ reply: "once" | "always" | "reject";
3612
+ message?: string;
3613
+ };
3614
+ path: {
3615
+ requestID: string;
3616
+ };
3617
+ query?: {
3618
+ directory?: string;
3619
+ };
3620
+ url: "/permission/{requestID}/reply";
3621
+ };
3622
+ export type PermissionReplyErrors = {
3623
+ /**
3624
+ * Bad request
3625
+ */
3626
+ 400: BadRequestError;
3627
+ /**
3628
+ * Not found
3629
+ */
3630
+ 404: NotFoundError;
3631
+ };
3632
+ export type PermissionReplyError = PermissionReplyErrors[keyof PermissionReplyErrors];
3633
+ export type PermissionReplyResponses = {
3634
+ /**
3635
+ * Permission processed successfully
3636
+ */
3637
+ 200: boolean;
3638
+ };
3639
+ export type PermissionReplyResponse = PermissionReplyResponses[keyof PermissionReplyResponses];
3640
+ export type PermissionListData = {
3641
+ body?: never;
3642
+ path?: never;
3643
+ query?: {
3644
+ directory?: string;
3645
+ };
3646
+ url: "/permission";
3647
+ };
3648
+ export type PermissionListResponses = {
3649
+ /**
3650
+ * List of pending permissions
3651
+ */
3652
+ 200: Array<PermissionRequest>;
3653
+ };
3654
+ export type PermissionListResponse = PermissionListResponses[keyof PermissionListResponses];
3655
+ export type QuestionListData = {
3656
+ body?: never;
3657
+ path?: never;
3658
+ query?: {
3659
+ directory?: string;
3660
+ };
3661
+ url: "/question";
3662
+ };
3663
+ export type QuestionListResponses = {
3664
+ /**
3665
+ * List of pending questions
3666
+ */
3667
+ 200: Array<QuestionRequest>;
3668
+ };
3669
+ export type QuestionListResponse = QuestionListResponses[keyof QuestionListResponses];
3670
+ export type QuestionReplyData = {
3671
+ body?: {
3672
+ /**
3673
+ * User answers in order of questions (each answer is an array of selected labels)
3674
+ */
3675
+ answers: Array<QuestionAnswer>;
3676
+ };
3677
+ path: {
3678
+ requestID: string;
3679
+ };
3680
+ query?: {
3681
+ directory?: string;
3682
+ };
3683
+ url: "/question/{requestID}/reply";
3684
+ };
3685
+ export type QuestionReplyErrors = {
3686
+ /**
3687
+ * Bad request
3688
+ */
3689
+ 400: BadRequestError;
3690
+ /**
3691
+ * Not found
3692
+ */
3693
+ 404: NotFoundError;
3694
+ };
3695
+ export type QuestionReplyError = QuestionReplyErrors[keyof QuestionReplyErrors];
3696
+ export type QuestionReplyResponses = {
3697
+ /**
3698
+ * Question answered successfully
3699
+ */
3700
+ 200: boolean;
3701
+ };
3702
+ export type QuestionReplyResponse = QuestionReplyResponses[keyof QuestionReplyResponses];
3703
+ export type QuestionRejectData = {
3704
+ body?: never;
3705
+ path: {
3706
+ requestID: string;
3707
+ };
3708
+ query?: {
3709
+ directory?: string;
3710
+ };
3711
+ url: "/question/{requestID}/reject";
3712
+ };
3713
+ export type QuestionRejectErrors = {
3714
+ /**
3715
+ * Bad request
3716
+ */
3717
+ 400: BadRequestError;
3718
+ /**
3719
+ * Not found
3720
+ */
3721
+ 404: NotFoundError;
3722
+ };
3723
+ export type QuestionRejectError = QuestionRejectErrors[keyof QuestionRejectErrors];
3724
+ export type QuestionRejectResponses = {
3725
+ /**
3726
+ * Question rejected successfully
3727
+ */
3728
+ 200: boolean;
3729
+ };
3730
+ export type QuestionRejectResponse = QuestionRejectResponses[keyof QuestionRejectResponses];
3731
+ export type ProviderListData = {
3732
+ body?: never;
3733
+ path?: never;
3734
+ query?: {
3735
+ directory?: string;
3736
+ };
3737
+ url: "/provider";
3738
+ };
3739
+ export type ProviderListResponses = {
3740
+ /**
3741
+ * List of providers
3742
+ */
3743
+ 200: {
3744
+ all: Array<{
3745
+ api?: string;
3746
+ name: string;
3747
+ env: Array<string>;
3748
+ id: string;
3749
+ npm?: string;
3750
+ models: {
3751
+ [key: string]: {
3752
+ id: string;
3753
+ name: string;
3754
+ family?: string;
3755
+ release_date: string;
3756
+ attachment: boolean;
3757
+ reasoning: boolean;
3758
+ temperature: boolean;
3759
+ tool_call: boolean;
3760
+ interleaved?: true | {
3761
+ field: "reasoning_content" | "reasoning_details";
3762
+ };
3763
+ cost?: {
3764
+ input: number;
3765
+ output: number;
3766
+ cache_read?: number;
3767
+ cache_write?: number;
3768
+ context_over_200k?: {
3769
+ input: number;
3770
+ output: number;
3771
+ cache_read?: number;
3772
+ cache_write?: number;
3773
+ };
3774
+ };
3775
+ limit: {
3776
+ context: number;
3777
+ input?: number;
3778
+ output: number;
3779
+ };
3780
+ modalities?: {
3781
+ input: Array<"text" | "audio" | "image" | "video" | "pdf">;
3782
+ output: Array<"text" | "audio" | "image" | "video" | "pdf">;
3783
+ };
3784
+ experimental?: boolean;
3785
+ status?: "alpha" | "beta" | "deprecated";
3786
+ options: {
3787
+ [key: string]: unknown;
3788
+ };
3789
+ headers?: {
3790
+ [key: string]: string;
3791
+ };
3792
+ provider?: {
3793
+ npm: string;
3794
+ };
3795
+ variants?: {
3796
+ [key: string]: {
3797
+ [key: string]: unknown;
3798
+ };
3799
+ };
3800
+ };
3801
+ };
3802
+ }>;
3803
+ default: {
3804
+ [key: string]: string;
3805
+ };
3806
+ connected: Array<string>;
3807
+ };
3808
+ };
3809
+ export type ProviderListResponse = ProviderListResponses[keyof ProviderListResponses];
3810
+ export type ProviderAuthData = {
3811
+ body?: never;
3812
+ path?: never;
3813
+ query?: {
3814
+ directory?: string;
3815
+ };
3816
+ url: "/provider/auth";
3817
+ };
3818
+ export type ProviderAuthResponses = {
3819
+ /**
3820
+ * Provider auth methods
3821
+ */
3822
+ 200: {
3823
+ [key: string]: Array<ProviderAuthMethod>;
3824
+ };
3825
+ };
3826
+ export type ProviderAuthResponse = ProviderAuthResponses[keyof ProviderAuthResponses];
3827
+ export type ProviderOauthAuthorizeData = {
3828
+ body?: {
3829
+ /**
3830
+ * Auth method index
3831
+ */
3832
+ method: number;
3833
+ };
3834
+ path: {
3835
+ /**
3836
+ * Provider ID
3837
+ */
3838
+ providerID: string;
3839
+ };
3840
+ query?: {
3841
+ directory?: string;
3842
+ };
3843
+ url: "/provider/{providerID}/oauth/authorize";
3844
+ };
3845
+ export type ProviderOauthAuthorizeErrors = {
3846
+ /**
3847
+ * Bad request
3848
+ */
3849
+ 400: BadRequestError;
3850
+ };
3851
+ export type ProviderOauthAuthorizeError = ProviderOauthAuthorizeErrors[keyof ProviderOauthAuthorizeErrors];
3852
+ export type ProviderOauthAuthorizeResponses = {
3853
+ /**
3854
+ * Authorization URL and method
3855
+ */
3856
+ 200: ProviderAuthAuthorization;
3857
+ };
3858
+ export type ProviderOauthAuthorizeResponse = ProviderOauthAuthorizeResponses[keyof ProviderOauthAuthorizeResponses];
3859
+ export type ProviderOauthCallbackData = {
3860
+ body?: {
3861
+ /**
3862
+ * Auth method index
3863
+ */
3864
+ method: number;
3865
+ /**
3866
+ * OAuth authorization code
3867
+ */
3868
+ code?: string;
3869
+ };
3870
+ path: {
3871
+ /**
3872
+ * Provider ID
3873
+ */
3874
+ providerID: string;
3875
+ };
3876
+ query?: {
3877
+ directory?: string;
3878
+ };
3879
+ url: "/provider/{providerID}/oauth/callback";
3880
+ };
3881
+ export type ProviderOauthCallbackErrors = {
3882
+ /**
3883
+ * Bad request
3884
+ */
3885
+ 400: BadRequestError;
3886
+ };
3887
+ export type ProviderOauthCallbackError = ProviderOauthCallbackErrors[keyof ProviderOauthCallbackErrors];
3888
+ export type ProviderOauthCallbackResponses = {
3889
+ /**
3890
+ * OAuth callback processed successfully
3891
+ */
3892
+ 200: boolean;
3893
+ };
3894
+ export type ProviderOauthCallbackResponse = ProviderOauthCallbackResponses[keyof ProviderOauthCallbackResponses];
3895
+ export type FindTextData = {
3896
+ body?: never;
3897
+ path?: never;
3898
+ query: {
3899
+ directory?: string;
3900
+ pattern: string;
3901
+ };
3902
+ url: "/find";
3903
+ };
3904
+ export type FindTextResponses = {
3905
+ /**
3906
+ * Matches
3907
+ */
3908
+ 200: Array<{
3909
+ path: {
3910
+ text: string;
3911
+ };
3912
+ lines: {
3913
+ text: string;
3914
+ };
3915
+ line_number: number;
3916
+ absolute_offset: number;
3917
+ submatches: Array<{
3918
+ match: {
3919
+ text: string;
3920
+ };
3921
+ start: number;
3922
+ end: number;
3923
+ }>;
3924
+ }>;
3925
+ };
3926
+ export type FindTextResponse = FindTextResponses[keyof FindTextResponses];
3927
+ export type FindFilesData = {
3928
+ body?: never;
3929
+ path?: never;
3930
+ query: {
3931
+ directory?: string;
3932
+ query: string;
3933
+ dirs?: "true" | "false";
3934
+ type?: "file" | "directory";
3935
+ limit?: number;
3936
+ };
3937
+ url: "/find/file";
3938
+ };
3939
+ export type FindFilesResponses = {
3940
+ /**
3941
+ * File paths
3942
+ */
3943
+ 200: Array<string>;
3944
+ };
3945
+ export type FindFilesResponse = FindFilesResponses[keyof FindFilesResponses];
3946
+ export type FindSymbolsData = {
3947
+ body?: never;
3948
+ path?: never;
3949
+ query: {
3950
+ directory?: string;
3951
+ query: string;
3952
+ };
3953
+ url: "/find/symbol";
3954
+ };
3955
+ export type FindSymbolsResponses = {
3956
+ /**
3957
+ * Symbols
3958
+ */
3959
+ 200: Array<Symbol>;
3960
+ };
3961
+ export type FindSymbolsResponse = FindSymbolsResponses[keyof FindSymbolsResponses];
3962
+ export type FileListData = {
3963
+ body?: never;
3964
+ path?: never;
3965
+ query: {
3966
+ directory?: string;
3967
+ path: string;
3968
+ };
3969
+ url: "/file";
3970
+ };
3971
+ export type FileListResponses = {
3972
+ /**
3973
+ * Files and directories
3974
+ */
3975
+ 200: Array<FileNode>;
3976
+ };
3977
+ export type FileListResponse = FileListResponses[keyof FileListResponses];
3978
+ export type FileReadData = {
3979
+ body?: never;
3980
+ path?: never;
3981
+ query: {
3982
+ directory?: string;
3983
+ path: string;
3984
+ };
3985
+ url: "/file/content";
3986
+ };
3987
+ export type FileReadResponses = {
3988
+ /**
3989
+ * File content
3990
+ */
3991
+ 200: FileContent;
3992
+ };
3993
+ export type FileReadResponse = FileReadResponses[keyof FileReadResponses];
3994
+ export type FileStatusData = {
3995
+ body?: never;
3996
+ path?: never;
3997
+ query?: {
3998
+ directory?: string;
3999
+ };
4000
+ url: "/file/status";
4001
+ };
4002
+ export type FileStatusResponses = {
4003
+ /**
4004
+ * File status
4005
+ */
4006
+ 200: Array<File>;
4007
+ };
4008
+ export type FileStatusResponse = FileStatusResponses[keyof FileStatusResponses];
4009
+ export type McpStatusData = {
4010
+ body?: never;
4011
+ path?: never;
4012
+ query?: {
4013
+ directory?: string;
4014
+ };
4015
+ url: "/mcp";
4016
+ };
4017
+ export type McpStatusResponses = {
4018
+ /**
4019
+ * MCP server status
4020
+ */
4021
+ 200: {
4022
+ [key: string]: McpStatus;
4023
+ };
4024
+ };
4025
+ export type McpStatusResponse = McpStatusResponses[keyof McpStatusResponses];
4026
+ export type McpAddData = {
4027
+ body?: {
4028
+ name: string;
4029
+ config: McpLocalConfig | McpRemoteConfig;
4030
+ };
4031
+ path?: never;
4032
+ query?: {
4033
+ directory?: string;
4034
+ };
4035
+ url: "/mcp";
4036
+ };
4037
+ export type McpAddErrors = {
4038
+ /**
4039
+ * Bad request
4040
+ */
4041
+ 400: BadRequestError;
4042
+ };
4043
+ export type McpAddError = McpAddErrors[keyof McpAddErrors];
4044
+ export type McpAddResponses = {
4045
+ /**
4046
+ * MCP server added successfully
4047
+ */
4048
+ 200: {
4049
+ [key: string]: McpStatus;
4050
+ };
4051
+ };
4052
+ export type McpAddResponse = McpAddResponses[keyof McpAddResponses];
4053
+ export type McpAuthRemoveData = {
4054
+ body?: never;
4055
+ path: {
4056
+ name: string;
4057
+ };
4058
+ query?: {
4059
+ directory?: string;
4060
+ };
4061
+ url: "/mcp/{name}/auth";
4062
+ };
4063
+ export type McpAuthRemoveErrors = {
4064
+ /**
4065
+ * Not found
4066
+ */
4067
+ 404: NotFoundError;
4068
+ };
4069
+ export type McpAuthRemoveError = McpAuthRemoveErrors[keyof McpAuthRemoveErrors];
4070
+ export type McpAuthRemoveResponses = {
4071
+ /**
4072
+ * OAuth credentials removed
4073
+ */
4074
+ 200: {
4075
+ success: true;
4076
+ };
4077
+ };
4078
+ export type McpAuthRemoveResponse = McpAuthRemoveResponses[keyof McpAuthRemoveResponses];
4079
+ export type McpAuthStartData = {
4080
+ body?: never;
4081
+ path: {
4082
+ name: string;
4083
+ };
4084
+ query?: {
4085
+ directory?: string;
4086
+ };
4087
+ url: "/mcp/{name}/auth";
4088
+ };
4089
+ export type McpAuthStartErrors = {
4090
+ /**
4091
+ * Bad request
4092
+ */
4093
+ 400: BadRequestError;
4094
+ /**
4095
+ * Not found
4096
+ */
4097
+ 404: NotFoundError;
4098
+ };
4099
+ export type McpAuthStartError = McpAuthStartErrors[keyof McpAuthStartErrors];
4100
+ export type McpAuthStartResponses = {
4101
+ /**
4102
+ * OAuth flow started
4103
+ */
4104
+ 200: {
4105
+ /**
4106
+ * URL to open in browser for authorization
4107
+ */
4108
+ authorizationUrl: string;
4109
+ };
4110
+ };
4111
+ export type McpAuthStartResponse = McpAuthStartResponses[keyof McpAuthStartResponses];
4112
+ export type McpAuthCallbackData = {
4113
+ body?: {
4114
+ /**
4115
+ * Authorization code from OAuth callback
4116
+ */
4117
+ code: string;
4118
+ };
4119
+ path: {
4120
+ name: string;
4121
+ };
4122
+ query?: {
4123
+ directory?: string;
4124
+ };
4125
+ url: "/mcp/{name}/auth/callback";
4126
+ };
4127
+ export type McpAuthCallbackErrors = {
4128
+ /**
4129
+ * Bad request
4130
+ */
4131
+ 400: BadRequestError;
4132
+ /**
4133
+ * Not found
4134
+ */
4135
+ 404: NotFoundError;
4136
+ };
4137
+ export type McpAuthCallbackError = McpAuthCallbackErrors[keyof McpAuthCallbackErrors];
4138
+ export type McpAuthCallbackResponses = {
4139
+ /**
4140
+ * OAuth authentication completed
4141
+ */
4142
+ 200: McpStatus;
4143
+ };
4144
+ export type McpAuthCallbackResponse = McpAuthCallbackResponses[keyof McpAuthCallbackResponses];
4145
+ export type McpAuthAuthenticateData = {
4146
+ body?: never;
4147
+ path: {
4148
+ name: string;
4149
+ };
4150
+ query?: {
4151
+ directory?: string;
4152
+ };
4153
+ url: "/mcp/{name}/auth/authenticate";
4154
+ };
4155
+ export type McpAuthAuthenticateErrors = {
4156
+ /**
4157
+ * Bad request
4158
+ */
4159
+ 400: BadRequestError;
4160
+ /**
4161
+ * Not found
4162
+ */
4163
+ 404: NotFoundError;
4164
+ };
4165
+ export type McpAuthAuthenticateError = McpAuthAuthenticateErrors[keyof McpAuthAuthenticateErrors];
4166
+ export type McpAuthAuthenticateResponses = {
4167
+ /**
4168
+ * OAuth authentication completed
4169
+ */
4170
+ 200: McpStatus;
4171
+ };
4172
+ export type McpAuthAuthenticateResponse = McpAuthAuthenticateResponses[keyof McpAuthAuthenticateResponses];
4173
+ export type McpConnectData = {
4174
+ body?: never;
4175
+ path: {
4176
+ name: string;
4177
+ };
4178
+ query?: {
4179
+ directory?: string;
4180
+ };
4181
+ url: "/mcp/{name}/connect";
4182
+ };
4183
+ export type McpConnectResponses = {
4184
+ /**
4185
+ * MCP server connected successfully
4186
+ */
4187
+ 200: boolean;
4188
+ };
4189
+ export type McpConnectResponse = McpConnectResponses[keyof McpConnectResponses];
4190
+ export type McpDisconnectData = {
4191
+ body?: never;
4192
+ path: {
4193
+ name: string;
4194
+ };
4195
+ query?: {
4196
+ directory?: string;
4197
+ };
4198
+ url: "/mcp/{name}/disconnect";
4199
+ };
4200
+ export type McpDisconnectResponses = {
4201
+ /**
4202
+ * MCP server disconnected successfully
4203
+ */
4204
+ 200: boolean;
4205
+ };
4206
+ export type McpDisconnectResponse = McpDisconnectResponses[keyof McpDisconnectResponses];
4207
+ export type GitCheckData = {
4208
+ body?: never;
4209
+ path?: never;
4210
+ query?: {
4211
+ directory?: string;
4212
+ };
4213
+ url: "/git/check";
4214
+ };
4215
+ export type GitCheckResponses = {
4216
+ /**
4217
+ * Map of git root paths to check results including file write status
4218
+ */
4219
+ 200: {
4220
+ [key: string]: {
4221
+ files: Array<{
4222
+ /**
4223
+ * Git status code (M=modified, A=added, D=deleted, R=renamed)
4224
+ */
4225
+ status: string;
4226
+ /**
4227
+ * Relative file path from git root
4228
+ */
4229
+ path: string;
4230
+ /**
4231
+ * Full diff content of the file
4232
+ */
4233
+ diff: string;
4234
+ }>;
4235
+ /**
4236
+ * Whether the CHECK file was successfully written
4237
+ */
4238
+ checkFileWritten: boolean;
4239
+ /**
4240
+ * Error message if CHECK file write failed
4241
+ */
4242
+ checkFileError?: string;
4243
+ };
4244
+ };
4245
+ };
4246
+ export type GitCheckResponse = GitCheckResponses[keyof GitCheckResponses];
4247
+ export type TuiAppendPromptData = {
4248
+ body?: {
4249
+ text: string;
4250
+ };
4251
+ path?: never;
4252
+ query?: {
4253
+ directory?: string;
4254
+ };
4255
+ url: "/tui/append-prompt";
4256
+ };
4257
+ export type TuiAppendPromptErrors = {
4258
+ /**
4259
+ * Bad request
4260
+ */
4261
+ 400: BadRequestError;
4262
+ };
4263
+ export type TuiAppendPromptError = TuiAppendPromptErrors[keyof TuiAppendPromptErrors];
4264
+ export type TuiAppendPromptResponses = {
4265
+ /**
4266
+ * Prompt processed successfully
4267
+ */
4268
+ 200: boolean;
4269
+ };
4270
+ export type TuiAppendPromptResponse = TuiAppendPromptResponses[keyof TuiAppendPromptResponses];
4271
+ export type TuiOpenHelpData = {
4272
+ body?: never;
4273
+ path?: never;
4274
+ query?: {
4275
+ directory?: string;
4276
+ };
4277
+ url: "/tui/open-help";
4278
+ };
4279
+ export type TuiOpenHelpResponses = {
4280
+ /**
4281
+ * Help dialog opened successfully
4282
+ */
4283
+ 200: boolean;
4284
+ };
4285
+ export type TuiOpenHelpResponse = TuiOpenHelpResponses[keyof TuiOpenHelpResponses];
4286
+ export type TuiOpenSessionsData = {
4287
+ body?: never;
4288
+ path?: never;
4289
+ query?: {
4290
+ directory?: string;
4291
+ };
4292
+ url: "/tui/open-sessions";
4293
+ };
4294
+ export type TuiOpenSessionsResponses = {
4295
+ /**
4296
+ * Session dialog opened successfully
4297
+ */
4298
+ 200: boolean;
4299
+ };
4300
+ export type TuiOpenSessionsResponse = TuiOpenSessionsResponses[keyof TuiOpenSessionsResponses];
4301
+ export type TuiOpenThemesData = {
4302
+ body?: never;
4303
+ path?: never;
4304
+ query?: {
4305
+ directory?: string;
4306
+ };
4307
+ url: "/tui/open-themes";
4308
+ };
4309
+ export type TuiOpenThemesResponses = {
4310
+ /**
4311
+ * Theme dialog opened successfully
4312
+ */
4313
+ 200: boolean;
4314
+ };
4315
+ export type TuiOpenThemesResponse = TuiOpenThemesResponses[keyof TuiOpenThemesResponses];
4316
+ export type TuiOpenModelsData = {
4317
+ body?: never;
4318
+ path?: never;
4319
+ query?: {
4320
+ directory?: string;
4321
+ };
4322
+ url: "/tui/open-models";
4323
+ };
4324
+ export type TuiOpenModelsResponses = {
4325
+ /**
4326
+ * Model dialog opened successfully
4327
+ */
4328
+ 200: boolean;
4329
+ };
4330
+ export type TuiOpenModelsResponse = TuiOpenModelsResponses[keyof TuiOpenModelsResponses];
4331
+ export type TuiSubmitPromptData = {
4332
+ body?: never;
4333
+ path?: never;
4334
+ query?: {
4335
+ directory?: string;
4336
+ };
4337
+ url: "/tui/submit-prompt";
4338
+ };
4339
+ export type TuiSubmitPromptResponses = {
4340
+ /**
4341
+ * Prompt submitted successfully
4342
+ */
4343
+ 200: boolean;
4344
+ };
4345
+ export type TuiSubmitPromptResponse = TuiSubmitPromptResponses[keyof TuiSubmitPromptResponses];
4346
+ export type TuiClearPromptData = {
4347
+ body?: never;
4348
+ path?: never;
4349
+ query?: {
4350
+ directory?: string;
4351
+ };
4352
+ url: "/tui/clear-prompt";
4353
+ };
4354
+ export type TuiClearPromptResponses = {
4355
+ /**
4356
+ * Prompt cleared successfully
4357
+ */
4358
+ 200: boolean;
4359
+ };
4360
+ export type TuiClearPromptResponse = TuiClearPromptResponses[keyof TuiClearPromptResponses];
4361
+ export type TuiExecuteCommandData = {
4362
+ body?: {
4363
+ command: string;
4364
+ };
4365
+ path?: never;
4366
+ query?: {
4367
+ directory?: string;
4368
+ };
4369
+ url: "/tui/execute-command";
4370
+ };
4371
+ export type TuiExecuteCommandErrors = {
4372
+ /**
4373
+ * Bad request
4374
+ */
4375
+ 400: BadRequestError;
4376
+ };
4377
+ export type TuiExecuteCommandError = TuiExecuteCommandErrors[keyof TuiExecuteCommandErrors];
4378
+ export type TuiExecuteCommandResponses = {
4379
+ /**
4380
+ * Command executed successfully
4381
+ */
4382
+ 200: boolean;
4383
+ };
4384
+ export type TuiExecuteCommandResponse = TuiExecuteCommandResponses[keyof TuiExecuteCommandResponses];
4385
+ export type TuiShowToastData = {
4386
+ body?: {
4387
+ title?: string;
4388
+ message: string;
4389
+ variant: "info" | "success" | "warning" | "error";
4390
+ /**
4391
+ * Duration in milliseconds
4392
+ */
4393
+ duration?: number;
4394
+ };
4395
+ path?: never;
4396
+ query?: {
4397
+ directory?: string;
4398
+ };
4399
+ url: "/tui/show-toast";
4400
+ };
4401
+ export type TuiShowToastResponses = {
4402
+ /**
4403
+ * Toast notification shown successfully
4404
+ */
4405
+ 200: boolean;
4406
+ };
4407
+ export type TuiShowToastResponse = TuiShowToastResponses[keyof TuiShowToastResponses];
4408
+ export type TuiPublishData = {
4409
+ body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect;
4410
+ path?: never;
4411
+ query?: {
4412
+ directory?: string;
4413
+ };
4414
+ url: "/tui/publish";
4415
+ };
4416
+ export type TuiPublishErrors = {
4417
+ /**
4418
+ * Bad request
4419
+ */
4420
+ 400: BadRequestError;
4421
+ };
4422
+ export type TuiPublishError = TuiPublishErrors[keyof TuiPublishErrors];
4423
+ export type TuiPublishResponses = {
4424
+ /**
4425
+ * Event published successfully
4426
+ */
4427
+ 200: boolean;
4428
+ };
4429
+ export type TuiPublishResponse = TuiPublishResponses[keyof TuiPublishResponses];
4430
+ export type TuiSelectSessionData = {
4431
+ body?: {
4432
+ /**
4433
+ * Session ID to navigate to
4434
+ */
4435
+ sessionID: string;
4436
+ };
4437
+ path?: never;
4438
+ query?: {
4439
+ directory?: string;
4440
+ };
4441
+ url: "/tui/select-session";
4442
+ };
4443
+ export type TuiSelectSessionErrors = {
4444
+ /**
4445
+ * Bad request
4446
+ */
4447
+ 400: BadRequestError;
4448
+ /**
4449
+ * Not found
4450
+ */
4451
+ 404: NotFoundError;
4452
+ };
4453
+ export type TuiSelectSessionError = TuiSelectSessionErrors[keyof TuiSelectSessionErrors];
4454
+ export type TuiSelectSessionResponses = {
4455
+ /**
4456
+ * Session selected successfully
4457
+ */
4458
+ 200: boolean;
4459
+ };
4460
+ export type TuiSelectSessionResponse = TuiSelectSessionResponses[keyof TuiSelectSessionResponses];
4461
+ export type TuiControlNextData = {
4462
+ body?: never;
4463
+ path?: never;
4464
+ query?: {
4465
+ directory?: string;
4466
+ };
4467
+ url: "/tui/control/next";
4468
+ };
4469
+ export type TuiControlNextResponses = {
4470
+ /**
4471
+ * Next TUI request
4472
+ */
4473
+ 200: {
4474
+ path: string;
4475
+ body: unknown;
4476
+ };
4477
+ };
4478
+ export type TuiControlNextResponse = TuiControlNextResponses[keyof TuiControlNextResponses];
4479
+ export type TuiControlResponseData = {
4480
+ body?: unknown;
4481
+ path?: never;
4482
+ query?: {
4483
+ directory?: string;
4484
+ };
4485
+ url: "/tui/control/response";
4486
+ };
4487
+ export type TuiControlResponseResponses = {
4488
+ /**
4489
+ * Response submitted successfully
4490
+ */
4491
+ 200: boolean;
4492
+ };
4493
+ export type TuiControlResponseResponse = TuiControlResponseResponses[keyof TuiControlResponseResponses];
4494
+ export type TeamConfigData = {
4495
+ body?: never;
4496
+ path?: never;
4497
+ query?: {
4498
+ directory?: string;
4499
+ };
4500
+ url: "/team/config";
4501
+ };
4502
+ export type TeamConfigResponses = {
4503
+ /**
4504
+ * Team configuration
4505
+ */
4506
+ 200: {
4507
+ members: Array<{
4508
+ name: string;
4509
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4510
+ agentName: string;
4511
+ }>;
4512
+ max_per_role?: number;
4513
+ };
4514
+ };
4515
+ export type TeamConfigResponse = TeamConfigResponses[keyof TeamConfigResponses];
4516
+ export type TeamRolesData = {
4517
+ body?: never;
4518
+ path?: never;
4519
+ query?: {
4520
+ directory?: string;
4521
+ };
4522
+ url: "/team/roles";
4523
+ };
4524
+ export type TeamRolesResponses = {
4525
+ /**
4526
+ * Available roles with labels
4527
+ */
4528
+ 200: {
4529
+ [key: string]: string;
4530
+ };
4531
+ };
4532
+ export type TeamRolesResponse = TeamRolesResponses[keyof TeamRolesResponses];
4533
+ export type TeamStatusData = {
4534
+ body?: never;
4535
+ path?: never;
4536
+ query?: {
4537
+ directory?: string;
4538
+ sessionId?: string;
4539
+ };
4540
+ url: "/team/status";
4541
+ };
4542
+ export type TeamStatusResponses = {
4543
+ /**
4544
+ * Team status for all sessions
4545
+ */
4546
+ 200: {
4547
+ [key: string]: unknown;
4548
+ };
4549
+ };
4550
+ export type TeamStatusResponse = TeamStatusResponses[keyof TeamStatusResponses];
4551
+ export type TeamHireData = {
4552
+ body?: {
4553
+ sessionId: string;
4554
+ name: string;
4555
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4556
+ };
4557
+ path?: never;
4558
+ query?: {
4559
+ directory?: string;
4560
+ };
4561
+ url: "/team/hire";
4562
+ };
4563
+ export type TeamHireResponses = {
4564
+ /**
4565
+ * Member hired
4566
+ */
4567
+ 200: {
4568
+ name: string;
4569
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4570
+ agentName: string;
4571
+ };
4572
+ };
4573
+ export type TeamHireResponse = TeamHireResponses[keyof TeamHireResponses];
4574
+ export type TeamHireAutoData = {
4575
+ body?: {
4576
+ sessionId: string;
4577
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4578
+ };
4579
+ path?: never;
4580
+ query?: {
4581
+ directory?: string;
4582
+ };
4583
+ url: "/team/hire-auto";
4584
+ };
4585
+ export type TeamHireAutoResponses = {
4586
+ /**
4587
+ * Member hired with auto-generated name
4588
+ */
4589
+ 200: {
4590
+ name: string;
4591
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4592
+ agentName: string;
4593
+ };
4594
+ };
4595
+ export type TeamHireAutoResponse = TeamHireAutoResponses[keyof TeamHireAutoResponses];
4596
+ export type TeamFireData = {
4597
+ body?: {
4598
+ sessionId: string;
4599
+ name: string;
4600
+ };
4601
+ path?: never;
4602
+ query?: {
4603
+ directory?: string;
4604
+ };
4605
+ url: "/team/fire";
4606
+ };
4607
+ export type TeamFireResponses = {
4608
+ /**
4609
+ * Member fired
4610
+ */
4611
+ 200: boolean;
4612
+ };
4613
+ export type TeamFireResponse = TeamFireResponses[keyof TeamFireResponses];
4614
+ export type TeamMessagesData = {
4615
+ body?: never;
4616
+ path: {
4617
+ name: string;
4618
+ };
4619
+ query: {
4620
+ directory?: string;
4621
+ sessionId: string;
4622
+ unread?: boolean;
4623
+ };
4624
+ url: "/team/messages/{name}";
4625
+ };
4626
+ export type TeamMessagesResponses = {
4627
+ /**
4628
+ * Messages
4629
+ */
4630
+ 200: Array<{
4631
+ id: string;
4632
+ from: string;
4633
+ to: string;
4634
+ type: "task_assignment" | "task_result" | "message" | "question" | "stop_request";
4635
+ content: string;
4636
+ taskId?: string;
4637
+ timestamp: number;
4638
+ metadata?: {
4639
+ [key: string]: unknown;
4640
+ };
4641
+ }>;
4642
+ };
4643
+ export type TeamMessagesResponse = TeamMessagesResponses[keyof TeamMessagesResponses];
4644
+ export type InstanceDisposeData = {
4645
+ body?: never;
4646
+ path?: never;
4647
+ query?: {
4648
+ directory?: string;
4649
+ };
4650
+ url: "/instance/dispose";
4651
+ };
4652
+ export type InstanceDisposeResponses = {
4653
+ /**
4654
+ * Instance disposed
4655
+ */
4656
+ 200: boolean;
4657
+ };
4658
+ export type InstanceDisposeResponse = InstanceDisposeResponses[keyof InstanceDisposeResponses];
4659
+ export type PathGetData = {
4660
+ body?: never;
4661
+ path?: never;
4662
+ query?: {
4663
+ directory?: string;
4664
+ };
4665
+ url: "/path";
4666
+ };
4667
+ export type PathGetResponses = {
4668
+ /**
4669
+ * Path
4670
+ */
4671
+ 200: Path;
4672
+ };
4673
+ export type PathGetResponse = PathGetResponses[keyof PathGetResponses];
4674
+ export type VcsGetData = {
4675
+ body?: never;
4676
+ path?: never;
4677
+ query?: {
4678
+ directory?: string;
4679
+ };
4680
+ url: "/vcs";
4681
+ };
4682
+ export type VcsGetResponses = {
4683
+ /**
4684
+ * VCS info
4685
+ */
4686
+ 200: VcsInfo;
4687
+ };
4688
+ export type VcsGetResponse = VcsGetResponses[keyof VcsGetResponses];
4689
+ export type CommandListData = {
4690
+ body?: never;
4691
+ path?: never;
4692
+ query?: {
4693
+ directory?: string;
4694
+ };
4695
+ url: "/command";
4696
+ };
4697
+ export type CommandListResponses = {
4698
+ /**
4699
+ * List of commands
4700
+ */
4701
+ 200: Array<Command>;
4702
+ };
4703
+ export type CommandListResponse = CommandListResponses[keyof CommandListResponses];
4704
+ export type CommandValidateData = {
4705
+ body?: {
4706
+ /**
4707
+ * Command name
4708
+ */
4709
+ command: string;
4710
+ /**
4711
+ * Command arguments string
4712
+ */
4713
+ arguments?: string;
4714
+ };
4715
+ path?: never;
4716
+ query?: {
4717
+ directory?: string;
4718
+ };
4719
+ url: "/command/validate";
4720
+ };
4721
+ export type CommandValidateErrors = {
4722
+ /**
4723
+ * Bad request
4724
+ */
4725
+ 400: BadRequestError;
4726
+ };
4727
+ export type CommandValidateError = CommandValidateErrors[keyof CommandValidateErrors];
4728
+ export type CommandValidateResponses = {
4729
+ /**
4730
+ * Validation result
4731
+ */
4732
+ 200: {
4733
+ valid: boolean;
4734
+ error?: string;
4735
+ };
4736
+ };
4737
+ export type CommandValidateResponse = CommandValidateResponses[keyof CommandValidateResponses];
4738
+ export type AppLogData = {
4739
+ body?: {
4740
+ /**
4741
+ * Service name for the log entry
4742
+ */
4743
+ service: string;
4744
+ /**
4745
+ * Log level
4746
+ */
4747
+ level: "debug" | "info" | "error" | "warn";
4748
+ /**
4749
+ * Log message
4750
+ */
4751
+ message: string;
4752
+ /**
4753
+ * Additional metadata for the log entry
4754
+ */
4755
+ extra?: {
4756
+ [key: string]: unknown;
4757
+ };
4758
+ };
4759
+ path?: never;
4760
+ query?: {
4761
+ directory?: string;
4762
+ };
4763
+ url: "/log";
4764
+ };
4765
+ export type AppLogErrors = {
4766
+ /**
4767
+ * Bad request
4768
+ */
4769
+ 400: BadRequestError;
4770
+ };
4771
+ export type AppLogError = AppLogErrors[keyof AppLogErrors];
4772
+ export type AppLogResponses = {
4773
+ /**
4774
+ * Log entry written successfully
4775
+ */
4776
+ 200: boolean;
4777
+ };
4778
+ export type AppLogResponse = AppLogResponses[keyof AppLogResponses];
4779
+ export type AppAgentsData = {
4780
+ body?: never;
4781
+ path?: never;
4782
+ query?: {
4783
+ directory?: string;
4784
+ };
4785
+ url: "/agent";
4786
+ };
4787
+ export type AppAgentsResponses = {
4788
+ /**
4789
+ * List of agents
4790
+ */
4791
+ 200: Array<Agent>;
4792
+ };
4793
+ export type AppAgentsResponse = AppAgentsResponses[keyof AppAgentsResponses];
4794
+ export type AppSkillsData = {
4795
+ body?: never;
4796
+ path?: never;
4797
+ query?: {
4798
+ directory?: string;
4799
+ };
4800
+ url: "/skill";
4801
+ };
4802
+ export type AppSkillsResponses = {
4803
+ /**
4804
+ * List of skills
4805
+ */
4806
+ 200: Array<{
4807
+ name: string;
4808
+ description: string;
4809
+ location: string;
4810
+ content: string;
4811
+ }>;
4812
+ };
4813
+ export type AppSkillsResponse = AppSkillsResponses[keyof AppSkillsResponses];
4814
+ export type LspStatusData = {
4815
+ body?: never;
4816
+ path?: never;
4817
+ query?: {
4818
+ directory?: string;
4819
+ };
4820
+ url: "/lsp";
4821
+ };
4822
+ export type LspStatusResponses = {
4823
+ /**
4824
+ * LSP server status
4825
+ */
4826
+ 200: Array<LspStatus>;
4827
+ };
4828
+ export type LspStatusResponse = LspStatusResponses[keyof LspStatusResponses];
4829
+ export type FormatterStatusData = {
4830
+ body?: never;
4831
+ path?: never;
4832
+ query?: {
4833
+ directory?: string;
4834
+ };
4835
+ url: "/formatter";
4836
+ };
4837
+ export type FormatterStatusResponses = {
4838
+ /**
4839
+ * Formatter status
4840
+ */
4841
+ 200: Array<FormatterStatus>;
4842
+ };
4843
+ export type FormatterStatusResponse = FormatterStatusResponses[keyof FormatterStatusResponses];
4844
+ export type EventSubscribeData = {
4845
+ body?: never;
4846
+ path?: never;
4847
+ query?: {
4848
+ directory?: string;
4849
+ };
4850
+ url: "/event";
4851
+ };
4852
+ export type EventSubscribeResponses = {
4853
+ /**
4854
+ * Event stream
4855
+ */
4856
+ 200: Event;
4857
+ };
4858
+ export type EventSubscribeResponse = EventSubscribeResponses[keyof EventSubscribeResponses];