@company-semantics/contracts 2.6.0 → 2.8.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": "2.6.0",
3
+ "version": "2.8.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 = '3b3621a12672' as const;
3
- export const SPEC_HASH_FULL = '3b3621a12672d03e48dad9007c700d26cadac5e1835ca7b6469ffd59366faa8e' as const;
2
+ export const SPEC_HASH = '5639583592f3' as const;
3
+ export const SPEC_HASH_FULL = '5639583592f37a84aa028b360d1cda28ec19a2e6bd82f053276349e646ec6809' as const;
@@ -1730,6 +1730,74 @@ export interface paths {
1730
1730
  patch: operations["updateOrgUnitDelegationScopes"];
1731
1731
  trace?: never;
1732
1732
  };
1733
+ "/api/orgs/{orgId}/admins": {
1734
+ parameters: {
1735
+ query?: never;
1736
+ header?: never;
1737
+ path?: never;
1738
+ cookie?: never;
1739
+ };
1740
+ get?: never;
1741
+ put?: never;
1742
+ /** Grant org-admin authority to a user */
1743
+ post: operations["grantOrgAdmin"];
1744
+ delete?: never;
1745
+ options?: never;
1746
+ head?: never;
1747
+ patch?: never;
1748
+ trace?: never;
1749
+ };
1750
+ "/api/orgs/{orgId}/admins/{userId}": {
1751
+ parameters: {
1752
+ query?: never;
1753
+ header?: never;
1754
+ path?: never;
1755
+ cookie?: never;
1756
+ };
1757
+ get?: never;
1758
+ put?: never;
1759
+ post?: never;
1760
+ /** Revoke org-admin authority from a user */
1761
+ delete: operations["revokeOrgAdmin"];
1762
+ options?: never;
1763
+ head?: never;
1764
+ patch?: never;
1765
+ trace?: never;
1766
+ };
1767
+ "/api/org-units/{unitId}/structural-leaders": {
1768
+ parameters: {
1769
+ query?: never;
1770
+ header?: never;
1771
+ path?: never;
1772
+ cookie?: never;
1773
+ };
1774
+ get?: never;
1775
+ put?: never;
1776
+ /** Assign a user as structural leader of an org unit */
1777
+ post: operations["assignOrgUnitStructuralLeader"];
1778
+ delete?: never;
1779
+ options?: never;
1780
+ head?: never;
1781
+ patch?: never;
1782
+ trace?: never;
1783
+ };
1784
+ "/api/org-units/{unitId}/structural-leaders/{userId}": {
1785
+ parameters: {
1786
+ query?: never;
1787
+ header?: never;
1788
+ path?: never;
1789
+ cookie?: never;
1790
+ };
1791
+ get?: never;
1792
+ put?: never;
1793
+ post?: never;
1794
+ /** Remove a user as structural leader of an org unit */
1795
+ delete: operations["removeOrgUnitStructuralLeader"];
1796
+ options?: never;
1797
+ head?: never;
1798
+ patch?: never;
1799
+ trace?: never;
1800
+ };
1733
1801
  "/api/org-units/{unitId}/memberships": {
1734
1802
  parameters: {
1735
1803
  query?: never;
@@ -2194,6 +2262,57 @@ export interface paths {
2194
2262
  patch?: never;
2195
2263
  trace?: never;
2196
2264
  };
2265
+ "/api/me/meetings/recordings/start": {
2266
+ parameters: {
2267
+ query?: never;
2268
+ header?: never;
2269
+ path?: never;
2270
+ cookie?: never;
2271
+ };
2272
+ get?: never;
2273
+ put?: never;
2274
+ /** Start a recording: create draft rows and mint a transcription grant */
2275
+ post: operations["startMeetingRecording"];
2276
+ delete?: never;
2277
+ options?: never;
2278
+ head?: never;
2279
+ patch?: never;
2280
+ trace?: never;
2281
+ };
2282
+ "/api/me/meetings/recordings/{id}/events": {
2283
+ parameters: {
2284
+ query?: never;
2285
+ header?: never;
2286
+ path?: never;
2287
+ cookie?: never;
2288
+ };
2289
+ get?: never;
2290
+ put?: never;
2291
+ /** Apply a batch of recording events (v1 envelope) */
2292
+ post: operations["appendMeetingRecordingEvents"];
2293
+ delete?: never;
2294
+ options?: never;
2295
+ head?: never;
2296
+ patch?: never;
2297
+ trace?: never;
2298
+ };
2299
+ "/api/me/meetings/recordings/{id}/complete": {
2300
+ parameters: {
2301
+ query?: never;
2302
+ header?: never;
2303
+ path?: never;
2304
+ cookie?: never;
2305
+ };
2306
+ get?: never;
2307
+ put?: never;
2308
+ /** Finalize (or cancel) a recording; idempotent on checksum */
2309
+ post: operations["completeMeetingRecording"];
2310
+ delete?: never;
2311
+ options?: never;
2312
+ head?: never;
2313
+ patch?: never;
2314
+ trace?: never;
2315
+ };
2197
2316
  "/api/internal-admin/impersonate/start": {
2198
2317
  parameters: {
2199
2318
  query?: never;
@@ -3592,6 +3711,40 @@ export interface components {
3592
3711
  note: string | null;
3593
3712
  scopes: ("doc.edit" | "doc.acl" | "members.manage")[];
3594
3713
  };
3714
+ OrgAdminGrantResponse: {
3715
+ /** Format: uuid */
3716
+ id: string;
3717
+ /** Format: uuid */
3718
+ orgId: string;
3719
+ /** Format: uuid */
3720
+ orgUnitId: string;
3721
+ /** Format: uuid */
3722
+ userId: string;
3723
+ /** @enum {string} */
3724
+ mechanism: "structural" | "rbac";
3725
+ /** Format: uuid */
3726
+ grantedByUserId: string;
3727
+ grantedAt: string;
3728
+ revokedAt: string | null;
3729
+ reason: string | null;
3730
+ };
3731
+ StructuralLeaderAssignResponse: {
3732
+ /** Format: uuid */
3733
+ id: string;
3734
+ /** Format: uuid */
3735
+ orgId: string;
3736
+ /** Format: uuid */
3737
+ orgUnitId: string;
3738
+ /** Format: uuid */
3739
+ userId: string;
3740
+ /** @enum {string} */
3741
+ mechanism: "structural" | "rbac";
3742
+ /** Format: uuid */
3743
+ grantedByUserId: string;
3744
+ grantedAt: string;
3745
+ revokedAt: string | null;
3746
+ reason: string | null;
3747
+ };
3595
3748
  OrgUnitMembershipListResponse: {
3596
3749
  /** Format: uuid */
3597
3750
  unitId: string;
@@ -3802,6 +3955,119 @@ export interface components {
3802
3955
  UpdateWorkItemTitleRequest: {
3803
3956
  title: string;
3804
3957
  };
3958
+ /** @description Recording + work_item ids and the transcription session grant. */
3959
+ StartMeetingRecordingResponse: {
3960
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
3961
+ recordingId: string;
3962
+ /** Format: uuid */
3963
+ workItemId: string;
3964
+ /** @description Provider-agnostic grant the mac shell consumes. Mac never sees provider name (INV-MTG-15). */
3965
+ grant: {
3966
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
3967
+ sessionId: string;
3968
+ /** Format: uri */
3969
+ connectUrl: string;
3970
+ authHeaders: {
3971
+ [key: string]: string;
3972
+ };
3973
+ /** Format: date-time */
3974
+ expiresAt: string;
3975
+ audioConfig: {
3976
+ /** @constant */
3977
+ sampleRateHz: 16000;
3978
+ /** @constant */
3979
+ channels: 2;
3980
+ /** @constant */
3981
+ encoding: "linear16";
3982
+ /** @constant */
3983
+ chunkMs: 200;
3984
+ };
3985
+ capabilities: {
3986
+ interimResults: boolean;
3987
+ multichannelDiarization: boolean;
3988
+ reconnectionTokens: boolean;
3989
+ };
3990
+ };
3991
+ };
3992
+ /** @description Start a recording: create draft rows and mint a grant. */
3993
+ StartMeetingRecordingRequest: {
3994
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
3995
+ clientRecordingId: string;
3996
+ /**
3997
+ * @description Auto-detected meeting app that owns the system audio stream.
3998
+ * @enum {string}
3999
+ */
4000
+ detectedApp: "zoom" | "teams" | "meet-browser" | "slack-huddle" | "manual";
4001
+ };
4002
+ /** @description Result of applying an event batch. */
4003
+ AppendMeetingRecordingEventsResponse: {
4004
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4005
+ recordingId: string;
4006
+ status: string;
4007
+ chunksAccepted: number;
4008
+ };
4009
+ /** @description A batch of recording events (v1 envelope). */
4010
+ AppendMeetingRecordingEventsRequest: {
4011
+ eventSchemaVersion: number;
4012
+ events: ({
4013
+ /** @constant */
4014
+ kind: "session_opened";
4015
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4016
+ recordingId: string;
4017
+ atMs: number;
4018
+ } | {
4019
+ /** @constant */
4020
+ kind: "chunk_batch";
4021
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4022
+ recordingId: string;
4023
+ chunks: {
4024
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4025
+ recordingId: string;
4026
+ /**
4027
+ * @description Capture stream identity. Mic = channel 0, system audio = channel 1.
4028
+ * @enum {string}
4029
+ */
4030
+ source: "mic" | "system";
4031
+ sequence: number;
4032
+ startedAtMs: number;
4033
+ endedAtMs: number;
4034
+ text: string;
4035
+ final: boolean;
4036
+ speakerLabel?: string | null;
4037
+ confidence?: number;
4038
+ }[];
4039
+ } | {
4040
+ /** @constant */
4041
+ kind: "quality_degraded";
4042
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4043
+ recordingId: string;
4044
+ reason: string;
4045
+ atMs: number;
4046
+ } | {
4047
+ /** @constant */
4048
+ kind: "session_stopped";
4049
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4050
+ recordingId: string;
4051
+ atMs: number;
4052
+ expectedLastSequence: number;
4053
+ })[];
4054
+ };
4055
+ /** @description Result of finalizing or cancelling a recording. */
4056
+ CompleteMeetingRecordingResponse: {
4057
+ /** @description ULID; unified trace key for the recording (INV-MTG-7). */
4058
+ recordingId: string;
4059
+ status: string;
4060
+ workItemId: string | null;
4061
+ transcriptDocumentId: string | null;
4062
+ idempotent: boolean;
4063
+ };
4064
+ /** @description Finalize (or cancel) a recording. Idempotent on checksum. */
4065
+ CompleteMeetingRecordingRequest: {
4066
+ expectedLastSequence: number;
4067
+ totalDurationMs: number;
4068
+ checksum: string;
4069
+ cancelled?: boolean;
4070
+ };
3805
4071
  ImpersonationSessionResponse: {
3806
4072
  session: {
3807
4073
  impersonationSessionId: string;
@@ -6603,6 +6869,108 @@ export interface operations {
6603
6869
  };
6604
6870
  };
6605
6871
  };
6872
+ grantOrgAdmin: {
6873
+ parameters: {
6874
+ query?: never;
6875
+ header?: never;
6876
+ path: {
6877
+ orgId: string;
6878
+ };
6879
+ cookie?: never;
6880
+ };
6881
+ requestBody: {
6882
+ content: {
6883
+ "application/json": {
6884
+ /** Format: uuid */
6885
+ userId: string;
6886
+ reason?: string;
6887
+ };
6888
+ };
6889
+ };
6890
+ responses: {
6891
+ /** @description Created authority overlay row */
6892
+ 201: {
6893
+ headers: {
6894
+ [name: string]: unknown;
6895
+ };
6896
+ content: {
6897
+ "application/json": components["schemas"]["OrgAdminGrantResponse"];
6898
+ };
6899
+ };
6900
+ };
6901
+ };
6902
+ revokeOrgAdmin: {
6903
+ parameters: {
6904
+ query?: never;
6905
+ header?: never;
6906
+ path: {
6907
+ orgId: string;
6908
+ userId: string;
6909
+ };
6910
+ cookie?: never;
6911
+ };
6912
+ requestBody?: never;
6913
+ responses: {
6914
+ /** @description Authority revoked */
6915
+ 204: {
6916
+ headers: {
6917
+ [name: string]: unknown;
6918
+ };
6919
+ content?: never;
6920
+ };
6921
+ };
6922
+ };
6923
+ assignOrgUnitStructuralLeader: {
6924
+ parameters: {
6925
+ query?: never;
6926
+ header?: never;
6927
+ path: {
6928
+ unitId: string;
6929
+ };
6930
+ cookie?: never;
6931
+ };
6932
+ requestBody: {
6933
+ content: {
6934
+ "application/json": {
6935
+ /** Format: uuid */
6936
+ userId: string;
6937
+ reason?: string;
6938
+ };
6939
+ };
6940
+ };
6941
+ responses: {
6942
+ /** @description Created structural-leader overlay row */
6943
+ 201: {
6944
+ headers: {
6945
+ [name: string]: unknown;
6946
+ };
6947
+ content: {
6948
+ "application/json": components["schemas"]["StructuralLeaderAssignResponse"];
6949
+ };
6950
+ };
6951
+ };
6952
+ };
6953
+ removeOrgUnitStructuralLeader: {
6954
+ parameters: {
6955
+ query?: never;
6956
+ header?: never;
6957
+ path: {
6958
+ unitId: string;
6959
+ userId: string;
6960
+ };
6961
+ cookie?: never;
6962
+ };
6963
+ requestBody?: never;
6964
+ responses: {
6965
+ /** @description Structural-leader authority revoked */
6966
+ 204: {
6967
+ headers: {
6968
+ [name: string]: unknown;
6969
+ };
6970
+ content?: never;
6971
+ };
6972
+ };
6973
+ };
6606
6974
  listOrgUnitMemberships: {
6607
6975
  parameters: {
6608
6976
  query?: never;
@@ -7283,6 +7651,138 @@ export interface operations {
7283
7651
  };
7284
7652
  };
7285
7653
  };
7654
+ startMeetingRecording: {
7655
+ parameters: {
7656
+ query?: never;
7657
+ header?: never;
7658
+ path?: never;
7659
+ cookie?: never;
7660
+ };
7661
+ requestBody: {
7662
+ content: {
7663
+ "application/json": components["schemas"]["StartMeetingRecordingRequest"];
7664
+ };
7665
+ };
7666
+ responses: {
7667
+ /** @description Recording + work_item ids and the provider-agnostic grant */
7668
+ 200: {
7669
+ headers: {
7670
+ [name: string]: unknown;
7671
+ };
7672
+ content: {
7673
+ "application/json": components["schemas"]["StartMeetingRecordingResponse"];
7674
+ };
7675
+ };
7676
+ /** @description A recording is already in progress for this user */
7677
+ 409: {
7678
+ headers: {
7679
+ [name: string]: unknown;
7680
+ };
7681
+ content?: never;
7682
+ };
7683
+ /** @description Rate limit exceeded (10 starts/user/hour) */
7684
+ 429: {
7685
+ headers: {
7686
+ [name: string]: unknown;
7687
+ };
7688
+ content?: never;
7689
+ };
7690
+ /** @description Transcription provider unavailable */
7691
+ 503: {
7692
+ headers: {
7693
+ [name: string]: unknown;
7694
+ };
7695
+ content?: never;
7696
+ };
7697
+ };
7698
+ };
7699
+ appendMeetingRecordingEvents: {
7700
+ parameters: {
7701
+ query?: never;
7702
+ header?: never;
7703
+ path: {
7704
+ id: string;
7705
+ };
7706
+ cookie?: never;
7707
+ };
7708
+ requestBody: {
7709
+ content: {
7710
+ "application/json": components["schemas"]["AppendMeetingRecordingEventsRequest"];
7711
+ };
7712
+ };
7713
+ responses: {
7714
+ /** @description Event batch applied */
7715
+ 200: {
7716
+ headers: {
7717
+ [name: string]: unknown;
7718
+ };
7719
+ content: {
7720
+ "application/json": components["schemas"]["AppendMeetingRecordingEventsResponse"];
7721
+ };
7722
+ };
7723
+ /** @description Unknown eventSchemaVersion */
7724
+ 400: {
7725
+ headers: {
7726
+ [name: string]: unknown;
7727
+ };
7728
+ content?: never;
7729
+ };
7730
+ /** @description Recording not found or not owned by this user */
7731
+ 404: {
7732
+ headers: {
7733
+ [name: string]: unknown;
7734
+ };
7735
+ content?: never;
7736
+ };
7737
+ /** @description Illegal state transition */
7738
+ 409: {
7739
+ headers: {
7740
+ [name: string]: unknown;
7741
+ };
7742
+ content?: never;
7743
+ };
7744
+ };
7745
+ };
7746
+ completeMeetingRecording: {
7747
+ parameters: {
7748
+ query?: never;
7749
+ header?: never;
7750
+ path: {
7751
+ id: string;
7752
+ };
7753
+ cookie?: never;
7754
+ };
7755
+ requestBody: {
7756
+ content: {
7757
+ "application/json": components["schemas"]["CompleteMeetingRecordingRequest"];
7758
+ };
7759
+ };
7760
+ responses: {
7761
+ /** @description Recording finalized or cancelled */
7762
+ 200: {
7763
+ headers: {
7764
+ [name: string]: unknown;
7765
+ };
7766
+ content: {
7767
+ "application/json": components["schemas"]["CompleteMeetingRecordingResponse"];
7768
+ };
7769
+ };
7770
+ /** @description Recording not found or not owned by this user */
7771
+ 404: {
7772
+ headers: {
7773
+ [name: string]: unknown;
7774
+ };
7775
+ content?: never;
7776
+ };
7777
+ /** @description Conflicting checksum on an already-finalized recording */
7778
+ 409: {
7779
+ headers: {
7780
+ [name: string]: unknown;
7781
+ };
7782
+ content?: never;
7783
+ };
7784
+ };
7785
+ };
7286
7786
  startImpersonation: {
7287
7787
  parameters: {
7288
7788
  query?: never;