@company-semantics/contracts 0.107.0 → 0.109.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.
- package/package.json +2 -1
- package/src/api/generated.ts +762 -72
- package/src/generated/openapi-routes.ts +11 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@company-semantics/contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.109.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
"release": "npx tsx scripts/release.ts",
|
|
83
83
|
"prepublishOnly": "echo 'ERROR: Publishing is CI-only via tag push. Use pnpm release instead.' && exit 1",
|
|
84
84
|
"test": "vitest run",
|
|
85
|
+
"generate:api": "pnpm generate:api-types",
|
|
85
86
|
"generate:api-types": "openapi-typescript openapi/backend.yaml -o src/api/generated.ts",
|
|
86
87
|
"generate:openapi-routes": "tsx scripts/generate-openapi-routes.ts",
|
|
87
88
|
"generate:api-types:check": "openapi-typescript openapi/backend.yaml -o /tmp/cs-api-types-check.ts && diff -q src/api/generated.ts /tmp/cs-api-types-check.ts"
|
package/src/api/generated.ts
CHANGED
|
@@ -270,6 +270,65 @@ export interface paths {
|
|
|
270
270
|
patch?: never;
|
|
271
271
|
trace?: never;
|
|
272
272
|
};
|
|
273
|
+
"/api/user/preferences/dismissed-banners": {
|
|
274
|
+
parameters: {
|
|
275
|
+
query?: never;
|
|
276
|
+
header?: never;
|
|
277
|
+
path?: never;
|
|
278
|
+
cookie?: never;
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* List dismissed banner IDs for the current user
|
|
282
|
+
* @description Returns the list of banner IDs that the authenticated user has dismissed.
|
|
283
|
+
* Used to suppress previously-dismissed UI banners on page load.
|
|
284
|
+
*/
|
|
285
|
+
get: operations["getDismissedBanners"];
|
|
286
|
+
put?: never;
|
|
287
|
+
post?: never;
|
|
288
|
+
delete?: never;
|
|
289
|
+
options?: never;
|
|
290
|
+
head?: never;
|
|
291
|
+
patch?: never;
|
|
292
|
+
trace?: never;
|
|
293
|
+
};
|
|
294
|
+
"/api/user/preferences/dismissed-banners/{bannerId}": {
|
|
295
|
+
parameters: {
|
|
296
|
+
query?: never;
|
|
297
|
+
header?: never;
|
|
298
|
+
path?: never;
|
|
299
|
+
cookie?: never;
|
|
300
|
+
};
|
|
301
|
+
get?: never;
|
|
302
|
+
put?: never;
|
|
303
|
+
/** Dismiss a banner for the current user */
|
|
304
|
+
post: operations["dismissBanner"];
|
|
305
|
+
delete?: never;
|
|
306
|
+
options?: never;
|
|
307
|
+
head?: never;
|
|
308
|
+
patch?: never;
|
|
309
|
+
trace?: never;
|
|
310
|
+
};
|
|
311
|
+
"/api/user/resync-slack-avatar": {
|
|
312
|
+
parameters: {
|
|
313
|
+
query?: never;
|
|
314
|
+
header?: never;
|
|
315
|
+
path?: never;
|
|
316
|
+
cookie?: never;
|
|
317
|
+
};
|
|
318
|
+
get?: never;
|
|
319
|
+
put?: never;
|
|
320
|
+
/**
|
|
321
|
+
* Resync user avatar from Slack
|
|
322
|
+
* @description Manually resync the current user's avatar from their Slack profile.
|
|
323
|
+
* Requires user to have a linked Slack identity and the org to have an active Slack connection.
|
|
324
|
+
*/
|
|
325
|
+
post: operations["resyncSlackAvatar"];
|
|
326
|
+
delete?: never;
|
|
327
|
+
options?: never;
|
|
328
|
+
head?: never;
|
|
329
|
+
patch?: never;
|
|
330
|
+
trace?: never;
|
|
331
|
+
};
|
|
273
332
|
"/connect/{provider}": {
|
|
274
333
|
parameters: {
|
|
275
334
|
query?: never;
|
|
@@ -444,6 +503,70 @@ export interface paths {
|
|
|
444
503
|
patch?: never;
|
|
445
504
|
trace?: never;
|
|
446
505
|
};
|
|
506
|
+
"/api/executions/{executionId}/undo": {
|
|
507
|
+
parameters: {
|
|
508
|
+
query?: never;
|
|
509
|
+
header?: never;
|
|
510
|
+
path?: never;
|
|
511
|
+
cookie?: never;
|
|
512
|
+
};
|
|
513
|
+
get?: never;
|
|
514
|
+
put?: never;
|
|
515
|
+
/**
|
|
516
|
+
* Undo a completed execution
|
|
517
|
+
* @description Undoes a completed execution within its undo window.
|
|
518
|
+
* The caller must be the same user who initiated the execution.
|
|
519
|
+
* Idempotent: if undo was already performed, returns the existing result.
|
|
520
|
+
*/
|
|
521
|
+
post: operations["undoExecution"];
|
|
522
|
+
delete?: never;
|
|
523
|
+
options?: never;
|
|
524
|
+
head?: never;
|
|
525
|
+
patch?: never;
|
|
526
|
+
trace?: never;
|
|
527
|
+
};
|
|
528
|
+
"/api/executions/{executionId}/confirm": {
|
|
529
|
+
parameters: {
|
|
530
|
+
query?: never;
|
|
531
|
+
header?: never;
|
|
532
|
+
path?: never;
|
|
533
|
+
cookie?: never;
|
|
534
|
+
};
|
|
535
|
+
get?: never;
|
|
536
|
+
put?: never;
|
|
537
|
+
/**
|
|
538
|
+
* Confirm a pending execution
|
|
539
|
+
* @description Confirms a pending execution. Serialized via advisory lock.
|
|
540
|
+
* The caller must be the same user who initiated the execution.
|
|
541
|
+
*/
|
|
542
|
+
post: operations["confirmExecution"];
|
|
543
|
+
delete?: never;
|
|
544
|
+
options?: never;
|
|
545
|
+
head?: never;
|
|
546
|
+
patch?: never;
|
|
547
|
+
trace?: never;
|
|
548
|
+
};
|
|
549
|
+
"/api/executions/{executionId}/reject": {
|
|
550
|
+
parameters: {
|
|
551
|
+
query?: never;
|
|
552
|
+
header?: never;
|
|
553
|
+
path?: never;
|
|
554
|
+
cookie?: never;
|
|
555
|
+
};
|
|
556
|
+
get?: never;
|
|
557
|
+
put?: never;
|
|
558
|
+
/**
|
|
559
|
+
* Reject a pending execution
|
|
560
|
+
* @description Rejects a pending execution. Serialized via advisory lock.
|
|
561
|
+
* The caller must be the same user who initiated the execution.
|
|
562
|
+
*/
|
|
563
|
+
post: operations["rejectExecution"];
|
|
564
|
+
delete?: never;
|
|
565
|
+
options?: never;
|
|
566
|
+
head?: never;
|
|
567
|
+
patch?: never;
|
|
568
|
+
trace?: never;
|
|
569
|
+
};
|
|
447
570
|
"/api/timeline": {
|
|
448
571
|
parameters: {
|
|
449
572
|
query?: never;
|
|
@@ -1156,6 +1279,50 @@ export interface paths {
|
|
|
1156
1279
|
patch?: never;
|
|
1157
1280
|
trace?: never;
|
|
1158
1281
|
};
|
|
1282
|
+
"/api/workspace/resync-slack-logo": {
|
|
1283
|
+
parameters: {
|
|
1284
|
+
query?: never;
|
|
1285
|
+
header?: never;
|
|
1286
|
+
path?: never;
|
|
1287
|
+
cookie?: never;
|
|
1288
|
+
};
|
|
1289
|
+
get?: never;
|
|
1290
|
+
put?: never;
|
|
1291
|
+
/**
|
|
1292
|
+
* Resync workspace logo from Slack
|
|
1293
|
+
* @description Manually resync the workspace logo from the connected Slack workspace icon.
|
|
1294
|
+
* Requires org.view_workspace capability and an active Slack connection.
|
|
1295
|
+
*/
|
|
1296
|
+
post: operations["resyncSlackLogo"];
|
|
1297
|
+
delete?: never;
|
|
1298
|
+
options?: never;
|
|
1299
|
+
head?: never;
|
|
1300
|
+
patch?: never;
|
|
1301
|
+
trace?: never;
|
|
1302
|
+
};
|
|
1303
|
+
"/api/workspace/resolve-path": {
|
|
1304
|
+
parameters: {
|
|
1305
|
+
query?: never;
|
|
1306
|
+
header?: never;
|
|
1307
|
+
path?: never;
|
|
1308
|
+
cookie?: never;
|
|
1309
|
+
};
|
|
1310
|
+
get?: never;
|
|
1311
|
+
put?: never;
|
|
1312
|
+
/**
|
|
1313
|
+
* Resolve a tokenized URL path to hydrated navigation layers
|
|
1314
|
+
* @description Resolves a tokenized workspace URL path to hydrated entity data.
|
|
1315
|
+
* Used by the frontend for cold-start deep linking and browser back/forward.
|
|
1316
|
+
* Path segments follow a [type, slug] pair grammar: "dept" before "team",
|
|
1317
|
+
* "team" requires preceding "dept", and "members" must be terminal.
|
|
1318
|
+
*/
|
|
1319
|
+
post: operations["resolveWorkspacePath"];
|
|
1320
|
+
delete?: never;
|
|
1321
|
+
options?: never;
|
|
1322
|
+
head?: never;
|
|
1323
|
+
patch?: never;
|
|
1324
|
+
trace?: never;
|
|
1325
|
+
};
|
|
1159
1326
|
"/api/account/sessions": {
|
|
1160
1327
|
parameters: {
|
|
1161
1328
|
query?: never;
|
|
@@ -1981,6 +2148,57 @@ export interface components {
|
|
|
1981
2148
|
displayName: string;
|
|
1982
2149
|
};
|
|
1983
2150
|
};
|
|
2151
|
+
ResyncSlackLogoResponse: {
|
|
2152
|
+
/** @constant */
|
|
2153
|
+
success: true;
|
|
2154
|
+
logoUrl: string | null;
|
|
2155
|
+
};
|
|
2156
|
+
ResyncSlackAvatarResponse: {
|
|
2157
|
+
/** @constant */
|
|
2158
|
+
success: true;
|
|
2159
|
+
avatar: components["schemas"]["ResolvedAvatar"];
|
|
2160
|
+
};
|
|
2161
|
+
ResolvedAvatar: {
|
|
2162
|
+
/** @enum {string} */
|
|
2163
|
+
source: "slack" | "initials";
|
|
2164
|
+
/** @description Slack profile image URL (present only if source is slack) */
|
|
2165
|
+
url?: string;
|
|
2166
|
+
/** @description User initials for fallback display */
|
|
2167
|
+
initials: string;
|
|
2168
|
+
};
|
|
2169
|
+
ResolvedLayer: components["schemas"]["ResolvedLayerDept"] | components["schemas"]["ResolvedLayerTeam"] | components["schemas"]["ResolvedLayerMembers"];
|
|
2170
|
+
ResolvedLayerDept: {
|
|
2171
|
+
/**
|
|
2172
|
+
* @description discriminator enum property added by openapi-typescript
|
|
2173
|
+
* @enum {string}
|
|
2174
|
+
*/
|
|
2175
|
+
type: "dept";
|
|
2176
|
+
entity: components["schemas"]["ResolvedLayerEntity"];
|
|
2177
|
+
};
|
|
2178
|
+
ResolvedLayerTeam: {
|
|
2179
|
+
/**
|
|
2180
|
+
* @description discriminator enum property added by openapi-typescript
|
|
2181
|
+
* @enum {string}
|
|
2182
|
+
*/
|
|
2183
|
+
type: "team";
|
|
2184
|
+
entity: components["schemas"]["ResolvedLayerEntity"];
|
|
2185
|
+
};
|
|
2186
|
+
ResolvedLayerMembers: {
|
|
2187
|
+
/**
|
|
2188
|
+
* @description discriminator enum property added by openapi-typescript
|
|
2189
|
+
* @enum {string}
|
|
2190
|
+
*/
|
|
2191
|
+
type: "members";
|
|
2192
|
+
/** @enum {string} */
|
|
2193
|
+
scope: "org" | "dept" | "team";
|
|
2194
|
+
};
|
|
2195
|
+
ResolvedLayerEntity: {
|
|
2196
|
+
/** Format: uuid */
|
|
2197
|
+
id: string;
|
|
2198
|
+
name: string;
|
|
2199
|
+
slug: string;
|
|
2200
|
+
memberCount: number;
|
|
2201
|
+
};
|
|
1984
2202
|
UserOrgsResponse: {
|
|
1985
2203
|
orgs: components["schemas"]["UserOrgMembership"][];
|
|
1986
2204
|
};
|
|
@@ -2257,6 +2475,46 @@ export interface components {
|
|
|
2257
2475
|
message: string;
|
|
2258
2476
|
}[];
|
|
2259
2477
|
};
|
|
2478
|
+
ExecutionLifecycleError: {
|
|
2479
|
+
/** @enum {string} */
|
|
2480
|
+
code: "EXECUTION_CONFLICT";
|
|
2481
|
+
executionId: string;
|
|
2482
|
+
currentState: string;
|
|
2483
|
+
} | {
|
|
2484
|
+
/** @enum {string} */
|
|
2485
|
+
code: "EXECUTION_EXPIRED";
|
|
2486
|
+
executionId: string;
|
|
2487
|
+
/** Format: date-time */
|
|
2488
|
+
expiredAt: string;
|
|
2489
|
+
} | {
|
|
2490
|
+
/** @enum {string} */
|
|
2491
|
+
code: "EXECUTION_FORBIDDEN";
|
|
2492
|
+
executionId: string;
|
|
2493
|
+
requiredRole: string;
|
|
2494
|
+
};
|
|
2495
|
+
UndoResultData: {
|
|
2496
|
+
/** @description Links back to original action */
|
|
2497
|
+
actionId: string;
|
|
2498
|
+
/** @description Original execution row ID */
|
|
2499
|
+
executionId: string;
|
|
2500
|
+
/** @description New undo audit row ID (append-only) */
|
|
2501
|
+
undoExecutionId: string;
|
|
2502
|
+
/** @enum {string} */
|
|
2503
|
+
status: "success" | "failed";
|
|
2504
|
+
error?: string;
|
|
2505
|
+
};
|
|
2506
|
+
ConfirmExecutionResponse: {
|
|
2507
|
+
/** @enum {string} */
|
|
2508
|
+
status: "executing" | "blocked_pending_approval" | "already_confirmed" | "awaiting_approval";
|
|
2509
|
+
code?: string;
|
|
2510
|
+
executionId?: string;
|
|
2511
|
+
/** @description ExecutionResultData when execution completes inline */
|
|
2512
|
+
result?: Record<string, never>;
|
|
2513
|
+
};
|
|
2514
|
+
RejectExecutionResponse: {
|
|
2515
|
+
/** @enum {string} */
|
|
2516
|
+
status: "cancelled";
|
|
2517
|
+
};
|
|
2260
2518
|
ExecutionSummary: {
|
|
2261
2519
|
/** Format: uuid */
|
|
2262
2520
|
executionId: string;
|
|
@@ -3284,45 +3542,28 @@ export interface operations {
|
|
|
3284
3542
|
};
|
|
3285
3543
|
};
|
|
3286
3544
|
};
|
|
3287
|
-
|
|
3545
|
+
getDismissedBanners: {
|
|
3288
3546
|
parameters: {
|
|
3289
|
-
query?:
|
|
3290
|
-
/**
|
|
3291
|
-
* @deprecated
|
|
3292
|
-
* @description DEPRECATED: Organization ID derived from session.
|
|
3293
|
-
* Query parameter accepted only in dev mode for backwards compatibility.
|
|
3294
|
-
* Production: orgId is always derived from authenticated session.
|
|
3295
|
-
*/
|
|
3296
|
-
orgId?: string;
|
|
3297
|
-
};
|
|
3547
|
+
query?: never;
|
|
3298
3548
|
header?: never;
|
|
3299
|
-
path
|
|
3300
|
-
provider: components["schemas"]["OAuthProvider"];
|
|
3301
|
-
};
|
|
3549
|
+
path?: never;
|
|
3302
3550
|
cookie?: never;
|
|
3303
3551
|
};
|
|
3304
3552
|
requestBody?: never;
|
|
3305
3553
|
responses: {
|
|
3306
|
-
/** @description
|
|
3307
|
-
|
|
3308
|
-
headers: {
|
|
3309
|
-
/** @description OAuth provider authorization URL */
|
|
3310
|
-
Location?: string;
|
|
3311
|
-
[name: string]: unknown;
|
|
3312
|
-
};
|
|
3313
|
-
content?: never;
|
|
3314
|
-
};
|
|
3315
|
-
/** @description Invalid provider or missing/invalid orgId */
|
|
3316
|
-
400: {
|
|
3554
|
+
/** @description Dismissed banner IDs */
|
|
3555
|
+
200: {
|
|
3317
3556
|
headers: {
|
|
3318
3557
|
[name: string]: unknown;
|
|
3319
3558
|
};
|
|
3320
3559
|
content: {
|
|
3321
|
-
"application/json":
|
|
3560
|
+
"application/json": {
|
|
3561
|
+
bannerIds: string[];
|
|
3562
|
+
};
|
|
3322
3563
|
};
|
|
3323
3564
|
};
|
|
3324
|
-
/** @description
|
|
3325
|
-
|
|
3565
|
+
/** @description Not authenticated */
|
|
3566
|
+
401: {
|
|
3326
3567
|
headers: {
|
|
3327
3568
|
[name: string]: unknown;
|
|
3328
3569
|
};
|
|
@@ -3332,94 +3573,231 @@ export interface operations {
|
|
|
3332
3573
|
};
|
|
3333
3574
|
};
|
|
3334
3575
|
};
|
|
3335
|
-
|
|
3576
|
+
dismissBanner: {
|
|
3336
3577
|
parameters: {
|
|
3337
|
-
query?:
|
|
3338
|
-
/** @description Authorization code from provider */
|
|
3339
|
-
code?: string;
|
|
3340
|
-
/** @description State token for CSRF protection */
|
|
3341
|
-
state?: string;
|
|
3342
|
-
/** @description Error code from provider (if authorization denied) */
|
|
3343
|
-
error?: string;
|
|
3344
|
-
/** @description Human-readable error description from provider */
|
|
3345
|
-
error_description?: string;
|
|
3346
|
-
};
|
|
3578
|
+
query?: never;
|
|
3347
3579
|
header?: never;
|
|
3348
3580
|
path: {
|
|
3349
|
-
|
|
3581
|
+
bannerId: string;
|
|
3350
3582
|
};
|
|
3351
3583
|
cookie?: never;
|
|
3352
3584
|
};
|
|
3353
3585
|
requestBody?: never;
|
|
3354
3586
|
responses: {
|
|
3355
|
-
/** @description
|
|
3587
|
+
/** @description Banner dismissed */
|
|
3356
3588
|
200: {
|
|
3357
3589
|
headers: {
|
|
3358
3590
|
[name: string]: unknown;
|
|
3359
3591
|
};
|
|
3360
3592
|
content: {
|
|
3361
|
-
"
|
|
3593
|
+
"application/json": {
|
|
3594
|
+
success: boolean;
|
|
3595
|
+
};
|
|
3362
3596
|
};
|
|
3363
3597
|
};
|
|
3364
|
-
/** @description
|
|
3598
|
+
/** @description Invalid banner ID */
|
|
3365
3599
|
400: {
|
|
3366
3600
|
headers: {
|
|
3367
3601
|
[name: string]: unknown;
|
|
3368
3602
|
};
|
|
3369
3603
|
content: {
|
|
3370
|
-
"
|
|
3604
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3371
3605
|
};
|
|
3372
3606
|
};
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
getCapabilities: {
|
|
3376
|
-
parameters: {
|
|
3377
|
-
query?: never;
|
|
3378
|
-
header?: never;
|
|
3379
|
-
path?: never;
|
|
3380
|
-
cookie?: never;
|
|
3381
|
-
};
|
|
3382
|
-
requestBody?: never;
|
|
3383
|
-
responses: {
|
|
3384
|
-
/** @description List of available tools */
|
|
3385
|
-
200: {
|
|
3607
|
+
/** @description Not authenticated */
|
|
3608
|
+
401: {
|
|
3386
3609
|
headers: {
|
|
3387
3610
|
[name: string]: unknown;
|
|
3388
3611
|
};
|
|
3389
3612
|
content: {
|
|
3390
|
-
"application/json": components["schemas"]["
|
|
3613
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3391
3614
|
};
|
|
3392
3615
|
};
|
|
3393
3616
|
};
|
|
3394
3617
|
};
|
|
3395
|
-
|
|
3618
|
+
resyncSlackAvatar: {
|
|
3396
3619
|
parameters: {
|
|
3397
3620
|
query?: never;
|
|
3398
3621
|
header?: never;
|
|
3399
3622
|
path?: never;
|
|
3400
3623
|
cookie?: never;
|
|
3401
3624
|
};
|
|
3402
|
-
requestBody
|
|
3403
|
-
content: {
|
|
3404
|
-
"application/json": components["schemas"]["ChatRequest"];
|
|
3405
|
-
};
|
|
3406
|
-
};
|
|
3625
|
+
requestBody?: never;
|
|
3407
3626
|
responses: {
|
|
3408
|
-
/** @description
|
|
3627
|
+
/** @description Avatar resynced successfully */
|
|
3409
3628
|
200: {
|
|
3410
3629
|
headers: {
|
|
3411
|
-
/** @description AI SDK stream protocol version */
|
|
3412
|
-
"x-vercel-ai-ui-message-stream"?: "v1";
|
|
3413
3630
|
[name: string]: unknown;
|
|
3414
3631
|
};
|
|
3415
3632
|
content: {
|
|
3416
|
-
"
|
|
3633
|
+
"application/json": components["schemas"]["ResyncSlackAvatarResponse"];
|
|
3417
3634
|
};
|
|
3418
3635
|
};
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3636
|
+
/** @description Not authenticated */
|
|
3637
|
+
401: {
|
|
3638
|
+
headers: {
|
|
3639
|
+
[name: string]: unknown;
|
|
3640
|
+
};
|
|
3641
|
+
content: {
|
|
3642
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3643
|
+
};
|
|
3644
|
+
};
|
|
3645
|
+
/** @description User not found */
|
|
3646
|
+
404: {
|
|
3647
|
+
headers: {
|
|
3648
|
+
[name: string]: unknown;
|
|
3649
|
+
};
|
|
3650
|
+
content: {
|
|
3651
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3652
|
+
};
|
|
3653
|
+
};
|
|
3654
|
+
/** @description Rate limit exceeded */
|
|
3655
|
+
429: {
|
|
3656
|
+
headers: {
|
|
3657
|
+
[name: string]: unknown;
|
|
3658
|
+
};
|
|
3659
|
+
content: {
|
|
3660
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3661
|
+
};
|
|
3662
|
+
};
|
|
3663
|
+
};
|
|
3664
|
+
};
|
|
3665
|
+
initiateOAuth: {
|
|
3666
|
+
parameters: {
|
|
3667
|
+
query?: {
|
|
3668
|
+
/**
|
|
3669
|
+
* @deprecated
|
|
3670
|
+
* @description DEPRECATED: Organization ID derived from session.
|
|
3671
|
+
* Query parameter accepted only in dev mode for backwards compatibility.
|
|
3672
|
+
* Production: orgId is always derived from authenticated session.
|
|
3673
|
+
*/
|
|
3674
|
+
orgId?: string;
|
|
3675
|
+
};
|
|
3676
|
+
header?: never;
|
|
3677
|
+
path: {
|
|
3678
|
+
provider: components["schemas"]["OAuthProvider"];
|
|
3679
|
+
};
|
|
3680
|
+
cookie?: never;
|
|
3681
|
+
};
|
|
3682
|
+
requestBody?: never;
|
|
3683
|
+
responses: {
|
|
3684
|
+
/** @description Redirect to OAuth provider */
|
|
3685
|
+
302: {
|
|
3686
|
+
headers: {
|
|
3687
|
+
/** @description OAuth provider authorization URL */
|
|
3688
|
+
Location?: string;
|
|
3689
|
+
[name: string]: unknown;
|
|
3690
|
+
};
|
|
3691
|
+
content?: never;
|
|
3692
|
+
};
|
|
3693
|
+
/** @description Invalid provider or missing/invalid orgId */
|
|
3694
|
+
400: {
|
|
3695
|
+
headers: {
|
|
3696
|
+
[name: string]: unknown;
|
|
3697
|
+
};
|
|
3698
|
+
content: {
|
|
3699
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3700
|
+
};
|
|
3701
|
+
};
|
|
3702
|
+
/** @description OAuth initialization failed */
|
|
3703
|
+
500: {
|
|
3704
|
+
headers: {
|
|
3705
|
+
[name: string]: unknown;
|
|
3706
|
+
};
|
|
3707
|
+
content: {
|
|
3708
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3709
|
+
};
|
|
3710
|
+
};
|
|
3711
|
+
};
|
|
3712
|
+
};
|
|
3713
|
+
handleOAuthCallback: {
|
|
3714
|
+
parameters: {
|
|
3715
|
+
query?: {
|
|
3716
|
+
/** @description Authorization code from provider */
|
|
3717
|
+
code?: string;
|
|
3718
|
+
/** @description State token for CSRF protection */
|
|
3719
|
+
state?: string;
|
|
3720
|
+
/** @description Error code from provider (if authorization denied) */
|
|
3721
|
+
error?: string;
|
|
3722
|
+
/** @description Human-readable error description from provider */
|
|
3723
|
+
error_description?: string;
|
|
3724
|
+
};
|
|
3725
|
+
header?: never;
|
|
3726
|
+
path: {
|
|
3727
|
+
provider: components["schemas"]["OAuthProvider"];
|
|
3728
|
+
};
|
|
3729
|
+
cookie?: never;
|
|
3730
|
+
};
|
|
3731
|
+
requestBody?: never;
|
|
3732
|
+
responses: {
|
|
3733
|
+
/** @description Authorization successful (HTML page) */
|
|
3734
|
+
200: {
|
|
3735
|
+
headers: {
|
|
3736
|
+
[name: string]: unknown;
|
|
3737
|
+
};
|
|
3738
|
+
content: {
|
|
3739
|
+
"text/html": string;
|
|
3740
|
+
};
|
|
3741
|
+
};
|
|
3742
|
+
/** @description Authorization failed or invalid request (HTML page) */
|
|
3743
|
+
400: {
|
|
3744
|
+
headers: {
|
|
3745
|
+
[name: string]: unknown;
|
|
3746
|
+
};
|
|
3747
|
+
content: {
|
|
3748
|
+
"text/html": string;
|
|
3749
|
+
};
|
|
3750
|
+
};
|
|
3751
|
+
};
|
|
3752
|
+
};
|
|
3753
|
+
getCapabilities: {
|
|
3754
|
+
parameters: {
|
|
3755
|
+
query?: never;
|
|
3756
|
+
header?: never;
|
|
3757
|
+
path?: never;
|
|
3758
|
+
cookie?: never;
|
|
3759
|
+
};
|
|
3760
|
+
requestBody?: never;
|
|
3761
|
+
responses: {
|
|
3762
|
+
/** @description List of available tools */
|
|
3763
|
+
200: {
|
|
3764
|
+
headers: {
|
|
3765
|
+
[name: string]: unknown;
|
|
3766
|
+
};
|
|
3767
|
+
content: {
|
|
3768
|
+
"application/json": components["schemas"]["ToolDiscoveryResponse"];
|
|
3769
|
+
};
|
|
3770
|
+
};
|
|
3771
|
+
};
|
|
3772
|
+
};
|
|
3773
|
+
postAiChat: {
|
|
3774
|
+
parameters: {
|
|
3775
|
+
query?: never;
|
|
3776
|
+
header?: never;
|
|
3777
|
+
path?: never;
|
|
3778
|
+
cookie?: never;
|
|
3779
|
+
};
|
|
3780
|
+
requestBody: {
|
|
3781
|
+
content: {
|
|
3782
|
+
"application/json": components["schemas"]["ChatRequest"];
|
|
3783
|
+
};
|
|
3784
|
+
};
|
|
3785
|
+
responses: {
|
|
3786
|
+
/** @description SSE stream of chat responses */
|
|
3787
|
+
200: {
|
|
3788
|
+
headers: {
|
|
3789
|
+
/** @description AI SDK stream protocol version */
|
|
3790
|
+
"x-vercel-ai-ui-message-stream"?: "v1";
|
|
3791
|
+
[name: string]: unknown;
|
|
3792
|
+
};
|
|
3793
|
+
content: {
|
|
3794
|
+
"text/event-stream": string;
|
|
3795
|
+
};
|
|
3796
|
+
};
|
|
3797
|
+
};
|
|
3798
|
+
};
|
|
3799
|
+
getExecutionTimeline: {
|
|
3800
|
+
parameters: {
|
|
3423
3801
|
query?: never;
|
|
3424
3802
|
header?: never;
|
|
3425
3803
|
path: {
|
|
@@ -3630,6 +4008,192 @@ export interface operations {
|
|
|
3630
4008
|
};
|
|
3631
4009
|
};
|
|
3632
4010
|
};
|
|
4011
|
+
undoExecution: {
|
|
4012
|
+
parameters: {
|
|
4013
|
+
query?: never;
|
|
4014
|
+
header?: never;
|
|
4015
|
+
path: {
|
|
4016
|
+
/** @description Execution ID (UUID v4) */
|
|
4017
|
+
executionId: string;
|
|
4018
|
+
};
|
|
4019
|
+
cookie?: never;
|
|
4020
|
+
};
|
|
4021
|
+
requestBody?: never;
|
|
4022
|
+
responses: {
|
|
4023
|
+
/** @description Undo result */
|
|
4024
|
+
200: {
|
|
4025
|
+
headers: {
|
|
4026
|
+
[name: string]: unknown;
|
|
4027
|
+
};
|
|
4028
|
+
content: {
|
|
4029
|
+
"application/json": components["schemas"]["UndoResultData"];
|
|
4030
|
+
};
|
|
4031
|
+
};
|
|
4032
|
+
/** @description Invalid execution ID format or execution not in undoable state */
|
|
4033
|
+
400: {
|
|
4034
|
+
headers: {
|
|
4035
|
+
[name: string]: unknown;
|
|
4036
|
+
};
|
|
4037
|
+
content: {
|
|
4038
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4039
|
+
};
|
|
4040
|
+
};
|
|
4041
|
+
/** @description Insufficient permissions (not the initiating user) */
|
|
4042
|
+
403: {
|
|
4043
|
+
headers: {
|
|
4044
|
+
[name: string]: unknown;
|
|
4045
|
+
};
|
|
4046
|
+
content: {
|
|
4047
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4048
|
+
};
|
|
4049
|
+
};
|
|
4050
|
+
/** @description Execution not found */
|
|
4051
|
+
404: {
|
|
4052
|
+
headers: {
|
|
4053
|
+
[name: string]: unknown;
|
|
4054
|
+
};
|
|
4055
|
+
content: {
|
|
4056
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4057
|
+
};
|
|
4058
|
+
};
|
|
4059
|
+
/** @description Execution in wrong state (e.g. undo window expired) */
|
|
4060
|
+
409: {
|
|
4061
|
+
headers: {
|
|
4062
|
+
[name: string]: unknown;
|
|
4063
|
+
};
|
|
4064
|
+
content: {
|
|
4065
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4066
|
+
};
|
|
4067
|
+
};
|
|
4068
|
+
};
|
|
4069
|
+
};
|
|
4070
|
+
confirmExecution: {
|
|
4071
|
+
parameters: {
|
|
4072
|
+
query?: never;
|
|
4073
|
+
header?: never;
|
|
4074
|
+
path: {
|
|
4075
|
+
/** @description Execution ID (UUID v4) */
|
|
4076
|
+
executionId: string;
|
|
4077
|
+
};
|
|
4078
|
+
cookie?: never;
|
|
4079
|
+
};
|
|
4080
|
+
requestBody?: never;
|
|
4081
|
+
responses: {
|
|
4082
|
+
/** @description Confirmation result */
|
|
4083
|
+
200: {
|
|
4084
|
+
headers: {
|
|
4085
|
+
[name: string]: unknown;
|
|
4086
|
+
};
|
|
4087
|
+
content: {
|
|
4088
|
+
"application/json": components["schemas"]["ConfirmExecutionResponse"];
|
|
4089
|
+
};
|
|
4090
|
+
};
|
|
4091
|
+
/** @description Invalid execution ID format */
|
|
4092
|
+
400: {
|
|
4093
|
+
headers: {
|
|
4094
|
+
[name: string]: unknown;
|
|
4095
|
+
};
|
|
4096
|
+
content: {
|
|
4097
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4098
|
+
};
|
|
4099
|
+
};
|
|
4100
|
+
/** @description Insufficient permissions (not the initiating user) */
|
|
4101
|
+
403: {
|
|
4102
|
+
headers: {
|
|
4103
|
+
[name: string]: unknown;
|
|
4104
|
+
};
|
|
4105
|
+
content: {
|
|
4106
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4107
|
+
};
|
|
4108
|
+
};
|
|
4109
|
+
/** @description Execution not found */
|
|
4110
|
+
404: {
|
|
4111
|
+
headers: {
|
|
4112
|
+
[name: string]: unknown;
|
|
4113
|
+
};
|
|
4114
|
+
content: {
|
|
4115
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4116
|
+
};
|
|
4117
|
+
};
|
|
4118
|
+
/** @description Execution not in pending_confirmation state */
|
|
4119
|
+
409: {
|
|
4120
|
+
headers: {
|
|
4121
|
+
[name: string]: unknown;
|
|
4122
|
+
};
|
|
4123
|
+
content: {
|
|
4124
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4125
|
+
};
|
|
4126
|
+
};
|
|
4127
|
+
/** @description Confirmation has expired */
|
|
4128
|
+
410: {
|
|
4129
|
+
headers: {
|
|
4130
|
+
[name: string]: unknown;
|
|
4131
|
+
};
|
|
4132
|
+
content: {
|
|
4133
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4134
|
+
};
|
|
4135
|
+
};
|
|
4136
|
+
};
|
|
4137
|
+
};
|
|
4138
|
+
rejectExecution: {
|
|
4139
|
+
parameters: {
|
|
4140
|
+
query?: never;
|
|
4141
|
+
header?: never;
|
|
4142
|
+
path: {
|
|
4143
|
+
/** @description Execution ID (UUID v4) */
|
|
4144
|
+
executionId: string;
|
|
4145
|
+
};
|
|
4146
|
+
cookie?: never;
|
|
4147
|
+
};
|
|
4148
|
+
requestBody?: never;
|
|
4149
|
+
responses: {
|
|
4150
|
+
/** @description Rejection result */
|
|
4151
|
+
200: {
|
|
4152
|
+
headers: {
|
|
4153
|
+
[name: string]: unknown;
|
|
4154
|
+
};
|
|
4155
|
+
content: {
|
|
4156
|
+
"application/json": components["schemas"]["RejectExecutionResponse"];
|
|
4157
|
+
};
|
|
4158
|
+
};
|
|
4159
|
+
/** @description Invalid execution ID format */
|
|
4160
|
+
400: {
|
|
4161
|
+
headers: {
|
|
4162
|
+
[name: string]: unknown;
|
|
4163
|
+
};
|
|
4164
|
+
content: {
|
|
4165
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4166
|
+
};
|
|
4167
|
+
};
|
|
4168
|
+
/** @description Insufficient permissions (not the initiating user) */
|
|
4169
|
+
403: {
|
|
4170
|
+
headers: {
|
|
4171
|
+
[name: string]: unknown;
|
|
4172
|
+
};
|
|
4173
|
+
content: {
|
|
4174
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4175
|
+
};
|
|
4176
|
+
};
|
|
4177
|
+
/** @description Execution not found */
|
|
4178
|
+
404: {
|
|
4179
|
+
headers: {
|
|
4180
|
+
[name: string]: unknown;
|
|
4181
|
+
};
|
|
4182
|
+
content: {
|
|
4183
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4184
|
+
};
|
|
4185
|
+
};
|
|
4186
|
+
/** @description Execution not in pending_confirmation state */
|
|
4187
|
+
409: {
|
|
4188
|
+
headers: {
|
|
4189
|
+
[name: string]: unknown;
|
|
4190
|
+
};
|
|
4191
|
+
content: {
|
|
4192
|
+
"application/json": components["schemas"]["ExecutionLifecycleError"];
|
|
4193
|
+
};
|
|
4194
|
+
};
|
|
4195
|
+
};
|
|
4196
|
+
};
|
|
3633
4197
|
getTimelineUI: {
|
|
3634
4198
|
parameters: {
|
|
3635
4199
|
query?: {
|
|
@@ -5194,6 +5758,127 @@ export interface operations {
|
|
|
5194
5758
|
};
|
|
5195
5759
|
};
|
|
5196
5760
|
};
|
|
5761
|
+
resyncSlackLogo: {
|
|
5762
|
+
parameters: {
|
|
5763
|
+
query?: never;
|
|
5764
|
+
header?: never;
|
|
5765
|
+
path?: never;
|
|
5766
|
+
cookie?: never;
|
|
5767
|
+
};
|
|
5768
|
+
requestBody?: never;
|
|
5769
|
+
responses: {
|
|
5770
|
+
/** @description Logo resynced */
|
|
5771
|
+
200: {
|
|
5772
|
+
headers: {
|
|
5773
|
+
[name: string]: unknown;
|
|
5774
|
+
};
|
|
5775
|
+
content: {
|
|
5776
|
+
"application/json": components["schemas"]["ResyncSlackLogoResponse"];
|
|
5777
|
+
};
|
|
5778
|
+
};
|
|
5779
|
+
/** @description Slack not connected */
|
|
5780
|
+
400: {
|
|
5781
|
+
headers: {
|
|
5782
|
+
[name: string]: unknown;
|
|
5783
|
+
};
|
|
5784
|
+
content: {
|
|
5785
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5786
|
+
};
|
|
5787
|
+
};
|
|
5788
|
+
/** @description Not authenticated */
|
|
5789
|
+
401: {
|
|
5790
|
+
headers: {
|
|
5791
|
+
[name: string]: unknown;
|
|
5792
|
+
};
|
|
5793
|
+
content: {
|
|
5794
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5795
|
+
};
|
|
5796
|
+
};
|
|
5797
|
+
/** @description No org.view_workspace capability */
|
|
5798
|
+
403: {
|
|
5799
|
+
headers: {
|
|
5800
|
+
[name: string]: unknown;
|
|
5801
|
+
};
|
|
5802
|
+
content: {
|
|
5803
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5804
|
+
};
|
|
5805
|
+
};
|
|
5806
|
+
/** @description Rate limit exceeded */
|
|
5807
|
+
429: {
|
|
5808
|
+
headers: {
|
|
5809
|
+
[name: string]: unknown;
|
|
5810
|
+
};
|
|
5811
|
+
content: {
|
|
5812
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5813
|
+
};
|
|
5814
|
+
};
|
|
5815
|
+
};
|
|
5816
|
+
};
|
|
5817
|
+
resolveWorkspacePath: {
|
|
5818
|
+
parameters: {
|
|
5819
|
+
query?: never;
|
|
5820
|
+
header?: never;
|
|
5821
|
+
path?: never;
|
|
5822
|
+
cookie?: never;
|
|
5823
|
+
};
|
|
5824
|
+
requestBody: {
|
|
5825
|
+
content: {
|
|
5826
|
+
"application/json": {
|
|
5827
|
+
/** @description Flat tokenized segments, e.g. ["dept", "engineering", "team", "front-end"] */
|
|
5828
|
+
path: string[];
|
|
5829
|
+
};
|
|
5830
|
+
};
|
|
5831
|
+
};
|
|
5832
|
+
responses: {
|
|
5833
|
+
/** @description Resolved layers */
|
|
5834
|
+
200: {
|
|
5835
|
+
headers: {
|
|
5836
|
+
[name: string]: unknown;
|
|
5837
|
+
};
|
|
5838
|
+
content: {
|
|
5839
|
+
"application/json": {
|
|
5840
|
+
layers: components["schemas"]["ResolvedLayer"][];
|
|
5841
|
+
};
|
|
5842
|
+
};
|
|
5843
|
+
};
|
|
5844
|
+
/** @description Invalid segment grammar */
|
|
5845
|
+
400: {
|
|
5846
|
+
headers: {
|
|
5847
|
+
[name: string]: unknown;
|
|
5848
|
+
};
|
|
5849
|
+
content: {
|
|
5850
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5851
|
+
};
|
|
5852
|
+
};
|
|
5853
|
+
/** @description Not authenticated */
|
|
5854
|
+
401: {
|
|
5855
|
+
headers: {
|
|
5856
|
+
[name: string]: unknown;
|
|
5857
|
+
};
|
|
5858
|
+
content: {
|
|
5859
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5860
|
+
};
|
|
5861
|
+
};
|
|
5862
|
+
/** @description No org.view_workspace capability */
|
|
5863
|
+
403: {
|
|
5864
|
+
headers: {
|
|
5865
|
+
[name: string]: unknown;
|
|
5866
|
+
};
|
|
5867
|
+
content: {
|
|
5868
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5869
|
+
};
|
|
5870
|
+
};
|
|
5871
|
+
/** @description Entity slug not found */
|
|
5872
|
+
404: {
|
|
5873
|
+
headers: {
|
|
5874
|
+
[name: string]: unknown;
|
|
5875
|
+
};
|
|
5876
|
+
content: {
|
|
5877
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5878
|
+
};
|
|
5879
|
+
};
|
|
5880
|
+
};
|
|
5881
|
+
};
|
|
5197
5882
|
listAccountSessions: {
|
|
5198
5883
|
parameters: {
|
|
5199
5884
|
query?: never;
|
|
@@ -5513,7 +6198,12 @@ export interface operations {
|
|
|
5513
6198
|
};
|
|
5514
6199
|
listChats: {
|
|
5515
6200
|
parameters: {
|
|
5516
|
-
query?:
|
|
6201
|
+
query?: {
|
|
6202
|
+
search?: string;
|
|
6203
|
+
limit?: number;
|
|
6204
|
+
offset?: number;
|
|
6205
|
+
includePinned?: boolean;
|
|
6206
|
+
};
|
|
5517
6207
|
header?: never;
|
|
5518
6208
|
path?: never;
|
|
5519
6209
|
cookie?: never;
|
|
@@ -23,9 +23,12 @@ export const openApiRoutes = {
|
|
|
23
23
|
'/api/drive/files/recent': ['GET'],
|
|
24
24
|
'/api/drive/files/{fileId}/content': ['GET'],
|
|
25
25
|
'/api/executions': ['GET', 'POST'],
|
|
26
|
+
'/api/executions/{executionId}/confirm': ['POST'],
|
|
26
27
|
'/api/executions/{executionId}/explanation': ['GET'],
|
|
28
|
+
'/api/executions/{executionId}/reject': ['POST'],
|
|
27
29
|
'/api/executions/{executionId}/summary': ['GET'],
|
|
28
30
|
'/api/executions/{executionId}/timeline': ['GET'],
|
|
31
|
+
'/api/executions/{executionId}/undo': ['POST'],
|
|
29
32
|
'/api/goals/docs/{slug}': ['GET'],
|
|
30
33
|
'/api/goals/docs/{slug}/content': ['PUT'],
|
|
31
34
|
'/api/goals/docs/{slug}/sharing': ['GET'],
|
|
@@ -40,6 +43,8 @@ export const openApiRoutes = {
|
|
|
40
43
|
'/api/org/cancel-deletion': ['POST'],
|
|
41
44
|
'/api/org/delete': ['POST'],
|
|
42
45
|
'/api/org/deletion-eligibility': ['GET'],
|
|
46
|
+
'/api/org/system-events': ['GET'],
|
|
47
|
+
'/api/org/system-events/{id}/acknowledge': ['POST'],
|
|
43
48
|
'/api/org/transfer-eligibility': ['GET'],
|
|
44
49
|
'/api/org/transfer-ownership': ['DELETE', 'POST'],
|
|
45
50
|
'/api/org/transfer-ownership/accept': ['POST'],
|
|
@@ -59,7 +64,10 @@ export const openApiRoutes = {
|
|
|
59
64
|
'/api/user/active-org': ['POST'],
|
|
60
65
|
'/api/user/orgs': ['GET'],
|
|
61
66
|
'/api/user/orgs/{orgId}/leave': ['POST'],
|
|
67
|
+
'/api/user/preferences/dismissed-banners': ['GET'],
|
|
68
|
+
'/api/user/preferences/dismissed-banners/{bannerId}': ['POST'],
|
|
62
69
|
'/api/user/profile': ['PATCH'],
|
|
70
|
+
'/api/user/resync-slack-avatar': ['POST'],
|
|
63
71
|
'/api/workspace': ['GET'],
|
|
64
72
|
'/api/workspace/access': ['GET'],
|
|
65
73
|
'/api/workspace/audit': ['GET'],
|
|
@@ -77,6 +85,8 @@ export const openApiRoutes = {
|
|
|
77
85
|
'/api/workspace/members': ['GET'],
|
|
78
86
|
'/api/workspace/members/{id}': ['DELETE'],
|
|
79
87
|
'/api/workspace/members/{id}/role': ['PATCH'],
|
|
88
|
+
'/api/workspace/resolve-path': ['POST'],
|
|
89
|
+
'/api/workspace/resync-slack-logo': ['POST'],
|
|
80
90
|
'/auth/logout': ['POST'],
|
|
81
91
|
'/auth/me': ['GET'],
|
|
82
92
|
'/auth/sso/callback': ['GET', 'POST'],
|
|
@@ -85,6 +95,7 @@ export const openApiRoutes = {
|
|
|
85
95
|
'/auth/verify': ['POST'],
|
|
86
96
|
'/connect/{provider}': ['GET'],
|
|
87
97
|
'/healthz': ['GET'],
|
|
98
|
+
'/healthz/details': ['GET'],
|
|
88
99
|
'/oauth/{provider}/callback': ['GET'],
|
|
89
100
|
} as const;
|
|
90
101
|
|