@company-semantics/contracts 0.134.0 → 0.134.1

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.134.0",
3
+ "version": "0.134.1",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -714,6 +714,23 @@ export interface paths {
714
714
  patch?: never;
715
715
  trace?: never;
716
716
  };
717
+ "/api/scope/check": {
718
+ parameters: {
719
+ query?: never;
720
+ header?: never;
721
+ path?: never;
722
+ cookie?: never;
723
+ };
724
+ /** Check authorization scope for current user */
725
+ get: operations["checkScope"];
726
+ put?: never;
727
+ post?: never;
728
+ delete?: never;
729
+ options?: never;
730
+ head?: never;
731
+ patch?: never;
732
+ trace?: never;
733
+ };
717
734
  "/api/scope/check-batch": {
718
735
  parameters: {
719
736
  query?: never;
@@ -1815,6 +1832,57 @@ export interface paths {
1815
1832
  patch?: never;
1816
1833
  trace?: never;
1817
1834
  };
1835
+ "/api/internal-admin/impersonate/start": {
1836
+ parameters: {
1837
+ query?: never;
1838
+ header?: never;
1839
+ path?: never;
1840
+ cookie?: never;
1841
+ };
1842
+ get?: never;
1843
+ put?: never;
1844
+ /** Start an impersonation session */
1845
+ post: operations["startImpersonation"];
1846
+ delete?: never;
1847
+ options?: never;
1848
+ head?: never;
1849
+ patch?: never;
1850
+ trace?: never;
1851
+ };
1852
+ "/api/internal-admin/impersonate/end": {
1853
+ parameters: {
1854
+ query?: never;
1855
+ header?: never;
1856
+ path?: never;
1857
+ cookie?: never;
1858
+ };
1859
+ get?: never;
1860
+ put?: never;
1861
+ /** End the active impersonation session */
1862
+ post: operations["endImpersonation"];
1863
+ delete?: never;
1864
+ options?: never;
1865
+ head?: never;
1866
+ patch?: never;
1867
+ trace?: never;
1868
+ };
1869
+ "/api/internal-admin/impersonate/session": {
1870
+ parameters: {
1871
+ query?: never;
1872
+ header?: never;
1873
+ path?: never;
1874
+ cookie?: never;
1875
+ };
1876
+ /** Get active impersonation session state */
1877
+ get: operations["getImpersonationSession"];
1878
+ put?: never;
1879
+ post?: never;
1880
+ delete?: never;
1881
+ options?: never;
1882
+ head?: never;
1883
+ patch?: never;
1884
+ trace?: never;
1885
+ };
1818
1886
  }
1819
1887
  export type webhooks = Record<string, never>;
1820
1888
  export interface components {
@@ -2168,7 +2236,6 @@ export interface components {
2168
2236
  WorkspaceOverview: {
2169
2237
  id: string;
2170
2238
  name: string;
2171
- /** @description URL-safe handle (e.g. acme_corp). Used in /@handle/ URLs and @mentions. */
2172
2239
  slug: string;
2173
2240
  /** @enum {string} */
2174
2241
  type: "personal" | "shared";
@@ -2186,7 +2253,6 @@ export interface components {
2186
2253
  name: string;
2187
2254
  };
2188
2255
  WorkspaceHandleRequest: {
2189
- /** @description URL-safe handle (lowercase alphanumeric + underscores, 1-60 chars) */
2190
2256
  handle: string;
2191
2257
  };
2192
2258
  WorkspaceMembersResponse: {
@@ -2407,6 +2473,9 @@ export interface components {
2407
2473
  /** Format: uuid */
2408
2474
  orgId: string;
2409
2475
  };
2476
+ ScopeCheckResponse: {
2477
+ hasAccess: boolean;
2478
+ };
2410
2479
  ScopeCheckBatchResponse: {
2411
2480
  results: {
2412
2481
  [key: string]: {
@@ -3000,6 +3069,44 @@ export interface components {
3000
3069
  /** @constant */
3001
3070
  ok: true;
3002
3071
  };
3072
+ ImpersonationSessionResponse: {
3073
+ session: {
3074
+ impersonationSessionId: string;
3075
+ adminUserId: string;
3076
+ targetUserId: string;
3077
+ reason: string;
3078
+ reasonHash: string;
3079
+ /** Format: date-time */
3080
+ startedAt: string;
3081
+ /** Format: date-time */
3082
+ expiresAt: string;
3083
+ endedAt: string | null;
3084
+ ipAddress: string;
3085
+ userAgent: string;
3086
+ };
3087
+ };
3088
+ EndImpersonationResponse: {
3089
+ /** @constant */
3090
+ success: true;
3091
+ /** @constant */
3092
+ ok: true;
3093
+ };
3094
+ ImpersonationSessionNullableResponse: {
3095
+ session: {
3096
+ impersonationSessionId: string;
3097
+ adminUserId: string;
3098
+ targetUserId: string;
3099
+ reason: string;
3100
+ reasonHash: string;
3101
+ /** Format: date-time */
3102
+ startedAt: string;
3103
+ /** Format: date-time */
3104
+ expiresAt: string;
3105
+ endedAt: string | null;
3106
+ ipAddress: string;
3107
+ userAgent: string;
3108
+ } | null;
3109
+ };
3003
3110
  };
3004
3111
  responses: never;
3005
3112
  parameters: never;
@@ -4092,6 +4199,28 @@ export interface operations {
4092
4199
  };
4093
4200
  };
4094
4201
  };
4202
+ checkScope: {
4203
+ parameters: {
4204
+ query: {
4205
+ scope: string;
4206
+ };
4207
+ header?: never;
4208
+ path?: never;
4209
+ cookie?: never;
4210
+ };
4211
+ requestBody?: never;
4212
+ responses: {
4213
+ /** @description Authorization result for the requested scope */
4214
+ 200: {
4215
+ headers: {
4216
+ [name: string]: unknown;
4217
+ };
4218
+ content: {
4219
+ "application/json": components["schemas"]["ScopeCheckResponse"];
4220
+ };
4221
+ };
4222
+ };
4223
+ };
4095
4224
  checkScopeBatch: {
4096
4225
  parameters: {
4097
4226
  query?: never;
@@ -5787,4 +5916,64 @@ export interface operations {
5787
5916
  };
5788
5917
  };
5789
5918
  };
5919
+ startImpersonation: {
5920
+ parameters: {
5921
+ query?: never;
5922
+ header?: never;
5923
+ path?: never;
5924
+ cookie?: never;
5925
+ };
5926
+ requestBody?: never;
5927
+ responses: {
5928
+ /** @description Created impersonation session */
5929
+ 200: {
5930
+ headers: {
5931
+ [name: string]: unknown;
5932
+ };
5933
+ content: {
5934
+ "application/json": components["schemas"]["ImpersonationSessionResponse"];
5935
+ };
5936
+ };
5937
+ };
5938
+ };
5939
+ endImpersonation: {
5940
+ parameters: {
5941
+ query?: never;
5942
+ header?: never;
5943
+ path?: never;
5944
+ cookie?: never;
5945
+ };
5946
+ requestBody?: never;
5947
+ responses: {
5948
+ /** @description Impersonation session ended */
5949
+ 200: {
5950
+ headers: {
5951
+ [name: string]: unknown;
5952
+ };
5953
+ content: {
5954
+ "application/json": components["schemas"]["EndImpersonationResponse"];
5955
+ };
5956
+ };
5957
+ };
5958
+ };
5959
+ getImpersonationSession: {
5960
+ parameters: {
5961
+ query?: never;
5962
+ header?: never;
5963
+ path?: never;
5964
+ cookie?: never;
5965
+ };
5966
+ requestBody?: never;
5967
+ responses: {
5968
+ /** @description Current impersonation session or null */
5969
+ 200: {
5970
+ headers: {
5971
+ [name: string]: unknown;
5972
+ };
5973
+ content: {
5974
+ "application/json": components["schemas"]["ImpersonationSessionNullableResponse"];
5975
+ };
5976
+ };
5977
+ };
5978
+ };
5790
5979
  }
@@ -128,6 +128,7 @@ const CompanyMdContextBankItemSchema = z.object({
128
128
  slug: z.string(),
129
129
  title: z.string(),
130
130
  visibility: z.enum(['public', 'private']),
131
+ position: z.number().int(),
131
132
  updatedAt: z.string(),
132
133
  });
133
134
 
@@ -165,6 +166,7 @@ const TeamSummarySchema = z.object({
165
166
  slug: z.string(),
166
167
  description: z.string().nullable(),
167
168
  memberCount: z.number().int(),
169
+ position: z.number().int(),
168
170
  scope: z.enum(['department', 'cross_department', 'org']),
169
171
  department: z.object({ id: z.string(), name: z.string(), slug: z.string() }).nullable(),
170
172
  homeDepartment: z.object({ id: z.string(), name: z.string(), slug: z.string() }).nullable(),
@@ -104,5 +104,6 @@ export interface CompanyMdContextBankItem {
104
104
  readonly slug: string;
105
105
  readonly title: string;
106
106
  readonly visibility: CompanyMdVisibility;
107
+ readonly position: number;
107
108
  readonly updatedAt: string;
108
109
  }
package/src/org/teams.ts CHANGED
@@ -28,6 +28,7 @@ export interface Team {
28
28
  readonly slug: string;
29
29
  readonly description: string | null;
30
30
  readonly memberCount: number;
31
+ readonly position: number;
31
32
  readonly scope: import('./departments').TeamScope;
32
33
  readonly department: { readonly id: string; readonly name: string; readonly slug: string } | null;
33
34
  readonly homeDepartment: { readonly id: string; readonly name: string; readonly slug: string } | null;