@elevasis/core 0.3.0 → 0.4.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/dist/index.d.ts CHANGED
@@ -39,6 +39,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
39
39
  settings: "settings";
40
40
  }>;
41
41
  description: z.ZodOptional<z.ZodString>;
42
+ enabled: z.ZodDefault<z.ZodBoolean>;
42
43
  icon: z.ZodOptional<z.ZodString>;
43
44
  featureId: z.ZodOptional<z.ZodString>;
44
45
  featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -280,6 +281,7 @@ declare const SurfaceDefinitionSchema: z.ZodObject<{
280
281
  settings: "settings";
281
282
  }>;
282
283
  description: z.ZodOptional<z.ZodString>;
284
+ enabled: z.ZodDefault<z.ZodBoolean>;
283
285
  icon: z.ZodOptional<z.ZodString>;
284
286
  featureId: z.ZodOptional<z.ZodString>;
285
287
  featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -303,6 +305,7 @@ declare const OrganizationModelNavigationSchema: z.ZodObject<{
303
305
  settings: "settings";
304
306
  }>;
305
307
  description: z.ZodOptional<z.ZodString>;
308
+ enabled: z.ZodDefault<z.ZodBoolean>;
306
309
  icon: z.ZodOptional<z.ZodString>;
307
310
  featureId: z.ZodOptional<z.ZodString>;
308
311
  featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
package/dist/index.js CHANGED
@@ -177,6 +177,7 @@ var SurfaceDefinitionSchema = z.object({
177
177
  path: PathSchema,
178
178
  surfaceType: SurfaceTypeSchema,
179
179
  description: DescriptionSchema.optional(),
180
+ enabled: z.boolean().default(true),
180
181
  icon: IconNameSchema.optional(),
181
182
  featureId: ModelIdSchema.optional(),
182
183
  featureIds: ReferenceIdsSchema,
@@ -204,6 +205,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
204
205
  label: "Pipeline",
205
206
  path: "/crm/pipeline",
206
207
  surfaceType: "graph",
208
+ enabled: true,
207
209
  featureId: "crm",
208
210
  featureIds: ["crm"],
209
211
  entityIds: ["crm.deal"],
@@ -215,6 +217,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
215
217
  label: "Lists",
216
218
  path: "/lead-gen/lists",
217
219
  surfaceType: "list",
220
+ enabled: true,
218
221
  featureId: "lead-gen",
219
222
  featureIds: ["lead-gen"],
220
223
  entityIds: ["leadgen.list"],
@@ -226,6 +229,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
226
229
  label: "Projects",
227
230
  path: "/projects",
228
231
  surfaceType: "list",
232
+ enabled: true,
229
233
  featureId: PROJECTS_FEATURE_ID,
230
234
  featureIds: [PROJECTS_FEATURE_ID],
231
235
  entityIds: ["delivery.project"],
@@ -237,6 +241,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
237
241
  label: "Organization Graph",
238
242
  path: "/operations/organization-graph",
239
243
  surfaceType: "graph",
244
+ enabled: true,
240
245
  featureId: "operations",
241
246
  featureIds: ["operations"],
242
247
  entityIds: [],
@@ -248,11 +253,216 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
248
253
  label: "Command View",
249
254
  path: "/operations/command-view",
250
255
  surfaceType: "graph",
256
+ enabled: false,
251
257
  featureId: "operations",
252
258
  featureIds: ["operations"],
253
259
  entityIds: [],
254
260
  resourceIds: [],
255
261
  capabilityIds: ["operations.command-view"]
262
+ },
263
+ {
264
+ id: "operations.overview",
265
+ label: "Overview",
266
+ path: "/operations",
267
+ surfaceType: "dashboard",
268
+ enabled: true,
269
+ featureId: "operations",
270
+ featureIds: ["operations"],
271
+ entityIds: [],
272
+ resourceIds: [],
273
+ capabilityIds: []
274
+ },
275
+ {
276
+ id: "operations.resources",
277
+ label: "Resources",
278
+ path: "/operations/resources",
279
+ surfaceType: "list",
280
+ enabled: true,
281
+ featureId: "operations",
282
+ featureIds: ["operations"],
283
+ entityIds: [],
284
+ resourceIds: [],
285
+ capabilityIds: []
286
+ },
287
+ {
288
+ id: "operations.command-queue",
289
+ label: "Command Queue",
290
+ path: "/operations/command-queue",
291
+ surfaceType: "list",
292
+ enabled: true,
293
+ featureId: "operations",
294
+ featureIds: ["operations"],
295
+ entityIds: [],
296
+ resourceIds: [],
297
+ capabilityIds: []
298
+ },
299
+ {
300
+ id: "operations.sessions",
301
+ label: "Sessions",
302
+ path: "/operations/sessions",
303
+ surfaceType: "page",
304
+ enabled: false,
305
+ featureId: "operations",
306
+ featureIds: ["operations"],
307
+ entityIds: [],
308
+ resourceIds: [],
309
+ capabilityIds: []
310
+ },
311
+ {
312
+ id: "operations.task-scheduler",
313
+ label: "Task Scheduler",
314
+ path: "/operations/task-scheduler",
315
+ surfaceType: "page",
316
+ enabled: true,
317
+ featureId: "operations",
318
+ featureIds: ["operations"],
319
+ entityIds: [],
320
+ resourceIds: [],
321
+ capabilityIds: []
322
+ },
323
+ {
324
+ id: "monitoring.activity-log",
325
+ label: "Activity Log",
326
+ path: "/monitoring/activity-log",
327
+ surfaceType: "list",
328
+ enabled: true,
329
+ featureId: "monitoring",
330
+ featureIds: ["monitoring"],
331
+ entityIds: [],
332
+ resourceIds: [],
333
+ capabilityIds: []
334
+ },
335
+ {
336
+ id: "monitoring.execution-logs",
337
+ label: "Execution Logs",
338
+ path: "/monitoring/execution-logs",
339
+ surfaceType: "list",
340
+ enabled: true,
341
+ featureId: "monitoring",
342
+ featureIds: ["monitoring"],
343
+ entityIds: [],
344
+ resourceIds: [],
345
+ capabilityIds: []
346
+ },
347
+ {
348
+ id: "monitoring.execution-health",
349
+ label: "Execution Health",
350
+ path: "/monitoring/execution-health",
351
+ surfaceType: "dashboard",
352
+ enabled: true,
353
+ featureId: "monitoring",
354
+ featureIds: ["monitoring"],
355
+ entityIds: [],
356
+ resourceIds: [],
357
+ capabilityIds: []
358
+ },
359
+ {
360
+ id: "monitoring.cost-analytics",
361
+ label: "Cost Analytics",
362
+ path: "/monitoring/cost-analytics",
363
+ surfaceType: "dashboard",
364
+ enabled: false,
365
+ featureId: "monitoring",
366
+ featureIds: ["monitoring"],
367
+ entityIds: [],
368
+ resourceIds: [],
369
+ capabilityIds: []
370
+ },
371
+ {
372
+ id: "monitoring.notifications",
373
+ label: "Notifications",
374
+ path: "/monitoring/notifications",
375
+ surfaceType: "page",
376
+ enabled: true,
377
+ featureId: "monitoring",
378
+ featureIds: ["monitoring"],
379
+ entityIds: [],
380
+ resourceIds: [],
381
+ capabilityIds: []
382
+ },
383
+ {
384
+ id: "settings.account",
385
+ label: "Account",
386
+ path: "/settings/account",
387
+ surfaceType: "settings",
388
+ enabled: true,
389
+ featureId: "settings",
390
+ featureIds: ["settings"],
391
+ entityIds: [],
392
+ resourceIds: [],
393
+ capabilityIds: []
394
+ },
395
+ {
396
+ id: "settings.appearance",
397
+ label: "Appearance",
398
+ path: "/settings/appearance",
399
+ surfaceType: "settings",
400
+ enabled: true,
401
+ featureId: "settings",
402
+ featureIds: ["settings"],
403
+ entityIds: [],
404
+ resourceIds: [],
405
+ capabilityIds: []
406
+ },
407
+ {
408
+ id: "settings.organization",
409
+ label: "Organization",
410
+ path: "/settings/organization",
411
+ surfaceType: "settings",
412
+ enabled: true,
413
+ featureId: "settings",
414
+ featureIds: ["settings"],
415
+ entityIds: [],
416
+ resourceIds: [],
417
+ capabilityIds: []
418
+ },
419
+ {
420
+ id: "settings.credentials",
421
+ label: "Credentials",
422
+ path: "/settings/credentials",
423
+ surfaceType: "settings",
424
+ enabled: true,
425
+ featureId: "settings",
426
+ featureIds: ["settings"],
427
+ entityIds: [],
428
+ resourceIds: [],
429
+ capabilityIds: []
430
+ },
431
+ {
432
+ id: "settings.api-keys",
433
+ label: "API Keys",
434
+ path: "/settings/api-keys",
435
+ surfaceType: "settings",
436
+ enabled: true,
437
+ featureId: "settings",
438
+ featureIds: ["settings"],
439
+ entityIds: [],
440
+ resourceIds: [],
441
+ capabilityIds: []
442
+ },
443
+ {
444
+ id: "settings.webhooks",
445
+ label: "Webhooks",
446
+ path: "/settings/webhooks",
447
+ surfaceType: "settings",
448
+ enabled: true,
449
+ featureId: "settings",
450
+ featureIds: ["settings"],
451
+ entityIds: [],
452
+ resourceIds: [],
453
+ capabilityIds: []
454
+ },
455
+ {
456
+ id: "settings.deployments",
457
+ label: "Deployments",
458
+ path: "/settings/deployments",
459
+ surfaceType: "settings",
460
+ enabled: true,
461
+ featureId: "settings",
462
+ featureIds: ["settings"],
463
+ entityIds: [],
464
+ resourceIds: [],
465
+ capabilityIds: []
256
466
  }
257
467
  ],
258
468
  groups: [
@@ -266,7 +476,41 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
266
476
  id: "primary-operations",
267
477
  label: "Operations",
268
478
  placement: "primary",
269
- surfaceIds: ["operations.organization-graph", "operations.command-view"]
479
+ surfaceIds: [
480
+ "operations.organization-graph",
481
+ "operations.command-view",
482
+ "operations.overview",
483
+ "operations.resources",
484
+ "operations.command-queue",
485
+ "operations.sessions",
486
+ "operations.task-scheduler"
487
+ ]
488
+ },
489
+ {
490
+ id: "primary-monitoring",
491
+ label: "Monitoring",
492
+ placement: "primary",
493
+ surfaceIds: [
494
+ "monitoring.activity-log",
495
+ "monitoring.execution-logs",
496
+ "monitoring.execution-health",
497
+ "monitoring.cost-analytics",
498
+ "monitoring.notifications"
499
+ ]
500
+ },
501
+ {
502
+ id: "primary-settings",
503
+ label: "Settings",
504
+ placement: "bottom",
505
+ surfaceIds: [
506
+ "settings.account",
507
+ "settings.appearance",
508
+ "settings.organization",
509
+ "settings.credentials",
510
+ "settings.api-keys",
511
+ "settings.webhooks",
512
+ "settings.deployments"
513
+ ]
270
514
  }
271
515
  ]
272
516
  };
@@ -502,7 +746,15 @@ var DEFAULT_ORGANIZATION_MODEL = {
502
746
  enabled: true,
503
747
  color: "violet",
504
748
  entityIds: [],
505
- surfaceIds: ["operations.organization-graph", "operations.command-view"],
749
+ surfaceIds: [
750
+ "operations.organization-graph",
751
+ "operations.command-view",
752
+ "operations.overview",
753
+ "operations.resources",
754
+ "operations.command-queue",
755
+ "operations.sessions",
756
+ "operations.task-scheduler"
757
+ ],
506
758
  resourceIds: [],
507
759
  capabilityIds: ["operations.organization-graph", "operations.command-view"]
508
760
  },
@@ -511,7 +763,13 @@ var DEFAULT_ORGANIZATION_MODEL = {
511
763
  label: "Monitoring",
512
764
  enabled: true,
513
765
  entityIds: [],
514
- surfaceIds: [],
766
+ surfaceIds: [
767
+ "monitoring.activity-log",
768
+ "monitoring.execution-logs",
769
+ "monitoring.execution-health",
770
+ "monitoring.cost-analytics",
771
+ "monitoring.notifications"
772
+ ],
515
773
  resourceIds: [],
516
774
  capabilityIds: []
517
775
  },
@@ -520,7 +778,15 @@ var DEFAULT_ORGANIZATION_MODEL = {
520
778
  label: "Settings",
521
779
  enabled: true,
522
780
  entityIds: [],
523
- surfaceIds: [],
781
+ surfaceIds: [
782
+ "settings.account",
783
+ "settings.appearance",
784
+ "settings.organization",
785
+ "settings.credentials",
786
+ "settings.api-keys",
787
+ "settings.webhooks",
788
+ "settings.deployments"
789
+ ],
524
790
  resourceIds: [],
525
791
  capabilityIds: []
526
792
  },
@@ -614,6 +880,7 @@ function createFoundationOrganizationModel(branding) {
614
880
  label: "Settings",
615
881
  path: "/settings/account",
616
882
  surfaceType: "settings",
883
+ enabled: true,
617
884
  icon: "settings",
618
885
  featureId: "settings",
619
886
  featureIds: ["settings"],
@@ -39,6 +39,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
39
39
  settings: "settings";
40
40
  }>;
41
41
  description: z.ZodOptional<z.ZodString>;
42
+ enabled: z.ZodDefault<z.ZodBoolean>;
42
43
  icon: z.ZodOptional<z.ZodString>;
43
44
  featureId: z.ZodOptional<z.ZodString>;
44
45
  featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -280,6 +281,7 @@ declare const SurfaceDefinitionSchema: z.ZodObject<{
280
281
  settings: "settings";
281
282
  }>;
282
283
  description: z.ZodOptional<z.ZodString>;
284
+ enabled: z.ZodDefault<z.ZodBoolean>;
283
285
  icon: z.ZodOptional<z.ZodString>;
284
286
  featureId: z.ZodOptional<z.ZodString>;
285
287
  featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -303,6 +305,7 @@ declare const OrganizationModelNavigationSchema: z.ZodObject<{
303
305
  settings: "settings";
304
306
  }>;
305
307
  description: z.ZodOptional<z.ZodString>;
308
+ enabled: z.ZodDefault<z.ZodBoolean>;
306
309
  icon: z.ZodOptional<z.ZodString>;
307
310
  featureId: z.ZodOptional<z.ZodString>;
308
311
  featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -177,6 +177,7 @@ var SurfaceDefinitionSchema = z.object({
177
177
  path: PathSchema,
178
178
  surfaceType: SurfaceTypeSchema,
179
179
  description: DescriptionSchema.optional(),
180
+ enabled: z.boolean().default(true),
180
181
  icon: IconNameSchema.optional(),
181
182
  featureId: ModelIdSchema.optional(),
182
183
  featureIds: ReferenceIdsSchema,
@@ -204,6 +205,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
204
205
  label: "Pipeline",
205
206
  path: "/crm/pipeline",
206
207
  surfaceType: "graph",
208
+ enabled: true,
207
209
  featureId: "crm",
208
210
  featureIds: ["crm"],
209
211
  entityIds: ["crm.deal"],
@@ -215,6 +217,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
215
217
  label: "Lists",
216
218
  path: "/lead-gen/lists",
217
219
  surfaceType: "list",
220
+ enabled: true,
218
221
  featureId: "lead-gen",
219
222
  featureIds: ["lead-gen"],
220
223
  entityIds: ["leadgen.list"],
@@ -226,6 +229,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
226
229
  label: "Projects",
227
230
  path: "/projects",
228
231
  surfaceType: "list",
232
+ enabled: true,
229
233
  featureId: PROJECTS_FEATURE_ID,
230
234
  featureIds: [PROJECTS_FEATURE_ID],
231
235
  entityIds: ["delivery.project"],
@@ -237,6 +241,7 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
237
241
  label: "Organization Graph",
238
242
  path: "/operations/organization-graph",
239
243
  surfaceType: "graph",
244
+ enabled: true,
240
245
  featureId: "operations",
241
246
  featureIds: ["operations"],
242
247
  entityIds: [],
@@ -248,11 +253,216 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
248
253
  label: "Command View",
249
254
  path: "/operations/command-view",
250
255
  surfaceType: "graph",
256
+ enabled: false,
251
257
  featureId: "operations",
252
258
  featureIds: ["operations"],
253
259
  entityIds: [],
254
260
  resourceIds: [],
255
261
  capabilityIds: ["operations.command-view"]
262
+ },
263
+ {
264
+ id: "operations.overview",
265
+ label: "Overview",
266
+ path: "/operations",
267
+ surfaceType: "dashboard",
268
+ enabled: true,
269
+ featureId: "operations",
270
+ featureIds: ["operations"],
271
+ entityIds: [],
272
+ resourceIds: [],
273
+ capabilityIds: []
274
+ },
275
+ {
276
+ id: "operations.resources",
277
+ label: "Resources",
278
+ path: "/operations/resources",
279
+ surfaceType: "list",
280
+ enabled: true,
281
+ featureId: "operations",
282
+ featureIds: ["operations"],
283
+ entityIds: [],
284
+ resourceIds: [],
285
+ capabilityIds: []
286
+ },
287
+ {
288
+ id: "operations.command-queue",
289
+ label: "Command Queue",
290
+ path: "/operations/command-queue",
291
+ surfaceType: "list",
292
+ enabled: true,
293
+ featureId: "operations",
294
+ featureIds: ["operations"],
295
+ entityIds: [],
296
+ resourceIds: [],
297
+ capabilityIds: []
298
+ },
299
+ {
300
+ id: "operations.sessions",
301
+ label: "Sessions",
302
+ path: "/operations/sessions",
303
+ surfaceType: "page",
304
+ enabled: false,
305
+ featureId: "operations",
306
+ featureIds: ["operations"],
307
+ entityIds: [],
308
+ resourceIds: [],
309
+ capabilityIds: []
310
+ },
311
+ {
312
+ id: "operations.task-scheduler",
313
+ label: "Task Scheduler",
314
+ path: "/operations/task-scheduler",
315
+ surfaceType: "page",
316
+ enabled: true,
317
+ featureId: "operations",
318
+ featureIds: ["operations"],
319
+ entityIds: [],
320
+ resourceIds: [],
321
+ capabilityIds: []
322
+ },
323
+ {
324
+ id: "monitoring.activity-log",
325
+ label: "Activity Log",
326
+ path: "/monitoring/activity-log",
327
+ surfaceType: "list",
328
+ enabled: true,
329
+ featureId: "monitoring",
330
+ featureIds: ["monitoring"],
331
+ entityIds: [],
332
+ resourceIds: [],
333
+ capabilityIds: []
334
+ },
335
+ {
336
+ id: "monitoring.execution-logs",
337
+ label: "Execution Logs",
338
+ path: "/monitoring/execution-logs",
339
+ surfaceType: "list",
340
+ enabled: true,
341
+ featureId: "monitoring",
342
+ featureIds: ["monitoring"],
343
+ entityIds: [],
344
+ resourceIds: [],
345
+ capabilityIds: []
346
+ },
347
+ {
348
+ id: "monitoring.execution-health",
349
+ label: "Execution Health",
350
+ path: "/monitoring/execution-health",
351
+ surfaceType: "dashboard",
352
+ enabled: true,
353
+ featureId: "monitoring",
354
+ featureIds: ["monitoring"],
355
+ entityIds: [],
356
+ resourceIds: [],
357
+ capabilityIds: []
358
+ },
359
+ {
360
+ id: "monitoring.cost-analytics",
361
+ label: "Cost Analytics",
362
+ path: "/monitoring/cost-analytics",
363
+ surfaceType: "dashboard",
364
+ enabled: false,
365
+ featureId: "monitoring",
366
+ featureIds: ["monitoring"],
367
+ entityIds: [],
368
+ resourceIds: [],
369
+ capabilityIds: []
370
+ },
371
+ {
372
+ id: "monitoring.notifications",
373
+ label: "Notifications",
374
+ path: "/monitoring/notifications",
375
+ surfaceType: "page",
376
+ enabled: true,
377
+ featureId: "monitoring",
378
+ featureIds: ["monitoring"],
379
+ entityIds: [],
380
+ resourceIds: [],
381
+ capabilityIds: []
382
+ },
383
+ {
384
+ id: "settings.account",
385
+ label: "Account",
386
+ path: "/settings/account",
387
+ surfaceType: "settings",
388
+ enabled: true,
389
+ featureId: "settings",
390
+ featureIds: ["settings"],
391
+ entityIds: [],
392
+ resourceIds: [],
393
+ capabilityIds: []
394
+ },
395
+ {
396
+ id: "settings.appearance",
397
+ label: "Appearance",
398
+ path: "/settings/appearance",
399
+ surfaceType: "settings",
400
+ enabled: true,
401
+ featureId: "settings",
402
+ featureIds: ["settings"],
403
+ entityIds: [],
404
+ resourceIds: [],
405
+ capabilityIds: []
406
+ },
407
+ {
408
+ id: "settings.organization",
409
+ label: "Organization",
410
+ path: "/settings/organization",
411
+ surfaceType: "settings",
412
+ enabled: true,
413
+ featureId: "settings",
414
+ featureIds: ["settings"],
415
+ entityIds: [],
416
+ resourceIds: [],
417
+ capabilityIds: []
418
+ },
419
+ {
420
+ id: "settings.credentials",
421
+ label: "Credentials",
422
+ path: "/settings/credentials",
423
+ surfaceType: "settings",
424
+ enabled: true,
425
+ featureId: "settings",
426
+ featureIds: ["settings"],
427
+ entityIds: [],
428
+ resourceIds: [],
429
+ capabilityIds: []
430
+ },
431
+ {
432
+ id: "settings.api-keys",
433
+ label: "API Keys",
434
+ path: "/settings/api-keys",
435
+ surfaceType: "settings",
436
+ enabled: true,
437
+ featureId: "settings",
438
+ featureIds: ["settings"],
439
+ entityIds: [],
440
+ resourceIds: [],
441
+ capabilityIds: []
442
+ },
443
+ {
444
+ id: "settings.webhooks",
445
+ label: "Webhooks",
446
+ path: "/settings/webhooks",
447
+ surfaceType: "settings",
448
+ enabled: true,
449
+ featureId: "settings",
450
+ featureIds: ["settings"],
451
+ entityIds: [],
452
+ resourceIds: [],
453
+ capabilityIds: []
454
+ },
455
+ {
456
+ id: "settings.deployments",
457
+ label: "Deployments",
458
+ path: "/settings/deployments",
459
+ surfaceType: "settings",
460
+ enabled: true,
461
+ featureId: "settings",
462
+ featureIds: ["settings"],
463
+ entityIds: [],
464
+ resourceIds: [],
465
+ capabilityIds: []
256
466
  }
257
467
  ],
258
468
  groups: [
@@ -266,7 +476,41 @@ var DEFAULT_ORGANIZATION_MODEL_NAVIGATION = {
266
476
  id: "primary-operations",
267
477
  label: "Operations",
268
478
  placement: "primary",
269
- surfaceIds: ["operations.organization-graph", "operations.command-view"]
479
+ surfaceIds: [
480
+ "operations.organization-graph",
481
+ "operations.command-view",
482
+ "operations.overview",
483
+ "operations.resources",
484
+ "operations.command-queue",
485
+ "operations.sessions",
486
+ "operations.task-scheduler"
487
+ ]
488
+ },
489
+ {
490
+ id: "primary-monitoring",
491
+ label: "Monitoring",
492
+ placement: "primary",
493
+ surfaceIds: [
494
+ "monitoring.activity-log",
495
+ "monitoring.execution-logs",
496
+ "monitoring.execution-health",
497
+ "monitoring.cost-analytics",
498
+ "monitoring.notifications"
499
+ ]
500
+ },
501
+ {
502
+ id: "primary-settings",
503
+ label: "Settings",
504
+ placement: "bottom",
505
+ surfaceIds: [
506
+ "settings.account",
507
+ "settings.appearance",
508
+ "settings.organization",
509
+ "settings.credentials",
510
+ "settings.api-keys",
511
+ "settings.webhooks",
512
+ "settings.deployments"
513
+ ]
270
514
  }
271
515
  ]
272
516
  };
@@ -502,7 +746,15 @@ var DEFAULT_ORGANIZATION_MODEL = {
502
746
  enabled: true,
503
747
  color: "violet",
504
748
  entityIds: [],
505
- surfaceIds: ["operations.organization-graph", "operations.command-view"],
749
+ surfaceIds: [
750
+ "operations.organization-graph",
751
+ "operations.command-view",
752
+ "operations.overview",
753
+ "operations.resources",
754
+ "operations.command-queue",
755
+ "operations.sessions",
756
+ "operations.task-scheduler"
757
+ ],
506
758
  resourceIds: [],
507
759
  capabilityIds: ["operations.organization-graph", "operations.command-view"]
508
760
  },
@@ -511,7 +763,13 @@ var DEFAULT_ORGANIZATION_MODEL = {
511
763
  label: "Monitoring",
512
764
  enabled: true,
513
765
  entityIds: [],
514
- surfaceIds: [],
766
+ surfaceIds: [
767
+ "monitoring.activity-log",
768
+ "monitoring.execution-logs",
769
+ "monitoring.execution-health",
770
+ "monitoring.cost-analytics",
771
+ "monitoring.notifications"
772
+ ],
515
773
  resourceIds: [],
516
774
  capabilityIds: []
517
775
  },
@@ -520,7 +778,15 @@ var DEFAULT_ORGANIZATION_MODEL = {
520
778
  label: "Settings",
521
779
  enabled: true,
522
780
  entityIds: [],
523
- surfaceIds: [],
781
+ surfaceIds: [
782
+ "settings.account",
783
+ "settings.appearance",
784
+ "settings.organization",
785
+ "settings.credentials",
786
+ "settings.api-keys",
787
+ "settings.webhooks",
788
+ "settings.deployments"
789
+ ],
524
790
  resourceIds: [],
525
791
  capabilityIds: []
526
792
  },
@@ -614,6 +880,7 @@ function createFoundationOrganizationModel(branding) {
614
880
  label: "Settings",
615
881
  path: "/settings/account",
616
882
  surfaceType: "settings",
883
+ enabled: true,
617
884
  icon: "settings",
618
885
  featureId: "settings",
619
886
  featureIds: ["settings"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/core",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "license": "MIT",
5
5
  "description": "Minimal shared constants across Elevasis monorepo",
6
6
  "sideEffects": false,
@@ -70,8 +70,8 @@ describe('organization-model', () => {
70
70
  expect(model.branding.shortName).toBe('Elevasis')
71
71
  expect(model.features).toHaveLength(7)
72
72
  expect(model.navigation.defaultSurfaceId).toBe('crm.pipeline')
73
- expect(model.navigation.surfaces).toHaveLength(5)
74
- expect(model.navigation.groups).toHaveLength(2)
73
+ expect(model.navigation.surfaces).toHaveLength(22)
74
+ expect(model.navigation.groups).toHaveLength(4)
75
75
  })
76
76
 
77
77
  it('preserves sibling fields when overriding a nested property', () => {
@@ -1,9 +1,5 @@
1
1
  import type { OrganizationModel } from './types'
2
- import {
3
- DELIVERY_PROJECTS_VIEW_CAPABILITY_ID,
4
- PROJECTS_FEATURE_ID,
5
- PROJECTS_INDEX_SURFACE_ID
6
- } from './contracts'
2
+ import { DELIVERY_PROJECTS_VIEW_CAPABILITY_ID, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID } from './contracts'
7
3
  import { DEFAULT_ORGANIZATION_MODEL_BRANDING } from './domains/branding'
8
4
  import { DEFAULT_ORGANIZATION_MODEL_CRM } from './domains/crm'
9
5
  import { DEFAULT_ORGANIZATION_MODEL_DELIVERY } from './domains/delivery'
@@ -53,7 +49,15 @@ export const DEFAULT_ORGANIZATION_MODEL: OrganizationModel = {
53
49
  enabled: true,
54
50
  color: 'violet',
55
51
  entityIds: [],
56
- surfaceIds: ['operations.organization-graph', 'operations.command-view'],
52
+ surfaceIds: [
53
+ 'operations.organization-graph',
54
+ 'operations.command-view',
55
+ 'operations.overview',
56
+ 'operations.resources',
57
+ 'operations.command-queue',
58
+ 'operations.sessions',
59
+ 'operations.task-scheduler'
60
+ ],
57
61
  resourceIds: [],
58
62
  capabilityIds: ['operations.organization-graph', 'operations.command-view']
59
63
  },
@@ -62,7 +66,13 @@ export const DEFAULT_ORGANIZATION_MODEL: OrganizationModel = {
62
66
  label: 'Monitoring',
63
67
  enabled: true,
64
68
  entityIds: [],
65
- surfaceIds: [],
69
+ surfaceIds: [
70
+ 'monitoring.activity-log',
71
+ 'monitoring.execution-logs',
72
+ 'monitoring.execution-health',
73
+ 'monitoring.cost-analytics',
74
+ 'monitoring.notifications'
75
+ ],
66
76
  resourceIds: [],
67
77
  capabilityIds: []
68
78
  },
@@ -71,7 +81,15 @@ export const DEFAULT_ORGANIZATION_MODEL: OrganizationModel = {
71
81
  label: 'Settings',
72
82
  enabled: true,
73
83
  entityIds: [],
74
- surfaceIds: [],
84
+ surfaceIds: [
85
+ 'settings.account',
86
+ 'settings.appearance',
87
+ 'settings.organization',
88
+ 'settings.credentials',
89
+ 'settings.api-keys',
90
+ 'settings.webhooks',
91
+ 'settings.deployments'
92
+ ],
75
93
  resourceIds: [],
76
94
  capabilityIds: []
77
95
  },
@@ -1,9 +1,5 @@
1
1
  import { z } from 'zod'
2
- import {
3
- DELIVERY_PROJECTS_VIEW_CAPABILITY_ID,
4
- PROJECTS_FEATURE_ID,
5
- PROJECTS_INDEX_SURFACE_ID
6
- } from '../contracts'
2
+ import { DELIVERY_PROJECTS_VIEW_CAPABILITY_ID, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID } from '../contracts'
7
3
  import { DescriptionSchema, IconNameSchema, LabelSchema, ModelIdSchema, PathSchema, ReferenceIdsSchema } from './shared'
8
4
 
9
5
  export const SurfaceTypeSchema = z.enum(['page', 'dashboard', 'graph', 'detail', 'list', 'settings'])
@@ -14,6 +10,7 @@ export const SurfaceDefinitionSchema = z.object({
14
10
  path: PathSchema,
15
11
  surfaceType: SurfaceTypeSchema,
16
12
  description: DescriptionSchema.optional(),
13
+ enabled: z.boolean().default(true),
17
14
  icon: IconNameSchema.optional(),
18
15
  featureId: ModelIdSchema.optional(),
19
16
  featureIds: ReferenceIdsSchema,
@@ -44,6 +41,7 @@ export const DEFAULT_ORGANIZATION_MODEL_NAVIGATION: z.infer<typeof OrganizationM
44
41
  label: 'Pipeline',
45
42
  path: '/crm/pipeline',
46
43
  surfaceType: 'graph',
44
+ enabled: true,
47
45
  featureId: 'crm',
48
46
  featureIds: ['crm'],
49
47
  entityIds: ['crm.deal'],
@@ -55,6 +53,7 @@ export const DEFAULT_ORGANIZATION_MODEL_NAVIGATION: z.infer<typeof OrganizationM
55
53
  label: 'Lists',
56
54
  path: '/lead-gen/lists',
57
55
  surfaceType: 'list',
56
+ enabled: true,
58
57
  featureId: 'lead-gen',
59
58
  featureIds: ['lead-gen'],
60
59
  entityIds: ['leadgen.list'],
@@ -66,6 +65,7 @@ export const DEFAULT_ORGANIZATION_MODEL_NAVIGATION: z.infer<typeof OrganizationM
66
65
  label: 'Projects',
67
66
  path: '/projects',
68
67
  surfaceType: 'list',
68
+ enabled: true,
69
69
  featureId: PROJECTS_FEATURE_ID,
70
70
  featureIds: [PROJECTS_FEATURE_ID],
71
71
  entityIds: ['delivery.project'],
@@ -77,6 +77,7 @@ export const DEFAULT_ORGANIZATION_MODEL_NAVIGATION: z.infer<typeof OrganizationM
77
77
  label: 'Organization Graph',
78
78
  path: '/operations/organization-graph',
79
79
  surfaceType: 'graph',
80
+ enabled: true,
80
81
  featureId: 'operations',
81
82
  featureIds: ['operations'],
82
83
  entityIds: [],
@@ -88,11 +89,216 @@ export const DEFAULT_ORGANIZATION_MODEL_NAVIGATION: z.infer<typeof OrganizationM
88
89
  label: 'Command View',
89
90
  path: '/operations/command-view',
90
91
  surfaceType: 'graph',
92
+ enabled: false,
91
93
  featureId: 'operations',
92
94
  featureIds: ['operations'],
93
95
  entityIds: [],
94
96
  resourceIds: [],
95
97
  capabilityIds: ['operations.command-view']
98
+ },
99
+ {
100
+ id: 'operations.overview',
101
+ label: 'Overview',
102
+ path: '/operations',
103
+ surfaceType: 'dashboard',
104
+ enabled: true,
105
+ featureId: 'operations',
106
+ featureIds: ['operations'],
107
+ entityIds: [],
108
+ resourceIds: [],
109
+ capabilityIds: []
110
+ },
111
+ {
112
+ id: 'operations.resources',
113
+ label: 'Resources',
114
+ path: '/operations/resources',
115
+ surfaceType: 'list',
116
+ enabled: true,
117
+ featureId: 'operations',
118
+ featureIds: ['operations'],
119
+ entityIds: [],
120
+ resourceIds: [],
121
+ capabilityIds: []
122
+ },
123
+ {
124
+ id: 'operations.command-queue',
125
+ label: 'Command Queue',
126
+ path: '/operations/command-queue',
127
+ surfaceType: 'list',
128
+ enabled: true,
129
+ featureId: 'operations',
130
+ featureIds: ['operations'],
131
+ entityIds: [],
132
+ resourceIds: [],
133
+ capabilityIds: []
134
+ },
135
+ {
136
+ id: 'operations.sessions',
137
+ label: 'Sessions',
138
+ path: '/operations/sessions',
139
+ surfaceType: 'page',
140
+ enabled: false,
141
+ featureId: 'operations',
142
+ featureIds: ['operations'],
143
+ entityIds: [],
144
+ resourceIds: [],
145
+ capabilityIds: []
146
+ },
147
+ {
148
+ id: 'operations.task-scheduler',
149
+ label: 'Task Scheduler',
150
+ path: '/operations/task-scheduler',
151
+ surfaceType: 'page',
152
+ enabled: true,
153
+ featureId: 'operations',
154
+ featureIds: ['operations'],
155
+ entityIds: [],
156
+ resourceIds: [],
157
+ capabilityIds: []
158
+ },
159
+ {
160
+ id: 'monitoring.activity-log',
161
+ label: 'Activity Log',
162
+ path: '/monitoring/activity-log',
163
+ surfaceType: 'list',
164
+ enabled: true,
165
+ featureId: 'monitoring',
166
+ featureIds: ['monitoring'],
167
+ entityIds: [],
168
+ resourceIds: [],
169
+ capabilityIds: []
170
+ },
171
+ {
172
+ id: 'monitoring.execution-logs',
173
+ label: 'Execution Logs',
174
+ path: '/monitoring/execution-logs',
175
+ surfaceType: 'list',
176
+ enabled: true,
177
+ featureId: 'monitoring',
178
+ featureIds: ['monitoring'],
179
+ entityIds: [],
180
+ resourceIds: [],
181
+ capabilityIds: []
182
+ },
183
+ {
184
+ id: 'monitoring.execution-health',
185
+ label: 'Execution Health',
186
+ path: '/monitoring/execution-health',
187
+ surfaceType: 'dashboard',
188
+ enabled: true,
189
+ featureId: 'monitoring',
190
+ featureIds: ['monitoring'],
191
+ entityIds: [],
192
+ resourceIds: [],
193
+ capabilityIds: []
194
+ },
195
+ {
196
+ id: 'monitoring.cost-analytics',
197
+ label: 'Cost Analytics',
198
+ path: '/monitoring/cost-analytics',
199
+ surfaceType: 'dashboard',
200
+ enabled: false,
201
+ featureId: 'monitoring',
202
+ featureIds: ['monitoring'],
203
+ entityIds: [],
204
+ resourceIds: [],
205
+ capabilityIds: []
206
+ },
207
+ {
208
+ id: 'monitoring.notifications',
209
+ label: 'Notifications',
210
+ path: '/monitoring/notifications',
211
+ surfaceType: 'page',
212
+ enabled: true,
213
+ featureId: 'monitoring',
214
+ featureIds: ['monitoring'],
215
+ entityIds: [],
216
+ resourceIds: [],
217
+ capabilityIds: []
218
+ },
219
+ {
220
+ id: 'settings.account',
221
+ label: 'Account',
222
+ path: '/settings/account',
223
+ surfaceType: 'settings',
224
+ enabled: true,
225
+ featureId: 'settings',
226
+ featureIds: ['settings'],
227
+ entityIds: [],
228
+ resourceIds: [],
229
+ capabilityIds: []
230
+ },
231
+ {
232
+ id: 'settings.appearance',
233
+ label: 'Appearance',
234
+ path: '/settings/appearance',
235
+ surfaceType: 'settings',
236
+ enabled: true,
237
+ featureId: 'settings',
238
+ featureIds: ['settings'],
239
+ entityIds: [],
240
+ resourceIds: [],
241
+ capabilityIds: []
242
+ },
243
+ {
244
+ id: 'settings.organization',
245
+ label: 'Organization',
246
+ path: '/settings/organization',
247
+ surfaceType: 'settings',
248
+ enabled: true,
249
+ featureId: 'settings',
250
+ featureIds: ['settings'],
251
+ entityIds: [],
252
+ resourceIds: [],
253
+ capabilityIds: []
254
+ },
255
+ {
256
+ id: 'settings.credentials',
257
+ label: 'Credentials',
258
+ path: '/settings/credentials',
259
+ surfaceType: 'settings',
260
+ enabled: true,
261
+ featureId: 'settings',
262
+ featureIds: ['settings'],
263
+ entityIds: [],
264
+ resourceIds: [],
265
+ capabilityIds: []
266
+ },
267
+ {
268
+ id: 'settings.api-keys',
269
+ label: 'API Keys',
270
+ path: '/settings/api-keys',
271
+ surfaceType: 'settings',
272
+ enabled: true,
273
+ featureId: 'settings',
274
+ featureIds: ['settings'],
275
+ entityIds: [],
276
+ resourceIds: [],
277
+ capabilityIds: []
278
+ },
279
+ {
280
+ id: 'settings.webhooks',
281
+ label: 'Webhooks',
282
+ path: '/settings/webhooks',
283
+ surfaceType: 'settings',
284
+ enabled: true,
285
+ featureId: 'settings',
286
+ featureIds: ['settings'],
287
+ entityIds: [],
288
+ resourceIds: [],
289
+ capabilityIds: []
290
+ },
291
+ {
292
+ id: 'settings.deployments',
293
+ label: 'Deployments',
294
+ path: '/settings/deployments',
295
+ surfaceType: 'settings',
296
+ enabled: true,
297
+ featureId: 'settings',
298
+ featureIds: ['settings'],
299
+ entityIds: [],
300
+ resourceIds: [],
301
+ capabilityIds: []
96
302
  }
97
303
  ],
98
304
  groups: [
@@ -106,7 +312,41 @@ export const DEFAULT_ORGANIZATION_MODEL_NAVIGATION: z.infer<typeof OrganizationM
106
312
  id: 'primary-operations',
107
313
  label: 'Operations',
108
314
  placement: 'primary',
109
- surfaceIds: ['operations.organization-graph', 'operations.command-view']
315
+ surfaceIds: [
316
+ 'operations.organization-graph',
317
+ 'operations.command-view',
318
+ 'operations.overview',
319
+ 'operations.resources',
320
+ 'operations.command-queue',
321
+ 'operations.sessions',
322
+ 'operations.task-scheduler'
323
+ ]
324
+ },
325
+ {
326
+ id: 'primary-monitoring',
327
+ label: 'Monitoring',
328
+ placement: 'primary',
329
+ surfaceIds: [
330
+ 'monitoring.activity-log',
331
+ 'monitoring.execution-logs',
332
+ 'monitoring.execution-health',
333
+ 'monitoring.cost-analytics',
334
+ 'monitoring.notifications'
335
+ ]
336
+ },
337
+ {
338
+ id: 'primary-settings',
339
+ label: 'Settings',
340
+ placement: 'bottom',
341
+ surfaceIds: [
342
+ 'settings.account',
343
+ 'settings.appearance',
344
+ 'settings.organization',
345
+ 'settings.credentials',
346
+ 'settings.api-keys',
347
+ 'settings.webhooks',
348
+ 'settings.deployments'
349
+ ]
110
350
  }
111
351
  ]
112
352
  }
@@ -60,6 +60,7 @@ export function createFoundationOrganizationModel(branding: FoundationBranding):
60
60
  label: 'Settings',
61
61
  path: '/settings/account',
62
62
  surfaceType: 'settings',
63
+ enabled: true,
63
64
  icon: 'settings',
64
65
  featureId: 'settings',
65
66
  featureIds: ['settings'],
@@ -5,7 +5,7 @@ description: Organization OS Graph layer documentation for the Cytoscape-based o
5
5
 
6
6
  ## Overview
7
7
 
8
- Within Organization OS, the organization graph is the dedicated **Graph** layer. It treats the organization model as the top-level ontology and bridges in Command View runtime topology so one graph can support semantic exploration and operations-oriented tracing. It is not a replacement renderer for Command View; it is a shared graph product that subsumes Command View as one operational lens.
8
+ Within Organization OS, the organization graph is the dedicated **Graph** layer. It treats the organization model as the top-level ontology and bridges in Command View runtime topology so one graph can support semantic exploration and operations-oriented tracing. Command View is now one lens over this shared graph, not a separate live graph renderer.
9
9
 
10
10
  Graph contracts live in `@repo/core` alongside the organization model. Rendering lives in `@repo/ui` with Cytoscape.js. The command-center route is a thin wrapper over the shared page.
11
11
 
@@ -32,7 +32,7 @@ Graph types are intentionally **not** part of the published `@elevasis/core` sur
32
32
  The graph helps users:
33
33
 
34
34
  - orient themselves in the organization model
35
- - discover how domains, capabilities, surfaces, entities, resources, and workflows connect
35
+ - discover how features, capabilities, surfaces, entities, resources, and workflows connect
36
36
  - trace upstream/downstream dependencies
37
37
  - understand ownership and implementation boundaries
38
38
  - assess blast radius before changing a workflow, agent, feature, or integration
@@ -46,21 +46,22 @@ The graph does not replace workflow editors, execution-run visualizers, or build
46
46
 
47
47
  The implementation uses one typed graph, not separate semantic and implementation taxonomies.
48
48
 
49
- - Node kinds: `organization`, `feature`, `domain`, `surface`, `entity`, `capability`, `resource`
49
+ - Node kinds: `organization`, `feature`, `surface`, `entity`, `capability`, `resource`
50
50
  - Edge kinds: `contains`, `references`, `exposes`, `maps_to`
51
51
  - `resource` nodes carry `resourceType` metadata: `workflow`, `agent`, `trigger`, `integration`, `external`, or `human_checkpoint`
52
52
  - `references` edges may also carry `relationshipType`: `triggers`, `uses`, or `approval`
53
53
 
54
- This means runtime topology is represented as bridged `resource` nodes plus relationship metadata on shared edge types, rather than as a second disconnected edge/node vocabulary.
54
+ This means runtime topology is represented as bridged `resource` nodes plus relationship metadata on shared edge types, rather than as a second disconnected edge/node vocabulary. `maps_to` is the main crossover edge: the builder emits it from organization-model resource mappings, and the UI presence helpers also treat it as topology-facing when classifying which non-resource nodes participate in runtime-adjacent views.
55
55
 
56
56
  ### Compatibility rules with the organization model
57
57
 
58
58
  - `OrganizationModelSchema` is the source of truth for semantic structure. The graph does not introduce a second ontology.
59
59
  - Graph node IDs and references reuse organization-model IDs wherever those IDs already exist.
60
- - `domain` nodes derive from `organizationModel.domains`.
61
60
  - `surface` nodes derive from `organizationModel.navigation.surfaces`; graph routing respects surface `path` and `defaultSurfaceId`.
62
61
  - Feature gating and labels respect `organizationModel.features.enabled` and `.labels`.
63
62
  - Implementation-resource bridging prefers `organizationModel.resourceMappings`.
63
+ - Semantic grouping now comes from the unified `organizationModel.features` array. The builder no longer emits separate `domain` nodes.
64
+ - Command View resource `domains` metadata is currently bridged onto `feature` references, not onto a distinct domain-node layer.
64
65
  - Graph defaults remain valid when produced by `resolveOrganizationModel()`.
65
66
  - If the graph needs a concept the model cannot express, extend the model first.
66
67
 
@@ -70,7 +71,6 @@ This means runtime topology is represented as bridged `resource` nodes plus rela
70
71
  type OrganizationGraphNodeKind =
71
72
  | 'organization'
72
73
  | 'feature'
73
- | 'domain'
74
74
  | 'surface'
75
75
  | 'entity'
76
76
  | 'capability'
@@ -86,7 +86,7 @@ interface OrganizationGraph {
86
86
  }
87
87
  ```
88
88
 
89
- `OrganizationGraphNode` also includes optional `sourceId`, `description`, `enabled`, `featureKey`, `surfaceType`, and `resourceType`. `OrganizationGraphEdge` includes optional `label` and `relationshipType`.
89
+ `OrganizationGraphNode` also includes optional `sourceId`, `description`, `enabled`, `featureId`, `surfaceType`, and `resourceType`. `OrganizationGraphEdge` includes optional `label` and `relationshipType`.
90
90
 
91
91
  ### Build pipeline
92
92
 
@@ -100,9 +100,9 @@ interface BuildOrganizationGraphInput {
100
100
  `buildOrganizationGraph` accepts optional topology input so the semantic graph still renders when operational bridging is sparse. The derivation flow is additive and upsert-oriented:
101
101
 
102
102
  1. Resolve the active organization model.
103
- 2. Derive semantic nodes and edges from domains, features, surfaces, entities, capabilities, and resource mappings.
103
+ 2. Derive semantic nodes and edges from features, surfaces, entities, capabilities, and resource mappings.
104
104
  3. Upsert bridged runtime resources from Command View data into shared `resource` nodes.
105
- 4. Merge topology relationships onto the same DTO using `references` or `maps_to` edges plus optional `relationshipType`.
105
+ 4. Bridge Command View runtime topology onto the same DTO as `references` edges between `resource` nodes, using `relationshipType` for runtime relationship labels.
106
106
  5. Hand the resulting graph to UI-level lensing, filtering, and Cytoscape projection.
107
107
 
108
108
  Keeping assembly outside the renderer keeps graph semantics testable without UI and prevents Cytoscape concepts from leaking into business logic.
@@ -110,7 +110,7 @@ Keeping assembly outside the renderer keeps graph semantics testable without UI
110
110
  ### Ownership split
111
111
 
112
112
  - `@repo/core` owns normalized node/edge types, schemas, and build/derivation helpers.
113
- - `@repo/ui` owns Cytoscape element conversion, layout presets, selection/hover/expansion/viewport state, detail panels, and presentation helpers.
113
+ - `@repo/ui` owns Cytoscape element conversion, layout presets, selection state, path tracing, viewport mechanics, detail panels, and presentation helpers.
114
114
  - `apps/command-center` owns route wiring and page-level integration.
115
115
 
116
116
  ## Interaction Model
@@ -124,6 +124,8 @@ The graph ships with two lens presets in UI code:
124
124
 
125
125
  Lenses do not change the core DTO. They configure how the shared graph is initially presented.
126
126
 
127
+ The command-view preset is intentionally narrow. It starts from topology-focused `resource` nodes so runtime traces stay readable, even though the underlying graph still contains semantic nodes and bridge edges.
128
+
127
129
  ### Modes
128
130
 
129
131
  - **Map mode** -- clustered for broad graph orientation
@@ -138,18 +140,13 @@ Layouts are deterministic presets, not unconstrained force simulation:
138
140
 
139
141
  ### Interactions
140
142
 
141
- Primary set, kept small and high-value:
143
+ Primary set in the current shared page:
142
144
 
143
145
  - click node for detail panel
144
146
  - click edge for relationship meaning
145
- - hover for adjacency preview
146
- - search and jump to node
147
- - expand immediate neighbors
148
- - isolate selected node + N-hop neighborhood
149
147
  - switch mode
150
- - pin selected nodes
151
- - highlight shortest or most relevant path between two nodes
152
- - filter by node kind, domain, capability, feature, status, environment
148
+ - highlight shortest directed paths between two visible nodes in trace mode
149
+ - filter by node kind, topology presence, and free-text search
153
150
 
154
151
  Deferred: freeform node placement, collaborative annotations, graph editing/authoring, arbitrary canvas drawing.
155
152
 
@@ -163,13 +160,15 @@ Filter inputs:
163
160
  - `nodeKinds`
164
161
  - `topologyPresence: 'all' | 'semantic-only' | 'topology-only'`
165
162
 
166
- Presence is derived per node:
163
+ Presence is derived per node in UI helpers:
167
164
 
168
165
  - `resource` nodes are `topology-only`
169
- - nodes with only semantic edges are `semantic-only`
170
- - nodes with both semantic and topology edges are treated as bridge nodes internally
166
+ - non-resource nodes with only semantic edges are `semantic-only`
167
+ - non-resource nodes with `maps_to` edges or runtime relationship edges alongside semantic edges are treated as `bridge` nodes internally
168
+
169
+ `bridge` is an internal classification used by the filtering helpers. The public filter control only exposes `all`, `semantic-only`, and `topology-only`, so bridge nodes appear when presence is `all`.
171
170
 
172
- Search matches node IDs, labels, descriptions, source IDs, feature keys, surface/resource types, edge labels, edge kinds, and `relationshipType`.
171
+ Search matches node IDs, labels, descriptions, source IDs, feature IDs, surface/resource types, edge labels, edge kinds, and `relationshipType`.
173
172
 
174
173
  The page applies `useDeferredValue()` to the active filters so graph search stays responsive while typing.
175
174
 
@@ -188,19 +187,28 @@ The graph is exposed through `ElevasisFeaturesProvider` rather than as app-local
188
187
  - The provider resolves that against `organizationModel.navigation.surfaces` and exposes the result as `organizationGraph` in context.
189
188
  - Shared UI/operations code stays manifest-driven while remaining aware of semantic organization topology.
190
189
 
190
+ This provider bridge resolves the canonical shared graph surface, not a Command View-specific surface. Command View still has its own navigation surface (`operations.command-view`), but the live page delegates into the shared graph renderer.
191
+
191
192
  ## Command View Integration
192
193
 
193
- `CommandViewPage` now delegates to `OrganizationGraphPage` through a command-view lens preset. The lens restores high-value operational context through:
194
+ `CommandViewPage` now delegates to `OrganizationGraphPage` through a command-view lens preset. The shared page adds command-view operational context through:
194
195
 
195
- - route-level execution-health cards
196
+ - command-view summary cards rendered in `OrganizationGraphPage`
196
197
  - selection-aware resource and human-checkpoint summaries inside the shared graph detail panel
197
198
  - follow-up actions for recent executions and pending tasks inside the detail panel
198
- - dedicated command-view sidebar content (`Command View` labeling and node filters live in the subshell sidebar, not on the graph canvas)
199
+ - dedicated command-view sidebar content alongside the shared graph controls
199
200
 
200
201
  Operational summary and drill-down derivation is covered by tests under `packages/ui/src/features/operations/organization-graph/__tests__/`.
201
202
 
202
203
  The detail experience is shared through `OrganizationGraphDetailPanel`, which can render both semantic context and command-view-specific follow-up sections.
203
204
 
205
+ Keep the current seam explicit:
206
+
207
+ - The graph canvas, selection model, path tracing, shared filters, and detail panel all live in `OrganizationGraphPage`.
208
+ - `OperationsSidebarMiddle` still renders `CommandViewSidebarContent` for `/operations/command-view`.
209
+ - That sidebar remains a companion operational panel with some legacy store/filter assumptions and is not the source of truth for the shared graph's filter state.
210
+ - Older React Flow Command View code still exists in the repo, but it is no longer the live renderer for the current Command View route.
211
+
204
212
  ## Cytoscape Responsibility Split
205
213
 
206
214
  Cytoscape owns:
@@ -217,16 +225,17 @@ React owns:
217
225
 
218
226
  - mode switching
219
227
  - side panels and inspectors
220
- - search and command-palette entry
228
+ - filter toolbar search and trace controls
221
229
  - route state and deep-linking
222
230
  - server data fetching
223
- - persistence of saved filters and views
224
231
 
225
232
  ## Package Boundary
226
233
 
227
234
  - `packages/ui/package.json` declares Cytoscape on the published UI surface.
228
235
  - `packages/ui/tsup.config.ts` and `packages/ui/rollup.dts.config.mjs` keep Cytoscape **externalized** for publish output.
229
- - Graph DTO types are internal to `@repo/core`. The published `@elevasis/core` wrapper still exposes only the narrow organization-model API. External graph adoption should not be assumed.
236
+ - Graph DTO types, schemas, and builders live in monorepo `@repo/core` organization-model modules.
237
+ - Cytoscape rendering, lens presets, filtering helpers, and detail/runtime presentation live in `@repo/ui`.
238
+ - The published `@elevasis/core` wrapper still exposes only the narrow organization-model API; this graph contract should be treated as monorepo-internal for now.
230
239
 
231
240
  ## Theming
232
241
 
@@ -1,3 +1,3 @@
1
1
  export const VERSION = {
2
- CURRENT: '1.5.7'
2
+ CURRENT: '1.6.0'
3
3
  }
@@ -1,4 +1,4 @@
1
- <!-- Auto-generated on 2026-04-18T06:38:52.184Z by scripts/monorepo/generate-scaffold-contracts.js -->
1
+ <!-- Auto-generated on 2026-04-18T10:41:03.508Z by scripts/monorepo/generate-scaffold-contracts.js -->
2
2
  ---
3
3
  title: Reference Contracts
4
4
  description: Auto-generated TypeScript contracts for SDK consumers. Do not edit manually.