@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.
Files changed (82) hide show
  1. package/dist/index.d.ts +239 -86
  2. package/dist/index.js +474 -1346
  3. package/dist/knowledge/index.d.ts +57 -39
  4. package/dist/knowledge/index.js +1 -1
  5. package/dist/organization-model/index.d.ts +239 -86
  6. package/dist/organization-model/index.js +474 -1346
  7. package/dist/test-utils/index.d.ts +24 -31
  8. package/dist/test-utils/index.js +76 -1238
  9. package/package.json +1 -1
  10. package/src/_gen/__tests__/__snapshots__/contracts.md.snap +108 -96
  11. package/src/business/acquisition/api-schemas.test.ts +70 -77
  12. package/src/business/acquisition/api-schemas.ts +21 -42
  13. package/src/business/acquisition/derive-actions.test.ts +11 -21
  14. package/src/business/acquisition/derive-actions.ts +61 -14
  15. package/src/business/acquisition/ontology-validation.ts +4 -4
  16. package/src/business/acquisition/types.ts +7 -8
  17. package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +10 -10
  18. package/src/knowledge/__tests__/queries.test.ts +960 -546
  19. package/src/knowledge/format.ts +322 -100
  20. package/src/knowledge/index.ts +18 -5
  21. package/src/knowledge/queries.ts +1004 -240
  22. package/src/organization-model/__tests__/content-kinds-registry.test.ts +35 -210
  23. package/src/organization-model/__tests__/defaults.test.ts +4 -4
  24. package/src/organization-model/__tests__/deprecate-helpers.test.ts +71 -0
  25. package/src/organization-model/__tests__/domains/actions.test.ts +12 -36
  26. package/src/organization-model/__tests__/domains/offerings.test.ts +13 -6
  27. package/src/organization-model/__tests__/domains/resources.test.ts +497 -350
  28. package/src/organization-model/__tests__/domains/systems.test.ts +6 -7
  29. package/src/organization-model/__tests__/flatten-additive-merge.test.ts +68 -80
  30. package/src/organization-model/__tests__/foundation.test.ts +81 -14
  31. package/src/organization-model/__tests__/graph.test.ts +662 -694
  32. package/src/organization-model/__tests__/knowledge.test.ts +31 -17
  33. package/src/organization-model/__tests__/lookup-helpers.test.ts +128 -438
  34. package/src/organization-model/__tests__/migration-helpers.test.ts +362 -591
  35. package/src/organization-model/__tests__/prospecting-ssot.test.ts +68 -103
  36. package/src/organization-model/__tests__/published-zero-leak.test.ts +17 -0
  37. package/src/organization-model/__tests__/recursive-system-schema.test.ts +159 -532
  38. package/src/organization-model/__tests__/resolve.test.ts +88 -49
  39. package/src/organization-model/__tests__/scaffolders.test.ts +93 -0
  40. package/src/organization-model/__tests__/schema.test.ts +65 -56
  41. package/src/organization-model/catalogs/lead-gen.ts +0 -103
  42. package/src/organization-model/defaults.ts +17 -702
  43. package/src/organization-model/domains/actions.ts +116 -333
  44. package/src/organization-model/domains/knowledge.ts +15 -7
  45. package/src/organization-model/domains/projects.ts +4 -4
  46. package/src/organization-model/domains/prospecting.ts +405 -395
  47. package/src/organization-model/domains/resources.ts +206 -135
  48. package/src/organization-model/domains/sales.ts +5 -5
  49. package/src/organization-model/domains/systems.ts +8 -23
  50. package/src/organization-model/graph/build.ts +223 -294
  51. package/src/organization-model/graph/schema.ts +2 -3
  52. package/src/organization-model/graph/types.ts +12 -14
  53. package/src/organization-model/helpers.ts +120 -141
  54. package/src/organization-model/icons.ts +1 -0
  55. package/src/organization-model/index.ts +107 -126
  56. package/src/organization-model/migration-helpers.ts +211 -249
  57. package/src/organization-model/ontology.ts +0 -60
  58. package/src/organization-model/organization-graph.mdx +4 -5
  59. package/src/organization-model/organization-model.mdx +1 -1
  60. package/src/organization-model/published.ts +251 -228
  61. package/src/organization-model/resolve.ts +4 -5
  62. package/src/organization-model/scaffolders/helpers.ts +84 -0
  63. package/src/organization-model/scaffolders/index.ts +19 -0
  64. package/src/organization-model/scaffolders/scaffoldKnowledgeNode.ts +48 -0
  65. package/src/organization-model/scaffolders/scaffoldOntologyRecord.ts +38 -0
  66. package/src/organization-model/scaffolders/scaffoldResource.ts +59 -0
  67. package/src/organization-model/scaffolders/scaffoldSystem.ts +110 -0
  68. package/src/organization-model/scaffolders/types.ts +81 -0
  69. package/src/organization-model/schema.ts +610 -704
  70. package/src/organization-model/types.ts +167 -161
  71. package/src/platform/constants/versions.ts +1 -1
  72. package/src/platform/registry/__tests__/validation.test.ts +23 -0
  73. package/src/platform/registry/validation.ts +13 -2
  74. package/src/reference/_generated/contracts.md +108 -96
  75. package/src/reference/glossary.md +71 -69
  76. package/src/organization-model/content-kinds/config.ts +0 -36
  77. package/src/organization-model/content-kinds/index.ts +0 -78
  78. package/src/organization-model/content-kinds/pipeline.ts +0 -68
  79. package/src/organization-model/content-kinds/registry.ts +0 -44
  80. package/src/organization-model/content-kinds/status.ts +0 -71
  81. package/src/organization-model/content-kinds/template.ts +0 -83
  82. package/src/organization-model/content-kinds/types.ts +0 -117
@@ -26,96 +26,98 @@ export {
26
26
  DEFAULT_ORGANIZATION_MODEL_DOMAIN_METADATA,
27
27
  OrganizationModelDomainKeySchema,
28
28
  OrganizationModelDomainMetadataByDomainSchema,
29
- OrganizationModelDomainMetadataSchema,
30
- OrganizationModelSchema
31
- } from './schema'
32
- export { NodeIdPathSchema, NodeIdStringSchema, UiPositionSchema } from './domains/systems'
33
- export { LinkSchema } from './graph/link'
34
- export { IconNameSchema, TechStackEntrySchema } from './domains/shared'
35
- export {
36
- ORGANIZATION_MODEL_ICON_TOKENS,
37
- OrganizationModelBuiltinIconTokenSchema,
38
- OrganizationModelIconTokenSchema
39
- } from './icons'
40
- export {
41
- KNOWLEDGE_FEATURE_ID,
42
- KNOWLEDGE_SYSTEM_ID,
43
- PROJECTS_FEATURE_ID,
44
- PROJECTS_SYSTEM_ID,
45
- PROJECTS_INDEX_SURFACE_ID,
46
- PROJECTS_VIEW_ACTION_ID,
47
- SALES_FEATURE_ID,
48
- PROSPECTING_FEATURE_ID,
49
- OPERATIONS_FEATURE_ID,
50
- SALES_SYSTEM_ID,
51
- PROSPECTING_SYSTEM_ID,
52
- OPERATIONS_SYSTEM_ID,
53
- MONITORING_FEATURE_ID,
54
- MONITORING_SYSTEM_ID,
55
- SETTINGS_FEATURE_ID,
56
- SETTINGS_SYSTEM_ID,
57
- SEO_FEATURE_ID,
58
- SEO_SYSTEM_ID,
59
- SALES_PIPELINE_SURFACE_ID,
60
- PROSPECTING_LISTS_SURFACE_ID,
61
- OPERATIONS_COMMAND_VIEW_SURFACE_ID,
62
- SETTINGS_ROLES_SURFACE_ID
63
- } from './contracts'
64
- export { DEFAULT_ORGANIZATION_MODEL } from './defaults'
65
- export {
66
- DEFAULT_ORGANIZATION_MODEL_STATUSES,
67
- StatusesDomainSchema,
68
- StatusEntrySchema,
69
- StatusSemanticClassSchema
70
- } from './domains/statuses'
71
- export {
72
- DEFAULT_ORGANIZATION_MODEL_CUSTOMERS,
73
- CustomersDomainSchema,
74
- CustomerSegmentSchema,
75
- FirmographicsSchema
76
- } from './domains/customers'
77
- export {
78
- DEFAULT_ORGANIZATION_MODEL_OFFERINGS,
79
- OfferingsDomainSchema,
80
- ProductSchema,
81
- PricingModelSchema
82
- } from './domains/offerings'
83
- export {
84
- AgentRoleHolderSchema,
85
- DEFAULT_ORGANIZATION_MODEL_ROLES,
86
- HumanRoleHolderSchema,
87
- RoleHolderSchema,
88
- RoleHoldersSchema,
89
- RoleIdSchema,
90
- RolesDomainSchema,
91
- RoleSchema,
92
- TeamRoleHolderSchema
93
- } from './domains/roles'
94
- export { DEFAULT_ORGANIZATION_MODEL_GOALS, GoalsDomainSchema, ObjectiveSchema, KeyResultSchema } from './domains/goals'
95
- export {
96
- DEFAULT_ORGANIZATION_MODEL_SYSTEMS,
97
- SystemEntrySchema,
98
- SystemIdSchema,
99
- SystemKindSchema,
100
- SystemLifecycleSchema,
101
- SystemPathSchema,
102
- SystemUiSchema,
103
- SystemsDomainSchema,
104
- SystemStatusSchema
105
- } from './domains/systems'
106
- export {
107
- AgentKindSchema,
108
- AgentResourceEntrySchema,
109
- CodeReferenceRoleSchema,
29
+ OrganizationModelDomainMetadataSchema,
30
+ OrganizationModelSchema
31
+ } from './schema'
32
+ export { NodeIdPathSchema, NodeIdStringSchema, UiPositionSchema } from './domains/systems'
33
+ export { LinkSchema } from './graph/link'
34
+ export { IconNameSchema, TechStackEntrySchema } from './domains/shared'
35
+ export {
36
+ ORGANIZATION_MODEL_ICON_TOKENS,
37
+ OrganizationModelBuiltinIconTokenSchema,
38
+ OrganizationModelIconTokenSchema
39
+ } from './icons'
40
+ export {
41
+ KNOWLEDGE_FEATURE_ID,
42
+ KNOWLEDGE_SYSTEM_ID,
43
+ PROJECTS_FEATURE_ID,
44
+ PROJECTS_SYSTEM_ID,
45
+ PROJECTS_INDEX_SURFACE_ID,
46
+ PROJECTS_VIEW_ACTION_ID,
47
+ SALES_FEATURE_ID,
48
+ PROSPECTING_FEATURE_ID,
49
+ OPERATIONS_FEATURE_ID,
50
+ SALES_SYSTEM_ID,
51
+ PROSPECTING_SYSTEM_ID,
52
+ OPERATIONS_SYSTEM_ID,
53
+ MONITORING_FEATURE_ID,
54
+ MONITORING_SYSTEM_ID,
55
+ SETTINGS_FEATURE_ID,
56
+ SETTINGS_SYSTEM_ID,
57
+ SEO_FEATURE_ID,
58
+ SEO_SYSTEM_ID,
59
+ SALES_PIPELINE_SURFACE_ID,
60
+ PROSPECTING_LISTS_SURFACE_ID,
61
+ OPERATIONS_COMMAND_VIEW_SURFACE_ID,
62
+ SETTINGS_ROLES_SURFACE_ID
63
+ } from './contracts'
64
+ export { DEFAULT_ORGANIZATION_MODEL } from './defaults'
65
+ export {
66
+ DEFAULT_ORGANIZATION_MODEL_STATUSES,
67
+ StatusesDomainSchema,
68
+ StatusEntrySchema,
69
+ StatusSemanticClassSchema
70
+ } from './domains/statuses'
71
+ export {
72
+ DEFAULT_ORGANIZATION_MODEL_CUSTOMERS,
73
+ CustomersDomainSchema,
74
+ CustomerSegmentSchema,
75
+ FirmographicsSchema
76
+ } from './domains/customers'
77
+ export {
78
+ DEFAULT_ORGANIZATION_MODEL_OFFERINGS,
79
+ OfferingsDomainSchema,
80
+ ProductSchema,
81
+ PricingModelSchema
82
+ } from './domains/offerings'
83
+ export {
84
+ AgentRoleHolderSchema,
85
+ DEFAULT_ORGANIZATION_MODEL_ROLES,
86
+ HumanRoleHolderSchema,
87
+ RoleHolderSchema,
88
+ RoleHoldersSchema,
89
+ RoleIdSchema,
90
+ RolesDomainSchema,
91
+ RoleSchema,
92
+ TeamRoleHolderSchema
93
+ } from './domains/roles'
94
+ export { DEFAULT_ORGANIZATION_MODEL_GOALS, GoalsDomainSchema, ObjectiveSchema, KeyResultSchema } from './domains/goals'
95
+ export {
96
+ DEFAULT_ORGANIZATION_MODEL_SYSTEMS,
97
+ SystemEntrySchema,
98
+ SystemIdSchema,
99
+ SystemKindSchema,
100
+ SystemLifecycleSchema,
101
+ SystemPathSchema,
102
+ SystemUiSchema,
103
+ SystemsDomainSchema,
104
+ SystemStatusSchema
105
+ } from './domains/systems'
106
+ export {
107
+ AgentKindSchema,
108
+ AgentResourceEntrySchema,
109
+ CodeReferenceRoleSchema,
110
110
  CodeReferenceSchema,
111
+ ContractRefSchema,
111
112
  DEFAULT_ORGANIZATION_MODEL_RESOURCES,
112
113
  defineResource,
113
114
  defineResourceOntology,
114
115
  defineResources,
115
- EventDescriptorSchema,
116
- EventEmissionDescriptorSchema,
117
- EventIdSchema,
118
- IntegrationResourceEntrySchema,
116
+ EventDescriptorSchema,
117
+ EventEmissionDescriptorSchema,
118
+ EventIdSchema,
119
+ IntegrationResourceEntrySchema,
120
+ parseContractRef,
119
121
  ResourceEntrySchema,
120
122
  ResourceGovernanceStatusSchema,
121
123
  ResourceIdSchema,
@@ -143,66 +145,84 @@ export {
143
145
  topologyRelationship,
144
146
  topologyRef
145
147
  } from './domains/topology'
146
- export {
147
- ActionsDomainSchema,
148
- ActionIdSchema,
149
- ActionInvocationKindSchema,
150
- ActionInvocationSchema,
151
- ActionRefSchema,
152
- ActionSchema,
153
- ActionScopeSchema,
154
- ApiEndpointInvocationSchema,
155
- CRM_ACTION_ENTRIES,
156
- DEFAULT_ORGANIZATION_MODEL_ACTIONS,
157
- findOrganizationActionById,
158
- LEAD_GEN_ACTION_ENTRIES,
159
- McpToolInvocationSchema,
160
- ScriptExecutionInvocationSchema,
161
- SlashCommandInvocationSchema
162
- } from './domains/actions'
163
- export {
164
- DEFAULT_ORGANIZATION_MODEL_ENTITIES,
165
- EntitiesDomainSchema,
166
- EntityIdSchema,
167
- EntityLinkKindSchema,
168
- EntityLinkSchema,
169
- EntitySchema
170
- } from './domains/entities'
171
- export {
172
- DEFAULT_ORGANIZATION_MODEL_POLICIES,
173
- PoliciesDomainSchema,
174
- PolicyEffectSchema,
175
- PolicyApplicabilitySchema,
176
- PolicyIdSchema,
177
- PolicyPredicateSchema,
178
- PolicySchema,
179
- PolicyTriggerSchema
180
- } from './domains/policies'
181
- export { LEAD_GEN_STAGE_CATALOG } from './catalogs/lead-gen'
182
- export {
183
- DEFAULT_ORGANIZATION_MODEL_NAVIGATION,
184
- getSortedSidebarEntries,
185
- NavigationGroupSchema,
186
- OrganizationModelNavigationSchema,
187
- SidebarNavigationSchema,
188
- SidebarNodeSchema,
189
- SidebarSectionSchema,
190
- SidebarSurfaceTargetsSchema,
191
- SurfaceDefinitionSchema,
192
- SurfaceTypeSchema
193
- } from './domains/navigation'
194
- export {
195
- KnowledgeDomainSchema,
196
- KnowledgeLinkSchema,
197
- KnowledgeTargetKindSchema,
198
- KnowledgeTargetRefSchema,
199
- OrgKnowledgeNodeSchema,
200
- OrgKnowledgeKindSchema
201
- } from './domains/knowledge'
202
- export { defineOrganizationModel, resolveOrganizationModel, resolveOrganizationModelWithResources } from './resolve'
203
- export type { ResolvedSystemEntry, ResolvedOrganizationModel } from './resolve'
204
- export { createFoundationOrganizationModel } from './foundation'
205
-
148
+ export {
149
+ ActionsDomainSchema,
150
+ ActionIdSchema,
151
+ ActionInvocationKindSchema,
152
+ ActionInvocationSchema,
153
+ ActionRefSchema,
154
+ ActionSchema,
155
+ ActionScopeSchema,
156
+ ApiEndpointInvocationSchema,
157
+ DEFAULT_ORGANIZATION_MODEL_ACTIONS,
158
+ findOrganizationActionById,
159
+ McpToolInvocationSchema,
160
+ ScriptExecutionInvocationSchema,
161
+ SlashCommandInvocationSchema
162
+ } from './domains/actions'
163
+ export {
164
+ DEFAULT_ORGANIZATION_MODEL_ENTITIES,
165
+ EntitiesDomainSchema,
166
+ EntityIdSchema,
167
+ EntityLinkKindSchema,
168
+ EntityLinkSchema,
169
+ EntitySchema
170
+ } from './domains/entities'
171
+ export {
172
+ DEFAULT_ORGANIZATION_MODEL_POLICIES,
173
+ PoliciesDomainSchema,
174
+ PolicyEffectSchema,
175
+ PolicyApplicabilitySchema,
176
+ PolicyIdSchema,
177
+ PolicyPredicateSchema,
178
+ PolicySchema,
179
+ PolicyTriggerSchema
180
+ } from './domains/policies'
181
+ export {
182
+ DEFAULT_ORGANIZATION_MODEL_NAVIGATION,
183
+ getSortedSidebarEntries,
184
+ NavigationGroupSchema,
185
+ OrganizationModelNavigationSchema,
186
+ SidebarNavigationSchema,
187
+ SidebarNodeSchema,
188
+ SidebarSectionSchema,
189
+ SidebarSurfaceTargetsSchema,
190
+ SurfaceDefinitionSchema,
191
+ SurfaceTypeSchema
192
+ } from './domains/navigation'
193
+ export {
194
+ KnowledgeDomainSchema,
195
+ KnowledgeLinkSchema,
196
+ KnowledgeTargetKindSchema,
197
+ KnowledgeTargetRefSchema,
198
+ OrgKnowledgeNodeSchema,
199
+ OrgKnowledgeKindSchema
200
+ } from './domains/knowledge'
201
+ export { defineOrganizationModel, resolveOrganizationModel, resolveOrganizationModelWithResources } from './resolve'
202
+ export type { ResolvedSystemEntry, ResolvedOrganizationModel } from './resolve'
203
+ export { createFoundationOrganizationModel } from './foundation'
204
+ export { scaffoldOrganizationModel } from './scaffolders'
205
+ export { listAllSystems } from './helpers'
206
+ export { projectOrganizationSurfaces, validateOrganizationSurfaceProjection } from './surface-projection'
207
+ export type {
208
+ BaseOmScaffoldSpec,
209
+ KnowledgeNodeScaffoldSpec,
210
+ OmScaffoldEdit,
211
+ OmScaffoldIntent,
212
+ OmScaffoldPlan,
213
+ OmScaffoldSpec,
214
+ OmScaffoldWrite,
215
+ OntologyRecordScaffoldSpec,
216
+ ResourceScaffoldSpec,
217
+ SystemScaffoldSpec
218
+ } from './scaffolders'
219
+ export type { SystemEntryWithTree } from './helpers'
220
+ export type {
221
+ OrganizationSurfaceProjection,
222
+ OrganizationSurfaceProjectionIssue,
223
+ OrganizationSurfaceProjectionIssueCode
224
+ } from './surface-projection'
225
+
206
226
  export type {
207
227
  OntologyActionType,
208
228
  OntologyCatalogType,
@@ -228,44 +248,47 @@ export type {
228
248
 
229
249
  export type {
230
250
  DeepPartial,
231
- KnowledgeLink,
232
- KnowledgeTargetKind,
233
- KnowledgeTargetRef,
234
- OrganizationModel,
235
- OrganizationModelBranding,
236
- OrganizationModelCustomerFirmographics,
237
- OrganizationModelCustomers,
238
- OrganizationModelCustomerSegment,
239
- OrganizationModelGoals,
240
- OrganizationModelNavigation,
241
- OrganizationModelSidebar,
242
- OrganizationModelSidebarGroupNode,
243
- OrganizationModelSidebarNode,
244
- OrganizationModelSidebarSection,
245
- OrganizationModelSidebarSurfaceNode,
246
- OrganizationModelSidebarSurfaceTargets,
247
- OrganizationModelKeyResult,
248
- OrganizationModelObjective,
249
- OrganizationModelSystemEntry,
250
- OrganizationModelSystemId,
251
- OrganizationModelSystemKind,
252
- OrganizationModelSystemLifecycle,
253
- OrganizationModelSystems,
254
- OrganizationModelSystemStatus,
255
- OrganizationModelAgentKind,
256
- OrganizationModelAgentResourceEntry,
257
- EventDescriptor,
258
- EventEmissionDescriptor,
259
- EventId,
260
- OrganizationModelIntegrationResourceEntry,
261
- OrganizationModelResourceEntry,
262
- OrganizationModelCodeReference,
263
- OrganizationModelCodeReferenceRole,
251
+ KnowledgeLink,
252
+ KnowledgeTargetKind,
253
+ KnowledgeTargetRef,
254
+ OrganizationModel,
255
+ OrganizationModelBranding,
256
+ OrganizationModelCustomerFirmographics,
257
+ OrganizationModelCustomers,
258
+ OrganizationModelCustomerSegment,
259
+ OrganizationModelGoals,
260
+ OrganizationModelNavigation,
261
+ OrganizationModelSidebar,
262
+ OrganizationModelSidebarGroupNode,
263
+ OrganizationModelSidebarNode,
264
+ OrganizationModelSidebarSection,
265
+ OrganizationModelSidebarSurfaceNode,
266
+ OrganizationModelSidebarSurfaceTargets,
267
+ OrganizationModelKeyResult,
268
+ OrganizationModelObjective,
269
+ OrganizationModelSystemEntry,
270
+ OrganizationModelSystemId,
271
+ OrganizationModelSystemKind,
272
+ OrganizationModelSystemLifecycle,
273
+ OrganizationModelSystems,
274
+ OrganizationModelSystemStatus,
275
+ OrganizationModelAgentKind,
276
+ OrganizationModelAgentResourceEntry,
277
+ EventDescriptor,
278
+ EventEmissionDescriptor,
279
+ EventId,
280
+ OrganizationModelIntegrationResourceEntry,
281
+ OrganizationModelResourceEntry,
282
+ OrganizationModelCodeReference,
283
+ OrganizationModelCodeReferenceRole,
264
284
  OrganizationModelResourceGovernanceStatus,
265
285
  OrganizationModelResourceId,
266
286
  OrganizationModelResourceKind,
287
+ OrganizationModelContractRef,
267
288
  OrganizationModelResourceOntologyBinding,
289
+ OrganizationModelResourceOntologyBindingContract,
268
290
  OrganizationModelResources,
291
+ ParsedContractRef,
269
292
  OrganizationModelScriptResourceEntry,
270
293
  OrganizationModelScriptResourceLanguage,
271
294
  OrganizationModelScriptResourceSource,
@@ -276,58 +299,58 @@ export type {
276
299
  OrganizationModelTopologyRelationship,
277
300
  OrganizationModelTopologyRelationshipKind,
278
301
  OrganizationModelWorkflowResourceEntry,
279
- OrganizationModelActions,
280
- OrganizationModelAction,
281
- OrganizationModelActionId,
282
- OrganizationModelActionInvocation,
283
- OrganizationModelActionInvocationKind,
284
- OrganizationModelActionRef,
285
- OrganizationModelActionScope,
286
- Entity,
287
- EntityId,
288
- EntityLink,
289
- OrganizationModelEntities,
290
- OrganizationModelEntity,
291
- OrganizationModelPolicies,
292
- OrganizationModelPolicy,
293
- OrganizationModelPolicyEffect,
294
- OrganizationModelPolicyApplicability,
295
- OrganizationModelPolicyId,
296
- OrganizationModelPolicyPredicate,
297
- OrganizationModelPolicyTrigger,
298
- OrganizationModelOfferings,
299
- OrganizationModelPricingModel,
300
- OrganizationModelProduct,
301
- OrganizationModelRole,
302
- OrganizationModelAgentRoleHolder,
303
- OrganizationModelHumanRoleHolder,
304
- OrganizationModelRoleHolder,
305
- OrganizationModelRoleId,
306
- OrganizationModelTechStackEntry,
307
- OrganizationModelTeamRoleHolder,
308
- OrganizationModelRoles,
309
- OrganizationModelStatuses,
310
- OrganizationModelStatusEntry,
311
- OrganizationModelStatusSemanticClass,
312
- NodeIdPath,
313
- NodeIdString,
314
- OrganizationModelKnowledge,
315
- OrgKnowledgeNode,
316
- OrgKnowledgeNodeInput,
317
- OrgKnowledgeKind,
318
- OrganizationModelIconToken,
302
+ OrganizationModelActions,
303
+ OrganizationModelAction,
304
+ OrganizationModelActionId,
305
+ OrganizationModelActionInvocation,
306
+ OrganizationModelActionInvocationKind,
307
+ OrganizationModelActionRef,
308
+ OrganizationModelActionScope,
309
+ Entity,
310
+ EntityId,
311
+ EntityLink,
312
+ OrganizationModelEntities,
313
+ OrganizationModelEntity,
314
+ OrganizationModelPolicies,
315
+ OrganizationModelPolicy,
316
+ OrganizationModelPolicyEffect,
317
+ OrganizationModelPolicyApplicability,
318
+ OrganizationModelPolicyId,
319
+ OrganizationModelPolicyPredicate,
320
+ OrganizationModelPolicyTrigger,
321
+ OrganizationModelOfferings,
322
+ OrganizationModelPricingModel,
323
+ OrganizationModelProduct,
324
+ OrganizationModelRole,
325
+ OrganizationModelAgentRoleHolder,
326
+ OrganizationModelHumanRoleHolder,
327
+ OrganizationModelRoleHolder,
328
+ OrganizationModelRoleId,
329
+ OrganizationModelTechStackEntry,
330
+ OrganizationModelTeamRoleHolder,
331
+ OrganizationModelRoles,
332
+ OrganizationModelStatuses,
333
+ OrganizationModelStatusEntry,
334
+ OrganizationModelStatusSemanticClass,
335
+ NodeIdPath,
336
+ NodeIdString,
337
+ OrganizationModelKnowledge,
338
+ OrgKnowledgeNode,
339
+ OrgKnowledgeNodeInput,
340
+ OrgKnowledgeKind,
341
+ OrganizationModelIconToken,
319
342
  OrganizationModelBuiltinIconToken,
320
343
  OrganizationModelDomainKey,
321
344
  OrganizationModelDomainMetadata,
322
345
  OrganizationModelDomainMetadataByDomain
323
346
  } from './types'
324
-
325
- export type { LeadGenStageCatalogEntry } from './catalogs/lead-gen'
326
-
327
- export type {
328
- FoundationBranding,
329
- FoundationNavigationSurface,
330
- FoundationOrganizationModel,
331
- FoundationSurfaceIcon,
332
- FoundationSurfaceType
333
- } from './foundation'
347
+
348
+ export type { LeadGenStageCatalogEntry } from './catalogs/lead-gen'
349
+
350
+ export type {
351
+ FoundationBranding,
352
+ FoundationNavigationSurface,
353
+ FoundationOrganizationModel,
354
+ FoundationSurfaceIcon,
355
+ FoundationSurfaceType
356
+ } from './foundation'
@@ -120,11 +120,10 @@ export function resolveOrganizationModel(
120
120
  const resolvedOptions = typeof organizationIdOrOptions === 'object' ? organizationIdOrOptions : options
121
121
  const mergeDefaults = resolvedOptions?.mergeDefaults ?? true
122
122
  const merged = mergeDefaults ? deepMerge(DEFAULT_ORGANIZATION_MODEL, override) : (override ?? {})
123
- // Phase 4: compound-domain sanity gate for model.sales?.pipelines removed.
124
- // Pipeline data now lives in system.content; use getAllPipelines(model) from
125
- // migration-helpers to check pipeline presence when needed.
126
- return OrganizationModelSchema.parse(merged)
127
- }
123
+ // Pipeline data lives in ontology catalogTypes; use getAllPipelines(model)
124
+ // from migration-helpers to check pipeline presence when needed.
125
+ return OrganizationModelSchema.parse(merged)
126
+ }
128
127
 
129
128
  /**
130
129
  * Resolve the organization model and enrich each flat system entry in
@@ -0,0 +1,84 @@
1
+ import { formatOntologyId, type OntologyKind, type OrganizationModel } from '..'
2
+ import { getSystem, listAllSystems } from '../helpers'
3
+ import type { OmScaffoldPlan } from './types'
4
+
5
+ export function slugify(input: string): string {
6
+ return input
7
+ .trim()
8
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
9
+ .toLowerCase()
10
+ .replace(/[^a-z0-9]+/g, '-')
11
+ .replace(/^-+|-+$/g, '')
12
+ }
13
+
14
+ export function titleize(input: string): string {
15
+ return input
16
+ .split(/[-._\s]+/)
17
+ .filter(Boolean)
18
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
19
+ .join(' ')
20
+ }
21
+
22
+ export function assertSystemPathAvailable(model: OrganizationModel, path: string): void {
23
+ if (getSystem(model, path) !== undefined) {
24
+ throw new Error(`system already exists: ${path}`)
25
+ }
26
+
27
+ const parent = parentPathOf(path)
28
+ if (parent !== undefined && getSystem(model, parent) === undefined) {
29
+ throw new Error(`parent system does not exist: ${parent}`)
30
+ }
31
+ }
32
+
33
+ export function assertSystemExists(model: OrganizationModel, path: string): void {
34
+ if (getSystem(model, path) === undefined) {
35
+ throw new Error(`system does not exist: ${path}`)
36
+ }
37
+ }
38
+
39
+ export function parentPathOf(path: string): string | undefined {
40
+ const index = path.lastIndexOf('.')
41
+ return index === -1 ? undefined : path.slice(0, index)
42
+ }
43
+
44
+ export function localIdOf(path: string): string {
45
+ return path.split('.').at(-1) ?? path
46
+ }
47
+
48
+ export function nextSystemOrder(model: OrganizationModel, parentPath?: string): number {
49
+ const siblings =
50
+ parentPath === undefined
51
+ ? listAllSystems(model).filter(({ path }) => !path.includes('.'))
52
+ : listAllSystems(model).filter(({ path }) => parentPathOf(path) === parentPath)
53
+ const maxOrder = siblings.reduce((max, { system }) => Math.max(max, system.order), 0)
54
+ return Math.ceil((maxOrder + 10) / 10) * 10
55
+ }
56
+
57
+ export function ontologyMapName(kind: OntologyKind): string {
58
+ const map: Record<OntologyKind, string> = {
59
+ object: 'objectTypes',
60
+ link: 'linkTypes',
61
+ action: 'actionTypes',
62
+ catalog: 'catalogTypes',
63
+ event: 'eventTypes',
64
+ interface: 'interfaceTypes',
65
+ 'value-type': 'valueTypes',
66
+ property: 'sharedProperties',
67
+ group: 'groups',
68
+ surface: 'surfaces'
69
+ }
70
+ return map[kind]
71
+ }
72
+
73
+ export function makeOntologyId(systemPath: string, kind: OntologyKind, localId: string): string {
74
+ return formatOntologyId({ scope: systemPath, kind, localId: slugify(localId) })
75
+ }
76
+
77
+ export function addProjectNextStep(plan: OmScaffoldPlan, enabled: boolean, command: string): OmScaffoldPlan {
78
+ if (!enabled) return plan
79
+ return {
80
+ ...plan,
81
+ projectCommand: command,
82
+ nextSteps: [...plan.nextSteps, `Run project handoff: ${command}`]
83
+ }
84
+ }
@@ -0,0 +1,19 @@
1
+ import type { OrganizationModel } from '..'
2
+ import { scaffoldKnowledgeNode } from './scaffoldKnowledgeNode'
3
+ import { scaffoldOntologyRecord } from './scaffoldOntologyRecord'
4
+ import { scaffoldResource } from './scaffoldResource'
5
+ import { scaffoldSystem } from './scaffoldSystem'
6
+ import type { OmScaffoldPlan, OmScaffoldSpec } from './types'
7
+
8
+ export function scaffoldOrganizationModel(model: OrganizationModel, spec: OmScaffoldSpec): OmScaffoldPlan {
9
+ if (spec.intent === 'system') return scaffoldSystem(model, spec)
10
+ if (spec.intent === 'ontology') return scaffoldOntologyRecord(model, spec)
11
+ if (spec.intent === 'resource') return scaffoldResource(model, spec)
12
+ return scaffoldKnowledgeNode(model, spec)
13
+ }
14
+
15
+ export * from './types'
16
+ export { scaffoldKnowledgeNode } from './scaffoldKnowledgeNode'
17
+ export { scaffoldOntologyRecord } from './scaffoldOntologyRecord'
18
+ export { scaffoldResource } from './scaffoldResource'
19
+ export { scaffoldSystem } from './scaffoldSystem'