@elevasis/core 0.24.1 → 0.26.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 +239 -86
- package/dist/index.js +474 -1346
- package/dist/knowledge/index.d.ts +57 -39
- package/dist/knowledge/index.js +1 -1
- package/dist/organization-model/index.d.ts +239 -86
- package/dist/organization-model/index.js +474 -1346
- package/dist/test-utils/index.d.ts +24 -31
- package/dist/test-utils/index.js +76 -1238
- package/package.json +1 -1
- package/src/_gen/__tests__/__snapshots__/contracts.md.snap +108 -96
- package/src/business/acquisition/api-schemas.test.ts +70 -77
- package/src/business/acquisition/api-schemas.ts +21 -42
- package/src/business/acquisition/derive-actions.test.ts +11 -21
- package/src/business/acquisition/derive-actions.ts +61 -14
- package/src/business/acquisition/ontology-validation.ts +4 -4
- package/src/business/acquisition/types.ts +7 -8
- package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +10 -10
- package/src/knowledge/__tests__/queries.test.ts +960 -546
- package/src/knowledge/format.ts +322 -100
- package/src/knowledge/index.ts +18 -5
- package/src/knowledge/queries.ts +1004 -240
- package/src/organization-model/__tests__/content-kinds-registry.test.ts +35 -210
- package/src/organization-model/__tests__/defaults.test.ts +4 -4
- package/src/organization-model/__tests__/deprecate-helpers.test.ts +71 -0
- package/src/organization-model/__tests__/domains/actions.test.ts +12 -36
- package/src/organization-model/__tests__/domains/offerings.test.ts +13 -6
- package/src/organization-model/__tests__/domains/resources.test.ts +497 -350
- package/src/organization-model/__tests__/domains/systems.test.ts +6 -7
- package/src/organization-model/__tests__/flatten-additive-merge.test.ts +68 -80
- package/src/organization-model/__tests__/foundation.test.ts +81 -14
- package/src/organization-model/__tests__/graph.test.ts +662 -694
- package/src/organization-model/__tests__/knowledge.test.ts +31 -17
- package/src/organization-model/__tests__/lookup-helpers.test.ts +128 -438
- package/src/organization-model/__tests__/migration-helpers.test.ts +362 -591
- package/src/organization-model/__tests__/prospecting-ssot.test.ts +68 -103
- package/src/organization-model/__tests__/published-zero-leak.test.ts +17 -0
- package/src/organization-model/__tests__/recursive-system-schema.test.ts +159 -532
- package/src/organization-model/__tests__/resolve.test.ts +88 -49
- package/src/organization-model/__tests__/scaffolders.test.ts +93 -0
- package/src/organization-model/__tests__/schema.test.ts +65 -56
- package/src/organization-model/catalogs/lead-gen.ts +0 -103
- package/src/organization-model/defaults.ts +17 -702
- package/src/organization-model/domains/actions.ts +116 -333
- package/src/organization-model/domains/knowledge.ts +15 -7
- package/src/organization-model/domains/projects.ts +4 -4
- package/src/organization-model/domains/prospecting.ts +405 -395
- package/src/organization-model/domains/resources.ts +206 -135
- package/src/organization-model/domains/sales.ts +5 -5
- package/src/organization-model/domains/systems.ts +8 -23
- package/src/organization-model/graph/build.ts +223 -294
- package/src/organization-model/graph/schema.ts +2 -3
- package/src/organization-model/graph/types.ts +12 -14
- package/src/organization-model/helpers.ts +120 -141
- package/src/organization-model/icons.ts +1 -0
- package/src/organization-model/index.ts +107 -126
- package/src/organization-model/migration-helpers.ts +211 -249
- package/src/organization-model/ontology.ts +0 -60
- package/src/organization-model/organization-graph.mdx +4 -5
- package/src/organization-model/organization-model.mdx +1 -1
- package/src/organization-model/published.ts +251 -228
- package/src/organization-model/resolve.ts +4 -5
- package/src/organization-model/scaffolders/helpers.ts +84 -0
- package/src/organization-model/scaffolders/index.ts +19 -0
- package/src/organization-model/scaffolders/scaffoldKnowledgeNode.ts +48 -0
- package/src/organization-model/scaffolders/scaffoldOntologyRecord.ts +38 -0
- package/src/organization-model/scaffolders/scaffoldResource.ts +59 -0
- package/src/organization-model/scaffolders/scaffoldSystem.ts +110 -0
- package/src/organization-model/scaffolders/types.ts +81 -0
- package/src/organization-model/schema.ts +610 -704
- package/src/organization-model/types.ts +167 -161
- package/src/platform/constants/versions.ts +1 -1
- package/src/platform/registry/__tests__/validation.test.ts +23 -0
- package/src/platform/registry/validation.ts +13 -2
- package/src/reference/_generated/contracts.md +108 -96
- package/src/reference/glossary.md +71 -69
- package/src/organization-model/content-kinds/config.ts +0 -36
- package/src/organization-model/content-kinds/index.ts +0 -78
- package/src/organization-model/content-kinds/pipeline.ts +0 -68
- package/src/organization-model/content-kinds/registry.ts +0 -44
- package/src/organization-model/content-kinds/status.ts +0 -71
- package/src/organization-model/content-kinds/template.ts +0 -83
- package/src/organization-model/content-kinds/types.ts +0 -117
|
@@ -306,7 +306,7 @@ export type OrganizationModelSystemLifecycle = z.infer<typeof SystemLifecycleSch
|
|
|
306
306
|
### `OrganizationModelSystemStatus`
|
|
307
307
|
|
|
308
308
|
```typescript
|
|
309
|
-
/** @deprecated Use OrganizationModelSystemLifecycle. Accepted for one publish cycle. */
|
|
309
|
+
/** @deprecated Use OrganizationModelSystemLifecycle. Accepted for one publish cycle. */
|
|
310
310
|
export type OrganizationModelSystemStatus = z.infer<typeof SystemStatusSchema>
|
|
311
311
|
```
|
|
312
312
|
|
|
@@ -376,6 +376,18 @@ export type OrganizationModelResourceGovernanceStatus = z.infer<typeof ResourceG
|
|
|
376
376
|
export type OrganizationModelResourceOntologyBinding = z.infer<typeof ResourceOntologyBindingSchema>
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
+
### `OrganizationModelContractRef`
|
|
380
|
+
|
|
381
|
+
```typescript
|
|
382
|
+
export type OrganizationModelContractRef = z.infer<typeof ContractRefSchema>
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### `OrganizationModelResourceOntologyBindingContract`
|
|
386
|
+
|
|
387
|
+
```typescript
|
|
388
|
+
export type OrganizationModelResourceOntologyBindingContract = ResourceOntologyBindingContract
|
|
389
|
+
```
|
|
390
|
+
|
|
379
391
|
### `OrganizationModelAgentKind`
|
|
380
392
|
|
|
381
393
|
```typescript
|
|
@@ -625,7 +637,7 @@ export type OrganizationModelBuiltinIconToken = z.infer<typeof OrganizationModel
|
|
|
625
637
|
### `DeepPartial`
|
|
626
638
|
|
|
627
639
|
```typescript
|
|
628
|
-
export type DeepPartial<T> =
|
|
640
|
+
export type DeepPartial<T> =
|
|
629
641
|
T extends Array<infer U> ? Array<DeepPartial<U>> : T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T
|
|
630
642
|
```
|
|
631
643
|
|
|
@@ -634,8 +646,8 @@ export type DeepPartial<T> =
|
|
|
634
646
|
### `ElevasisOrganizationModel`
|
|
635
647
|
|
|
636
648
|
```typescript
|
|
637
|
-
export type ElevasisOrganizationModel = Omit<OrganizationModel, 'knowledge'> & {
|
|
638
|
-
knowledge?: OrganizationModel['knowledge']
|
|
649
|
+
export type ElevasisOrganizationModel = Omit<OrganizationModel, 'knowledge'> & {
|
|
650
|
+
knowledge?: OrganizationModel['knowledge']
|
|
639
651
|
}
|
|
640
652
|
```
|
|
641
653
|
|
|
@@ -660,107 +672,107 @@ export type SystemSidebarWidthResolver = number | ((context: { currentPath: stri
|
|
|
660
672
|
### `SystemModule`
|
|
661
673
|
|
|
662
674
|
```typescript
|
|
663
|
-
export interface SystemModule {
|
|
664
|
-
/** Unique stable identifier for this UI system module. */
|
|
665
|
-
key: string
|
|
666
|
-
/** Organization Model system id this module presents. Omit for navigation-only app surfaces. */
|
|
667
|
-
systemId?: string
|
|
668
|
-
/** Route prefixes owned by navigation-only app surfaces. */
|
|
669
|
-
routePrefixes?: string[]
|
|
670
|
-
/** Capability identifiers contributed by this system module. */
|
|
671
|
-
capabilityIds?: string[]
|
|
672
|
-
/** Icon used when this system node appears in shell navigation. */
|
|
673
|
-
icon?: SystemIconComponent
|
|
674
|
-
/** Sidebar component rendered when this system's subtree route is active. */
|
|
675
|
-
sidebar?: SystemSidebarComponent
|
|
676
|
-
/** Optional shell sidebar width override. Defaults to 250px. */
|
|
677
|
-
sidebarWidth?: SystemSidebarWidthResolver
|
|
678
|
-
/** Operations-only bridge connecting this system to the organization graph node. */
|
|
679
|
-
organizationGraph?: OrganizationGraphSystemBridge
|
|
675
|
+
export interface SystemModule {
|
|
676
|
+
/** Unique stable identifier for this UI system module. */
|
|
677
|
+
key: string
|
|
678
|
+
/** Organization Model system id this module presents. Omit for navigation-only app surfaces. */
|
|
679
|
+
systemId?: string
|
|
680
|
+
/** Route prefixes owned by navigation-only app surfaces. */
|
|
681
|
+
routePrefixes?: string[]
|
|
682
|
+
/** Capability identifiers contributed by this system module. */
|
|
683
|
+
capabilityIds?: string[]
|
|
684
|
+
/** Icon used when this system node appears in shell navigation. */
|
|
685
|
+
icon?: SystemIconComponent
|
|
686
|
+
/** Sidebar component rendered when this system's subtree route is active. */
|
|
687
|
+
sidebar?: SystemSidebarComponent
|
|
688
|
+
/** Optional shell sidebar width override. Defaults to 250px. */
|
|
689
|
+
sidebarWidth?: SystemSidebarWidthResolver
|
|
690
|
+
/** Operations-only bridge connecting this system to the organization graph node. */
|
|
691
|
+
organizationGraph?: OrganizationGraphSystemBridge
|
|
680
692
|
}
|
|
681
693
|
```
|
|
682
694
|
|
|
683
695
|
### `ResolvedSystemAccess`
|
|
684
696
|
|
|
685
697
|
```typescript
|
|
686
|
-
export interface ResolvedSystemAccess {
|
|
687
|
-
|
|
688
|
-
systemId?: string
|
|
689
|
-
enabled: boolean
|
|
698
|
+
export interface ResolvedSystemAccess {
|
|
699
|
+
systemKey: string
|
|
700
|
+
systemId?: string
|
|
701
|
+
enabled: boolean
|
|
690
702
|
}
|
|
691
703
|
```
|
|
692
704
|
|
|
693
705
|
### `ResolvedSystemSemantics`
|
|
694
706
|
|
|
695
707
|
```typescript
|
|
696
|
-
export interface ResolvedSystemSemantics {
|
|
697
|
-
capabilityIds: string[]
|
|
708
|
+
export interface ResolvedSystemSemantics {
|
|
709
|
+
capabilityIds: string[]
|
|
698
710
|
}
|
|
699
711
|
```
|
|
700
712
|
|
|
701
713
|
### `ResolvedSystemModule`
|
|
702
714
|
|
|
703
715
|
```typescript
|
|
704
|
-
export interface ResolvedSystemModule extends SystemModule {
|
|
705
|
-
access: ResolvedSystemAccess
|
|
706
|
-
semantics: ResolvedSystemSemantics
|
|
716
|
+
export interface ResolvedSystemModule extends SystemModule {
|
|
717
|
+
access: ResolvedSystemAccess
|
|
718
|
+
semantics: ResolvedSystemSemantics
|
|
707
719
|
}
|
|
708
720
|
```
|
|
709
721
|
|
|
710
722
|
### `ResolvedShellSystem`
|
|
711
723
|
|
|
712
724
|
```typescript
|
|
713
|
-
export type ResolvedShellSystem = OrganizationModelSystemEntry & {
|
|
714
|
-
label: string
|
|
715
|
-
iconComponent?: SystemIconComponent
|
|
725
|
+
export type ResolvedShellSystem = OrganizationModelSystemEntry & {
|
|
726
|
+
label: string
|
|
727
|
+
iconComponent?: SystemIconComponent
|
|
716
728
|
}
|
|
717
729
|
```
|
|
718
730
|
|
|
719
731
|
### `ResolvedShellModel`
|
|
720
732
|
|
|
721
733
|
```typescript
|
|
722
|
-
export interface ResolvedShellModel {
|
|
723
|
-
systems: readonly ResolvedShellSystem[]
|
|
724
|
-
findByPath: (path: string) => ResolvedShellSystem | undefined
|
|
725
|
-
findById: (id: string) => ResolvedShellSystem | undefined
|
|
726
|
-
childrenOf: (id: string) => ResolvedShellSystem[]
|
|
727
|
-
ancestorsOf: (id: string) => ResolvedShellSystem[]
|
|
728
|
-
parentOf: (id: string) => ResolvedShellSystem | undefined
|
|
729
|
-
topLevel: () => ResolvedShellSystem[]
|
|
730
|
-
requiresAdminFor: (id: string) => boolean
|
|
731
|
-
devOnlyFor: (id: string) => boolean
|
|
734
|
+
export interface ResolvedShellModel {
|
|
735
|
+
systems: readonly ResolvedShellSystem[]
|
|
736
|
+
findByPath: (path: string) => ResolvedShellSystem | undefined
|
|
737
|
+
findById: (id: string) => ResolvedShellSystem | undefined
|
|
738
|
+
childrenOf: (id: string) => ResolvedShellSystem[]
|
|
739
|
+
ancestorsOf: (id: string) => ResolvedShellSystem[]
|
|
740
|
+
parentOf: (id: string) => ResolvedShellSystem | undefined
|
|
741
|
+
topLevel: () => ResolvedShellSystem[]
|
|
742
|
+
requiresAdminFor: (id: string) => boolean
|
|
743
|
+
devOnlyFor: (id: string) => boolean
|
|
732
744
|
}
|
|
733
745
|
```
|
|
734
746
|
|
|
735
747
|
### `ShellSidebarLinkItem`
|
|
736
748
|
|
|
737
749
|
```typescript
|
|
738
|
-
export interface ShellSidebarLinkItem {
|
|
739
|
-
label: string
|
|
740
|
-
link: string
|
|
741
|
-
exact?: boolean
|
|
742
|
-
activeMatchPaths?: string[]
|
|
750
|
+
export interface ShellSidebarLinkItem {
|
|
751
|
+
label: string
|
|
752
|
+
link: string
|
|
753
|
+
exact?: boolean
|
|
754
|
+
activeMatchPaths?: string[]
|
|
743
755
|
}
|
|
744
756
|
```
|
|
745
757
|
|
|
746
758
|
### `ShellSidebarLinkGroup`
|
|
747
759
|
|
|
748
760
|
```typescript
|
|
749
|
-
export interface ShellSidebarLinkGroup {
|
|
750
|
-
icon: SystemIconComponent
|
|
751
|
-
label: string
|
|
752
|
-
links?: ShellSidebarLinkItem[]
|
|
753
|
-
link?: string
|
|
761
|
+
export interface ShellSidebarLinkGroup {
|
|
762
|
+
icon: SystemIconComponent
|
|
763
|
+
label: string
|
|
764
|
+
links?: ShellSidebarLinkItem[]
|
|
765
|
+
link?: string
|
|
754
766
|
}
|
|
755
767
|
```
|
|
756
768
|
|
|
757
769
|
### `ShellSidebarProjectionOptions`
|
|
758
770
|
|
|
759
771
|
```typescript
|
|
760
|
-
export interface ShellSidebarProjectionOptions {
|
|
761
|
-
isPlatformAdmin?: boolean
|
|
762
|
-
isDev?: boolean
|
|
763
|
-
section?: 'primary' | 'bottom'
|
|
772
|
+
export interface ShellSidebarProjectionOptions {
|
|
773
|
+
isPlatformAdmin?: boolean
|
|
774
|
+
isDev?: boolean
|
|
775
|
+
section?: 'primary' | 'bottom'
|
|
764
776
|
}
|
|
765
777
|
```
|
|
766
778
|
|
|
@@ -773,75 +785,75 @@ export type ShellRouteMatchStatus = 'matched' | 'hidden' | 'unmatched'
|
|
|
773
785
|
### `ResolvedShellRouteMatch`
|
|
774
786
|
|
|
775
787
|
```typescript
|
|
776
|
-
export interface ResolvedShellRouteMatch {
|
|
777
|
-
status: ShellRouteMatchStatus
|
|
778
|
-
path: string
|
|
779
|
-
system?: ResolvedSystemModule
|
|
780
|
-
node?: ResolvedShellSystem
|
|
788
|
+
export interface ResolvedShellRouteMatch {
|
|
789
|
+
status: ShellRouteMatchStatus
|
|
790
|
+
path: string
|
|
791
|
+
system?: ResolvedSystemModule
|
|
792
|
+
node?: ResolvedShellSystem
|
|
781
793
|
}
|
|
782
794
|
```
|
|
783
795
|
|
|
784
796
|
### `ShellRuntime`
|
|
785
797
|
|
|
786
798
|
```typescript
|
|
787
|
-
export interface ShellRuntime {
|
|
788
|
-
resolveRoute: (path: string) => ResolvedShellRouteMatch
|
|
799
|
+
export interface ShellRuntime {
|
|
800
|
+
resolveRoute: (path: string) => ResolvedShellRouteMatch
|
|
789
801
|
}
|
|
790
802
|
```
|
|
791
803
|
|
|
792
804
|
### `OrganizationGraphSystemBridge`
|
|
793
805
|
|
|
794
806
|
```typescript
|
|
795
|
-
export interface OrganizationGraphSystemBridge {
|
|
796
|
-
systemId?: string
|
|
807
|
+
export interface OrganizationGraphSystemBridge {
|
|
808
|
+
systemId?: string
|
|
797
809
|
}
|
|
798
810
|
```
|
|
799
811
|
|
|
800
812
|
### `OrganizationGraphContextValue`
|
|
801
813
|
|
|
802
814
|
```typescript
|
|
803
|
-
export interface OrganizationGraphContextValue {
|
|
804
|
-
available: boolean
|
|
805
|
-
systemId?: string
|
|
806
|
-
systemPath?: string
|
|
815
|
+
export interface OrganizationGraphContextValue {
|
|
816
|
+
available: boolean
|
|
817
|
+
systemId?: string
|
|
818
|
+
systemPath?: string
|
|
807
819
|
}
|
|
808
820
|
```
|
|
809
821
|
|
|
810
822
|
### `ElevasisSystemsProviderProps`
|
|
811
823
|
|
|
812
824
|
```typescript
|
|
813
|
-
export interface ElevasisSystemsProviderProps {
|
|
814
|
-
systems?: SystemModule[]
|
|
815
|
-
organizationModel?: ElevasisOrganizationModel
|
|
816
|
-
timeRange?: TimeRange
|
|
817
|
-
operationsApiUrl?: string
|
|
818
|
-
operationsSSEManager?: SSEConnectionManagerLike
|
|
819
|
-
deliveryApiUrl?: string
|
|
820
|
-
deliverySSEManager?: SSEConnectionManagerLike
|
|
821
|
-
disabledSubsectionPaths?: string[]
|
|
822
|
-
children: ReactNode
|
|
825
|
+
export interface ElevasisSystemsProviderProps {
|
|
826
|
+
systems?: SystemModule[]
|
|
827
|
+
organizationModel?: ElevasisOrganizationModel
|
|
828
|
+
timeRange?: TimeRange
|
|
829
|
+
operationsApiUrl?: string
|
|
830
|
+
operationsSSEManager?: SSEConnectionManagerLike
|
|
831
|
+
deliveryApiUrl?: string
|
|
832
|
+
deliverySSEManager?: SSEConnectionManagerLike
|
|
833
|
+
disabledSubsectionPaths?: string[]
|
|
834
|
+
children: ReactNode
|
|
823
835
|
}
|
|
824
836
|
```
|
|
825
837
|
|
|
826
838
|
### `ElevasisSystemsContextValue`
|
|
827
839
|
|
|
828
840
|
```typescript
|
|
829
|
-
export interface ElevasisSystemsContextValue {
|
|
830
|
-
shellModel: ResolvedShellModel
|
|
831
|
-
shellRuntime: ShellRuntime
|
|
832
|
-
getSidebarLinks: (options?: ShellSidebarProjectionOptions) => ShellSidebarLinkGroup[]
|
|
833
|
-
enabledResolvedSystems: ResolvedSystemModule[]
|
|
834
|
-
resolvedSystems: ResolvedSystemModule[]
|
|
835
|
-
organizationGraph: OrganizationGraphContextValue
|
|
836
|
-
organizationModel?: OrganizationModel
|
|
837
|
-
timeRange?: TimeRange
|
|
838
|
-
operationsApiUrl?: string
|
|
839
|
-
operationsSSEManager?: SSEConnectionManagerLike
|
|
840
|
-
deliveryApiUrl?: string
|
|
841
|
-
deliverySSEManager?: SSEConnectionManagerLike
|
|
842
|
-
disabledSubsectionPaths: string[]
|
|
843
|
-
isSystemEnabled: (key: string) => boolean
|
|
844
|
-
getResolvedSystem: (key: string) => ResolvedSystemModule | undefined
|
|
841
|
+
export interface ElevasisSystemsContextValue {
|
|
842
|
+
shellModel: ResolvedShellModel
|
|
843
|
+
shellRuntime: ShellRuntime
|
|
844
|
+
getSidebarLinks: (options?: ShellSidebarProjectionOptions) => ShellSidebarLinkGroup[]
|
|
845
|
+
enabledResolvedSystems: ResolvedSystemModule[]
|
|
846
|
+
resolvedSystems: ResolvedSystemModule[]
|
|
847
|
+
organizationGraph: OrganizationGraphContextValue
|
|
848
|
+
organizationModel?: OrganizationModel
|
|
849
|
+
timeRange?: TimeRange
|
|
850
|
+
operationsApiUrl?: string
|
|
851
|
+
operationsSSEManager?: SSEConnectionManagerLike
|
|
852
|
+
deliveryApiUrl?: string
|
|
853
|
+
deliverySSEManager?: SSEConnectionManagerLike
|
|
854
|
+
disabledSubsectionPaths: string[]
|
|
855
|
+
isSystemEnabled: (key: string) => boolean
|
|
856
|
+
getResolvedSystem: (key: string) => ResolvedSystemModule | undefined
|
|
845
857
|
}
|
|
846
858
|
```
|
|
847
859
|
|
|
@@ -1,76 +1,78 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Glossary
|
|
3
|
-
description: Terminology disambiguation for Organization OS concepts used in the template scaffold, core package, and published packages.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Glossary
|
|
7
|
-
|
|
8
|
-
## Terms
|
|
9
|
-
|
|
10
|
-
**AdminGuard** -- route-level admin wrapper from `@elevasis/ui/features/auth`. Must nest inside `ProtectedRoute`.
|
|
11
|
-
|
|
12
|
-
**Contract** -- the publishable boundary a consumer depends on: Zod schemas, TypeScript types, provider props, resource definitions, or workflow I/O schemas.
|
|
13
|
-
|
|
14
|
-
**DeploymentSpec** -- runtime/deploy assembly for one organization: workflows, agents, triggers, integrations, relationships, external resources, and human checkpoints. It assembles executable behavior around Organization Model resource descriptors; it is not the source of resource identity.
|
|
15
|
-
|
|
16
|
-
**Feature** -- legacy or UI-package wording for a platform capability area. In the current Organization Model, use **System** for semantic ownership and **navigation surface** for shell placement. Keep "feature" only when referring to existing UI package folders, exported manifest names, or legacy compatibility recipes.
|
|
17
|
-
|
|
18
|
-
**SystemGuard** -- route-level System gate from `@elevasis/ui/features/auth`.
|
|
19
|
-
|
|
1
|
+
---
|
|
2
|
+
title: Glossary
|
|
3
|
+
description: Terminology disambiguation for Organization OS concepts used in the template scaffold, core package, and published packages.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Glossary
|
|
7
|
+
|
|
8
|
+
## Terms
|
|
9
|
+
|
|
10
|
+
**AdminGuard** -- route-level admin wrapper from `@elevasis/ui/features/auth`. Must nest inside `ProtectedRoute`.
|
|
11
|
+
|
|
12
|
+
**Contract** -- the publishable boundary a consumer depends on: Zod schemas, TypeScript types, provider props, resource definitions, or workflow I/O schemas.
|
|
13
|
+
|
|
14
|
+
**DeploymentSpec** -- runtime/deploy assembly for one organization: workflows, agents, triggers, integrations, relationships, external resources, and human checkpoints. It assembles executable behavior around Organization Model resource descriptors; it is not the source of resource identity.
|
|
15
|
+
|
|
16
|
+
**Feature** -- legacy or UI-package wording for a platform capability area. In the current Organization Model, use **System** for semantic ownership and **navigation surface** for shell placement. Keep "feature" only when referring to existing UI package folders, exported manifest names, or legacy compatibility recipes.
|
|
17
|
+
|
|
18
|
+
**SystemGuard** -- route-level System gate from `@elevasis/ui/features/auth`.
|
|
19
|
+
|
|
20
20
|
**SystemModule** -- manifest contract a shell module provides to `ElevasisSystemsProvider`. Key fields are `key`, optional `systemId`, optional `routePrefixes`, optional `capabilityIds`, optional `icon`, optional `sidebar`, and optional `sidebarWidth`. Graph bridge metadata is compatibility-only; new semantic bindings belong in the Organization Model System, ontology, navigation, and Resource descriptors.
|
|
21
|
-
|
|
22
|
-
**systemId** -- the `SystemModule` field that points to an `OrganizationModel.systems` entry. Navigation-only app modules may omit it and use route prefixes/surface metadata instead.
|
|
23
|
-
|
|
24
|
-
**
|
|
25
|
-
|
|
26
|
-
**
|
|
27
|
-
|
|
28
|
-
**
|
|
29
|
-
|
|
21
|
+
|
|
22
|
+
**systemId** -- the `SystemModule` field that points to an `OrganizationModel.systems` entry. Navigation-only app modules may omit it and use route prefixes/surface metadata instead.
|
|
23
|
+
|
|
24
|
+
**systemId (resource — deprecated)** -- the legacy `resource.systemId` field on Organization Model resource descriptors. Removed from the target contract; the canonical attachment is **`resource.systemPath`** (dot-separated path resolved against the system tree). Some external templates still ship a `systemId` compatibility mirror while published `@elevasis/core` releases catch up; treat that field as legacy adapter data only and author new resource relationships against `systemPath`. Query with `getResourcesForSystem(model, path)`.
|
|
25
|
+
|
|
26
|
+
**Foundations** -- local adapter layer in external projects that exports `canonicalOrganizationModel`, `organizationModel`, and workflow I/O schemas.
|
|
27
|
+
|
|
28
|
+
**Graph node ID** -- kind-prefixed cross-collection identifier such as `system:sales.crm`, `integration:instantly`, or `resource:lead-import`.
|
|
29
|
+
|
|
30
|
+
**Manifest** -- a runtime declaration for a feature or resource collection.
|
|
31
|
+
|
|
30
32
|
**MembershipFeatureConfig** -- legacy per-member feature override config. Current System visibility should be authored through Organization Model System lifecycle/access metadata and resolved through provider compatibility layers for older consumers.
|
|
31
|
-
|
|
33
|
+
|
|
32
34
|
**OrganizationModel** -- top-level semantic contract for an organization. Current primary fields include `version`, `domainMetadata`, `branding`, `navigation`, `ontology`, `systems`, `resources`, `topology`, `identity`, `customers`, `offerings`, `roles`, `goals`, `policies`, `statuses`, and `knowledge`. Legacy domain keys such as `sales`, `prospecting`, `projects`, `actions`, and `entities` remain compatibility inputs while projects migrate to System-owned ontology/config/resource contracts.
|
|
33
|
-
|
|
35
|
+
|
|
34
36
|
**OrganizationModelSystemEntry** -- System node in `OrganizationModel.systems`. Primary authoring fields include `id`, `label`, `description`, `parentSystemId`, `systems`, `lifecycle`, `ui`, `requiresAdmin`, `devOnly`, `responsibleRoleId`, `governedByKnowledge`, `drivesGoals`, `actions`, `policies`, `ontology`, `config`, and `order`. `subsystems` and `content` are retained compatibility inputs for older projects and should not be used for new recursive Systems, schemas, catalogs, or config.
|
|
35
|
-
|
|
36
|
-
**Provider / ElevasisSystemsProvider** -- runtime that registers System modules, resolves System access against the org model, projects sidebar navigation, and exposes shell helpers through `useElevasisSystems()`.
|
|
37
|
-
|
|
38
|
-
**Resource** -- governance-only descriptor in `OrganizationModel.resources` for a workflow, agent, integration, or script. Runtime code derives `resourceId` and kind from the descriptor, then attaches executable behavior in operations.
|
|
39
|
-
|
|
37
|
+
|
|
38
|
+
**Provider / ElevasisSystemsProvider** -- runtime that registers System modules, resolves System access against the org model, projects sidebar navigation, and exposes shell helpers through `useElevasisSystems()`.
|
|
39
|
+
|
|
40
|
+
**Resource** -- governance-only descriptor in `OrganizationModel.resources` for a workflow, agent, integration, or script. Runtime code derives `resourceId` and kind from the descriptor, then attaches executable behavior in operations.
|
|
41
|
+
|
|
40
42
|
**Resource descriptor** -- OM entry with canonical `id`, required `systemPath`, descriptor `title` / `description`, governance `status`, optional role ownership, `codeRefs`, and nested `ontology` bindings for `actions`, optional `primaryAction`, read/write objects, used catalogs, and emitted events. Top-level `emits` remains a compatibility mirror for older descriptors.
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
**System** -- tenant-defined bounded context in `OrganizationModel.systems` that groups operational resources and carries governance metadata such as responsible role, governing knowledge, driven goals, kind, lifecycle, System-local ontology, and System-local config.
|
|
43
|
-
|
|
44
|
-
**ResourceCategory** -- resource metadata category: `production`, `diagnostic`, `internal`, or `testing`.
|
|
45
|
-
|
|
46
|
-
**ResourceLink** -- graph binding on resource metadata: `{ nodeId, kind }`.
|
|
47
|
-
|
|
48
|
-
**Settings asymmetry** -- Settings is a navigation/app surface whose individual pages are normally governed by admin checks rather than user-facing System toggles.
|
|
49
|
-
|
|
50
|
-
**Shell model** -- provider output used by sidebars and breadcrumbs. Includes `systems`, `childrenOf`, `ancestorsOf`, `parentOf`, `topLevel`, `findByPath`, `requiresAdminFor`, and `devOnlyFor`.
|
|
51
|
-
|
|
52
|
-
**Subshell / Sidebar** -- System- or route-prefix-scoped UI region rendered when the current route matches a module whose manifest supplies a sidebar.
|
|
53
|
-
|
|
45
|
+
|
|
46
|
+
**ResourceCategory** -- resource metadata category: `production`, `diagnostic`, `internal`, or `testing`.
|
|
47
|
+
|
|
48
|
+
**ResourceLink** -- graph binding on resource metadata: `{ nodeId, kind }`.
|
|
49
|
+
|
|
50
|
+
**Settings asymmetry** -- Settings is a navigation/app surface whose individual pages are normally governed by admin checks rather than user-facing System toggles.
|
|
51
|
+
|
|
52
|
+
**Shell model** -- provider output used by sidebars and breadcrumbs. Includes `systems`, `childrenOf`, `ancestorsOf`, `parentOf`, `topLevel`, `findByPath`, `requiresAdminFor`, and `devOnlyFor`.
|
|
53
|
+
|
|
54
|
+
**Subshell / Sidebar** -- System- or route-prefix-scoped UI region rendered when the current route matches a module whose manifest supplies a sidebar.
|
|
55
|
+
|
|
54
56
|
**Topology** -- durable OM operational wiring declared in `OrganizationModel.topology.relationships`. Initial relationship kinds are `triggers`, `uses`, and `approval`; relationships use typed refs such as `{ kind: 'resource', id: 'lead-import' }`.
|
|
55
|
-
|
|
56
|
-
## Package Boundary
|
|
57
|
-
|
|
58
|
-
**`@elevasis/core`**
|
|
59
|
-
|
|
60
|
-
- `OrganizationModel`, `OrganizationModelSystemEntry`
|
|
61
|
-
- `SystemEntry`, `ResourceEntry`
|
|
62
|
-
- `resolveOrganizationModel`, `defineOrganizationModel`, `DEFAULT_ORGANIZATION_MODEL`
|
|
63
|
-
- `MembershipFeatureConfig`
|
|
64
|
-
- `DeploymentSpec`, `ResourceLink`, `ResourceCategory`
|
|
65
|
-
|
|
66
|
-
**`@elevasis/ui`**
|
|
67
|
-
|
|
68
|
-
- `SystemModule`
|
|
69
|
-
- `SystemGuard`, `AdminGuard`, `ProtectedRoute`
|
|
70
|
-
- `ElevasisSystemsProvider`, `ElevasisCoreProvider`, `useElevasisSystems`
|
|
71
|
-
|
|
72
|
-
**External project source**
|
|
73
|
-
|
|
74
|
-
- `canonicalOrganizationModel`
|
|
75
|
-
- `organizationModel`
|
|
76
|
-
- workflow I/O schemas
|
|
57
|
+
|
|
58
|
+
## Package Boundary
|
|
59
|
+
|
|
60
|
+
**`@elevasis/core`**
|
|
61
|
+
|
|
62
|
+
- `OrganizationModel`, `OrganizationModelSystemEntry`
|
|
63
|
+
- `SystemEntry`, `ResourceEntry`
|
|
64
|
+
- `resolveOrganizationModel`, `defineOrganizationModel`, `DEFAULT_ORGANIZATION_MODEL`
|
|
65
|
+
- `MembershipFeatureConfig`
|
|
66
|
+
- `DeploymentSpec`, `ResourceLink`, `ResourceCategory`
|
|
67
|
+
|
|
68
|
+
**`@elevasis/ui`**
|
|
69
|
+
|
|
70
|
+
- `SystemModule`
|
|
71
|
+
- `SystemGuard`, `AdminGuard`, `ProtectedRoute`
|
|
72
|
+
- `ElevasisSystemsProvider`, `ElevasisCoreProvider`, `useElevasisSystems`
|
|
73
|
+
|
|
74
|
+
**External project source**
|
|
75
|
+
|
|
76
|
+
- `canonicalOrganizationModel`
|
|
77
|
+
- `organizationModel`
|
|
78
|
+
- workflow I/O schemas
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
import { defineContentType } from './registry'
|
|
3
|
-
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// config kinds (Phase 3, Wave 2A)
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
//
|
|
8
|
-
// `config:kv` — a flat key-value configuration store co-located with a system.
|
|
9
|
-
// Per L15: single starter config type; feature-flag semantics are
|
|
10
|
-
// a usage pattern over kv, not a separate type.
|
|
11
|
-
//
|
|
12
|
-
// Per L15: `config` is a first-class registered meta-kind. Scope: NEW
|
|
13
|
-
// tenant-defined settings co-located with a system. Strongly-typed platform
|
|
14
|
-
// fields (system.ui.devOnly, system.ui.requiresAdmin, etc.) stay where they
|
|
15
|
-
// are and are NOT hoisting destinations for existing typed fields.
|
|
16
|
-
|
|
17
|
-
const ConfigKvPayloadSchema = z.object({
|
|
18
|
-
/**
|
|
19
|
-
* Flat key-value entries. Values are JSON primitives.
|
|
20
|
-
* Keys are short identifiers (e.g. 'maxBatchSize', 'featureEnabled').
|
|
21
|
-
*/
|
|
22
|
-
entries: z
|
|
23
|
-
.record(z.string().trim().min(1).max(200), z.union([z.string(), z.number(), z.boolean(), z.null()]))
|
|
24
|
-
.meta({ label: 'Entries', hint: 'Key-value configuration entries (string, number, boolean, or null values)' })
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
export type ConfigKvPayload = z.infer<typeof ConfigKvPayloadSchema>
|
|
28
|
-
|
|
29
|
-
export const configKvKind = defineContentType({
|
|
30
|
-
kind: 'config',
|
|
31
|
-
type: 'kv',
|
|
32
|
-
label: 'Key-Value Config',
|
|
33
|
-
description: 'A flat key-value configuration store co-located with a system. Values are JSON primitives.',
|
|
34
|
-
payloadSchema: ConfigKvPayloadSchema,
|
|
35
|
-
parentTypes: []
|
|
36
|
-
})
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// content-kinds barrel (Phase 3, Wave 2A)
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
//
|
|
5
|
-
// Per D8 (locked): CONTENT_KIND_REGISTRY is populated via static import, not
|
|
6
|
-
// side-effecting registration. This file is the single source of truth for
|
|
7
|
-
// the populated registry. `registry.ts` exports the EMPTY registry constant
|
|
8
|
-
// (kept for historical/import-chain reasons) — consumers MUST import from
|
|
9
|
-
// this barrel, not from `registry.ts` directly, to get the populated registry.
|
|
10
|
-
//
|
|
11
|
-
// Registry keys follow the `<kind>:<type>` ContentTypeKey format (per L4, D8).
|
|
12
|
-
|
|
13
|
-
export { defineContentType } from './registry'
|
|
14
|
-
export type { ContentTypeKey, ContentTypeDefinition } from './types'
|
|
15
|
-
export { ContentNodeBaseSchema, ContentNodeSchema, ExtensionNodeSchema } from './types'
|
|
16
|
-
export type { ContentNodeBase, ContentNode, ExtensionNode } from './types'
|
|
17
|
-
|
|
18
|
-
export { pipelineKind, stageKind } from './pipeline'
|
|
19
|
-
export type { PipelinePayload, StagePayload } from './pipeline'
|
|
20
|
-
|
|
21
|
-
export { templateKind, templateStepKind } from './template'
|
|
22
|
-
export type { TemplatePayload, TemplateStepPayload } from './template'
|
|
23
|
-
|
|
24
|
-
export { statusFlowKind, statusKind } from './status'
|
|
25
|
-
export type { StatusFlowPayload, StatusPayload } from './status'
|
|
26
|
-
|
|
27
|
-
export { configKvKind } from './config'
|
|
28
|
-
export type { ConfigKvPayload } from './config'
|
|
29
|
-
|
|
30
|
-
import { pipelineKind, stageKind } from './pipeline'
|
|
31
|
-
import { templateKind, templateStepKind } from './template'
|
|
32
|
-
import { statusFlowKind, statusKind } from './status'
|
|
33
|
-
import { configKvKind } from './config'
|
|
34
|
-
import type { ContentTypeDefinition, ContentTypeKey } from './types'
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Compatibility registry for bridge-era System.content nodes.
|
|
38
|
-
* New schema/catalog authoring should use System.ontology, and new
|
|
39
|
-
* system-local settings should use System.config. These definitions remain so
|
|
40
|
-
* old tenant content can parse, render, migrate, and project read-only.
|
|
41
|
-
*
|
|
42
|
-
* Per D8: static const object keyed by `'<kind>:<type>'` composite key.
|
|
43
|
-
*
|
|
44
|
-
* Bridge keys:
|
|
45
|
-
* 'schema:pipeline' — projects to ontology catalog records
|
|
46
|
-
* 'schema:stage' — projects to ontology catalog entries
|
|
47
|
-
* 'schema:template' — projects to ontology/catalog or action metadata
|
|
48
|
-
* 'schema:template-step' — projects to template metadata or catalog entries
|
|
49
|
-
* 'schema:status-flow' — projects to ontology catalog records
|
|
50
|
-
* 'schema:status' — projects to ontology catalog entries
|
|
51
|
-
* 'config:kv' — projects into resolved System.config
|
|
52
|
-
*
|
|
53
|
-
* Wave 3A's `ContentNodeDescribeView` consumes `lookupContentType(kind, type)`
|
|
54
|
-
* which indexes into this registry. Import `lookupContentType` from this barrel
|
|
55
|
-
* to get the populated version.
|
|
56
|
-
*/
|
|
57
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
-
export const CONTENT_KIND_REGISTRY: Readonly<Record<ContentTypeKey, ContentTypeDefinition<any>>> = {
|
|
59
|
-
'schema:pipeline': pipelineKind,
|
|
60
|
-
'schema:stage': stageKind,
|
|
61
|
-
'schema:template': templateKind,
|
|
62
|
-
'schema:template-step': templateStepKind,
|
|
63
|
-
'schema:status-flow': statusFlowKind,
|
|
64
|
-
'schema:status': statusKind,
|
|
65
|
-
'config:kv': configKvKind
|
|
66
|
-
} as const
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Look up a registered content-type definition by (kind, type).
|
|
70
|
-
* Uses the populated CONTENT_KIND_REGISTRY from this barrel — wave 2A override
|
|
71
|
-
* of the empty registry exported from registry.ts.
|
|
72
|
-
* Returns `undefined` when the pair is not registered — per D2, this is not
|
|
73
|
-
* an error; unregistered pairs render generically and skip payload validation.
|
|
74
|
-
*/
|
|
75
|
-
export function lookupContentType(kind: string, type: string): ContentTypeDefinition | undefined {
|
|
76
|
-
const key: ContentTypeKey = `${kind}:${type}`
|
|
77
|
-
return CONTENT_KIND_REGISTRY[key]
|
|
78
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
import { defineContentType } from './registry'
|
|
3
|
-
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// pipeline + stage kinds (Phase 3, Wave 2A)
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
//
|
|
8
|
-
// `schema:pipeline` — a named pipeline that applies to an entity type.
|
|
9
|
-
// `schema:stage` — a stage within a pipeline; parentTypes constrains it to
|
|
10
|
-
// live under a `schema:pipeline` sibling.
|
|
11
|
-
//
|
|
12
|
-
// Per L19: `schema:stage` parents only under `schema:pipeline`.
|
|
13
|
-
// Per L19 (parent kind constraint): both share the same meta-kind `schema`.
|
|
14
|
-
|
|
15
|
-
const PipelinePayloadSchema = z.object({
|
|
16
|
-
/**
|
|
17
|
-
* Local NodeId of the entity this pipeline applies to (e.g. 'crm.deal').
|
|
18
|
-
* `.meta({ ref: 'entity' })` enables SchemaDrivenFieldList to render a
|
|
19
|
-
* clickable graph link to the referenced entity node.
|
|
20
|
-
*/
|
|
21
|
-
entityId: z
|
|
22
|
-
.string()
|
|
23
|
-
.trim()
|
|
24
|
-
.min(1)
|
|
25
|
-
.max(200)
|
|
26
|
-
.meta({ label: 'Entity', ref: 'entity', hint: 'The entity type this pipeline tracks' }),
|
|
27
|
-
/**
|
|
28
|
-
* Optional Kanban column color token for UI rendering.
|
|
29
|
-
*/
|
|
30
|
-
kanbanColor: z.string().trim().min(1).max(40).optional().meta({ label: 'Kanban color', hint: 'UI color token' })
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
export type PipelinePayload = z.infer<typeof PipelinePayloadSchema>
|
|
34
|
-
|
|
35
|
-
export const pipelineKind = defineContentType({
|
|
36
|
-
kind: 'schema',
|
|
37
|
-
type: 'pipeline',
|
|
38
|
-
label: 'Pipeline',
|
|
39
|
-
description: 'A named progression pipeline that applies to a specific entity type.',
|
|
40
|
-
payloadSchema: PipelinePayloadSchema,
|
|
41
|
-
parentTypes: []
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
// ---------------------------------------------------------------------------
|
|
45
|
-
|
|
46
|
-
const StagePayloadSchema = z.object({
|
|
47
|
-
/**
|
|
48
|
-
* Semantic classification for this stage.
|
|
49
|
-
* Drives color, icon, and CRM-priority logic in consuming views.
|
|
50
|
-
* Optional — prospecting stages use data.entityKind instead.
|
|
51
|
-
* Enum aligned with SalesStageSemanticClassSchema (sales.ts).
|
|
52
|
-
*/
|
|
53
|
-
semanticClass: z
|
|
54
|
-
.enum(['open', 'active', 'nurturing', 'closed_won', 'closed_lost', 'won', 'lost', 'closed'])
|
|
55
|
-
.optional()
|
|
56
|
-
.meta({ label: 'Semantic class', hint: 'Semantic meaning of this stage', color: 'blue' })
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
export type StagePayload = z.infer<typeof StagePayloadSchema>
|
|
60
|
-
|
|
61
|
-
export const stageKind = defineContentType({
|
|
62
|
-
kind: 'schema',
|
|
63
|
-
type: 'stage',
|
|
64
|
-
label: 'Stage',
|
|
65
|
-
description: 'A stage within a pipeline. Must be parented under a schema:pipeline content node.',
|
|
66
|
-
payloadSchema: StagePayloadSchema,
|
|
67
|
-
parentTypes: ['schema:pipeline']
|
|
68
|
-
})
|