@company-semantics/contracts 0.107.0 → 0.108.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@company-semantics/contracts",
3
- "version": "0.107.0",
3
+ "version": "0.108.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -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;
@@ -1156,6 +1215,50 @@ export interface paths {
1156
1215
  patch?: never;
1157
1216
  trace?: never;
1158
1217
  };
1218
+ "/api/workspace/resync-slack-logo": {
1219
+ parameters: {
1220
+ query?: never;
1221
+ header?: never;
1222
+ path?: never;
1223
+ cookie?: never;
1224
+ };
1225
+ get?: never;
1226
+ put?: never;
1227
+ /**
1228
+ * Resync workspace logo from Slack
1229
+ * @description Manually resync the workspace logo from the connected Slack workspace icon.
1230
+ * Requires org.view_workspace capability and an active Slack connection.
1231
+ */
1232
+ post: operations["resyncSlackLogo"];
1233
+ delete?: never;
1234
+ options?: never;
1235
+ head?: never;
1236
+ patch?: never;
1237
+ trace?: never;
1238
+ };
1239
+ "/api/workspace/resolve-path": {
1240
+ parameters: {
1241
+ query?: never;
1242
+ header?: never;
1243
+ path?: never;
1244
+ cookie?: never;
1245
+ };
1246
+ get?: never;
1247
+ put?: never;
1248
+ /**
1249
+ * Resolve a tokenized URL path to hydrated navigation layers
1250
+ * @description Resolves a tokenized workspace URL path to hydrated entity data.
1251
+ * Used by the frontend for cold-start deep linking and browser back/forward.
1252
+ * Path segments follow a [type, slug] pair grammar: "dept" before "team",
1253
+ * "team" requires preceding "dept", and "members" must be terminal.
1254
+ */
1255
+ post: operations["resolveWorkspacePath"];
1256
+ delete?: never;
1257
+ options?: never;
1258
+ head?: never;
1259
+ patch?: never;
1260
+ trace?: never;
1261
+ };
1159
1262
  "/api/account/sessions": {
1160
1263
  parameters: {
1161
1264
  query?: never;
@@ -1981,6 +2084,57 @@ export interface components {
1981
2084
  displayName: string;
1982
2085
  };
1983
2086
  };
2087
+ ResyncSlackLogoResponse: {
2088
+ /** @constant */
2089
+ success: true;
2090
+ logoUrl: string | null;
2091
+ };
2092
+ ResyncSlackAvatarResponse: {
2093
+ /** @constant */
2094
+ success: true;
2095
+ avatar: components["schemas"]["ResolvedAvatar"];
2096
+ };
2097
+ ResolvedAvatar: {
2098
+ /** @enum {string} */
2099
+ source: "slack" | "initials";
2100
+ /** @description Slack profile image URL (present only if source is slack) */
2101
+ url?: string;
2102
+ /** @description User initials for fallback display */
2103
+ initials: string;
2104
+ };
2105
+ ResolvedLayer: components["schemas"]["ResolvedLayerDept"] | components["schemas"]["ResolvedLayerTeam"] | components["schemas"]["ResolvedLayerMembers"];
2106
+ ResolvedLayerDept: {
2107
+ /**
2108
+ * @description discriminator enum property added by openapi-typescript
2109
+ * @enum {string}
2110
+ */
2111
+ type: "dept";
2112
+ entity: components["schemas"]["ResolvedLayerEntity"];
2113
+ };
2114
+ ResolvedLayerTeam: {
2115
+ /**
2116
+ * @description discriminator enum property added by openapi-typescript
2117
+ * @enum {string}
2118
+ */
2119
+ type: "team";
2120
+ entity: components["schemas"]["ResolvedLayerEntity"];
2121
+ };
2122
+ ResolvedLayerMembers: {
2123
+ /**
2124
+ * @description discriminator enum property added by openapi-typescript
2125
+ * @enum {string}
2126
+ */
2127
+ type: "members";
2128
+ /** @enum {string} */
2129
+ scope: "org" | "dept" | "team";
2130
+ };
2131
+ ResolvedLayerEntity: {
2132
+ /** Format: uuid */
2133
+ id: string;
2134
+ name: string;
2135
+ slug: string;
2136
+ memberCount: number;
2137
+ };
1984
2138
  UserOrgsResponse: {
1985
2139
  orgs: components["schemas"]["UserOrgMembership"][];
1986
2140
  };
@@ -3284,6 +3438,126 @@ export interface operations {
3284
3438
  };
3285
3439
  };
3286
3440
  };
3441
+ getDismissedBanners: {
3442
+ parameters: {
3443
+ query?: never;
3444
+ header?: never;
3445
+ path?: never;
3446
+ cookie?: never;
3447
+ };
3448
+ requestBody?: never;
3449
+ responses: {
3450
+ /** @description Dismissed banner IDs */
3451
+ 200: {
3452
+ headers: {
3453
+ [name: string]: unknown;
3454
+ };
3455
+ content: {
3456
+ "application/json": {
3457
+ bannerIds: string[];
3458
+ };
3459
+ };
3460
+ };
3461
+ /** @description Not authenticated */
3462
+ 401: {
3463
+ headers: {
3464
+ [name: string]: unknown;
3465
+ };
3466
+ content: {
3467
+ "application/json": components["schemas"]["ErrorResponse"];
3468
+ };
3469
+ };
3470
+ };
3471
+ };
3472
+ dismissBanner: {
3473
+ parameters: {
3474
+ query?: never;
3475
+ header?: never;
3476
+ path: {
3477
+ bannerId: string;
3478
+ };
3479
+ cookie?: never;
3480
+ };
3481
+ requestBody?: never;
3482
+ responses: {
3483
+ /** @description Banner dismissed */
3484
+ 200: {
3485
+ headers: {
3486
+ [name: string]: unknown;
3487
+ };
3488
+ content: {
3489
+ "application/json": {
3490
+ success: boolean;
3491
+ };
3492
+ };
3493
+ };
3494
+ /** @description Invalid banner ID */
3495
+ 400: {
3496
+ headers: {
3497
+ [name: string]: unknown;
3498
+ };
3499
+ content: {
3500
+ "application/json": components["schemas"]["ErrorResponse"];
3501
+ };
3502
+ };
3503
+ /** @description Not authenticated */
3504
+ 401: {
3505
+ headers: {
3506
+ [name: string]: unknown;
3507
+ };
3508
+ content: {
3509
+ "application/json": components["schemas"]["ErrorResponse"];
3510
+ };
3511
+ };
3512
+ };
3513
+ };
3514
+ resyncSlackAvatar: {
3515
+ parameters: {
3516
+ query?: never;
3517
+ header?: never;
3518
+ path?: never;
3519
+ cookie?: never;
3520
+ };
3521
+ requestBody?: never;
3522
+ responses: {
3523
+ /** @description Avatar resynced successfully */
3524
+ 200: {
3525
+ headers: {
3526
+ [name: string]: unknown;
3527
+ };
3528
+ content: {
3529
+ "application/json": components["schemas"]["ResyncSlackAvatarResponse"];
3530
+ };
3531
+ };
3532
+ /** @description Not authenticated */
3533
+ 401: {
3534
+ headers: {
3535
+ [name: string]: unknown;
3536
+ };
3537
+ content: {
3538
+ "application/json": components["schemas"]["ErrorResponse"];
3539
+ };
3540
+ };
3541
+ /** @description User not found */
3542
+ 404: {
3543
+ headers: {
3544
+ [name: string]: unknown;
3545
+ };
3546
+ content: {
3547
+ "application/json": components["schemas"]["ErrorResponse"];
3548
+ };
3549
+ };
3550
+ /** @description Rate limit exceeded */
3551
+ 429: {
3552
+ headers: {
3553
+ [name: string]: unknown;
3554
+ };
3555
+ content: {
3556
+ "application/json": components["schemas"]["ErrorResponse"];
3557
+ };
3558
+ };
3559
+ };
3560
+ };
3287
3561
  initiateOAuth: {
3288
3562
  parameters: {
3289
3563
  query?: {
@@ -5194,6 +5468,127 @@ export interface operations {
5194
5468
  };
5195
5469
  };
5196
5470
  };
5471
+ resyncSlackLogo: {
5472
+ parameters: {
5473
+ query?: never;
5474
+ header?: never;
5475
+ path?: never;
5476
+ cookie?: never;
5477
+ };
5478
+ requestBody?: never;
5479
+ responses: {
5480
+ /** @description Logo resynced */
5481
+ 200: {
5482
+ headers: {
5483
+ [name: string]: unknown;
5484
+ };
5485
+ content: {
5486
+ "application/json": components["schemas"]["ResyncSlackLogoResponse"];
5487
+ };
5488
+ };
5489
+ /** @description Slack not connected */
5490
+ 400: {
5491
+ headers: {
5492
+ [name: string]: unknown;
5493
+ };
5494
+ content: {
5495
+ "application/json": components["schemas"]["ErrorResponse"];
5496
+ };
5497
+ };
5498
+ /** @description Not authenticated */
5499
+ 401: {
5500
+ headers: {
5501
+ [name: string]: unknown;
5502
+ };
5503
+ content: {
5504
+ "application/json": components["schemas"]["ErrorResponse"];
5505
+ };
5506
+ };
5507
+ /** @description No org.view_workspace capability */
5508
+ 403: {
5509
+ headers: {
5510
+ [name: string]: unknown;
5511
+ };
5512
+ content: {
5513
+ "application/json": components["schemas"]["ErrorResponse"];
5514
+ };
5515
+ };
5516
+ /** @description Rate limit exceeded */
5517
+ 429: {
5518
+ headers: {
5519
+ [name: string]: unknown;
5520
+ };
5521
+ content: {
5522
+ "application/json": components["schemas"]["ErrorResponse"];
5523
+ };
5524
+ };
5525
+ };
5526
+ };
5527
+ resolveWorkspacePath: {
5528
+ parameters: {
5529
+ query?: never;
5530
+ header?: never;
5531
+ path?: never;
5532
+ cookie?: never;
5533
+ };
5534
+ requestBody: {
5535
+ content: {
5536
+ "application/json": {
5537
+ /** @description Flat tokenized segments, e.g. ["dept", "engineering", "team", "front-end"] */
5538
+ path: string[];
5539
+ };
5540
+ };
5541
+ };
5542
+ responses: {
5543
+ /** @description Resolved layers */
5544
+ 200: {
5545
+ headers: {
5546
+ [name: string]: unknown;
5547
+ };
5548
+ content: {
5549
+ "application/json": {
5550
+ layers: components["schemas"]["ResolvedLayer"][];
5551
+ };
5552
+ };
5553
+ };
5554
+ /** @description Invalid segment grammar */
5555
+ 400: {
5556
+ headers: {
5557
+ [name: string]: unknown;
5558
+ };
5559
+ content: {
5560
+ "application/json": components["schemas"]["ErrorResponse"];
5561
+ };
5562
+ };
5563
+ /** @description Not authenticated */
5564
+ 401: {
5565
+ headers: {
5566
+ [name: string]: unknown;
5567
+ };
5568
+ content: {
5569
+ "application/json": components["schemas"]["ErrorResponse"];
5570
+ };
5571
+ };
5572
+ /** @description No org.view_workspace capability */
5573
+ 403: {
5574
+ headers: {
5575
+ [name: string]: unknown;
5576
+ };
5577
+ content: {
5578
+ "application/json": components["schemas"]["ErrorResponse"];
5579
+ };
5580
+ };
5581
+ /** @description Entity slug not found */
5582
+ 404: {
5583
+ headers: {
5584
+ [name: string]: unknown;
5585
+ };
5586
+ content: {
5587
+ "application/json": components["schemas"]["ErrorResponse"];
5588
+ };
5589
+ };
5590
+ };
5591
+ };
5197
5592
  listAccountSessions: {
5198
5593
  parameters: {
5199
5594
  query?: never;
@@ -40,6 +40,8 @@ export const openApiRoutes = {
40
40
  '/api/org/cancel-deletion': ['POST'],
41
41
  '/api/org/delete': ['POST'],
42
42
  '/api/org/deletion-eligibility': ['GET'],
43
+ '/api/org/system-events': ['GET'],
44
+ '/api/org/system-events/{id}/acknowledge': ['POST'],
43
45
  '/api/org/transfer-eligibility': ['GET'],
44
46
  '/api/org/transfer-ownership': ['DELETE', 'POST'],
45
47
  '/api/org/transfer-ownership/accept': ['POST'],
@@ -59,7 +61,10 @@ export const openApiRoutes = {
59
61
  '/api/user/active-org': ['POST'],
60
62
  '/api/user/orgs': ['GET'],
61
63
  '/api/user/orgs/{orgId}/leave': ['POST'],
64
+ '/api/user/preferences/dismissed-banners': ['GET'],
65
+ '/api/user/preferences/dismissed-banners/{bannerId}': ['POST'],
62
66
  '/api/user/profile': ['PATCH'],
67
+ '/api/user/resync-slack-avatar': ['POST'],
63
68
  '/api/workspace': ['GET'],
64
69
  '/api/workspace/access': ['GET'],
65
70
  '/api/workspace/audit': ['GET'],
@@ -77,6 +82,8 @@ export const openApiRoutes = {
77
82
  '/api/workspace/members': ['GET'],
78
83
  '/api/workspace/members/{id}': ['DELETE'],
79
84
  '/api/workspace/members/{id}/role': ['PATCH'],
85
+ '/api/workspace/resolve-path': ['POST'],
86
+ '/api/workspace/resync-slack-logo': ['POST'],
80
87
  '/auth/logout': ['POST'],
81
88
  '/auth/me': ['GET'],
82
89
  '/auth/sso/callback': ['GET', 'POST'],
@@ -85,6 +92,7 @@ export const openApiRoutes = {
85
92
  '/auth/verify': ['POST'],
86
93
  '/connect/{provider}': ['GET'],
87
94
  '/healthz': ['GET'],
95
+ '/healthz/details': ['GET'],
88
96
  '/oauth/{provider}/callback': ['GET'],
89
97
  } as const;
90
98