@company-semantics/contracts 12.0.1 → 12.2.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": "12.0.1",
3
+ "version": "12.2.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED — do not edit. Run pnpm generate:spec-hash to regenerate.
2
- export const SPEC_HASH = '8d48325678a4' as const;
3
- export const SPEC_HASH_FULL = '8d48325678a4837e0921b96c4c80fd3fe898dbd26cabb48483e9a5f3f7f9e488' as const;
2
+ export const SPEC_HASH = '256c847768b8' as const;
3
+ export const SPEC_HASH_FULL = '256c847768b815079ad97a8b75438b3e3162e1caa223c7d8a97ac33285316192' as const;
@@ -718,6 +718,24 @@ export interface paths {
718
718
  patch: operations["changeMemberRole"];
719
719
  trace?: never;
720
720
  };
721
+ "/api/workspace/members/{id}/manager": {
722
+ parameters: {
723
+ query?: never;
724
+ header?: never;
725
+ path?: never;
726
+ cookie?: never;
727
+ };
728
+ get?: never;
729
+ put?: never;
730
+ post?: never;
731
+ /** Clear a member's solid-line manager (org-chart reporting edge) */
732
+ delete: operations["clearMemberManager"];
733
+ options?: never;
734
+ head?: never;
735
+ /** Set a member's solid-line manager (org-chart reporting edge) */
736
+ patch: operations["setMemberManager"];
737
+ trace?: never;
738
+ };
721
739
  "/api/rbac/roles": {
722
740
  parameters: {
723
741
  query?: never;
@@ -1453,6 +1471,57 @@ export interface paths {
1453
1471
  patch?: never;
1454
1472
  trace?: never;
1455
1473
  };
1474
+ "/api/company-md/docs/{slug}/transfer-owner": {
1475
+ parameters: {
1476
+ query?: never;
1477
+ header?: never;
1478
+ path?: never;
1479
+ cookie?: never;
1480
+ };
1481
+ get?: never;
1482
+ put?: never;
1483
+ /** Admin: reassign a company.md document owner */
1484
+ post: operations["transferCompanyMdDocOwner"];
1485
+ delete?: never;
1486
+ options?: never;
1487
+ head?: never;
1488
+ patch?: never;
1489
+ trace?: never;
1490
+ };
1491
+ "/api/company-md/ownership/reassign": {
1492
+ parameters: {
1493
+ query?: never;
1494
+ header?: never;
1495
+ path?: never;
1496
+ cookie?: never;
1497
+ };
1498
+ get?: never;
1499
+ put?: never;
1500
+ /** Admin: reassign every company.md document from one owner to another */
1501
+ post: operations["bulkReassignCompanyMdOwnership"];
1502
+ delete?: never;
1503
+ options?: never;
1504
+ head?: never;
1505
+ patch?: never;
1506
+ trace?: never;
1507
+ };
1508
+ "/api/company-md/ownership/reassign/suggestion": {
1509
+ parameters: {
1510
+ query?: never;
1511
+ header?: never;
1512
+ path?: never;
1513
+ cookie?: never;
1514
+ };
1515
+ /** Admin: suggest a default reassign recipient and list owned docs */
1516
+ get: operations["getCompanyMdOwnershipSuggestion"];
1517
+ put?: never;
1518
+ post?: never;
1519
+ delete?: never;
1520
+ options?: never;
1521
+ head?: never;
1522
+ patch?: never;
1523
+ trace?: never;
1524
+ };
1456
1525
  "/api/company-md/search": {
1457
1526
  parameters: {
1458
1527
  query?: never;
@@ -3439,6 +3508,17 @@ export interface components {
3439
3508
  /** @enum {string} */
3440
3509
  newRole: "admin" | "member";
3441
3510
  };
3511
+ SetMemberManagerResponse: {
3512
+ success: boolean;
3513
+ memberId: string;
3514
+ managerUserId: string | null;
3515
+ relationshipType: string;
3516
+ message: string;
3517
+ };
3518
+ SetMemberManagerRequest: {
3519
+ /** Format: uuid */
3520
+ managerUserId: string;
3521
+ };
3442
3522
  RoleCatalogResponse: {
3443
3523
  roles: {
3444
3524
  name: string;
@@ -3846,6 +3926,16 @@ export interface components {
3846
3926
  AssociateContextDocRequest: {
3847
3927
  contextDocSlug: string;
3848
3928
  };
3929
+ TransferCompanyMdDocOwnerRequest: {
3930
+ /** Format: uuid */
3931
+ newOwnerUserId: string;
3932
+ };
3933
+ BulkReassignCompanyMdOwnershipRequest: {
3934
+ /** Format: uuid */
3935
+ fromUserId: string;
3936
+ /** Format: uuid */
3937
+ toUserId: string;
3938
+ };
3849
3939
  /** @description Ranked retrieval hits plus the source kinds actually searched. */
3850
3940
  CompanyMdSearchResponse: {
3851
3941
  hits: {
@@ -6102,6 +6192,54 @@ export interface operations {
6102
6192
  };
6103
6193
  };
6104
6194
  };
6195
+ clearMemberManager: {
6196
+ parameters: {
6197
+ query?: never;
6198
+ header?: never;
6199
+ path: {
6200
+ id: string;
6201
+ };
6202
+ cookie?: never;
6203
+ };
6204
+ requestBody?: never;
6205
+ responses: {
6206
+ /** @description Manager cleared successfully */
6207
+ 200: {
6208
+ headers: {
6209
+ [name: string]: unknown;
6210
+ };
6211
+ content: {
6212
+ "application/json": components["schemas"]["SetMemberManagerResponse"];
6213
+ };
6214
+ };
6215
+ };
6216
+ };
6217
+ setMemberManager: {
6218
+ parameters: {
6219
+ query?: never;
6220
+ header?: never;
6221
+ path: {
6222
+ id: string;
6223
+ };
6224
+ cookie?: never;
6225
+ };
6226
+ requestBody: {
6227
+ content: {
6228
+ "application/json": components["schemas"]["SetMemberManagerRequest"];
6229
+ };
6230
+ };
6231
+ responses: {
6232
+ /** @description Manager set successfully */
6233
+ 200: {
6234
+ headers: {
6235
+ [name: string]: unknown;
6236
+ };
6237
+ content: {
6238
+ "application/json": components["schemas"]["SetMemberManagerResponse"];
6239
+ };
6240
+ };
6241
+ };
6242
+ };
6105
6243
  getRbacRoles: {
6106
6244
  parameters: {
6107
6245
  query?: never;
@@ -7160,6 +7298,86 @@ export interface operations {
7160
7298
  };
7161
7299
  };
7162
7300
  };
7301
+ transferCompanyMdDocOwner: {
7302
+ parameters: {
7303
+ query?: never;
7304
+ header?: never;
7305
+ path: {
7306
+ slug: string;
7307
+ };
7308
+ cookie?: never;
7309
+ };
7310
+ requestBody: {
7311
+ content: {
7312
+ "application/json": components["schemas"]["TransferCompanyMdDocOwnerRequest"];
7313
+ };
7314
+ };
7315
+ responses: {
7316
+ /** @description Owner reassigned */
7317
+ 200: {
7318
+ headers: {
7319
+ [name: string]: unknown;
7320
+ };
7321
+ content?: never;
7322
+ };
7323
+ /** @description Document not found */
7324
+ 404: {
7325
+ headers: {
7326
+ [name: string]: unknown;
7327
+ };
7328
+ content?: never;
7329
+ };
7330
+ };
7331
+ };
7332
+ bulkReassignCompanyMdOwnership: {
7333
+ parameters: {
7334
+ query?: never;
7335
+ header?: never;
7336
+ path?: never;
7337
+ cookie?: never;
7338
+ };
7339
+ requestBody: {
7340
+ content: {
7341
+ "application/json": components["schemas"]["BulkReassignCompanyMdOwnershipRequest"];
7342
+ };
7343
+ };
7344
+ responses: {
7345
+ /** @description Bulk reassignment complete */
7346
+ 200: {
7347
+ headers: {
7348
+ [name: string]: unknown;
7349
+ };
7350
+ content?: never;
7351
+ };
7352
+ /** @description Recipient is not an active member */
7353
+ 400: {
7354
+ headers: {
7355
+ [name: string]: unknown;
7356
+ };
7357
+ content?: never;
7358
+ };
7359
+ };
7360
+ };
7361
+ getCompanyMdOwnershipSuggestion: {
7362
+ parameters: {
7363
+ query: {
7364
+ fromUserId: string;
7365
+ };
7366
+ header?: never;
7367
+ path?: never;
7368
+ cookie?: never;
7369
+ };
7370
+ requestBody?: never;
7371
+ responses: {
7372
+ /** @description Suggested recipient and owned-doc metadata */
7373
+ 200: {
7374
+ headers: {
7375
+ [name: string]: unknown;
7376
+ };
7377
+ content?: never;
7378
+ };
7379
+ };
7380
+ };
7163
7381
  searchCompanyMd: {
7164
7382
  parameters: {
7165
7383
  query?: never;
@@ -34,7 +34,10 @@ export const openApiRoutes = {
34
34
  '/api/company-md/docs/{slug}/sharing/acl/{aclId}': ['DELETE', 'PUT'],
35
35
  '/api/company-md/docs/{slug}/sharing/policy': ['PUT'],
36
36
  '/api/company-md/docs/{slug}/title': ['PUT'],
37
+ '/api/company-md/docs/{slug}/transfer-owner': ['POST'],
37
38
  '/api/company-md/extract': ['POST'],
39
+ '/api/company-md/ownership/reassign': ['POST'],
40
+ '/api/company-md/ownership/reassign/suggestion': ['GET'],
38
41
  '/api/company-md/search': ['POST'],
39
42
  '/api/company-md/tree': ['GET'],
40
43
  '/api/drive/files': ['GET'],
package/src/org/index.ts CHANGED
@@ -143,6 +143,7 @@ export {
143
143
  TestSsoResultSchema,
144
144
  RemoveMemberResponseSchema,
145
145
  ChangeMemberRoleResponseSchema,
146
+ SetMemberManagerResponseSchema,
146
147
  UserOrgsResponseSchema,
147
148
  SetActiveOrgResponseSchema,
148
149
  LeaveOrgResponseSchema,
@@ -165,6 +166,7 @@ export type {
165
166
  TestSsoResult as TestSsoResultDto,
166
167
  RemoveMemberResponse,
167
168
  ChangeMemberRoleResponse,
169
+ SetMemberManagerResponse,
168
170
  UserOrgsResponse,
169
171
  SetActiveOrgResponse,
170
172
  LeaveOrgResponse,
@@ -444,6 +444,31 @@ export type ChangeMemberRoleResponse = z.infer<
444
444
  typeof ChangeMemberRoleResponseSchema
445
445
  >;
446
446
 
447
+ // ---------------------------------------------------------------------------
448
+ // PATCH/DELETE /api/workspace/members/:id/manager
449
+ // ---------------------------------------------------------------------------
450
+
451
+ /**
452
+ * Response for setting (PATCH) or clearing (DELETE) a member's solid-line
453
+ * manager — the person-to-person reporting edge (`user_reporting`) that the
454
+ * org chart is built from. `managerUserId` is null after a clear.
455
+ *
456
+ * Distinct from team membership (RBAC scopes) and `primary_unit_id` (home
457
+ * unit): neither of those places a person in the reporting hierarchy.
458
+ * See ADR-BE-253.
459
+ */
460
+ export const SetMemberManagerResponseSchema = z.object({
461
+ success: z.boolean(),
462
+ memberId: z.string(),
463
+ managerUserId: z.string().nullable(),
464
+ relationshipType: z.string(),
465
+ message: z.string(),
466
+ });
467
+
468
+ export type SetMemberManagerResponse = z.infer<
469
+ typeof SetMemberManagerResponseSchema
470
+ >;
471
+
447
472
  // ---------------------------------------------------------------------------
448
473
  // GET /api/user/orgs
449
474
  // ---------------------------------------------------------------------------