@ottocode/api 0.1.294 → 0.1.296

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.
@@ -1,342 +1,112 @@
1
1
  export type ClientOptions = {
2
2
  baseURL: `${string}://${string}` | (string & {});
3
3
  };
4
- /**
5
- * Built-in or custom provider identifier
6
- */
7
- export type Provider = string;
8
- export type ProviderDetail = {
9
- id: Provider;
10
- label: string;
11
- source: 'built-in' | 'custom';
12
- enabled: boolean;
13
- authorized: boolean;
14
- custom: boolean;
15
- compatibility?: string | null;
16
- family?: string | null;
17
- baseURL?: string | null;
18
- apiKeyEnv?: string | null;
19
- hasApiKey: boolean;
20
- allowAnyModel: boolean;
21
- modelCount: number;
22
- authType?: string | null;
23
- };
24
- export type AskResponse = {
25
- sessionId: string;
26
- header: AskResponseHeader;
27
- provider: Provider;
28
- model: string;
29
- agent: string;
30
- assistantMessageId: string;
31
- message?: AskResponseMessage;
32
- };
33
- export type AskResponseHeader = {
34
- sessionId: string;
35
- agent?: string | null;
36
- provider?: Provider;
37
- model?: string | null;
38
- };
39
- export type AskResponseMessage = {
40
- kind: 'created' | 'last';
41
- sessionId: string;
42
- };
43
- export type Session = {
44
- id: string;
45
- title?: string | null;
46
- agent: string;
47
- provider: Provider;
48
- model: string;
49
- projectPath: string;
50
- createdAt: number;
51
- lastActiveAt?: number | null;
52
- lastViewedAt?: number | null;
53
- totalInputTokens?: number | null;
54
- totalOutputTokens?: number | null;
55
- totalCachedTokens?: number | null;
56
- totalCacheCreationTokens?: number | null;
57
- currentContextTokens?: number | null;
58
- totalToolTimeMs?: number | null;
59
- toolCounts?: {
60
- [key: string]: number;
61
- } | null;
62
- fileStats?: {
63
- changedFiles: number;
64
- additions: number;
65
- deletions: number;
66
- operations: number;
67
- } | null;
68
- isRunning?: boolean;
69
- };
70
- export type Message = {
71
- id: string;
72
- sessionId: string;
73
- role: 'system' | 'user' | 'assistant' | 'tool';
74
- status: 'pending' | 'complete' | 'error';
75
- agent: string;
76
- provider: Provider;
77
- model: string;
78
- createdAt: number;
79
- completedAt?: number | null;
80
- latencyMs?: number | null;
81
- inputTokens?: number | null;
82
- outputTokens?: number | null;
83
- totalTokens?: number | null;
84
- error?: string | null;
85
- };
86
- export type MessagePart = {
87
- id: string;
88
- messageId: string;
89
- index: number;
90
- type: 'text' | 'tool_call' | 'tool_result' | 'image' | 'error';
91
- /**
92
- * JSON-encoded content. For text: {"text": string}. For tool_call: {"name": string, "args": object}. For tool_result: {"name": string, "result"?: any, "artifact"?: Artifact}.
93
- */
94
- content: string;
95
- agent: string;
96
- provider: Provider;
97
- model: string;
98
- startedAt?: number | null;
99
- completedAt?: number | null;
100
- toolName?: string | null;
101
- toolCallId?: string | null;
102
- toolDurationMs?: number | null;
103
- };
104
- export type Artifact = FileDiffArtifact | FileArtifact;
105
- export type FileDiffArtifact = {
106
- kind: 'file_diff';
107
- patchFormat: 'unified';
108
- patch: string;
109
- summary?: {
110
- files?: number;
111
- additions?: number;
112
- deletions?: number;
113
- };
114
- };
115
- export type FileArtifact = {
116
- kind: 'file';
117
- path: string;
118
- mime?: string;
119
- size?: number;
120
- sha256?: string;
121
- };
122
- export type Config = {
123
- agents: Array<string>;
124
- providers: Array<Provider>;
125
- providerDetails?: Array<ProviderDetail>;
126
- defaults: {
127
- agent: string;
128
- provider: Provider;
129
- model: string;
130
- theme?: 'light' | 'dark';
131
- vimMode?: boolean;
132
- compactThread?: boolean;
133
- fontFamily?: string;
134
- smartEdges?: boolean;
135
- releaseToSend?: boolean;
136
- fullWidthContent?: boolean;
137
- autoCompactThresholdTokens?: number | null;
138
- reasoningText?: boolean;
139
- reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
140
- };
141
- };
142
- export type Model = {
143
- id: string;
144
- label: string;
145
- toolCall?: boolean;
146
- reasoningText?: boolean;
147
- };
148
- export type GitStatus = {
149
- branch: string;
150
- headSha: string;
151
- shortHeadSha: string;
152
- isDetached: boolean;
153
- operation: GitOperation;
154
- ahead: number;
155
- behind: number;
156
- staged: Array<GitFile>;
157
- unstaged: Array<GitFile>;
158
- untracked: Array<GitFile>;
159
- conflicted: Array<GitFile>;
160
- hasChanges: boolean;
161
- hasConflicts: boolean;
162
- hasUpstream: boolean;
163
- remotes: Array<string>;
164
- };
165
- export type GitOperation = {
166
- type: 'rebase' | 'rebase-interactive' | 'merge' | 'cherry-pick' | 'revert' | 'bisect';
167
- label: string;
168
- current?: number;
169
- total?: number;
170
- headName?: string;
171
- onto?: string;
172
- };
173
- export type GitFile = {
174
- path: string;
175
- status: 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted';
176
- staged: boolean;
177
- insertions?: number;
178
- deletions?: number;
179
- oldPath?: string;
180
- conflictType?: 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted';
181
- };
182
- export type GitDiff = {
183
- file: string;
184
- diff: string;
185
- insertions: number;
186
- deletions: number;
187
- language: string;
188
- binary: boolean;
189
- };
190
- export type GitBranch = {
191
- current: string;
192
- upstream: string;
193
- ahead: number;
194
- behind: number;
195
- all: Array<string>;
196
- };
197
- export type GitCommit = {
198
- hash: string;
199
- message: string;
200
- filesChanged: number;
201
- insertions: number;
202
- deletions: number;
203
- };
204
- export type Terminal = {
205
- id?: string;
206
- pid?: number;
207
- command?: string;
208
- args?: Array<string>;
209
- cwd?: string;
210
- purpose?: string;
211
- createdBy?: 'user' | 'llm';
212
- title?: string;
213
- status?: 'running' | 'exited';
214
- exitCode?: number;
215
- createdAt?: string;
216
- uptime?: number;
217
- };
218
4
  export type McpServer = {
219
5
  name: string;
220
6
  transport: 'stdio' | 'http' | 'sse';
221
7
  command?: string;
222
- args?: Array<string>;
8
+ args: Array<string>;
223
9
  url?: string;
224
- disabled?: boolean;
10
+ disabled: boolean;
225
11
  connected: boolean;
226
- tools?: Array<{
227
- name?: string;
228
- description?: string;
229
- }>;
230
- authRequired?: boolean;
231
- authenticated?: boolean;
232
- scope?: 'global' | 'project';
12
+ tools: Array<string>;
13
+ authRequired: boolean;
14
+ authenticated: boolean;
15
+ scope: 'global' | 'project';
233
16
  authType?: string;
234
- };
235
- export declare enum UsageAuthBucket {
236
- OAUTH = "oauth",
237
- API = "api",
238
- SUBSCRIPTION = "subscription"
239
- }
240
- export declare enum UsageAuthType {
241
- OAUTH = "oauth",
242
- API = "api",
243
- WALLET = "wallet",
244
- SUBSCRIPTION = "subscription",
245
- UNKNOWN = "unknown"
246
- }
247
- export type UsageAuthAmount = {
248
- oauth: number;
249
- api: number;
250
- subscription: number;
251
- };
252
- export type UsageAuthCount = {
253
- oauth: number;
254
- api: number;
255
- subscription: number;
256
- };
257
- export type UsageTotals = {
258
- messages: number;
259
- sessions: number;
260
- inputTokens: number;
261
- outputTokens: number;
262
- cachedInputTokens: number;
263
- cacheCreationInputTokens: number;
264
- reasoningTokens: number;
265
- costUsd: number;
266
- notionalCostUsd: number;
267
- savedUsd: number;
268
- costByAuth: UsageAuthAmount;
269
- messagesByAuth: UsageAuthCount;
270
- };
271
- export type UsageProviderAgg = {
272
- provider: string;
273
- authType: UsageAuthType;
274
- messages: number;
275
- sessions: number;
276
- inputTokens: number;
277
- outputTokens: number;
278
- cachedInputTokens: number;
279
- cacheCreationInputTokens: number;
280
- reasoningTokens: number;
281
- costUsd: number;
282
- notionalCostUsd: number;
283
- };
284
- export type UsageModelAgg = {
285
- provider: string;
286
- model: string;
287
- authType: UsageAuthType;
288
- messages: number;
289
- inputTokens: number;
290
- outputTokens: number;
291
- cachedInputTokens: number;
292
- cacheCreationInputTokens: number;
293
- reasoningTokens: number;
294
- costUsd: number;
295
- notionalCostUsd: number;
296
- };
297
- export type UsageDailyAgg = {
298
- date: string;
299
- messages: number;
300
- inputTokens: number;
301
- outputTokens: number;
302
- costUsd: number;
303
- notionalCostUsd: number;
304
- costByAuth: UsageAuthAmount;
305
- notionalByAuth: UsageAuthAmount;
306
- };
307
- export type UsageProjectInfo = {
308
- id: string;
309
- name: string;
310
- path: string;
311
- lastSeenAt: number;
312
- messages: number;
313
- notionalCostUsd: number;
314
- };
315
- export type UsageProjectUnavailable = {
316
- id: string;
317
- name: string;
318
- path: string;
319
- reason: string;
320
- };
321
- export type UsageProjectsBreakdown = {
322
- included: Array<UsageProjectInfo>;
323
- unavailable: Array<UsageProjectUnavailable>;
324
- };
325
- export type UsageStatsNotes = {
326
- oauthProviders: Array<string>;
327
- subscriptionProviders: Array<string>;
328
- missingPricing: Array<string>;
17
+ [key: string]: unknown | string | 'stdio' | 'http' | 'sse' | Array<string> | boolean | Array<string> | 'global' | 'project' | undefined;
329
18
  };
330
19
  export type UsageStats = {
331
20
  scope: 'project' | 'global';
332
21
  project: string;
333
22
  generatedAt: number;
334
- totals: UsageTotals;
335
- providers: Array<UsageProviderAgg>;
336
- models: Array<UsageModelAgg>;
337
- daily: Array<UsageDailyAgg>;
338
- notes: UsageStatsNotes;
339
- projects?: UsageProjectsBreakdown;
23
+ totals: {
24
+ messages: number;
25
+ sessions: number;
26
+ inputTokens: number;
27
+ outputTokens: number;
28
+ cachedInputTokens: number;
29
+ cacheCreationInputTokens: number;
30
+ reasoningTokens: number;
31
+ costUsd: number;
32
+ notionalCostUsd: number;
33
+ savedUsd: number;
34
+ costByAuth: {
35
+ oauth: number;
36
+ api: number;
37
+ subscription: number;
38
+ };
39
+ messagesByAuth: {
40
+ oauth: number;
41
+ api: number;
42
+ subscription: number;
43
+ };
44
+ };
45
+ providers: Array<{
46
+ provider: string;
47
+ authType: 'oauth' | 'api' | 'wallet' | 'subscription' | 'unknown';
48
+ messages: number;
49
+ sessions: number;
50
+ inputTokens: number;
51
+ outputTokens: number;
52
+ cachedInputTokens: number;
53
+ cacheCreationInputTokens: number;
54
+ reasoningTokens: number;
55
+ costUsd: number;
56
+ notionalCostUsd: number;
57
+ }>;
58
+ models: Array<{
59
+ provider: string;
60
+ model: string;
61
+ authType: 'oauth' | 'api' | 'wallet' | 'subscription' | 'unknown';
62
+ messages: number;
63
+ inputTokens: number;
64
+ outputTokens: number;
65
+ cachedInputTokens: number;
66
+ cacheCreationInputTokens: number;
67
+ reasoningTokens: number;
68
+ costUsd: number;
69
+ notionalCostUsd: number;
70
+ }>;
71
+ daily: Array<{
72
+ date: string;
73
+ messages: number;
74
+ inputTokens: number;
75
+ outputTokens: number;
76
+ costUsd: number;
77
+ notionalCostUsd: number;
78
+ costByAuth: {
79
+ oauth: number;
80
+ api: number;
81
+ subscription: number;
82
+ };
83
+ notionalByAuth: {
84
+ oauth: number;
85
+ api: number;
86
+ subscription: number;
87
+ };
88
+ }>;
89
+ notes: {
90
+ oauthProviders: Array<string>;
91
+ subscriptionProviders: Array<string>;
92
+ missingPricing: Array<string>;
93
+ };
94
+ projects?: {
95
+ included: Array<{
96
+ id: string;
97
+ name: string;
98
+ path: string;
99
+ lastSeenAt: number;
100
+ messages: number;
101
+ notionalCostUsd: number;
102
+ }>;
103
+ unavailable: Array<{
104
+ id: string;
105
+ name: string;
106
+ path: string;
107
+ reason: string;
108
+ }>;
109
+ };
340
110
  };
341
111
  export type GetRootData = {
342
112
  body?: never;
@@ -362,7 +132,7 @@ export type GetServerInfoResponses = {
362
132
  * Server runtime metadata
363
133
  */
364
134
  200: {
365
- [key: string]: unknown;
135
+ port: number | null;
366
136
  };
367
137
  };
368
138
  export type GetServerInfoResponse = GetServerInfoResponses[keyof GetServerInfoResponses];
@@ -381,7 +151,7 @@ export type ListSessionsData = {
381
151
  /**
382
152
  * Offset for pagination
383
153
  */
384
- offset?: number;
154
+ offset?: number | null;
385
155
  };
386
156
  url: '/v1/sessions';
387
157
  };
@@ -390,7 +160,48 @@ export type ListSessionsResponses = {
390
160
  * OK
391
161
  */
392
162
  200: {
393
- items: Array<Session>;
163
+ items: Array<{
164
+ id: string;
165
+ title: string | null;
166
+ agent: string;
167
+ provider: string;
168
+ model: string;
169
+ projectPath: string;
170
+ createdAt: number;
171
+ lastActiveAt: number | null;
172
+ lastViewedAt?: number | null;
173
+ pinnedAt?: number | null;
174
+ totalInputTokens: number | null;
175
+ totalOutputTokens: number | null;
176
+ totalCachedTokens?: number | null;
177
+ totalCacheCreationTokens?: number | null;
178
+ totalReasoningTokens?: number | null;
179
+ totalToolTimeMs: number | null;
180
+ currentContextTokens?: number | null;
181
+ contextSummary?: string | null;
182
+ lastCompactedAt?: number | null;
183
+ parentSessionId?: string | null;
184
+ branchPointMessageId?: string | null;
185
+ sessionType?: 'main' | 'branch' | 'handoff';
186
+ toolCounts?: {
187
+ [key: string]: number;
188
+ };
189
+ isRunning?: boolean;
190
+ fileStats?: {
191
+ changedFiles: number;
192
+ additions: number;
193
+ deletions: number;
194
+ operations: number;
195
+ };
196
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | string | null | number | null | string | null | string | null | 'main' | 'branch' | 'handoff' | {
197
+ [key: string]: number;
198
+ } | boolean | {
199
+ changedFiles: number;
200
+ additions: number;
201
+ deletions: number;
202
+ operations: number;
203
+ } | undefined;
204
+ }>;
394
205
  hasMore: boolean;
395
206
  nextOffset: number | null;
396
207
  };
@@ -400,7 +211,7 @@ export type CreateSessionData = {
400
211
  body?: {
401
212
  title?: string | null;
402
213
  agent?: string;
403
- provider?: Provider;
214
+ provider?: string;
404
215
  model?: string;
405
216
  };
406
217
  path?: never;
@@ -425,7 +236,48 @@ export type CreateSessionResponses = {
425
236
  /**
426
237
  * Created
427
238
  */
428
- 201: Session;
239
+ 201: {
240
+ id: string;
241
+ title: string | null;
242
+ agent: string;
243
+ provider: string;
244
+ model: string;
245
+ projectPath: string;
246
+ createdAt: number;
247
+ lastActiveAt: number | null;
248
+ lastViewedAt?: number | null;
249
+ pinnedAt?: number | null;
250
+ totalInputTokens: number | null;
251
+ totalOutputTokens: number | null;
252
+ totalCachedTokens?: number | null;
253
+ totalCacheCreationTokens?: number | null;
254
+ totalReasoningTokens?: number | null;
255
+ totalToolTimeMs: number | null;
256
+ currentContextTokens?: number | null;
257
+ contextSummary?: string | null;
258
+ lastCompactedAt?: number | null;
259
+ parentSessionId?: string | null;
260
+ branchPointMessageId?: string | null;
261
+ sessionType?: 'main' | 'branch' | 'handoff';
262
+ toolCounts?: {
263
+ [key: string]: number;
264
+ };
265
+ isRunning?: boolean;
266
+ fileStats?: {
267
+ changedFiles: number;
268
+ additions: number;
269
+ deletions: number;
270
+ operations: number;
271
+ };
272
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | string | null | number | null | string | null | string | null | 'main' | 'branch' | 'handoff' | {
273
+ [key: string]: number;
274
+ } | boolean | {
275
+ changedFiles: number;
276
+ additions: number;
277
+ deletions: number;
278
+ operations: number;
279
+ } | undefined;
280
+ };
429
281
  };
430
282
  export type CreateSessionResponse = CreateSessionResponses[keyof CreateSessionResponses];
431
283
  export type DeleteSessionData = {
@@ -485,15 +337,57 @@ export type GetSessionResponses = {
485
337
  /**
486
338
  * OK
487
339
  */
488
- 200: Session;
340
+ 200: {
341
+ id: string;
342
+ title: string | null;
343
+ agent: string;
344
+ provider: string;
345
+ model: string;
346
+ projectPath: string;
347
+ createdAt: number;
348
+ lastActiveAt: number | null;
349
+ lastViewedAt?: number | null;
350
+ pinnedAt?: number | null;
351
+ totalInputTokens: number | null;
352
+ totalOutputTokens: number | null;
353
+ totalCachedTokens?: number | null;
354
+ totalCacheCreationTokens?: number | null;
355
+ totalReasoningTokens?: number | null;
356
+ totalToolTimeMs: number | null;
357
+ currentContextTokens?: number | null;
358
+ contextSummary?: string | null;
359
+ lastCompactedAt?: number | null;
360
+ parentSessionId?: string | null;
361
+ branchPointMessageId?: string | null;
362
+ sessionType?: 'main' | 'branch' | 'handoff';
363
+ toolCounts?: {
364
+ [key: string]: number;
365
+ };
366
+ isRunning?: boolean;
367
+ fileStats?: {
368
+ changedFiles: number;
369
+ additions: number;
370
+ deletions: number;
371
+ operations: number;
372
+ };
373
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | string | null | number | null | string | null | string | null | 'main' | 'branch' | 'handoff' | {
374
+ [key: string]: number;
375
+ } | boolean | {
376
+ changedFiles: number;
377
+ additions: number;
378
+ deletions: number;
379
+ operations: number;
380
+ } | undefined;
381
+ };
489
382
  };
490
383
  export type GetSessionResponse = GetSessionResponses[keyof GetSessionResponses];
491
384
  export type UpdateSessionData = {
492
385
  body: {
493
386
  title?: string;
494
387
  agent?: string;
495
- provider?: Provider;
388
+ provider?: string;
496
389
  model?: string;
390
+ isPinned?: boolean;
497
391
  };
498
392
  path: {
499
393
  sessionId: string;
@@ -525,7 +419,48 @@ export type UpdateSessionResponses = {
525
419
  /**
526
420
  * OK
527
421
  */
528
- 200: Session;
422
+ 200: {
423
+ id: string;
424
+ title: string | null;
425
+ agent: string;
426
+ provider: string;
427
+ model: string;
428
+ projectPath: string;
429
+ createdAt: number;
430
+ lastActiveAt: number | null;
431
+ lastViewedAt?: number | null;
432
+ pinnedAt?: number | null;
433
+ totalInputTokens: number | null;
434
+ totalOutputTokens: number | null;
435
+ totalCachedTokens?: number | null;
436
+ totalCacheCreationTokens?: number | null;
437
+ totalReasoningTokens?: number | null;
438
+ totalToolTimeMs: number | null;
439
+ currentContextTokens?: number | null;
440
+ contextSummary?: string | null;
441
+ lastCompactedAt?: number | null;
442
+ parentSessionId?: string | null;
443
+ branchPointMessageId?: string | null;
444
+ sessionType?: 'main' | 'branch' | 'handoff';
445
+ toolCounts?: {
446
+ [key: string]: number;
447
+ };
448
+ isRunning?: boolean;
449
+ fileStats?: {
450
+ changedFiles: number;
451
+ additions: number;
452
+ deletions: number;
453
+ operations: number;
454
+ };
455
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | string | null | number | null | string | null | string | null | 'main' | 'branch' | 'handoff' | {
456
+ [key: string]: number;
457
+ } | boolean | {
458
+ changedFiles: number;
459
+ additions: number;
460
+ deletions: number;
461
+ operations: number;
462
+ } | undefined;
463
+ };
529
464
  };
530
465
  export type UpdateSessionResponse = UpdateSessionResponses[keyof UpdateSessionResponses];
531
466
  export type MarkSessionViewedData = {
@@ -551,15 +486,56 @@ export type MarkSessionViewedResponses = {
551
486
  /**
552
487
  * OK
553
488
  */
554
- 200: Session;
489
+ 200: {
490
+ id: string;
491
+ title: string | null;
492
+ agent: string;
493
+ provider: string;
494
+ model: string;
495
+ projectPath: string;
496
+ createdAt: number;
497
+ lastActiveAt: number | null;
498
+ lastViewedAt?: number | null;
499
+ pinnedAt?: number | null;
500
+ totalInputTokens: number | null;
501
+ totalOutputTokens: number | null;
502
+ totalCachedTokens?: number | null;
503
+ totalCacheCreationTokens?: number | null;
504
+ totalReasoningTokens?: number | null;
505
+ totalToolTimeMs: number | null;
506
+ currentContextTokens?: number | null;
507
+ contextSummary?: string | null;
508
+ lastCompactedAt?: number | null;
509
+ parentSessionId?: string | null;
510
+ branchPointMessageId?: string | null;
511
+ sessionType?: 'main' | 'branch' | 'handoff';
512
+ toolCounts?: {
513
+ [key: string]: number;
514
+ };
515
+ isRunning?: boolean;
516
+ fileStats?: {
517
+ changedFiles: number;
518
+ additions: number;
519
+ deletions: number;
520
+ operations: number;
521
+ };
522
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | string | null | number | null | string | null | string | null | 'main' | 'branch' | 'handoff' | {
523
+ [key: string]: number;
524
+ } | boolean | {
525
+ changedFiles: number;
526
+ additions: number;
527
+ deletions: number;
528
+ operations: number;
529
+ } | undefined;
530
+ };
555
531
  };
556
532
  export type MarkSessionViewedResponse = MarkSessionViewedResponses[keyof MarkSessionViewedResponses];
557
533
  export type AbortSessionData = {
558
- body?: never;
534
+ body?: {
535
+ messageId?: string;
536
+ clearQueue?: boolean;
537
+ };
559
538
  path: {
560
- /**
561
- * Session ID to abort
562
- */
563
539
  sessionId: string;
564
540
  };
565
541
  query?: never;
@@ -571,6 +547,8 @@ export type AbortSessionResponses = {
571
547
  */
572
548
  200: {
573
549
  success: boolean;
550
+ wasRunning?: boolean;
551
+ messageId?: string;
574
552
  };
575
553
  };
576
554
  export type AbortSessionResponse = AbortSessionResponses[keyof AbortSessionResponses];
@@ -589,10 +567,10 @@ export type GetSessionQueueResponses = {
589
567
  200: {
590
568
  currentMessageId: string | null;
591
569
  queuedMessages: Array<{
592
- assistantMessageId?: string;
593
- agent?: string;
594
- provider?: string;
595
- model?: string;
570
+ assistantMessageId: string;
571
+ agent: string;
572
+ provider: string;
573
+ model: string;
596
574
  }>;
597
575
  isRunning: boolean;
598
576
  };
@@ -614,6 +592,9 @@ export type SendQueuedMessageNowErrors = {
614
592
  404: {
615
593
  success: boolean;
616
594
  promoted: boolean;
595
+ wasQueued?: boolean;
596
+ wasRunning?: boolean;
597
+ preemptedMessageId?: string | null;
617
598
  };
618
599
  };
619
600
  export type SendQueuedMessageNowError = SendQueuedMessageNowErrors[keyof SendQueuedMessageNowErrors];
@@ -861,7 +842,32 @@ export type CreateSessionHandoffResponses = {
861
842
  * Created
862
843
  */
863
844
  201: {
864
- session: Session;
845
+ session: {
846
+ id: string;
847
+ title: string | null;
848
+ agent: string;
849
+ provider: string;
850
+ model: string;
851
+ projectPath: string;
852
+ createdAt: number;
853
+ lastActiveAt: number | null;
854
+ lastViewedAt?: number | null;
855
+ totalInputTokens: number | null;
856
+ totalOutputTokens: number | null;
857
+ totalCachedTokens?: number | null;
858
+ totalCacheCreationTokens?: number | null;
859
+ totalToolTimeMs: number | null;
860
+ currentContextTokens?: number | null;
861
+ toolCounts?: {
862
+ [key: string]: number;
863
+ };
864
+ parentSessionId?: string | null;
865
+ branchPointMessageId?: string | null;
866
+ sessionType?: 'main' | 'branch' | 'handoff';
867
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
868
+ [key: string]: number;
869
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
870
+ };
865
871
  sessionId: string;
866
872
  sourceSessionId: string;
867
873
  message: string;
@@ -890,7 +896,7 @@ export type RetryMessageErrors = {
890
896
  error: string;
891
897
  };
892
898
  /**
893
- * Bad Request
899
+ * Not Found
894
900
  */
895
901
  404: {
896
902
  error: string;
@@ -923,18 +929,21 @@ export type ResolveApprovalErrors = {
923
929
  * Bad Request
924
930
  */
925
931
  400: {
932
+ ok?: false;
926
933
  error: string;
927
934
  };
928
935
  /**
929
- * Bad Request
936
+ * Forbidden
930
937
  */
931
938
  403: {
939
+ ok?: false;
932
940
  error: string;
933
941
  };
934
942
  /**
935
- * Bad Request
943
+ * Not Found
936
944
  */
937
945
  404: {
946
+ ok?: false;
938
947
  error: string;
939
948
  };
940
949
  };
@@ -976,6 +985,84 @@ export type GetPendingApprovalsResponses = {
976
985
  };
977
986
  };
978
987
  export type GetPendingApprovalsResponse = GetPendingApprovalsResponses[keyof GetPendingApprovalsResponses];
988
+ export type ResolveSecureInputData = {
989
+ body: {
990
+ promptId: string;
991
+ value?: string;
992
+ cancelled?: boolean;
993
+ };
994
+ path: {
995
+ /**
996
+ * Session ID
997
+ */
998
+ id: string;
999
+ };
1000
+ query?: never;
1001
+ url: '/v1/sessions/{id}/secure-input';
1002
+ };
1003
+ export type ResolveSecureInputErrors = {
1004
+ /**
1005
+ * Bad Request
1006
+ */
1007
+ 400: {
1008
+ ok: false;
1009
+ error: string;
1010
+ };
1011
+ /**
1012
+ * Secure input does not belong to the session
1013
+ */
1014
+ 403: {
1015
+ ok: false;
1016
+ error: string;
1017
+ };
1018
+ /**
1019
+ * Pending secure input not found
1020
+ */
1021
+ 404: {
1022
+ ok: false;
1023
+ error: string;
1024
+ };
1025
+ };
1026
+ export type ResolveSecureInputError = ResolveSecureInputErrors[keyof ResolveSecureInputErrors];
1027
+ export type ResolveSecureInputResponses = {
1028
+ /**
1029
+ * Secure input resolved
1030
+ */
1031
+ 200: {
1032
+ ok: true;
1033
+ promptId: string;
1034
+ cancelled: boolean;
1035
+ };
1036
+ };
1037
+ export type ResolveSecureInputResponse = ResolveSecureInputResponses[keyof ResolveSecureInputResponses];
1038
+ export type ListPendingSecureInputsData = {
1039
+ body?: never;
1040
+ path: {
1041
+ /**
1042
+ * Session ID
1043
+ */
1044
+ id: string;
1045
+ };
1046
+ query?: never;
1047
+ url: '/v1/sessions/{id}/secure-input/pending';
1048
+ };
1049
+ export type ListPendingSecureInputsResponses = {
1050
+ /**
1051
+ * Pending secure input prompts
1052
+ */
1053
+ 200: {
1054
+ ok: true;
1055
+ pending: Array<{
1056
+ promptId: string;
1057
+ messageId: string;
1058
+ callId: string;
1059
+ prompt: string;
1060
+ inputKind: 'password';
1061
+ createdAt: number;
1062
+ }>;
1063
+ };
1064
+ };
1065
+ export type ListPendingSecureInputsResponse = ListPendingSecureInputsResponses[keyof ListPendingSecureInputsResponses];
979
1066
  export type ListMessagesData = {
980
1067
  body?: never;
981
1068
  path: {
@@ -990,6 +1077,7 @@ export type ListMessagesData = {
990
1077
  * Exclude parts from the response. By default, parts are included.
991
1078
  */
992
1079
  without?: 'parts';
1080
+ parsed?: string;
993
1081
  };
994
1082
  url: '/v1/sessions/{id}/messages';
995
1083
  };
@@ -997,8 +1085,73 @@ export type ListMessagesResponses = {
997
1085
  /**
998
1086
  * OK
999
1087
  */
1000
- 200: Array<Message & {
1001
- parts?: Array<MessagePart>;
1088
+ 200: Array<{
1089
+ id: string;
1090
+ sessionId: string;
1091
+ role: string;
1092
+ status: string;
1093
+ agent: string;
1094
+ provider: string;
1095
+ model: string;
1096
+ createdAt: number;
1097
+ completedAt?: number | null;
1098
+ latencyMs?: number | null;
1099
+ inputTokens?: number | null;
1100
+ outputTokens?: number | null;
1101
+ totalTokens?: number | null;
1102
+ cachedInputTokens?: number | null;
1103
+ cacheCreationInputTokens?: number | null;
1104
+ reasoningTokens?: number | null;
1105
+ error?: string | null;
1106
+ errorType?: string | null;
1107
+ errorDetails?: string | null;
1108
+ isAborted?: boolean | null;
1109
+ parts?: Array<{
1110
+ id: string;
1111
+ messageId: string;
1112
+ index: number;
1113
+ stepIndex?: number | null;
1114
+ type: string;
1115
+ content: string | {
1116
+ [key: string]: unknown;
1117
+ };
1118
+ contentJson?: unknown;
1119
+ agent: string;
1120
+ provider: string;
1121
+ model: string;
1122
+ startedAt?: number | null;
1123
+ completedAt?: number | null;
1124
+ compactedAt?: number | null;
1125
+ toolName?: string | null;
1126
+ toolCallId?: string | null;
1127
+ toolDurationMs?: number | null;
1128
+ [key: string]: unknown | string | number | number | null | string | {
1129
+ [key: string]: unknown;
1130
+ } | number | null | number | null | number | null | string | null | string | null | number | null | undefined;
1131
+ }>;
1132
+ [key: string]: unknown | string | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | string | null | string | null | string | null | boolean | null | Array<{
1133
+ id: string;
1134
+ messageId: string;
1135
+ index: number;
1136
+ stepIndex?: number | null;
1137
+ type: string;
1138
+ content: string | {
1139
+ [key: string]: unknown;
1140
+ };
1141
+ contentJson?: unknown;
1142
+ agent: string;
1143
+ provider: string;
1144
+ model: string;
1145
+ startedAt?: number | null;
1146
+ completedAt?: number | null;
1147
+ compactedAt?: number | null;
1148
+ toolName?: string | null;
1149
+ toolCallId?: string | null;
1150
+ toolDurationMs?: number | null;
1151
+ [key: string]: unknown | string | number | number | null | string | {
1152
+ [key: string]: unknown;
1153
+ } | number | null | number | null | number | null | string | null | string | null | number | null | undefined;
1154
+ }> | undefined;
1002
1155
  }>;
1003
1156
  };
1004
1157
  export type ListMessagesResponse = ListMessagesResponses[keyof ListMessagesResponses];
@@ -1009,7 +1162,7 @@ export type CreateMessageData = {
1009
1162
  * Agent name. Defaults to config if omitted.
1010
1163
  */
1011
1164
  agent?: string;
1012
- provider?: Provider;
1165
+ provider?: string;
1013
1166
  model?: string;
1014
1167
  /**
1015
1168
  * Optional user-provided context to include in the system prompt.
@@ -1023,6 +1176,9 @@ export type CreateMessageData = {
1023
1176
  * Reasoning intensity level for providers/models that support it.
1024
1177
  */
1025
1178
  reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
1179
+ images?: Array<unknown>;
1180
+ files?: Array<unknown>;
1181
+ oneShot?: boolean;
1026
1182
  };
1027
1183
  path: {
1028
1184
  id: string;
@@ -1088,7 +1244,7 @@ export type SubscribeSessionStreamPostData = {
1088
1244
  };
1089
1245
  export type SubscribeSessionStreamPostResponses = {
1090
1246
  /**
1091
- * text/event-stream
1247
+ * SSE event stream. Events include session.created, message.created, message.part.delta, tool.call, tool.delta, tool.result, message.completed, error.
1092
1248
  */
1093
1249
  200: string;
1094
1250
  };
@@ -1139,7 +1295,10 @@ export type AskData = {
1139
1295
  * Optional agent name to use for this request.
1140
1296
  */
1141
1297
  agent?: string;
1142
- provider?: Provider;
1298
+ /**
1299
+ * Optional provider override. When omitted the agent and config defaults apply.
1300
+ */
1301
+ provider?: string;
1143
1302
  /**
1144
1303
  * Optional model override for the selected provider.
1145
1304
  */
@@ -1187,9 +1346,25 @@ export type AskResponses = {
1187
1346
  /**
1188
1347
  * Accepted
1189
1348
  */
1190
- 202: AskResponse;
1349
+ 202: {
1350
+ sessionId: string;
1351
+ header: {
1352
+ sessionId: string;
1353
+ agent?: string | null;
1354
+ provider?: string | null;
1355
+ model?: string | null;
1356
+ };
1357
+ provider: string;
1358
+ model: string;
1359
+ agent: string;
1360
+ assistantMessageId: string;
1361
+ message?: {
1362
+ kind: 'created' | 'last';
1363
+ sessionId: string;
1364
+ } | null;
1365
+ };
1191
1366
  };
1192
- export type AskResponse2 = AskResponses[keyof AskResponses];
1367
+ export type AskResponse = AskResponses[keyof AskResponses];
1193
1368
  export type GetCwdData = {
1194
1369
  body?: never;
1195
1370
  path?: never;
@@ -1221,7 +1396,43 @@ export type GetConfigResponses = {
1221
1396
  /**
1222
1397
  * OK
1223
1398
  */
1224
- 200: Config;
1399
+ 200: {
1400
+ agents: Array<string>;
1401
+ providers: Array<string>;
1402
+ providerDetails: Array<{
1403
+ id: string;
1404
+ label: string;
1405
+ source: 'built-in' | 'custom';
1406
+ enabled: boolean;
1407
+ authorized: boolean;
1408
+ custom?: boolean;
1409
+ compatibility?: string | null;
1410
+ family?: string | null;
1411
+ baseURL?: string | null;
1412
+ apiKeyEnv?: string | null;
1413
+ hasApiKey?: boolean;
1414
+ allowAnyModel?: boolean;
1415
+ modelCount?: number;
1416
+ authType?: string | null;
1417
+ }>;
1418
+ defaults: {
1419
+ agent: string;
1420
+ provider: string;
1421
+ model: string;
1422
+ toolApproval?: 'auto' | 'dangerous' | 'all' | 'yolo';
1423
+ guidedMode?: boolean;
1424
+ reasoningText?: boolean;
1425
+ reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
1426
+ theme?: 'light' | 'dark';
1427
+ vimMode?: boolean;
1428
+ compactThread?: boolean;
1429
+ fontFamily?: string;
1430
+ smartEdges?: boolean;
1431
+ releaseToSend?: boolean;
1432
+ fullWidthContent?: boolean;
1433
+ autoCompactThresholdTokens?: number | null;
1434
+ };
1435
+ };
1225
1436
  };
1226
1437
  export type GetConfigResponse = GetConfigResponses[keyof GetConfigResponses];
1227
1438
  export type GetAgentsData = {
@@ -1261,9 +1472,24 @@ export type GetProvidersResponses = {
1261
1472
  * OK
1262
1473
  */
1263
1474
  200: {
1264
- providers: Array<Provider>;
1265
- details: Array<ProviderDetail>;
1266
- default: Provider;
1475
+ providers: Array<string>;
1476
+ details: Array<{
1477
+ id: string;
1478
+ label: string;
1479
+ source: 'built-in' | 'custom';
1480
+ enabled: boolean;
1481
+ authorized: boolean;
1482
+ custom?: boolean;
1483
+ compatibility?: string | null;
1484
+ family?: string | null;
1485
+ baseURL?: string | null;
1486
+ apiKeyEnv?: string | null;
1487
+ hasApiKey?: boolean;
1488
+ allowAnyModel?: boolean;
1489
+ modelCount?: number;
1490
+ authType?: string | null;
1491
+ }>;
1492
+ default: string;
1267
1493
  };
1268
1494
  };
1269
1495
  export type GetProvidersResponse = GetProvidersResponses[keyof GetProvidersResponses];
@@ -1290,8 +1516,11 @@ export type DiscoverProviderModelsErrors = {
1290
1516
  /**
1291
1517
  * Invalid discovery request
1292
1518
  */
1293
- 400: unknown;
1519
+ 400: {
1520
+ error?: string;
1521
+ };
1294
1522
  };
1523
+ export type DiscoverProviderModelsError = DiscoverProviderModelsErrors[keyof DiscoverProviderModelsErrors];
1295
1524
  export type DiscoverProviderModelsResponses = {
1296
1525
  /**
1297
1526
  * Discovered provider models
@@ -1316,7 +1545,7 @@ export type DiscoverProviderModelsResponse = DiscoverProviderModelsResponses[key
1316
1545
  export type DeleteProviderSettingsData = {
1317
1546
  body?: never;
1318
1547
  path: {
1319
- provider: Provider;
1548
+ provider: string;
1320
1549
  };
1321
1550
  query?: {
1322
1551
  /**
@@ -1332,8 +1561,23 @@ export type DeleteProviderSettingsResponses = {
1332
1561
  */
1333
1562
  200: {
1334
1563
  success: boolean;
1335
- provider: Provider;
1336
- details: Array<ProviderDetail>;
1564
+ provider: string;
1565
+ details: Array<{
1566
+ id: string;
1567
+ label: string;
1568
+ source: 'built-in' | 'custom';
1569
+ enabled: boolean;
1570
+ authorized: boolean;
1571
+ custom?: boolean;
1572
+ compatibility?: string | null;
1573
+ family?: string | null;
1574
+ baseURL?: string | null;
1575
+ apiKeyEnv?: string | null;
1576
+ hasApiKey?: boolean;
1577
+ allowAnyModel?: boolean;
1578
+ modelCount?: number;
1579
+ authType?: string | null;
1580
+ }>;
1337
1581
  };
1338
1582
  };
1339
1583
  export type DeleteProviderSettingsResponse = DeleteProviderSettingsResponses[keyof DeleteProviderSettingsResponses];
@@ -1351,7 +1595,7 @@ export type UpdateProviderSettingsData = {
1351
1595
  allowAnyModel?: boolean;
1352
1596
  };
1353
1597
  path: {
1354
- provider: Provider;
1598
+ provider: string;
1355
1599
  };
1356
1600
  query?: {
1357
1601
  /**
@@ -1367,15 +1611,30 @@ export type UpdateProviderSettingsResponses = {
1367
1611
  */
1368
1612
  200: {
1369
1613
  success: boolean;
1370
- provider: Provider;
1371
- details: Array<ProviderDetail>;
1614
+ provider: string;
1615
+ details: Array<{
1616
+ id: string;
1617
+ label: string;
1618
+ source: 'built-in' | 'custom';
1619
+ enabled: boolean;
1620
+ authorized: boolean;
1621
+ custom?: boolean;
1622
+ compatibility?: string | null;
1623
+ family?: string | null;
1624
+ baseURL?: string | null;
1625
+ apiKeyEnv?: string | null;
1626
+ hasApiKey?: boolean;
1627
+ allowAnyModel?: boolean;
1628
+ modelCount?: number;
1629
+ authType?: string | null;
1630
+ }>;
1372
1631
  };
1373
1632
  };
1374
1633
  export type UpdateProviderSettingsResponse = UpdateProviderSettingsResponses[keyof UpdateProviderSettingsResponses];
1375
1634
  export type GetProviderModelsData = {
1376
1635
  body?: never;
1377
1636
  path: {
1378
- provider: Provider;
1637
+ provider: string;
1379
1638
  };
1380
1639
  query?: {
1381
1640
  /**
@@ -1405,7 +1664,14 @@ export type GetProviderModelsResponses = {
1405
1664
  * OK
1406
1665
  */
1407
1666
  200: {
1408
- models: Array<Model>;
1667
+ models: Array<{
1668
+ id: string;
1669
+ label: string;
1670
+ toolCall?: boolean;
1671
+ reasoningText?: boolean;
1672
+ vision?: boolean;
1673
+ attachment?: boolean;
1674
+ }>;
1409
1675
  default?: string | null;
1410
1676
  allowAnyModel: boolean;
1411
1677
  label: string;
@@ -1448,6 +1714,10 @@ export type UpdateDefaultsData = {
1448
1714
  agent?: string;
1449
1715
  provider?: string;
1450
1716
  model?: string;
1717
+ toolApproval?: 'auto' | 'dangerous' | 'all' | 'yolo';
1718
+ guidedMode?: boolean;
1719
+ reasoningText?: boolean;
1720
+ reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
1451
1721
  theme?: 'light' | 'dark';
1452
1722
  vimMode?: boolean;
1453
1723
  compactThread?: boolean;
@@ -1456,8 +1726,6 @@ export type UpdateDefaultsData = {
1456
1726
  releaseToSend?: boolean;
1457
1727
  fullWidthContent?: boolean;
1458
1728
  autoCompactThresholdTokens?: number | null;
1459
- reasoningText?: boolean;
1460
- reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
1461
1729
  scope?: 'global' | 'local';
1462
1730
  };
1463
1731
  path?: never;
@@ -1479,6 +1747,10 @@ export type UpdateDefaultsResponses = {
1479
1747
  agent: string;
1480
1748
  provider: string;
1481
1749
  model: string;
1750
+ toolApproval?: 'auto' | 'dangerous' | 'all' | 'yolo';
1751
+ guidedMode?: boolean;
1752
+ reasoningText?: boolean;
1753
+ reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
1482
1754
  theme?: 'light' | 'dark';
1483
1755
  vimMode?: boolean;
1484
1756
  compactThread?: boolean;
@@ -1487,8 +1759,6 @@ export type UpdateDefaultsResponses = {
1487
1759
  releaseToSend?: boolean;
1488
1760
  fullWidthContent?: boolean;
1489
1761
  autoCompactThresholdTokens?: number | null;
1490
- reasoningText?: boolean;
1491
- reasoningLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
1492
1762
  };
1493
1763
  };
1494
1764
  };
@@ -1548,11 +1818,11 @@ export type ListFilesData = {
1548
1818
  /**
1549
1819
  * Maximum directory depth to traverse
1550
1820
  */
1551
- maxDepth?: number;
1821
+ maxDepth?: number | null;
1552
1822
  /**
1553
1823
  * Maximum number of files to return
1554
1824
  */
1555
- limit?: number;
1825
+ limit?: number | null;
1556
1826
  };
1557
1827
  url: '/v1/files';
1558
1828
  };
@@ -1562,12 +1832,9 @@ export type ListFilesResponses = {
1562
1832
  */
1563
1833
  200: {
1564
1834
  files: Array<string>;
1565
- /**
1566
- * List of files with uncommitted changes (from git status)
1567
- */
1568
1835
  changedFiles: Array<{
1569
1836
  path: string;
1570
- status: 'added' | 'modified' | 'deleted' | 'renamed' | 'untracked';
1837
+ status: string;
1571
1838
  }>;
1572
1839
  truncated: boolean;
1573
1840
  };
@@ -1588,11 +1855,11 @@ export type SearchFilesData = {
1588
1855
  /**
1589
1856
  * Maximum directory depth to traverse
1590
1857
  */
1591
- maxDepth?: number;
1858
+ maxDepth?: number | null;
1592
1859
  /**
1593
1860
  * Maximum number of files to return
1594
1861
  */
1595
- limit?: number;
1862
+ limit?: number | null;
1596
1863
  };
1597
1864
  url: '/v1/files/search';
1598
1865
  };
@@ -1688,7 +1955,7 @@ export type GetFileRawData = {
1688
1955
  */
1689
1956
  project?: string;
1690
1957
  /**
1691
- * Absolute file path or path relative to project root.
1958
+ * Absolute file path or path relative to project root
1692
1959
  */
1693
1960
  path: string;
1694
1961
  };
@@ -1747,7 +2014,76 @@ export type GetGitStatusResponses = {
1747
2014
  */
1748
2015
  200: {
1749
2016
  status: 'ok';
1750
- data: GitStatus;
2017
+ data: {
2018
+ branch: string | null;
2019
+ headSha: string | null;
2020
+ shortHeadSha: string | null;
2021
+ isDetached: boolean;
2022
+ operation: {
2023
+ type: string;
2024
+ label: string;
2025
+ current?: number;
2026
+ total?: number;
2027
+ headName?: string;
2028
+ onto?: string;
2029
+ } | null;
2030
+ ahead: number;
2031
+ behind: number;
2032
+ hasUpstream: boolean;
2033
+ remotes: Array<string>;
2034
+ gitRoot: string;
2035
+ workingDir: string;
2036
+ staged: Array<{
2037
+ path: string;
2038
+ absPath: string;
2039
+ status: 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted';
2040
+ staged: boolean;
2041
+ insertions?: number;
2042
+ deletions?: number;
2043
+ oldPath?: string;
2044
+ isNew: boolean;
2045
+ conflictType?: 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted';
2046
+ [key: string]: unknown | string | 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted' | boolean | number | 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted' | undefined;
2047
+ }>;
2048
+ unstaged: Array<{
2049
+ path: string;
2050
+ absPath: string;
2051
+ status: 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted';
2052
+ staged: boolean;
2053
+ insertions?: number;
2054
+ deletions?: number;
2055
+ oldPath?: string;
2056
+ isNew: boolean;
2057
+ conflictType?: 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted';
2058
+ [key: string]: unknown | string | 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted' | boolean | number | 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted' | undefined;
2059
+ }>;
2060
+ untracked: Array<{
2061
+ path: string;
2062
+ absPath: string;
2063
+ status: 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted';
2064
+ staged: boolean;
2065
+ insertions?: number;
2066
+ deletions?: number;
2067
+ oldPath?: string;
2068
+ isNew: boolean;
2069
+ conflictType?: 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted';
2070
+ [key: string]: unknown | string | 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted' | boolean | number | 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted' | undefined;
2071
+ }>;
2072
+ conflicted: Array<{
2073
+ path: string;
2074
+ absPath: string;
2075
+ status: 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted';
2076
+ staged: boolean;
2077
+ insertions?: number;
2078
+ deletions?: number;
2079
+ oldPath?: string;
2080
+ isNew: boolean;
2081
+ conflictType?: 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted';
2082
+ [key: string]: unknown | string | 'modified' | 'added' | 'deleted' | 'renamed' | 'untracked' | 'conflicted' | boolean | number | 'both-modified' | 'deleted-by-us' | 'deleted-by-them' | 'both-added' | 'both-deleted' | undefined;
2083
+ }>;
2084
+ hasChanges: boolean;
2085
+ hasConflicts: boolean;
2086
+ };
1751
2087
  };
1752
2088
  };
1753
2089
  export type GetGitStatusResponse = GetGitStatusResponses[keyof GetGitStatusResponses];
@@ -1787,7 +2123,12 @@ export type GetGitBranchResponses = {
1787
2123
  */
1788
2124
  200: {
1789
2125
  status: 'ok';
1790
- data: GitBranch;
2126
+ data: {
2127
+ branch: string | null;
2128
+ ahead: number;
2129
+ behind: number;
2130
+ remotes: Array<string>;
2131
+ };
1791
2132
  };
1792
2133
  };
1793
2134
  export type GetGitBranchResponse = GetGitBranchResponses[keyof GetGitBranchResponses];
@@ -1974,7 +2315,19 @@ export type GetGitDiffResponses = {
1974
2315
  */
1975
2316
  200: {
1976
2317
  status: 'ok';
1977
- data: GitDiff;
2318
+ data: {
2319
+ file: string;
2320
+ absPath: string;
2321
+ diff: string;
2322
+ content?: string;
2323
+ fullFile?: boolean;
2324
+ isNewFile: boolean;
2325
+ isBinary: boolean;
2326
+ insertions: number;
2327
+ deletions: number;
2328
+ language: string;
2329
+ staged: boolean;
2330
+ };
1978
2331
  };
1979
2332
  };
1980
2333
  export type GetGitDiffResponse = GetGitDiffResponses[keyof GetGitDiffResponses];
@@ -2006,7 +2359,7 @@ export type StageFilesResponses = {
2006
2359
  status: 'ok';
2007
2360
  data: {
2008
2361
  staged: Array<string>;
2009
- failed: Array<string>;
2362
+ failed?: Array<string>;
2010
2363
  };
2011
2364
  };
2012
2365
  };
@@ -2039,7 +2392,7 @@ export type UnstageFilesResponses = {
2039
2392
  status: 'ok';
2040
2393
  data: {
2041
2394
  unstaged: Array<string>;
2042
- failed: Array<string>;
2395
+ failed?: Array<string>;
2043
2396
  };
2044
2397
  };
2045
2398
  };
@@ -2072,6 +2425,7 @@ export type RestoreFilesResponses = {
2072
2425
  status: 'ok';
2073
2426
  data: {
2074
2427
  restored: Array<string>;
2428
+ failed?: Array<string>;
2075
2429
  };
2076
2430
  };
2077
2431
  };
@@ -2104,6 +2458,7 @@ export type DeleteFilesResponses = {
2104
2458
  status: 'ok';
2105
2459
  data: {
2106
2460
  deleted: Array<string>;
2461
+ failed?: Array<string>;
2107
2462
  };
2108
2463
  };
2109
2464
  };
@@ -2142,7 +2497,9 @@ export type CommitChangesResponses = {
2142
2497
  */
2143
2498
  200: {
2144
2499
  status: 'ok';
2145
- data: GitCommit;
2500
+ data: {
2501
+ message: string;
2502
+ };
2146
2503
  };
2147
2504
  };
2148
2505
  export type CommitChangesResponse = CommitChangesResponses[keyof CommitChangesResponses];
@@ -2205,6 +2562,7 @@ export type PushCommitsErrors = {
2205
2562
  status: 'error';
2206
2563
  error: string;
2207
2564
  code?: string;
2565
+ details?: string;
2208
2566
  };
2209
2567
  /**
2210
2568
  * Error
@@ -2213,6 +2571,7 @@ export type PushCommitsErrors = {
2213
2571
  status: 'error';
2214
2572
  error: string;
2215
2573
  code?: string;
2574
+ details?: string;
2216
2575
  };
2217
2576
  };
2218
2577
  export type PushCommitsError = PushCommitsErrors[keyof PushCommitsErrors];
@@ -2244,6 +2603,7 @@ export type PullChangesErrors = {
2244
2603
  status: 'error';
2245
2604
  error: string;
2246
2605
  code?: string;
2606
+ details?: string;
2247
2607
  };
2248
2608
  /**
2249
2609
  * Error
@@ -2252,6 +2612,7 @@ export type PullChangesErrors = {
2252
2612
  status: 'error';
2253
2613
  error: string;
2254
2614
  code?: string;
2615
+ details?: string;
2255
2616
  };
2256
2617
  };
2257
2618
  export type PullChangesError = PullChangesErrors[keyof PullChangesErrors];
@@ -2479,8 +2840,21 @@ export type GetTerminalsResponses = {
2479
2840
  * List of terminals
2480
2841
  */
2481
2842
  200: {
2482
- terminals?: Array<Terminal>;
2483
- count?: number;
2843
+ terminals: Array<{
2844
+ id: string;
2845
+ pid: number;
2846
+ command: string;
2847
+ args: Array<string>;
2848
+ cwd: string;
2849
+ purpose: string;
2850
+ createdBy: 'user' | 'llm';
2851
+ title: string;
2852
+ status: 'running' | 'exited';
2853
+ exitCode?: number;
2854
+ createdAt: string;
2855
+ uptime: number;
2856
+ }>;
2857
+ count: number;
2484
2858
  };
2485
2859
  };
2486
2860
  export type GetTerminalsResponse = GetTerminalsResponses[keyof GetTerminalsResponses];
@@ -2516,10 +2890,10 @@ export type PostTerminalsResponses = {
2516
2890
  * Terminal created
2517
2891
  */
2518
2892
  200: {
2519
- terminalId?: string;
2520
- pid?: number;
2521
- purpose?: string;
2522
- command?: string;
2893
+ terminalId: string;
2894
+ pid: number;
2895
+ purpose: string;
2896
+ command: string;
2523
2897
  };
2524
2898
  };
2525
2899
  export type PostTerminalsResponse = PostTerminalsResponses[keyof PostTerminalsResponses];
@@ -2536,7 +2910,7 @@ export type DeleteTerminalsByIdResponses = {
2536
2910
  * Terminal killed
2537
2911
  */
2538
2912
  200: {
2539
- success?: boolean;
2913
+ success: boolean;
2540
2914
  };
2541
2915
  };
2542
2916
  export type DeleteTerminalsByIdResponse = DeleteTerminalsByIdResponses[keyof DeleteTerminalsByIdResponses];
@@ -2559,7 +2933,20 @@ export type GetTerminalsByIdResponses = {
2559
2933
  * Terminal details
2560
2934
  */
2561
2935
  200: {
2562
- terminal?: Terminal;
2936
+ terminal: {
2937
+ id: string;
2938
+ pid: number;
2939
+ command: string;
2940
+ args: Array<string>;
2941
+ cwd: string;
2942
+ purpose: string;
2943
+ createdBy: 'user' | 'llm';
2944
+ title: string;
2945
+ status: 'running' | 'exited';
2946
+ exitCode?: number;
2947
+ createdAt: string;
2948
+ uptime: number;
2949
+ };
2563
2950
  };
2564
2951
  };
2565
2952
  export type GetTerminalsByIdResponse = GetTerminalsByIdResponses[keyof GetTerminalsByIdResponses];
@@ -2625,7 +3012,7 @@ export type PostTerminalsByIdInputResponses = {
2625
3012
  * Input sent
2626
3013
  */
2627
3014
  200: {
2628
- success?: boolean;
3015
+ success: boolean;
2629
3016
  };
2630
3017
  };
2631
3018
  export type PostTerminalsByIdInputResponse = PostTerminalsByIdInputResponses[keyof PostTerminalsByIdInputResponses];
@@ -2688,16 +3075,26 @@ export type GetSessionFilesResponses = {
2688
3075
  200: {
2689
3076
  files: Array<{
2690
3077
  path: string;
2691
- operationCount: number;
2692
- firstModified: number;
2693
- lastModified: number;
2694
3078
  operations: Array<{
2695
3079
  path: string;
2696
3080
  operation: 'write' | 'patch' | 'create';
2697
3081
  timestamp: number;
2698
3082
  toolCallId: string;
2699
3083
  toolName: string;
3084
+ patch?: string;
3085
+ content?: string;
3086
+ artifact?: {
3087
+ kind: string;
3088
+ patch?: string;
3089
+ summary?: {
3090
+ additions: number;
3091
+ deletions: number;
3092
+ };
3093
+ };
2700
3094
  }>;
3095
+ operationCount: number;
3096
+ firstModified: number;
3097
+ lastModified: number;
2701
3098
  }>;
2702
3099
  totalFiles: number;
2703
3100
  totalOperations: number;
@@ -2736,7 +3133,32 @@ export type CreateBranchResponses = {
2736
3133
  /**
2737
3134
  * Created
2738
3135
  */
2739
- 201: Session;
3136
+ 201: {
3137
+ id: string;
3138
+ title: string | null;
3139
+ agent: string;
3140
+ provider: string;
3141
+ model: string;
3142
+ projectPath: string;
3143
+ createdAt: number;
3144
+ lastActiveAt: number | null;
3145
+ lastViewedAt?: number | null;
3146
+ totalInputTokens: number | null;
3147
+ totalOutputTokens: number | null;
3148
+ totalCachedTokens?: number | null;
3149
+ totalCacheCreationTokens?: number | null;
3150
+ totalToolTimeMs: number | null;
3151
+ currentContextTokens?: number | null;
3152
+ toolCounts?: {
3153
+ [key: string]: number;
3154
+ };
3155
+ parentSessionId?: string | null;
3156
+ branchPointMessageId?: string | null;
3157
+ sessionType?: 'main' | 'branch' | 'handoff';
3158
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
3159
+ [key: string]: number;
3160
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
3161
+ };
2740
3162
  };
2741
3163
  export type CreateBranchResponse = CreateBranchResponses[keyof CreateBranchResponses];
2742
3164
  export type ListBranchesData = {
@@ -2757,7 +3179,32 @@ export type ListBranchesResponses = {
2757
3179
  * OK
2758
3180
  */
2759
3181
  200: {
2760
- branches: Array<Session>;
3182
+ branches: Array<{
3183
+ id: string;
3184
+ title: string | null;
3185
+ agent: string;
3186
+ provider: string;
3187
+ model: string;
3188
+ projectPath: string;
3189
+ createdAt: number;
3190
+ lastActiveAt: number | null;
3191
+ lastViewedAt?: number | null;
3192
+ totalInputTokens: number | null;
3193
+ totalOutputTokens: number | null;
3194
+ totalCachedTokens?: number | null;
3195
+ totalCacheCreationTokens?: number | null;
3196
+ totalToolTimeMs: number | null;
3197
+ currentContextTokens?: number | null;
3198
+ toolCounts?: {
3199
+ [key: string]: number;
3200
+ };
3201
+ parentSessionId?: string | null;
3202
+ branchPointMessageId?: string | null;
3203
+ sessionType?: 'main' | 'branch' | 'handoff';
3204
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
3205
+ [key: string]: number;
3206
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
3207
+ }>;
2761
3208
  };
2762
3209
  };
2763
3210
  export type ListBranchesResponse = ListBranchesResponses[keyof ListBranchesResponses];
@@ -2779,7 +3226,32 @@ export type GetParentSessionResponses = {
2779
3226
  * OK
2780
3227
  */
2781
3228
  200: {
2782
- parent: Session | null;
3229
+ parent: {
3230
+ id: string;
3231
+ title: string | null;
3232
+ agent: string;
3233
+ provider: string;
3234
+ model: string;
3235
+ projectPath: string;
3236
+ createdAt: number;
3237
+ lastActiveAt: number | null;
3238
+ lastViewedAt?: number | null;
3239
+ totalInputTokens: number | null;
3240
+ totalOutputTokens: number | null;
3241
+ totalCachedTokens?: number | null;
3242
+ totalCacheCreationTokens?: number | null;
3243
+ totalToolTimeMs: number | null;
3244
+ currentContextTokens?: number | null;
3245
+ toolCounts?: {
3246
+ [key: string]: number;
3247
+ };
3248
+ parentSessionId?: string | null;
3249
+ branchPointMessageId?: string | null;
3250
+ sessionType?: 'main' | 'branch' | 'handoff';
3251
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
3252
+ [key: string]: number;
3253
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
3254
+ } | null;
2783
3255
  };
2784
3256
  };
2785
3257
  export type GetParentSessionResponse = GetParentSessionResponses[keyof GetParentSessionResponses];
@@ -2810,7 +3282,32 @@ export type ListResearchSessionsResponses = {
2810
3282
  * OK
2811
3283
  */
2812
3284
  200: {
2813
- sessions: Array<Session>;
3285
+ sessions: Array<{
3286
+ id: string;
3287
+ title: string | null;
3288
+ agent: string;
3289
+ provider: string;
3290
+ model: string;
3291
+ projectPath: string;
3292
+ createdAt: number;
3293
+ lastActiveAt: number | null;
3294
+ lastViewedAt?: number | null;
3295
+ totalInputTokens: number | null;
3296
+ totalOutputTokens: number | null;
3297
+ totalCachedTokens?: number | null;
3298
+ totalCacheCreationTokens?: number | null;
3299
+ totalToolTimeMs: number | null;
3300
+ currentContextTokens?: number | null;
3301
+ toolCounts?: {
3302
+ [key: string]: number;
3303
+ };
3304
+ parentSessionId?: string | null;
3305
+ branchPointMessageId?: string | null;
3306
+ sessionType?: 'main' | 'branch' | 'handoff';
3307
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
3308
+ [key: string]: number;
3309
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
3310
+ }>;
2814
3311
  };
2815
3312
  };
2816
3313
  export type ListResearchSessionsResponse = ListResearchSessionsResponses[keyof ListResearchSessionsResponses];
@@ -2845,7 +3342,32 @@ export type CreateResearchSessionResponses = {
2845
3342
  * Created
2846
3343
  */
2847
3344
  201: {
2848
- session: Session;
3345
+ session: {
3346
+ id: string;
3347
+ title: string | null;
3348
+ agent: string;
3349
+ provider: string;
3350
+ model: string;
3351
+ projectPath: string;
3352
+ createdAt: number;
3353
+ lastActiveAt: number | null;
3354
+ lastViewedAt?: number | null;
3355
+ totalInputTokens: number | null;
3356
+ totalOutputTokens: number | null;
3357
+ totalCachedTokens?: number | null;
3358
+ totalCacheCreationTokens?: number | null;
3359
+ totalToolTimeMs: number | null;
3360
+ currentContextTokens?: number | null;
3361
+ toolCounts?: {
3362
+ [key: string]: number;
3363
+ };
3364
+ parentSessionId?: string | null;
3365
+ branchPointMessageId?: string | null;
3366
+ sessionType?: 'main' | 'branch' | 'handoff';
3367
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
3368
+ [key: string]: number;
3369
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
3370
+ };
2849
3371
  parentSessionId: string;
2850
3372
  };
2851
3373
  };
@@ -2962,7 +3484,32 @@ export type ExportResearchSessionResponses = {
2962
3484
  * Created
2963
3485
  */
2964
3486
  201: {
2965
- newSession: Session;
3487
+ newSession: {
3488
+ id: string;
3489
+ title: string | null;
3490
+ agent: string;
3491
+ provider: string;
3492
+ model: string;
3493
+ projectPath: string;
3494
+ createdAt: number;
3495
+ lastActiveAt: number | null;
3496
+ lastViewedAt?: number | null;
3497
+ totalInputTokens: number | null;
3498
+ totalOutputTokens: number | null;
3499
+ totalCachedTokens?: number | null;
3500
+ totalCacheCreationTokens?: number | null;
3501
+ totalToolTimeMs: number | null;
3502
+ currentContextTokens?: number | null;
3503
+ toolCounts?: {
3504
+ [key: string]: number;
3505
+ };
3506
+ parentSessionId?: string | null;
3507
+ branchPointMessageId?: string | null;
3508
+ sessionType?: 'main' | 'branch' | 'handoff';
3509
+ [key: string]: unknown | string | string | null | number | number | null | number | null | number | null | number | null | number | null | number | null | number | null | number | null | {
3510
+ [key: string]: number;
3511
+ } | string | null | string | null | 'main' | 'branch' | 'handoff' | undefined;
3512
+ };
2966
3513
  injectedContext: string;
2967
3514
  };
2968
3515
  };
@@ -3085,11 +3632,11 @@ export type GetOttoRouterUsdcBalanceResponse = GetOttoRouterUsdcBalanceResponses
3085
3632
  export type GetPolarTopupEstimateData = {
3086
3633
  body?: never;
3087
3634
  path?: never;
3088
- query: {
3635
+ query?: {
3089
3636
  /**
3090
3637
  * Amount in USD
3091
3638
  */
3092
- amount: number;
3639
+ amount?: number | null;
3093
3640
  };
3094
3641
  url: '/v1/ottorouter/topup/polar/estimate';
3095
3642
  };
@@ -3159,11 +3706,11 @@ export type GetPolarTopupStatusResponse = GetPolarTopupStatusResponses[keyof Get
3159
3706
  export type GetRazorpayTopupEstimateData = {
3160
3707
  body?: never;
3161
3708
  path?: never;
3162
- query: {
3709
+ query?: {
3163
3710
  /**
3164
3711
  * Amount in USD
3165
3712
  */
3166
- amount: number;
3713
+ amount?: number | null;
3167
3714
  };
3168
3715
  url: '/v1/ottorouter/topup/razorpay/estimate';
3169
3716
  };
@@ -3265,7 +3812,7 @@ export type SelectTopupMethodResponses = {
3265
3812
  */
3266
3813
  200: {
3267
3814
  success: boolean;
3268
- method: string;
3815
+ method: 'crypto' | 'fiat';
3269
3816
  };
3270
3817
  };
3271
3818
  export type SelectTopupMethodResponse = SelectTopupMethodResponses[keyof SelectTopupMethodResponses];
@@ -3342,17 +3889,16 @@ export type GetAuthStatusResponses = {
3342
3889
  supportsOAuth: boolean;
3343
3890
  supportsToken?: boolean;
3344
3891
  supportsGhImport?: boolean;
3892
+ custom?: boolean;
3345
3893
  modelCount: number;
3346
3894
  costRange?: {
3347
3895
  min: number;
3348
3896
  max: number;
3349
- } | null;
3897
+ };
3350
3898
  };
3351
3899
  };
3352
3900
  defaults?: {
3353
- agent?: string;
3354
- provider?: string;
3355
- model?: string;
3901
+ [key: string]: unknown;
3356
3902
  };
3357
3903
  };
3358
3904
  };
@@ -3409,7 +3955,7 @@ export type ExportOttoRouterWalletData = {
3409
3955
  };
3410
3956
  export type ExportOttoRouterWalletErrors = {
3411
3957
  /**
3412
- * Bad Request
3958
+ * Not Found
3413
3959
  */
3414
3960
  404: {
3415
3961
  error: string;
@@ -3724,7 +4270,7 @@ export type SaveCopilotTokenResponses = {
3724
4270
  200: {
3725
4271
  success: boolean;
3726
4272
  provider: string;
3727
- source: 'token';
4273
+ source: 'token' | 'gh';
3728
4274
  modelCount: number;
3729
4275
  hasGpt52Codex: boolean;
3730
4276
  sampleModels: Array<string>;
@@ -3753,7 +4299,7 @@ export type ImportCopilotTokenFromGhResponses = {
3753
4299
  200: {
3754
4300
  success: boolean;
3755
4301
  provider: string;
3756
- source: 'gh';
4302
+ source: 'token' | 'gh';
3757
4303
  modelCount: number;
3758
4304
  hasGpt52Codex: boolean;
3759
4305
  sampleModels: Array<string>;
@@ -3821,8 +4367,8 @@ export type GetTunnelStatusResponses = {
3821
4367
  */
3822
4368
  200: {
3823
4369
  status: 'idle' | 'starting' | 'connected' | 'error';
3824
- url?: string | null;
3825
- error?: string | null;
4370
+ url: string | null;
4371
+ error: string | null;
3826
4372
  binaryInstalled: boolean;
3827
4373
  isRunning: boolean;
3828
4374
  };
@@ -3836,13 +4382,25 @@ export type StartTunnelData = {
3836
4382
  query?: never;
3837
4383
  url: '/v1/tunnel/start';
3838
4384
  };
4385
+ export type StartTunnelErrors = {
4386
+ /**
4387
+ * Tunnel failed to start
4388
+ */
4389
+ 500: {
4390
+ ok: boolean;
4391
+ url?: string | null;
4392
+ message?: string;
4393
+ error?: string;
4394
+ };
4395
+ };
4396
+ export type StartTunnelError = StartTunnelErrors[keyof StartTunnelErrors];
3839
4397
  export type StartTunnelResponses = {
3840
4398
  /**
3841
4399
  * OK
3842
4400
  */
3843
4401
  200: {
3844
4402
  ok: boolean;
3845
- url?: string;
4403
+ url?: string | null;
3846
4404
  message?: string;
3847
4405
  error?: string;
3848
4406
  };
@@ -3861,6 +4419,7 @@ export type RegisterTunnelErrors = {
3861
4419
  * Bad Request
3862
4420
  */
3863
4421
  400: {
4422
+ ok?: false;
3864
4423
  error: string;
3865
4424
  };
3866
4425
  };
@@ -3871,8 +4430,9 @@ export type RegisterTunnelResponses = {
3871
4430
  */
3872
4431
  200: {
3873
4432
  ok: boolean;
3874
- url?: string;
4433
+ url?: string | null;
3875
4434
  message?: string;
4435
+ error?: string;
3876
4436
  };
3877
4437
  };
3878
4438
  export type RegisterTunnelResponse = RegisterTunnelResponses[keyof RegisterTunnelResponses];
@@ -3882,13 +4442,27 @@ export type StopTunnelData = {
3882
4442
  query?: never;
3883
4443
  url: '/v1/tunnel/stop';
3884
4444
  };
4445
+ export type StopTunnelErrors = {
4446
+ /**
4447
+ * Tunnel failed to stop
4448
+ */
4449
+ 500: {
4450
+ ok: boolean;
4451
+ url?: string | null;
4452
+ message?: string;
4453
+ error?: string;
4454
+ };
4455
+ };
4456
+ export type StopTunnelError = StopTunnelErrors[keyof StopTunnelErrors];
3885
4457
  export type StopTunnelResponses = {
3886
4458
  /**
3887
4459
  * OK
3888
4460
  */
3889
4461
  200: {
3890
4462
  ok: boolean;
4463
+ url?: string | null;
3891
4464
  message?: string;
4465
+ error?: string;
3892
4466
  };
3893
4467
  };
3894
4468
  export type StopTunnelResponse = StopTunnelResponses[keyof StopTunnelResponses];
@@ -3903,6 +4477,7 @@ export type GetTunnelQrErrors = {
3903
4477
  * Bad Request
3904
4478
  */
3905
4479
  400: {
4480
+ ok?: false;
3906
4481
  error: string;
3907
4482
  };
3908
4483
  };
@@ -3915,6 +4490,7 @@ export type GetTunnelQrResponses = {
3915
4490
  ok: boolean;
3916
4491
  url?: string;
3917
4492
  qrCode?: string;
4493
+ error?: string;
3918
4494
  };
3919
4495
  };
3920
4496
  export type GetTunnelQrResponse = GetTunnelQrResponses[keyof GetTunnelQrResponses];
@@ -4013,7 +4589,7 @@ export type RemoveMcpServerData = {
4013
4589
  };
4014
4590
  export type RemoveMcpServerErrors = {
4015
4591
  /**
4016
- * Bad Request
4592
+ * Not Found
4017
4593
  */
4018
4594
  404: {
4019
4595
  error: string;
@@ -4043,7 +4619,7 @@ export type StartMcpServerData = {
4043
4619
  };
4044
4620
  export type StartMcpServerErrors = {
4045
4621
  /**
4046
- * Bad Request
4622
+ * Not Found
4047
4623
  */
4048
4624
  404: {
4049
4625
  error: string;
@@ -4116,7 +4692,7 @@ export type TestMcpServerData = {
4116
4692
  };
4117
4693
  export type TestMcpServerErrors = {
4118
4694
  /**
4119
- * Bad Request
4695
+ * Not Found
4120
4696
  */
4121
4697
  404: {
4122
4698
  error: string;
@@ -4130,10 +4706,18 @@ export type TestMcpServerResponses = {
4130
4706
  200: {
4131
4707
  ok: boolean;
4132
4708
  name?: string;
4709
+ connected?: boolean;
4133
4710
  tools?: Array<{
4134
4711
  name?: string;
4135
4712
  description?: string;
4136
4713
  }>;
4714
+ authRequired?: boolean;
4715
+ authType?: string;
4716
+ sessionId?: string;
4717
+ userCode?: string;
4718
+ verificationUri?: string;
4719
+ interval?: number;
4720
+ authUrl?: string;
4137
4721
  error?: string;
4138
4722
  };
4139
4723
  };
@@ -4181,7 +4765,7 @@ export type InitiateMcpAuthData = {
4181
4765
  };
4182
4766
  export type InitiateMcpAuthErrors = {
4183
4767
  /**
4184
- * Bad Request
4768
+ * Not Found
4185
4769
  */
4186
4770
  404: {
4187
4771
  error: string;
@@ -4203,6 +4787,12 @@ export type InitiateMcpAuthResponses = {
4203
4787
  verificationUri?: string;
4204
4788
  interval?: number;
4205
4789
  message?: string;
4790
+ status?: 'complete' | 'pending' | 'error';
4791
+ connected?: boolean;
4792
+ tools?: Array<{
4793
+ name?: string;
4794
+ description?: string;
4795
+ }>;
4206
4796
  error?: string;
4207
4797
  };
4208
4798
  };
@@ -4236,8 +4826,16 @@ export type CompleteMcpAuthResponses = {
4236
4826
  */
4237
4827
  200: {
4238
4828
  ok: boolean;
4239
- status?: 'complete' | 'pending' | 'error';
4240
4829
  name?: string;
4830
+ authUrl?: string;
4831
+ authType?: string;
4832
+ authenticated?: boolean;
4833
+ sessionId?: string;
4834
+ userCode?: string;
4835
+ verificationUri?: string;
4836
+ interval?: number;
4837
+ message?: string;
4838
+ status?: 'complete' | 'pending' | 'error';
4241
4839
  connected?: boolean;
4242
4840
  tools?: Array<{
4243
4841
  name?: string;
@@ -4281,13 +4879,17 @@ export type GetProviderUsageErrors = {
4281
4879
  * Bad Request
4282
4880
  */
4283
4881
  400: {
4284
- error: string;
4882
+ error: string | {
4883
+ message: string;
4884
+ };
4285
4885
  };
4286
4886
  /**
4287
- * Bad Request
4887
+ * Not Found
4288
4888
  */
4289
4889
  404: {
4290
- error: string;
4890
+ error: string | {
4891
+ message: string;
4892
+ };
4291
4893
  };
4292
4894
  };
4293
4895
  export type GetProviderUsageError = GetProviderUsageErrors[keyof GetProviderUsageErrors];
@@ -4481,7 +5083,6 @@ export type UpdateSkillsConfigResponses = {
4481
5083
  * OK
4482
5084
  */
4483
5085
  200: {
4484
- success: boolean;
4485
5086
  enabled: boolean;
4486
5087
  totalCount: number;
4487
5088
  enabledCount: number;
@@ -4492,6 +5093,7 @@ export type UpdateSkillsConfigResponses = {
4492
5093
  path: string;
4493
5094
  enabled: boolean;
4494
5095
  }>;
5096
+ success: boolean;
4495
5097
  };
4496
5098
  };
4497
5099
  export type UpdateSkillsConfigResponse = UpdateSkillsConfigResponses[keyof UpdateSkillsConfigResponses];
@@ -4685,6 +5287,141 @@ export type GetGlobalUsageStatsResponses = {
4685
5287
  200: UsageStats;
4686
5288
  };
4687
5289
  export type GetGlobalUsageStatsResponse = GetGlobalUsageStatsResponses[keyof GetGlobalUsageStatsResponses];
5290
+ export type UploadAttachmentData = {
5291
+ body: {
5292
+ /**
5293
+ * Attachment file to store
5294
+ */
5295
+ file?: Blob | File;
5296
+ sessionId?: string;
5297
+ };
5298
+ path?: never;
5299
+ query?: {
5300
+ /**
5301
+ * Project root override (defaults to current working directory).
5302
+ */
5303
+ project?: string;
5304
+ };
5305
+ url: '/v1/attachments';
5306
+ };
5307
+ export type UploadAttachmentErrors = {
5308
+ /**
5309
+ * Bad Request
5310
+ */
5311
+ 400: {
5312
+ error: string;
5313
+ };
5314
+ /**
5315
+ * Attachment too large
5316
+ */
5317
+ 413: {
5318
+ error: string;
5319
+ };
5320
+ /**
5321
+ * Upload failed
5322
+ */
5323
+ 500: {
5324
+ error: string;
5325
+ };
5326
+ };
5327
+ export type UploadAttachmentError = UploadAttachmentErrors[keyof UploadAttachmentErrors];
5328
+ export type UploadAttachmentResponses = {
5329
+ /**
5330
+ * Attachment stored
5331
+ */
5332
+ 201: {
5333
+ id: string;
5334
+ filename: string;
5335
+ mimeType: string;
5336
+ size: number;
5337
+ sha256: string;
5338
+ kind: 'image' | 'pdf' | 'text' | 'binary';
5339
+ sessionId?: string;
5340
+ originalPath: string;
5341
+ createdAt: string;
5342
+ originalUrl: string;
5343
+ metadataUrl: string;
5344
+ status: 'ready';
5345
+ };
5346
+ };
5347
+ export type UploadAttachmentResponse = UploadAttachmentResponses[keyof UploadAttachmentResponses];
5348
+ export type GetAttachmentMetadataData = {
5349
+ body?: never;
5350
+ path: {
5351
+ /**
5352
+ * Attachment ID
5353
+ */
5354
+ id: string;
5355
+ };
5356
+ query?: {
5357
+ /**
5358
+ * Project root override (defaults to current working directory).
5359
+ */
5360
+ project?: string;
5361
+ };
5362
+ url: '/v1/attachments/{id}/metadata';
5363
+ };
5364
+ export type GetAttachmentMetadataErrors = {
5365
+ /**
5366
+ * Attachment not found
5367
+ */
5368
+ 404: {
5369
+ error: string;
5370
+ };
5371
+ };
5372
+ export type GetAttachmentMetadataError = GetAttachmentMetadataErrors[keyof GetAttachmentMetadataErrors];
5373
+ export type GetAttachmentMetadataResponses = {
5374
+ /**
5375
+ * Attachment metadata
5376
+ */
5377
+ 200: {
5378
+ id: string;
5379
+ filename: string;
5380
+ mimeType: string;
5381
+ size: number;
5382
+ sha256: string;
5383
+ kind: 'image' | 'pdf' | 'text' | 'binary';
5384
+ sessionId?: string;
5385
+ originalPath: string;
5386
+ createdAt: string;
5387
+ originalUrl: string;
5388
+ metadataUrl: string;
5389
+ status: 'ready';
5390
+ };
5391
+ };
5392
+ export type GetAttachmentMetadataResponse = GetAttachmentMetadataResponses[keyof GetAttachmentMetadataResponses];
5393
+ export type GetAttachmentData = {
5394
+ body?: never;
5395
+ path: {
5396
+ /**
5397
+ * Attachment ID
5398
+ */
5399
+ id: string;
5400
+ };
5401
+ query?: {
5402
+ /**
5403
+ * Project root override (defaults to current working directory).
5404
+ */
5405
+ project?: string;
5406
+ };
5407
+ url: '/v1/attachments/{id}';
5408
+ };
5409
+ export type GetAttachmentErrors = {
5410
+ /**
5411
+ * Attachment not found
5412
+ */
5413
+ 404: {
5414
+ error: string;
5415
+ };
5416
+ };
5417
+ export type GetAttachmentError = GetAttachmentErrors[keyof GetAttachmentErrors];
5418
+ export type GetAttachmentResponses = {
5419
+ /**
5420
+ * Raw attachment file bytes
5421
+ */
5422
+ 200: Blob | File;
5423
+ };
5424
+ export type GetAttachmentResponse = GetAttachmentResponses[keyof GetAttachmentResponses];
4688
5425
  export type GetSimulatorStatusData = {
4689
5426
  body?: never;
4690
5427
  path?: never;
@@ -4716,8 +5453,26 @@ export type ListSimulatorsResponses = {
4716
5453
  /**
4717
5454
  * Running serve-sim streams
4718
5455
  */
4719
- 200: unknown;
5456
+ 200: {
5457
+ ok: true;
5458
+ state: {
5459
+ status: 'idle' | 'starting' | 'connected' | 'error';
5460
+ url: string | null;
5461
+ deviceName: string | null;
5462
+ udid: string | null;
5463
+ port: number;
5464
+ error: string | null;
5465
+ updatedAt: string;
5466
+ };
5467
+ raw: string;
5468
+ } | {
5469
+ ok: false;
5470
+ error: string;
5471
+ stdout: string;
5472
+ stderr: string;
5473
+ };
4720
5474
  };
5475
+ export type ListSimulatorsResponse = ListSimulatorsResponses[keyof ListSimulatorsResponses];
4721
5476
  export type StartSimulatorData = {
4722
5477
  body?: {
4723
5478
  port?: number;
@@ -4731,14 +5486,38 @@ export type StartSimulatorErrors = {
4731
5486
  /**
4732
5487
  * serve-sim failed to start
4733
5488
  */
4734
- 500: unknown;
5489
+ 500: {
5490
+ ok: boolean;
5491
+ stdout?: string;
5492
+ stderr?: string;
5493
+ error?: string | null;
5494
+ status?: 'idle' | 'starting' | 'connected' | 'error';
5495
+ url?: string | null;
5496
+ deviceName?: string | null;
5497
+ udid?: string | null;
5498
+ port?: number;
5499
+ updatedAt?: string;
5500
+ };
4735
5501
  };
5502
+ export type StartSimulatorError = StartSimulatorErrors[keyof StartSimulatorErrors];
4736
5503
  export type StartSimulatorResponses = {
4737
5504
  /**
4738
5505
  * serve-sim started
4739
5506
  */
4740
- 200: unknown;
5507
+ 200: {
5508
+ ok: boolean;
5509
+ stdout?: string;
5510
+ stderr?: string;
5511
+ error?: string | null;
5512
+ status?: 'idle' | 'starting' | 'connected' | 'error';
5513
+ url?: string | null;
5514
+ deviceName?: string | null;
5515
+ udid?: string | null;
5516
+ port?: number;
5517
+ updatedAt?: string;
5518
+ };
4741
5519
  };
5520
+ export type StartSimulatorResponse = StartSimulatorResponses[keyof StartSimulatorResponses];
4742
5521
  export type StopSimulatorData = {
4743
5522
  body?: {
4744
5523
  device?: string;
@@ -4751,14 +5530,38 @@ export type StopSimulatorErrors = {
4751
5530
  /**
4752
5531
  * serve-sim failed to stop
4753
5532
  */
4754
- 500: unknown;
5533
+ 500: {
5534
+ ok: boolean;
5535
+ stdout?: string;
5536
+ stderr?: string;
5537
+ error?: string | null;
5538
+ status?: 'idle' | 'starting' | 'connected' | 'error';
5539
+ url?: string | null;
5540
+ deviceName?: string | null;
5541
+ udid?: string | null;
5542
+ port?: number;
5543
+ updatedAt?: string;
5544
+ };
4755
5545
  };
5546
+ export type StopSimulatorError = StopSimulatorErrors[keyof StopSimulatorErrors];
4756
5547
  export type StopSimulatorResponses = {
4757
5548
  /**
4758
5549
  * serve-sim stopped
4759
5550
  */
4760
- 200: unknown;
5551
+ 200: {
5552
+ ok: boolean;
5553
+ stdout?: string;
5554
+ stderr?: string;
5555
+ error?: string | null;
5556
+ status?: 'idle' | 'starting' | 'connected' | 'error';
5557
+ url?: string | null;
5558
+ deviceName?: string | null;
5559
+ udid?: string | null;
5560
+ port?: number;
5561
+ updatedAt?: string;
5562
+ };
4761
5563
  };
5564
+ export type StopSimulatorResponse = StopSimulatorResponses[keyof StopSimulatorResponses];
4762
5565
  export type PressSimulatorButtonData = {
4763
5566
  body?: {
4764
5567
  name?: string;
@@ -4772,17 +5575,31 @@ export type PressSimulatorButtonErrors = {
4772
5575
  /**
4773
5576
  * Button failed
4774
5577
  */
4775
- 500: unknown;
5578
+ 500: {
5579
+ ok: boolean;
5580
+ stdout?: string;
5581
+ stderr?: string;
5582
+ error?: string;
5583
+ button: string;
5584
+ };
4776
5585
  };
5586
+ export type PressSimulatorButtonError = PressSimulatorButtonErrors[keyof PressSimulatorButtonErrors];
4777
5587
  export type PressSimulatorButtonResponses = {
4778
5588
  /**
4779
5589
  * Button sent
4780
5590
  */
4781
- 200: unknown;
5591
+ 200: {
5592
+ ok: boolean;
5593
+ stdout?: string;
5594
+ stderr?: string;
5595
+ error?: string;
5596
+ button: string;
5597
+ };
4782
5598
  };
5599
+ export type PressSimulatorButtonResponse = PressSimulatorButtonResponses[keyof PressSimulatorButtonResponses];
4783
5600
  export type SendSimulatorGestureData = {
4784
5601
  body: {
4785
- gesture: unknown;
5602
+ gesture?: unknown;
4786
5603
  device?: string;
4787
5604
  };
4788
5605
  path?: never;
@@ -4793,14 +5610,28 @@ export type SendSimulatorGestureErrors = {
4793
5610
  /**
4794
5611
  * Gesture failed
4795
5612
  */
4796
- 500: unknown;
5613
+ 500: {
5614
+ ok: boolean;
5615
+ stdout?: string;
5616
+ stderr?: string;
5617
+ error?: string;
5618
+ gesture?: unknown;
5619
+ };
4797
5620
  };
5621
+ export type SendSimulatorGestureError = SendSimulatorGestureErrors[keyof SendSimulatorGestureErrors];
4798
5622
  export type SendSimulatorGestureResponses = {
4799
5623
  /**
4800
5624
  * Gesture sent
4801
5625
  */
4802
- 200: unknown;
5626
+ 200: {
5627
+ ok: boolean;
5628
+ stdout?: string;
5629
+ stderr?: string;
5630
+ error?: string;
5631
+ gesture?: unknown;
5632
+ };
4803
5633
  };
5634
+ export type SendSimulatorGestureResponse = SendSimulatorGestureResponses[keyof SendSimulatorGestureResponses];
4804
5635
  export type RotateSimulatorData = {
4805
5636
  body: {
4806
5637
  orientation: 'portrait' | 'portrait_upside_down' | 'landscape_left' | 'landscape_right';
@@ -4814,14 +5645,28 @@ export type RotateSimulatorErrors = {
4814
5645
  /**
4815
5646
  * Rotation failed
4816
5647
  */
4817
- 500: unknown;
5648
+ 500: {
5649
+ ok: boolean;
5650
+ stdout?: string;
5651
+ stderr?: string;
5652
+ error?: string;
5653
+ orientation: string;
5654
+ };
4818
5655
  };
5656
+ export type RotateSimulatorError = RotateSimulatorErrors[keyof RotateSimulatorErrors];
4819
5657
  export type RotateSimulatorResponses = {
4820
5658
  /**
4821
5659
  * Rotation sent
4822
5660
  */
4823
- 200: unknown;
5661
+ 200: {
5662
+ ok: boolean;
5663
+ stdout?: string;
5664
+ stderr?: string;
5665
+ error?: string;
5666
+ orientation: string;
5667
+ };
4824
5668
  };
5669
+ export type RotateSimulatorResponse = RotateSimulatorResponses[keyof RotateSimulatorResponses];
4825
5670
  export type GetSimulatorLogsData = {
4826
5671
  body?: never;
4827
5672
  path?: never;
@@ -4832,14 +5677,26 @@ export type GetSimulatorLogsErrors = {
4832
5677
  /**
4833
5678
  * No active simulator
4834
5679
  */
4835
- 400: unknown;
5680
+ 400: {
5681
+ ok: boolean;
5682
+ logs?: string;
5683
+ url?: string;
5684
+ error?: string;
5685
+ };
4836
5686
  };
5687
+ export type GetSimulatorLogsError = GetSimulatorLogsErrors[keyof GetSimulatorLogsErrors];
4837
5688
  export type GetSimulatorLogsResponses = {
4838
5689
  /**
4839
5690
  * Simulator logs
4840
5691
  */
4841
- 200: unknown;
5692
+ 200: {
5693
+ ok: boolean;
5694
+ logs?: string;
5695
+ url?: string;
5696
+ error?: string;
5697
+ };
4842
5698
  };
5699
+ export type GetSimulatorLogsResponse = GetSimulatorLogsResponses[keyof GetSimulatorLogsResponses];
4843
5700
  export type GetDictationStatusData = {
4844
5701
  body?: never;
4845
5702
  path?: never;
@@ -4856,12 +5713,27 @@ export type GetDictationStatusResponses = {
4856
5713
  engineInstalled: boolean;
4857
5714
  defaultModel: string;
4858
5715
  format?: {
4859
- encoding?: string;
4860
- sampleRate?: number;
4861
- channels?: number;
5716
+ encoding: string;
5717
+ sampleRate: number;
5718
+ channels: number;
4862
5719
  };
4863
5720
  models: Array<{
4864
- [key: string]: unknown;
5721
+ id: string;
5722
+ label: string;
5723
+ language: 'en' | 'multi';
5724
+ sizeBytes: number;
5725
+ url: string;
5726
+ sha256: string;
5727
+ recommended?: boolean;
5728
+ installed: boolean;
5729
+ installing: boolean;
5730
+ installedSizeBytes: number;
5731
+ installStatus: 'idle' | 'installing' | 'verifying' | 'installed' | 'error';
5732
+ progressBytes: number;
5733
+ totalBytes: number;
5734
+ error?: string;
5735
+ errorCode?: string;
5736
+ [key: string]: unknown | string | 'en' | 'multi' | number | boolean | 'idle' | 'installing' | 'verifying' | 'installed' | 'error' | undefined;
4865
5737
  }>;
4866
5738
  };
4867
5739
  };
@@ -4878,7 +5750,22 @@ export type ListDictationModelsResponses = {
4878
5750
  */
4879
5751
  200: {
4880
5752
  models: Array<{
4881
- [key: string]: unknown;
5753
+ id: string;
5754
+ label: string;
5755
+ language: 'en' | 'multi';
5756
+ sizeBytes: number;
5757
+ url: string;
5758
+ sha256: string;
5759
+ recommended?: boolean;
5760
+ installed: boolean;
5761
+ installing: boolean;
5762
+ installedSizeBytes: number;
5763
+ installStatus: 'idle' | 'installing' | 'verifying' | 'installed' | 'error';
5764
+ progressBytes: number;
5765
+ totalBytes: number;
5766
+ error?: string;
5767
+ errorCode?: string;
5768
+ [key: string]: unknown | string | 'en' | 'multi' | number | boolean | 'idle' | 'installing' | 'verifying' | 'installed' | 'error' | undefined;
4882
5769
  }>;
4883
5770
  };
4884
5771
  };
@@ -4916,7 +5803,22 @@ export type InstallDictationModelResponses = {
4916
5803
  */
4917
5804
  200: {
4918
5805
  model: {
4919
- [key: string]: unknown;
5806
+ id: string;
5807
+ label: string;
5808
+ language: 'en' | 'multi';
5809
+ sizeBytes: number;
5810
+ url: string;
5811
+ sha256: string;
5812
+ recommended?: boolean;
5813
+ installed: boolean;
5814
+ installing: boolean;
5815
+ installedSizeBytes: number;
5816
+ installStatus: 'idle' | 'installing' | 'verifying' | 'installed' | 'error';
5817
+ progressBytes: number;
5818
+ totalBytes: number;
5819
+ error?: string;
5820
+ errorCode?: string;
5821
+ [key: string]: unknown | string | 'en' | 'multi' | number | boolean | 'idle' | 'installing' | 'verifying' | 'installed' | 'error' | undefined;
4920
5822
  };
4921
5823
  };
4922
5824
  /**
@@ -4924,7 +5826,22 @@ export type InstallDictationModelResponses = {
4924
5826
  */
4925
5827
  202: {
4926
5828
  model: {
4927
- [key: string]: unknown;
5829
+ id: string;
5830
+ label: string;
5831
+ language: 'en' | 'multi';
5832
+ sizeBytes: number;
5833
+ url: string;
5834
+ sha256: string;
5835
+ recommended?: boolean;
5836
+ installed: boolean;
5837
+ installing: boolean;
5838
+ installedSizeBytes: number;
5839
+ installStatus: 'idle' | 'installing' | 'verifying' | 'installed' | 'error';
5840
+ progressBytes: number;
5841
+ totalBytes: number;
5842
+ error?: string;
5843
+ errorCode?: string;
5844
+ [key: string]: unknown | string | 'en' | 'multi' | number | boolean | 'idle' | 'installing' | 'verifying' | 'installed' | 'error' | undefined;
4928
5845
  };
4929
5846
  };
4930
5847
  };
@@ -4979,7 +5896,22 @@ export type RemoveDictationModelResponses = {
4979
5896
  200: {
4980
5897
  removed: boolean;
4981
5898
  model: {
4982
- [key: string]: unknown;
5899
+ id: string;
5900
+ label: string;
5901
+ language: 'en' | 'multi';
5902
+ sizeBytes: number;
5903
+ url: string;
5904
+ sha256: string;
5905
+ recommended?: boolean;
5906
+ installed: boolean;
5907
+ installing: boolean;
5908
+ installedSizeBytes: number;
5909
+ installStatus: 'idle' | 'installing' | 'verifying' | 'installed' | 'error';
5910
+ progressBytes: number;
5911
+ totalBytes: number;
5912
+ error?: string;
5913
+ errorCode?: string;
5914
+ [key: string]: unknown | string | 'en' | 'multi' | number | boolean | 'idle' | 'installing' | 'verifying' | 'installed' | 'error' | undefined;
4983
5915
  };
4984
5916
  };
4985
5917
  };
@@ -5003,7 +5935,9 @@ export type CreateDictationSessionResponses = {
5003
5935
  model: string;
5004
5936
  modelInstalled: boolean;
5005
5937
  format: {
5006
- [key: string]: unknown;
5938
+ encoding: string;
5939
+ sampleRate: number;
5940
+ channels: number;
5007
5941
  };
5008
5942
  };
5009
5943
  };
@@ -5049,7 +5983,28 @@ export type GetDictationSessionResponses = {
5049
5983
  */
5050
5984
  200: {
5051
5985
  session: {
5052
- [key: string]: unknown;
5986
+ id: string;
5987
+ status: 'created' | 'recording' | 'transcribing' | 'completed' | 'cancelled' | 'error';
5988
+ model: string;
5989
+ language: string;
5990
+ format: {
5991
+ encoding: string;
5992
+ sampleRate: number;
5993
+ channels: number;
5994
+ };
5995
+ createdAt: string;
5996
+ updatedAt: string;
5997
+ receivedBytes: number;
5998
+ receivedMs: number;
5999
+ pcmPath: string;
6000
+ wavPath: string;
6001
+ text?: string;
6002
+ error?: string;
6003
+ [key: string]: unknown | string | 'created' | 'recording' | 'transcribing' | 'completed' | 'cancelled' | 'error' | {
6004
+ encoding: string;
6005
+ sampleRate: number;
6006
+ channels: number;
6007
+ } | number | undefined;
5053
6008
  };
5054
6009
  };
5055
6010
  };