@elevasis/core 0.8.0 → 0.8.3

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.
@@ -1,401 +1,402 @@
1
- <!-- Auto-generated on 2026-04-21 by scripts/monorepo/generate-scaffold-contracts.js -->
2
- ---
3
- title: Reference Contracts
4
- description: Auto-generated TypeScript contracts for SDK consumers. Do not edit manually.
5
- ---
6
-
7
- > **Auto-generated** from source types. Do not edit manually. Run `node scripts/monorepo/generate-scaffold-contracts.js` to regenerate.
8
-
9
- ## Organization Model
10
-
11
- ### `OrganizationModel`
12
-
13
- ```typescript
14
- export type OrganizationModel = z.infer<typeof OrganizationModelSchema>
15
- ```
16
-
17
- ### `OrganizationModelBranding`
18
-
19
- ```typescript
20
- export type OrganizationModelBranding = z.infer<typeof OrganizationModelBrandingSchema>
21
- ```
22
-
23
- ### `OrganizationModelSales`
24
-
25
- ```typescript
26
- export type OrganizationModelSales = z.infer<typeof OrganizationModelSalesSchema>
27
- ```
28
-
29
- ### `OrganizationModelProspecting`
30
-
31
- ```typescript
32
- export type OrganizationModelProspecting = z.infer<typeof OrganizationModelProspectingSchema>
33
- ```
34
-
35
- ### `OrganizationModelProjects`
36
-
37
- ```typescript
38
- export type OrganizationModelProjects = z.infer<typeof OrganizationModelProjectsSchema>
39
- ```
40
-
41
- ### `OrganizationModelFeature`
42
-
43
- ```typescript
44
- export type OrganizationModelFeature = z.infer<typeof FeatureSchema>
45
- ```
46
-
47
- ### `OrganizationModelNavigation`
48
-
49
- ```typescript
50
- export type OrganizationModelNavigation = z.infer<typeof OrganizationModelNavigationSchema>
51
- ```
52
-
53
- ### `OrganizationModelSurface`
54
-
55
- ```typescript
56
- export type OrganizationModelSurface = z.infer<typeof SurfaceDefinitionSchema>
57
- ```
58
-
59
- ### `OrganizationModelResourceMapping`
60
-
61
- ```typescript
62
- export type OrganizationModelResourceMapping = z.infer<typeof ResourceMappingSchema>
63
- ```
64
-
65
- ### `OrganizationModelTechStackEntry`
66
-
67
- ```typescript
68
- export type OrganizationModelTechStackEntry = z.infer<typeof TechStackEntrySchema>
69
- ```
70
-
71
- ### `OrganizationModelStatuses`
72
-
73
- ```typescript
74
- export type OrganizationModelStatuses = z.infer<typeof StatusesDomainSchema>
75
- ```
76
-
77
- ### `OrganizationModelStatusEntry`
78
-
79
- ```typescript
80
- export type OrganizationModelStatusEntry = z.infer<typeof StatusEntrySchema>
81
- ```
82
-
83
- ### `OrganizationModelStatusSemanticClass`
84
-
85
- ```typescript
86
- export type OrganizationModelStatusSemanticClass = z.infer<typeof StatusSemanticClassSchema>
87
- ```
88
-
89
- ### `OrganizationModelOperations`
90
-
91
- ```typescript
92
- export type OrganizationModelOperations = z.infer<typeof OperationsDomainSchema>
93
- ```
94
-
95
- ### `OrganizationModelOperationEntry`
96
-
97
- ```typescript
98
- export type OrganizationModelOperationEntry = z.infer<typeof OperationEntrySchema>
99
- ```
100
-
101
- ### `OrganizationModelOperationSemanticClass`
102
-
103
- ```typescript
104
- export type OrganizationModelOperationSemanticClass = z.infer<typeof OperationSemanticClassSchema>
105
- ```
106
-
107
- ### `OrganizationModelCustomers`
108
-
109
- ```typescript
110
- export type OrganizationModelCustomers = z.infer<typeof CustomersDomainSchema>
111
- ```
112
-
113
- ### `OrganizationModelCustomerSegment`
114
-
115
- ```typescript
116
- export type OrganizationModelCustomerSegment = z.infer<typeof CustomerSegmentSchema>
117
- ```
118
-
119
- ### `OrganizationModelCustomerFirmographics`
120
-
121
- ```typescript
122
- export type OrganizationModelCustomerFirmographics = z.infer<typeof FirmographicsSchema>
123
- ```
124
-
125
- ### `OrganizationModelOfferings`
126
-
127
- ```typescript
128
- export type OrganizationModelOfferings = z.infer<typeof OfferingsDomainSchema>
129
- ```
130
-
131
- ### `OrganizationModelProduct`
132
-
133
- ```typescript
134
- export type OrganizationModelProduct = z.infer<typeof ProductSchema>
135
- ```
136
-
137
- ### `OrganizationModelPricingModel`
138
-
139
- ```typescript
140
- export type OrganizationModelPricingModel = z.infer<typeof PricingModelSchema>
141
- ```
142
-
143
- ### `OrganizationModelRoles`
144
-
145
- ```typescript
146
- export type OrganizationModelRoles = z.infer<typeof RolesDomainSchema>
147
- ```
148
-
149
- ### `OrganizationModelRole`
150
-
151
- ```typescript
152
- export type OrganizationModelRole = z.infer<typeof RoleSchema>
153
- ```
154
-
155
- ### `OrganizationModelGoals`
156
-
157
- ```typescript
158
- export type OrganizationModelGoals = z.infer<typeof GoalsDomainSchema>
159
- ```
160
-
161
- ### `OrganizationModelObjective`
162
-
163
- ```typescript
164
- export type OrganizationModelObjective = z.infer<typeof ObjectiveSchema>
165
- ```
166
-
167
- ### `OrganizationModelKeyResult`
168
-
169
- ```typescript
170
- export type OrganizationModelKeyResult = z.infer<typeof KeyResultSchema>
171
- ```
172
-
173
- ### `DeepPartial`
174
-
175
- ```typescript
176
- export type DeepPartial<T> = T extends Array<infer U> ? Array<DeepPartial<U>> : T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T
177
- ```
178
-
179
- ## Feature System
180
-
181
- ### `FeatureNavLink`
182
-
183
- ```typescript
184
- export interface FeatureNavLink {
185
- label: string
186
- link: string
187
- featureKey?: string
188
- onClick?: () => void
189
- links?: FeatureNavLink[]
190
- }
191
- ```
192
-
193
- ### `FeatureNavEntry`
194
-
195
- ```typescript
196
- export interface FeatureNavEntry {
197
- label: string
198
- icon: ComponentType
199
- link?: string
200
- featureKey?: string
201
- requiresAdmin?: boolean
202
- dataOnboardingTourId?: string
203
- links?: FeatureNavLink[]
204
- }
205
- ```
206
-
207
- ### `FeatureSidebarComponent`
208
-
209
- ```typescript
210
- export type FeatureSidebarComponent = ComponentType
211
- ```
212
-
213
- ### `FeatureModule`
214
-
215
- ```typescript
216
- export interface FeatureModule {
217
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
218
- key: string
219
- /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
220
- featureId: string
221
- /**
222
- * Capability identifiers contributed by this feature.
223
- * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
224
- * Not queried at runtime — kept for semantic graph completeness so that
225
- * capability membership is fully represented in the resolved model even when
226
- * a surface does not declare it directly.
227
- */
228
- capabilityIds?: string[]
229
- /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
230
- navEntry?: FeatureNavEntry
231
- /** Sidebar component rendered when a matching subshell route is active. */
232
- sidebar?: FeatureSidebarComponent
233
- /** Route path prefixes that activate this feature's sidebar and subshell context. */
234
- subshellRoutes?: string[]
235
- /**
236
- * Operations-only bridge surface connecting this feature to the organization graph.
237
- * Ignored by all other features. Only one manifest in the registry should set this.
238
- */
239
- organizationGraph?: OrganizationGraphFeatureBridge
240
- }
241
- ```
242
-
243
- ### `ResolvedFeatureAccess`
244
-
245
- ```typescript
246
- export interface ResolvedFeatureAccess {
247
- featureId: string
248
- enabled: boolean
249
- }
250
- ```
251
-
252
- ### `ResolvedFeatureSemantics`
253
-
254
- ```typescript
255
- export interface ResolvedFeatureSemantics {
256
- capabilityIds: string[]
257
- surfaceIds: string[]
258
- surfaces: OrganizationModelSurface[]
259
- }
260
- ```
261
-
262
- ### `ResolvedFeatureModule`
263
-
264
- ```typescript
265
- export interface ResolvedFeatureModule extends FeatureModule {
266
- access: ResolvedFeatureAccess
267
- semantics: ResolvedFeatureSemantics
268
- }
269
- ```
270
-
271
- ### `ShellNavPlacement`
272
-
273
- ```typescript
274
- export type ShellNavPlacement = 'primary' | 'bottom'
275
- ```
276
-
277
- ### `ShellNavSource`
278
-
279
- ```typescript
280
- export type ShellNavSource = 'app' | 'feature'
281
- ```
282
-
283
- ### `ResolvedShellNavItem`
284
-
285
- ```typescript
286
- export interface ResolvedShellNavItem extends FeatureNavEntry {
287
- placement: ShellNavPlacement
288
- source: ShellNavSource
289
- featureId?: string
290
- }
291
- ```
292
-
293
- ### `ResolvedShellModel`
294
-
295
- ```typescript
296
- export interface ResolvedShellModel {
297
- navItems: ResolvedShellNavItem[]
298
- }
299
- ```
300
-
301
- ### `AppShellOverrides`
302
-
303
- ```typescript
304
- export interface AppShellOverrides {
305
- primaryNavItems?: FeatureNavEntry[]
306
- bottomNavItems?: FeatureNavEntry[]
307
- }
308
- ```
309
-
310
- ### `ShellRouteMatchStatus`
311
-
312
- ```typescript
313
- export type ShellRouteMatchStatus = 'matched' | 'hidden' | 'unmatched'
314
- ```
315
-
316
- ### `ResolvedShellRouteMatch`
317
-
318
- ```typescript
319
- export interface ResolvedShellRouteMatch {
320
- status: ShellRouteMatchStatus
321
- path: string
322
- feature?: ResolvedFeatureModule
323
- navItem?: ResolvedShellNavItem
324
- navLink?: FeatureNavLink
325
- }
326
- ```
327
-
328
- ### `ShellRuntime`
329
-
330
- ```typescript
331
- export interface ShellRuntime {
332
- resolveRoute: (path: string) => ResolvedShellRouteMatch
333
- }
334
- ```
335
-
336
- ### `OrganizationGraphFeatureBridge`
337
-
338
- ```typescript
339
- export interface OrganizationGraphFeatureBridge {
340
- surfaceId: string
341
- }
342
- ```
343
-
344
- ### `OrganizationGraphContextValue`
345
-
346
- ```typescript
347
- export interface OrganizationGraphContextValue {
348
- available: boolean
349
- surfaceId?: string
350
- surfacePath?: string
351
- surfaceType?: OrganizationModelSurface['surfaceType']
352
- featureId?: string
353
- }
354
- ```
355
-
356
- ### `ElevasisFeaturesProviderProps`
357
-
358
- ```typescript
359
- export interface ElevasisFeaturesProviderProps {
360
- features: FeatureModule[]
361
- organizationModel?: OrganizationModel
362
- appShellOverrides?: AppShellOverrides
363
- timeRange?: TimeRange
364
- operationsApiUrl?: string
365
- operationsSSEManager?: SSEConnectionManagerLike
366
- deliveryApiUrl?: string
367
- deliverySSEManager?: SSEConnectionManagerLike
368
- disabledSubsectionPaths?: string[]
369
- children: ReactNode
370
- }
371
- ```
372
-
373
- ### `ElevasisFeaturesContextValue`
374
-
375
- ```typescript
376
- export interface ElevasisFeaturesContextValue {
377
- shellModel: ResolvedShellModel
378
- shellRuntime: ShellRuntime
379
- enabledResolvedFeatures: ResolvedFeatureModule[]
380
- resolvedFeatures: ResolvedFeatureModule[]
381
- organizationGraph: OrganizationGraphContextValue
382
- organizationModel?: OrganizationModel
383
- timeRange?: TimeRange
384
- operationsApiUrl?: string
385
- operationsSSEManager?: SSEConnectionManagerLike
386
- deliveryApiUrl?: string
387
- deliverySSEManager?: SSEConnectionManagerLike
388
- disabledSubsectionPaths: string[]
389
- isFeatureEnabled: (key: string) => boolean
390
- getResolvedFeature: (key: string) => ResolvedFeatureModule | undefined
391
- }
392
- ```
393
-
394
- ## Resource Registry
395
-
396
- ### `ResourceStatus`
397
-
398
- ```typescript
1
+ <!-- @generated by scripts/monorepo/generate-scaffold-contracts.js — DO NOT EDIT -->
2
+ <!-- Regenerate: pnpm scaffold:sync -->
3
+ ---
4
+ title: Reference Contracts
5
+ description: Auto-generated TypeScript contracts for SDK consumers. Do not edit manually.
6
+ ---
7
+
8
+ > **Auto-generated** from source types. Do not edit manually. Run `node scripts/monorepo/generate-scaffold-contracts.js` to regenerate.
9
+
10
+ ## Organization Model
11
+
12
+ ### `OrganizationModel`
13
+
14
+ ```typescript
15
+ export type OrganizationModel = z.infer<typeof OrganizationModelSchema>
16
+ ```
17
+
18
+ ### `OrganizationModelBranding`
19
+
20
+ ```typescript
21
+ export type OrganizationModelBranding = z.infer<typeof OrganizationModelBrandingSchema>
22
+ ```
23
+
24
+ ### `OrganizationModelSales`
25
+
26
+ ```typescript
27
+ export type OrganizationModelSales = z.infer<typeof OrganizationModelSalesSchema>
28
+ ```
29
+
30
+ ### `OrganizationModelProspecting`
31
+
32
+ ```typescript
33
+ export type OrganizationModelProspecting = z.infer<typeof OrganizationModelProspectingSchema>
34
+ ```
35
+
36
+ ### `OrganizationModelProjects`
37
+
38
+ ```typescript
39
+ export type OrganizationModelProjects = z.infer<typeof OrganizationModelProjectsSchema>
40
+ ```
41
+
42
+ ### `OrganizationModelFeature`
43
+
44
+ ```typescript
45
+ export type OrganizationModelFeature = z.infer<typeof FeatureSchema>
46
+ ```
47
+
48
+ ### `OrganizationModelNavigation`
49
+
50
+ ```typescript
51
+ export type OrganizationModelNavigation = z.infer<typeof OrganizationModelNavigationSchema>
52
+ ```
53
+
54
+ ### `OrganizationModelSurface`
55
+
56
+ ```typescript
57
+ export type OrganizationModelSurface = z.infer<typeof SurfaceDefinitionSchema>
58
+ ```
59
+
60
+ ### `OrganizationModelResourceMapping`
61
+
62
+ ```typescript
63
+ export type OrganizationModelResourceMapping = z.infer<typeof ResourceMappingSchema>
64
+ ```
65
+
66
+ ### `OrganizationModelTechStackEntry`
67
+
68
+ ```typescript
69
+ export type OrganizationModelTechStackEntry = z.infer<typeof TechStackEntrySchema>
70
+ ```
71
+
72
+ ### `OrganizationModelStatuses`
73
+
74
+ ```typescript
75
+ export type OrganizationModelStatuses = z.infer<typeof StatusesDomainSchema>
76
+ ```
77
+
78
+ ### `OrganizationModelStatusEntry`
79
+
80
+ ```typescript
81
+ export type OrganizationModelStatusEntry = z.infer<typeof StatusEntrySchema>
82
+ ```
83
+
84
+ ### `OrganizationModelStatusSemanticClass`
85
+
86
+ ```typescript
87
+ export type OrganizationModelStatusSemanticClass = z.infer<typeof StatusSemanticClassSchema>
88
+ ```
89
+
90
+ ### `OrganizationModelOperations`
91
+
92
+ ```typescript
93
+ export type OrganizationModelOperations = z.infer<typeof OperationsDomainSchema>
94
+ ```
95
+
96
+ ### `OrganizationModelOperationEntry`
97
+
98
+ ```typescript
99
+ export type OrganizationModelOperationEntry = z.infer<typeof OperationEntrySchema>
100
+ ```
101
+
102
+ ### `OrganizationModelOperationSemanticClass`
103
+
104
+ ```typescript
105
+ export type OrganizationModelOperationSemanticClass = z.infer<typeof OperationSemanticClassSchema>
106
+ ```
107
+
108
+ ### `OrganizationModelCustomers`
109
+
110
+ ```typescript
111
+ export type OrganizationModelCustomers = z.infer<typeof CustomersDomainSchema>
112
+ ```
113
+
114
+ ### `OrganizationModelCustomerSegment`
115
+
116
+ ```typescript
117
+ export type OrganizationModelCustomerSegment = z.infer<typeof CustomerSegmentSchema>
118
+ ```
119
+
120
+ ### `OrganizationModelCustomerFirmographics`
121
+
122
+ ```typescript
123
+ export type OrganizationModelCustomerFirmographics = z.infer<typeof FirmographicsSchema>
124
+ ```
125
+
126
+ ### `OrganizationModelOfferings`
127
+
128
+ ```typescript
129
+ export type OrganizationModelOfferings = z.infer<typeof OfferingsDomainSchema>
130
+ ```
131
+
132
+ ### `OrganizationModelProduct`
133
+
134
+ ```typescript
135
+ export type OrganizationModelProduct = z.infer<typeof ProductSchema>
136
+ ```
137
+
138
+ ### `OrganizationModelPricingModel`
139
+
140
+ ```typescript
141
+ export type OrganizationModelPricingModel = z.infer<typeof PricingModelSchema>
142
+ ```
143
+
144
+ ### `OrganizationModelRoles`
145
+
146
+ ```typescript
147
+ export type OrganizationModelRoles = z.infer<typeof RolesDomainSchema>
148
+ ```
149
+
150
+ ### `OrganizationModelRole`
151
+
152
+ ```typescript
153
+ export type OrganizationModelRole = z.infer<typeof RoleSchema>
154
+ ```
155
+
156
+ ### `OrganizationModelGoals`
157
+
158
+ ```typescript
159
+ export type OrganizationModelGoals = z.infer<typeof GoalsDomainSchema>
160
+ ```
161
+
162
+ ### `OrganizationModelObjective`
163
+
164
+ ```typescript
165
+ export type OrganizationModelObjective = z.infer<typeof ObjectiveSchema>
166
+ ```
167
+
168
+ ### `OrganizationModelKeyResult`
169
+
170
+ ```typescript
171
+ export type OrganizationModelKeyResult = z.infer<typeof KeyResultSchema>
172
+ ```
173
+
174
+ ### `DeepPartial`
175
+
176
+ ```typescript
177
+ export type DeepPartial<T> = T extends Array<infer U> ? Array<DeepPartial<U>> : T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T
178
+ ```
179
+
180
+ ## Feature System
181
+
182
+ ### `FeatureNavLink`
183
+
184
+ ```typescript
185
+ export interface FeatureNavLink {
186
+ label: string
187
+ link: string
188
+ featureKey?: string
189
+ onClick?: () => void
190
+ links?: FeatureNavLink[]
191
+ }
192
+ ```
193
+
194
+ ### `FeatureNavEntry`
195
+
196
+ ```typescript
197
+ export interface FeatureNavEntry {
198
+ label: string
199
+ icon: ComponentType
200
+ link?: string
201
+ featureKey?: string
202
+ requiresAdmin?: boolean
203
+ dataOnboardingTourId?: string
204
+ links?: FeatureNavLink[]
205
+ }
206
+ ```
207
+
208
+ ### `FeatureSidebarComponent`
209
+
210
+ ```typescript
211
+ export type FeatureSidebarComponent = ComponentType
212
+ ```
213
+
214
+ ### `FeatureModule`
215
+
216
+ ```typescript
217
+ export interface FeatureModule {
218
+ /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
219
+ key: string
220
+ /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
221
+ featureId: string
222
+ /**
223
+ * Capability identifiers contributed by this feature.
224
+ * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
225
+ * Not queried at runtime kept for semantic graph completeness so that
226
+ * capability membership is fully represented in the resolved model even when
227
+ * a surface does not declare it directly.
228
+ */
229
+ capabilityIds?: string[]
230
+ /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
231
+ navEntry?: FeatureNavEntry
232
+ /** Sidebar component rendered when a matching subshell route is active. */
233
+ sidebar?: FeatureSidebarComponent
234
+ /** Route path prefixes that activate this feature's sidebar and subshell context. */
235
+ subshellRoutes?: string[]
236
+ /**
237
+ * Operations-only bridge surface connecting this feature to the organization graph.
238
+ * Ignored by all other features. Only one manifest in the registry should set this.
239
+ */
240
+ organizationGraph?: OrganizationGraphFeatureBridge
241
+ }
242
+ ```
243
+
244
+ ### `ResolvedFeatureAccess`
245
+
246
+ ```typescript
247
+ export interface ResolvedFeatureAccess {
248
+ featureId: string
249
+ enabled: boolean
250
+ }
251
+ ```
252
+
253
+ ### `ResolvedFeatureSemantics`
254
+
255
+ ```typescript
256
+ export interface ResolvedFeatureSemantics {
257
+ capabilityIds: string[]
258
+ surfaceIds: string[]
259
+ surfaces: OrganizationModelSurface[]
260
+ }
261
+ ```
262
+
263
+ ### `ResolvedFeatureModule`
264
+
265
+ ```typescript
266
+ export interface ResolvedFeatureModule extends FeatureModule {
267
+ access: ResolvedFeatureAccess
268
+ semantics: ResolvedFeatureSemantics
269
+ }
270
+ ```
271
+
272
+ ### `ShellNavPlacement`
273
+
274
+ ```typescript
275
+ export type ShellNavPlacement = 'primary' | 'bottom'
276
+ ```
277
+
278
+ ### `ShellNavSource`
279
+
280
+ ```typescript
281
+ export type ShellNavSource = 'app' | 'feature'
282
+ ```
283
+
284
+ ### `ResolvedShellNavItem`
285
+
286
+ ```typescript
287
+ export interface ResolvedShellNavItem extends FeatureNavEntry {
288
+ placement: ShellNavPlacement
289
+ source: ShellNavSource
290
+ featureId?: string
291
+ }
292
+ ```
293
+
294
+ ### `ResolvedShellModel`
295
+
296
+ ```typescript
297
+ export interface ResolvedShellModel {
298
+ navItems: ResolvedShellNavItem[]
299
+ }
300
+ ```
301
+
302
+ ### `AppShellOverrides`
303
+
304
+ ```typescript
305
+ export interface AppShellOverrides {
306
+ primaryNavItems?: FeatureNavEntry[]
307
+ bottomNavItems?: FeatureNavEntry[]
308
+ }
309
+ ```
310
+
311
+ ### `ShellRouteMatchStatus`
312
+
313
+ ```typescript
314
+ export type ShellRouteMatchStatus = 'matched' | 'hidden' | 'unmatched'
315
+ ```
316
+
317
+ ### `ResolvedShellRouteMatch`
318
+
319
+ ```typescript
320
+ export interface ResolvedShellRouteMatch {
321
+ status: ShellRouteMatchStatus
322
+ path: string
323
+ feature?: ResolvedFeatureModule
324
+ navItem?: ResolvedShellNavItem
325
+ navLink?: FeatureNavLink
326
+ }
327
+ ```
328
+
329
+ ### `ShellRuntime`
330
+
331
+ ```typescript
332
+ export interface ShellRuntime {
333
+ resolveRoute: (path: string) => ResolvedShellRouteMatch
334
+ }
335
+ ```
336
+
337
+ ### `OrganizationGraphFeatureBridge`
338
+
339
+ ```typescript
340
+ export interface OrganizationGraphFeatureBridge {
341
+ surfaceId: string
342
+ }
343
+ ```
344
+
345
+ ### `OrganizationGraphContextValue`
346
+
347
+ ```typescript
348
+ export interface OrganizationGraphContextValue {
349
+ available: boolean
350
+ surfaceId?: string
351
+ surfacePath?: string
352
+ surfaceType?: OrganizationModelSurface['surfaceType']
353
+ featureId?: string
354
+ }
355
+ ```
356
+
357
+ ### `ElevasisFeaturesProviderProps`
358
+
359
+ ```typescript
360
+ export interface ElevasisFeaturesProviderProps {
361
+ features: FeatureModule[]
362
+ organizationModel?: OrganizationModel
363
+ appShellOverrides?: AppShellOverrides
364
+ timeRange?: TimeRange
365
+ operationsApiUrl?: string
366
+ operationsSSEManager?: SSEConnectionManagerLike
367
+ deliveryApiUrl?: string
368
+ deliverySSEManager?: SSEConnectionManagerLike
369
+ disabledSubsectionPaths?: string[]
370
+ children: ReactNode
371
+ }
372
+ ```
373
+
374
+ ### `ElevasisFeaturesContextValue`
375
+
376
+ ```typescript
377
+ export interface ElevasisFeaturesContextValue {
378
+ shellModel: ResolvedShellModel
379
+ shellRuntime: ShellRuntime
380
+ enabledResolvedFeatures: ResolvedFeatureModule[]
381
+ resolvedFeatures: ResolvedFeatureModule[]
382
+ organizationGraph: OrganizationGraphContextValue
383
+ organizationModel?: OrganizationModel
384
+ timeRange?: TimeRange
385
+ operationsApiUrl?: string
386
+ operationsSSEManager?: SSEConnectionManagerLike
387
+ deliveryApiUrl?: string
388
+ deliverySSEManager?: SSEConnectionManagerLike
389
+ disabledSubsectionPaths: string[]
390
+ isFeatureEnabled: (key: string) => boolean
391
+ getResolvedFeature: (key: string) => ResolvedFeatureModule | undefined
392
+ }
393
+ ```
394
+
395
+ ## Resource Registry
396
+
397
+ ### `ResourceStatus`
398
+
399
+ ```typescript
399
400
  /**
400
401
  * Resource Registry type definitions
401
402
  */
@@ -409,37 +410,37 @@ import type { ResourceDomain } from './domains'
409
410
 
410
411
  /**
411
412
  * Environment/deployment status for resources
412
- */
413
+ */
413
414
  export type ResourceStatus = 'dev' | 'prod'
414
415
 
415
416
  /**
416
417
  * All resource types in the platform
417
418
  * Used as the discriminator field in ResourceDefinition
418
- */
419
- ```
420
-
421
- ### `ResourceType`
422
-
423
- ```typescript
419
+ */
420
+ ```
421
+
422
+ ### `ResourceType`
423
+
424
+ ```typescript
424
425
  /**
425
426
  * All resource types in the platform
426
427
  * Used as the discriminator field in ResourceDefinition
427
- */
428
+ */
428
429
  export type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human'
429
430
 
430
431
  /**
431
432
  * Executable resource types (subset of ResourceType)
432
433
  * These resources can be directly executed by the execution engine
433
- */
434
- ```
435
-
436
- ### `ExecutableResourceType`
437
-
438
- ```typescript
434
+ */
435
+ ```
436
+
437
+ ### `ExecutableResourceType`
438
+
439
+ ```typescript
439
440
  /**
440
441
  * Executable resource types (subset of ResourceType)
441
442
  * These resources can be directly executed by the execution engine
442
- */
443
+ */
443
444
  export type ExecutableResourceType = 'workflow' | 'agent'
444
445
 
445
446
  // ============================================================================
@@ -449,16 +450,16 @@ export type ExecutableResourceType = 'workflow' | 'agent'
449
450
  /**
450
451
  * Base interface for ALL platform resources
451
452
  * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
452
- */
453
- ```
454
-
455
- ### `ResourceDefinition`
456
-
457
- ```typescript
453
+ */
454
+ ```
455
+
456
+ ### `ResourceDefinition`
457
+
458
+ ```typescript
458
459
  /**
459
460
  * Base interface for ALL platform resources
460
461
  * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
461
- */
462
+ */
462
463
  export interface ResourceDefinition {
463
464
  /** Unique resource identifier */
464
465
  resourceId: string
@@ -489,12 +490,12 @@ export interface ResourceDefinition {
489
490
 
490
491
  /** Whether this resource is archived and should be excluded from registration and deployment */
491
492
  archived?: boolean
492
- }
493
- ```
494
-
495
- ### `DomainDefinition`
496
-
497
- ```typescript
493
+ }
494
+ ```
495
+
496
+ ### `DomainDefinition`
497
+
498
+ ```typescript
498
499
  /** Unique resource identifier */
499
500
  resourceId: string
500
501
 
@@ -544,7 +545,7 @@ export interface ResourceDefinition {
544
545
  * color: 'green',
545
546
  * icon: 'IconHeadset'
546
547
  * }
547
- */
548
+ */
548
549
  export interface DomainDefinition {
549
550
  /** Unique identifier (e.g., 'support') */
550
551
  id: string
@@ -556,12 +557,12 @@ export interface DomainDefinition {
556
557
  color?: string
557
558
  /** Optional Tabler icon name (e.g., 'IconHeadset') */
558
559
  icon?: string
559
- }
560
- ```
561
-
562
- ### `ResourceList`
563
-
564
- ```typescript
560
+ }
561
+ ```
562
+
563
+ ### `ResourceList`
564
+
565
+ ```typescript
565
566
  /** Unique identifier (e.g., 'support') */
566
567
  id: string
567
568
  /** Display name (e.g., 'Customer Support') */
@@ -577,29 +578,29 @@ export interface DomainDefinition {
577
578
  /**
578
579
  * Resource list for organization
579
580
  * Returns ResourceDefinition metadata (not full definitions)
580
- */
581
+ */
581
582
  export interface ResourceList {
582
583
  workflows: ResourceDefinition[]
583
584
  agents: ResourceDefinition[]
584
585
  total: number
585
586
  organizationName: string
586
587
  environment?: 'dev' | 'prod'
587
- }
588
- ```
589
-
590
- ### `WebhookProviderType`
591
-
592
- ```typescript
593
- /** Webhook provider identifiers */
588
+ }
589
+ ```
590
+
591
+ ### `WebhookProviderType`
592
+
593
+ ```typescript
594
+ /** Webhook provider identifiers */
594
595
  export type WebhookProviderType = 'cal-com' | 'stripe' | 'signature-api' | 'instantly' | 'apify' | 'test'
595
596
 
596
- /** Webhook trigger configuration */
597
- ```
598
-
599
- ### `WebhookTriggerConfig`
600
-
601
- ```typescript
602
- /** Webhook trigger configuration */
597
+ /** Webhook trigger configuration */
598
+ ```
599
+
600
+ ### `WebhookTriggerConfig`
601
+
602
+ ```typescript
603
+ /** Webhook trigger configuration */
603
604
  export interface WebhookTriggerConfig {
604
605
  /** Provider identifier */
605
606
  provider: WebhookProviderType
@@ -609,12 +610,12 @@ export interface WebhookTriggerConfig {
609
610
  filter?: Record<string, string>
610
611
  /** References credential in credentials table for per-org webhook secrets */
611
612
  credentialName?: string
612
- }
613
- ```
614
-
615
- ### `ScheduleTriggerConfig`
616
-
617
- ```typescript
613
+ }
614
+ ```
615
+
616
+ ### `ScheduleTriggerConfig`
617
+
618
+ ```typescript
618
619
  /** Provider identifier */
619
620
  provider: WebhookProviderType
620
621
  /** Event type for documentation (not used for matching - workflow handles routing) */
@@ -625,43 +626,43 @@ export interface WebhookTriggerConfig {
625
626
  credentialName?: string
626
627
  }
627
628
 
628
- /** Schedule trigger configuration */
629
+ /** Schedule trigger configuration */
629
630
  export interface ScheduleTriggerConfig {
630
631
  /** Cron expression (e.g., '0 6 * * *') */
631
632
  cron: string
632
633
  /** Optional timezone (default: UTC) */
633
634
  timezone?: string
634
- }
635
- ```
636
-
637
- ### `EventTriggerConfig`
638
-
639
- ```typescript
635
+ }
636
+ ```
637
+
638
+ ### `EventTriggerConfig`
639
+
640
+ ```typescript
640
641
  /** Cron expression (e.g., '0 6 * * *') */
641
642
  cron: string
642
643
  /** Optional timezone (default: UTC) */
643
644
  timezone?: string
644
645
  }
645
646
 
646
- /** Event trigger configuration */
647
+ /** Event trigger configuration */
647
648
  export interface EventTriggerConfig {
648
649
  /** Internal event type */
649
650
  eventType: string
650
651
  /** Event source */
651
652
  source?: string
652
- }
653
- ```
654
-
655
- ### `TriggerConfig`
656
-
657
- ```typescript
653
+ }
654
+ ```
655
+
656
+ ### `TriggerConfig`
657
+
658
+ ```typescript
658
659
  /** Internal event type */
659
660
  eventType: string
660
661
  /** Event source */
661
662
  source?: string
662
663
  }
663
664
 
664
- /** Union of all trigger configs */
665
+ /** Union of all trigger configs */
665
666
  export type TriggerConfig = WebhookTriggerConfig | ScheduleTriggerConfig | EventTriggerConfig
666
667
 
667
668
  // ============================================================================
@@ -698,12 +699,12 @@ export type TriggerConfig = WebhookTriggerConfig | ScheduleTriggerConfig | Event
698
699
  * // relationships: {
699
700
  * // 'trigger-new-order': { triggers: { workflows: ['order-fulfillment-workflow'] } }
700
701
  * // }
701
- */
702
- ```
703
-
704
- ### `TriggerDefinition`
705
-
706
- ```typescript
702
+ */
703
+ ```
704
+
705
+ ### `TriggerDefinition`
706
+
707
+ ```typescript
707
708
  /**
708
709
  * Trigger metadata - entry points that initiate resource execution
709
710
  *
@@ -734,7 +735,7 @@ export type TriggerConfig = WebhookTriggerConfig | ScheduleTriggerConfig | Event
734
735
  * // relationships: {
735
736
  * // 'trigger-new-order': { triggers: { workflows: ['order-fulfillment-workflow'] } }
736
737
  * // }
737
- */
738
+ */
738
739
  export interface TriggerDefinition extends ResourceDefinition {
739
740
  /** Resource type discriminator (narrowed from base union) */
740
741
  type: 'trigger'
@@ -755,12 +756,12 @@ export interface TriggerDefinition extends ResourceDefinition {
755
756
 
756
757
  // NOTE: What this trigger starts is declared in ResourceRelationships, not here
757
758
  // This prevents duplication - triggers are forward-declared in relationships
758
- }
759
- ```
760
-
761
- ### `IntegrationDefinition`
762
-
763
- ```typescript
759
+ }
760
+ ```
761
+
762
+ ### `IntegrationDefinition`
763
+
764
+ ```typescript
764
765
  /** Resource type discriminator (narrowed from base union) */
765
766
  type: 'trigger'
766
767
 
@@ -806,7 +807,7 @@ export interface TriggerDefinition extends ResourceDefinition {
806
807
  * version: '1.0.0',
807
808
  * status: 'prod'
808
809
  * }
809
- */
810
+ */
810
811
  export interface IntegrationDefinition extends ResourceDefinition {
811
812
  /** Resource type discriminator (narrowed from base union) */
812
813
  type: 'integration'
@@ -815,12 +816,12 @@ export interface IntegrationDefinition extends ResourceDefinition {
815
816
  provider: IntegrationType
816
817
  /** References credentials table (e.g., 'shopify-prod', 'zendesk-api') */
817
818
  credentialName: string
818
- }
819
- ```
820
-
821
- ### `RelationshipDeclaration`
822
-
823
- ```typescript
819
+ }
820
+ ```
821
+
822
+ ### `RelationshipDeclaration`
823
+
824
+ ```typescript
824
825
  /** Resource type discriminator (narrowed from base union) */
825
826
  type: 'integration'
826
827
 
@@ -841,7 +842,7 @@ export interface IntegrationDefinition extends ResourceDefinition {
841
842
  * triggers: { workflows: ['order-fulfillment-workflow'] },
842
843
  * uses: { integrations: ['integration-shopify-prod', 'integration-postgres'] }
843
844
  * }
844
- */
845
+ */
845
846
  export interface RelationshipDeclaration {
846
847
  /** Resources this resource triggers */
847
848
  triggers?: {
@@ -855,12 +856,12 @@ export interface RelationshipDeclaration {
855
856
  /** Integration IDs this resource uses */
856
857
  integrations?: string[]
857
858
  }
858
- }
859
- ```
860
-
861
- ### `ResourceRelationships`
862
-
863
- ```typescript
859
+ }
860
+ ```
861
+
862
+ ### `ResourceRelationships`
863
+
864
+ ```typescript
864
865
  /** Resources this resource triggers */
865
866
  triggers?: {
866
867
  /** Agent resourceIds this resource triggers */
@@ -886,7 +887,7 @@ export interface RelationshipDeclaration {
886
887
  * uses: { integrations: ['integration-shopify-prod'] }
887
888
  * }
888
889
  * }
889
- */
890
+ */
890
891
  export type ResourceRelationships = Record<string, RelationshipDeclaration>
891
892
 
892
893
  // ============================================================================
@@ -896,16 +897,16 @@ export type ResourceRelationships = Record<string, RelationshipDeclaration>
896
897
  /**
897
898
  * External platform type
898
899
  * Supported third-party automation platforms
899
- */
900
- ```
901
-
902
- ### `ExternalPlatform`
903
-
904
- ```typescript
900
+ */
901
+ ```
902
+
903
+ ### `ExternalPlatform`
904
+
905
+ ```typescript
905
906
  /**
906
907
  * External platform type
907
908
  * Supported third-party automation platforms
908
- */
909
+ */
909
910
  export type ExternalPlatform = 'n8n' | 'make' | 'zapier' | 'other'
910
911
 
911
912
  /**
@@ -937,12 +938,12 @@ export type ExternalPlatform = 'n8n' | 'make' | 'zapier' | 'other'
937
938
  * triggers: { workflows: ['order-fulfillment-workflow'] },
938
939
  * uses: { integrations: ['integration-shopify-prod'] }
939
940
  * }
940
- */
941
- ```
942
-
943
- ### `ExternalResourceDefinition`
944
-
945
- ```typescript
941
+ */
942
+ ```
943
+
944
+ ### `ExternalResourceDefinition`
945
+
946
+ ```typescript
946
947
  /**
947
948
  * External automation resource metadata
948
949
  *
@@ -972,7 +973,7 @@ export type ExternalPlatform = 'n8n' | 'make' | 'zapier' | 'other'
972
973
  * triggers: { workflows: ['order-fulfillment-workflow'] },
973
974
  * uses: { integrations: ['integration-shopify-prod'] }
974
975
  * }
975
- */
976
+ */
976
977
  export interface ExternalResourceDefinition extends ResourceDefinition {
977
978
  /** Resource type discriminator (narrowed from base union) */
978
979
  type: 'external'
@@ -1003,12 +1004,12 @@ export interface ExternalResourceDefinition extends ResourceDefinition {
1003
1004
  // NOTE: triggeredBy field removed - per relationship-consolidation design,
1004
1005
  // all relationships are forward-only declarations. Graph edges are built
1005
1006
  // from forward declarations only.
1006
- }
1007
- ```
1008
-
1009
- ### `HumanCheckpointDefinition`
1010
-
1011
- ```typescript
1007
+ }
1008
+ ```
1009
+
1010
+ ### `HumanCheckpointDefinition`
1011
+
1012
+ ```typescript
1012
1013
  /** Resource type discriminator (narrowed from base union) */
1013
1014
  type: 'external'
1014
1015
 
@@ -1064,7 +1065,7 @@ export interface ExternalResourceDefinition extends ResourceDefinition {
1064
1065
  * requestedBy: { agents: ['order-processor-agent'] },
1065
1066
  * routesTo: { agents: ['order-fulfillment-agent'] }
1066
1067
  * }
1067
- */
1068
+ */
1068
1069
  export interface HumanCheckpointDefinition extends ResourceDefinition {
1069
1070
  /** Resource type discriminator (narrowed from base union) */
1070
1071
  type: 'human'
@@ -1084,14 +1085,14 @@ export interface HumanCheckpointDefinition extends ResourceDefinition {
1084
1085
  /** Workflow resourceIds that handle approved tasks */
1085
1086
  workflows?: string[]
1086
1087
  }
1087
- }
1088
- ```
1089
-
1090
- ## Deployment Spec
1091
-
1092
- ### `DeploymentSpec`
1093
-
1094
- ```typescript
1088
+ }
1089
+ ```
1090
+
1091
+ ## Deployment Spec
1092
+
1093
+ ### `DeploymentSpec`
1094
+
1095
+ ```typescript
1095
1096
  /** Supabase Storage path: "{orgId}/{deploymentId}/bundle.js" */
1096
1097
  storagePath: string
1097
1098
  /** Deployment record ID */
@@ -1111,7 +1112,7 @@ export interface HumanCheckpointDefinition extends ResourceDefinition {
1111
1112
  *
1112
1113
  * Complete manifest of all automation resources for an organization.
1113
1114
  * Used by ResourceRegistry for discovery and Command View for visualization.
1114
- */
1115
+ */
1115
1116
  export interface DeploymentSpec {
1116
1117
  /** Deployment version (semver) */
1117
1118
  version: string
@@ -1131,5 +1132,5 @@ export interface DeploymentSpec {
1131
1132
  externalResources?: ExternalResourceDefinition[]
1132
1133
  /** Human checkpoint definitions - human decision points in automation */
1133
1134
  humanCheckpoints?: HumanCheckpointDefinition[]
1134
- }
1135
- ```
1135
+ }
1136
+ ```