@elevasis/core 0.8.2 → 0.9.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 +3 -3
- package/src/_gen/__tests__/__snapshots__/contracts.md.snap +530 -529
- package/src/business/acquisition/api-schemas.ts +167 -72
- package/src/business/projects/types.ts +1 -1
- package/src/commands/queue/types/task.ts +15 -10
- package/src/execution/core/sse-executions.ts +7 -3
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -261
- package/src/execution/engine/tools/lead-service-types.ts +6 -5
- package/src/execution/engine/tools/tool-maps.ts +14 -6
- package/src/platform/constants/versions.ts +1 -1
- package/src/platform/registry/stats-types.ts +8 -6
- package/src/projects/api-schemas.test.ts +39 -0
- package/src/projects/api-schemas.ts +1 -1
- package/src/reference/_generated/contracts.md +2 -1
|
@@ -1,401 +1,402 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
*
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
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
|
+
```
|