@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
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import type { OrganizationModel, OrganizationModelSystemEntry } from './types'
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
1
|
+
import type { OrganizationModel, OrganizationModelSystemEntry } from './types'
|
|
2
|
+
import type { JsonValue } from './domains/systems'
|
|
3
|
+
import type { ResourceEntry } from './domains/resources'
|
|
4
|
+
import type { OmTopologyRelationship } from './domains/topology'
|
|
5
5
|
|
|
6
|
-
// W1A has landed: ContentNode and SystemEntry (with content + subsystems) are now
|
|
7
|
-
// defined in their canonical locations.
|
|
8
6
|
// Phase 4: removed locally-scoped inferred types for deleted compound-domain schemas
|
|
9
7
|
// (SalesPipeline, ProspectingBuildTemplate, etc.). migration-helpers.ts imports them directly.
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
|
-
* SystemEntry extended with the recursive tree slots (`
|
|
10
|
+
* SystemEntry extended with the recursive tree slots (`systems`, `subsystems`).
|
|
13
11
|
* `OrganizationModelSystemEntry` is inferred from `SystemEntrySchema: ZodType<SystemEntry>`
|
|
14
12
|
* so it already carries these fields; this alias re-exports it under the tree-walker name
|
|
15
13
|
* for clarity at call sites.
|
|
16
14
|
*/
|
|
17
|
-
export type
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
15
|
+
export type SystemEntryWithTree = OrganizationModelSystemEntry
|
|
16
|
+
|
|
17
|
+
function childSystemsOf(system: SystemEntryWithTree): Record<string, SystemEntryWithTree> {
|
|
18
|
+
return system.systems ?? system.subsystems ?? {}
|
|
19
|
+
}
|
|
23
20
|
|
|
24
21
|
export function defaultPathFor(id: string): string {
|
|
25
22
|
return `/${id.replaceAll('.', '/')}`
|
|
@@ -130,11 +127,11 @@ export function getSystem(model: OrganizationModel, path: string): SystemEntryWi
|
|
|
130
127
|
// to SystemEntryWithTree (which extends it with optional content + subsystems).
|
|
131
128
|
let current: Record<string, SystemEntryWithTree> = model.systems as Record<string, SystemEntryWithTree>
|
|
132
129
|
let node: SystemEntryWithTree | undefined
|
|
133
|
-
for (const seg of segments) {
|
|
134
|
-
node = current[seg]
|
|
135
|
-
if (node === undefined) return undefined
|
|
136
|
-
current = childSystemsOf(node)
|
|
137
|
-
}
|
|
130
|
+
for (const seg of segments) {
|
|
131
|
+
node = current[seg]
|
|
132
|
+
if (node === undefined) return undefined
|
|
133
|
+
current = childSystemsOf(node)
|
|
134
|
+
}
|
|
138
135
|
return node
|
|
139
136
|
}
|
|
140
137
|
|
|
@@ -151,11 +148,11 @@ export function getSystemAncestors(model: OrganizationModel, path: string): Syst
|
|
|
151
148
|
const result: SystemEntryWithTree[] = []
|
|
152
149
|
let current: Record<string, SystemEntryWithTree> = model.systems as Record<string, SystemEntryWithTree>
|
|
153
150
|
for (const seg of segments) {
|
|
154
|
-
const node = current[seg]
|
|
155
|
-
if (node === undefined) return []
|
|
156
|
-
result.push(node)
|
|
157
|
-
current = childSystemsOf(node)
|
|
158
|
-
}
|
|
151
|
+
const node = current[seg]
|
|
152
|
+
if (node === undefined) return []
|
|
153
|
+
result.push(node)
|
|
154
|
+
current = childSystemsOf(node)
|
|
155
|
+
}
|
|
159
156
|
return result
|
|
160
157
|
}
|
|
161
158
|
|
|
@@ -171,133 +168,49 @@ export function listAllSystems(model: OrganizationModel): Array<{ path: string;
|
|
|
171
168
|
|
|
172
169
|
function walk(map: Record<string, SystemEntryWithTree>, prefix: string): void {
|
|
173
170
|
for (const [localId, system] of Object.entries(map)) {
|
|
174
|
-
const fullPath = prefix ? `${prefix}.${localId}` : localId
|
|
175
|
-
results.push({ path: fullPath, system })
|
|
176
|
-
const childSystems = childSystemsOf(system)
|
|
177
|
-
if (Object.keys(childSystems).length > 0) {
|
|
178
|
-
walk(childSystems, fullPath)
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
171
|
+
const fullPath = prefix ? `${prefix}.${localId}` : localId
|
|
172
|
+
results.push({ path: fullPath, system })
|
|
173
|
+
const childSystems = childSystemsOf(system)
|
|
174
|
+
if (Object.keys(childSystems).length > 0) {
|
|
175
|
+
walk(childSystems, fullPath)
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
182
179
|
|
|
183
180
|
walk(model.systems as Record<string, SystemEntryWithTree>, '')
|
|
184
181
|
return results
|
|
185
182
|
}
|
|
186
183
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
* `getContent(model, 'sales.crm:default-pipeline')` resolves the `sales.crm`
|
|
191
|
-
* system and then looks up `system.content['default-pipeline']`.
|
|
192
|
-
*
|
|
193
|
-
* Returns `undefined` if the system or local id is not found, or if the
|
|
194
|
-
* qualified id does not contain exactly one `:` separator.
|
|
195
|
-
*/
|
|
196
|
-
export function getContent(model: OrganizationModel, qualifiedId: string): ContentNode | undefined {
|
|
197
|
-
const colonIndex = qualifiedId.indexOf(':')
|
|
198
|
-
if (colonIndex === -1) return undefined
|
|
199
|
-
const systemPath = qualifiedId.slice(0, colonIndex)
|
|
200
|
-
const localId = qualifiedId.slice(colonIndex + 1)
|
|
201
|
-
if (!systemPath || !localId) return undefined
|
|
202
|
-
const system = getSystem(model, systemPath)
|
|
203
|
-
return system?.content?.[localId]
|
|
184
|
+
|
|
185
|
+
function isPlainJsonObject(value: JsonValue | undefined): value is Record<string, JsonValue> {
|
|
186
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
204
187
|
}
|
|
205
188
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
* for `'x'` appears in `inherited`.
|
|
217
|
-
*
|
|
218
|
-
* `resolveSystemContent(model, 'sales.crm')` with both `sales.content['x']`
|
|
219
|
-
* and `sales.crm.content['x']` defined → `own` contains `'x'`, `inherited`
|
|
220
|
-
* contains NO entry for `'x'` from `sales`.
|
|
221
|
-
*/
|
|
222
|
-
export function resolveSystemContent(
|
|
223
|
-
model: OrganizationModel,
|
|
224
|
-
path: string
|
|
225
|
-
): { own: Record<string, ContentNode>; inherited: Array<{ fromPath: string; node: ContentNode; localId: string }> } {
|
|
226
|
-
const ancestors = getSystemAncestors(model, path)
|
|
227
|
-
if (ancestors.length === 0) return { own: {}, inherited: [] }
|
|
228
|
-
|
|
229
|
-
const system = ancestors[ancestors.length - 1]
|
|
230
|
-
const own: Record<string, ContentNode> = { ...(system.content ?? {}) }
|
|
231
|
-
|
|
232
|
-
// Collect ancestor entries depth-first (deepest ancestor first, excluding self).
|
|
233
|
-
// We reconstruct paths for each ancestor by slicing the path segments.
|
|
234
|
-
const segments = path.split('.')
|
|
235
|
-
const shadowedIds = new Set(Object.keys(own))
|
|
236
|
-
const inherited: Array<{ fromPath: string; node: ContentNode; localId: string }> = []
|
|
237
|
-
|
|
238
|
-
// Iterate ancestors from deepest-parent to root so deeper wins.
|
|
239
|
-
for (let i = ancestors.length - 2; i >= 0; i--) {
|
|
240
|
-
const ancestor = ancestors[i]
|
|
241
|
-
const ancestorPath = segments.slice(0, i + 1).join('.')
|
|
242
|
-
const contentMap = ancestor.content ?? {}
|
|
243
|
-
for (const [localId, node] of Object.entries(contentMap)) {
|
|
244
|
-
if (!shadowedIds.has(localId)) {
|
|
245
|
-
shadowedIds.add(localId)
|
|
246
|
-
inherited.push({ fromPath: ancestorPath, node, localId })
|
|
247
|
-
}
|
|
248
|
-
}
|
|
189
|
+
function mergeJsonConfig(
|
|
190
|
+
base: Record<string, JsonValue>,
|
|
191
|
+
override: Record<string, JsonValue>
|
|
192
|
+
): Record<string, JsonValue> {
|
|
193
|
+
const result: Record<string, JsonValue> = { ...base }
|
|
194
|
+
|
|
195
|
+
for (const [key, value] of Object.entries(override)) {
|
|
196
|
+
const existing = result[key]
|
|
197
|
+
result[key] =
|
|
198
|
+
isPlainJsonObject(existing) && isPlainJsonObject(value) ? mergeJsonConfig(existing, value) : value
|
|
249
199
|
}
|
|
250
200
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
): Record<string, JsonValue> {
|
|
265
|
-
const result: Record<string, JsonValue> = { ...base }
|
|
266
|
-
|
|
267
|
-
for (const [key, value] of Object.entries(override)) {
|
|
268
|
-
const existing = result[key]
|
|
269
|
-
result[key] =
|
|
270
|
-
isPlainJsonObject(existing) && isPlainJsonObject(value) ? mergeJsonConfig(existing, value) : value
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
return result
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Resolve a system's effective local config.
|
|
278
|
-
*
|
|
279
|
-
* Bridge-era `content` entries with `(kind, type) === ('config', 'kv')` are
|
|
280
|
-
* projected first, then first-class `system.config` overlays them. This keeps
|
|
281
|
-
* direct config authoring authoritative while continuing to read old content.
|
|
282
|
-
*/
|
|
283
|
-
export function resolveSystemConfig(model: OrganizationModel, path: string): Record<string, JsonValue> {
|
|
284
|
-
const system = getSystem(model, path)
|
|
285
|
-
if (system === undefined) return {}
|
|
286
|
-
|
|
287
|
-
let resolved: Record<string, JsonValue> = {}
|
|
288
|
-
for (const node of Object.values(system.content ?? {})) {
|
|
289
|
-
if (node.kind !== 'config' || node.type !== 'kv') continue
|
|
290
|
-
const entries = node.data?.entries
|
|
291
|
-
if (isPlainJsonObject(entries as JsonValue)) {
|
|
292
|
-
resolved = mergeJsonConfig(resolved, entries as Record<string, JsonValue>)
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
return mergeJsonConfig(resolved, system.config ?? {})
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Return all resources whose `systemPath` belongs to the given system.
|
|
201
|
+
return result
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/** Resolve a system's effective local config from first-class `System.config`. */
|
|
205
|
+
export function resolveSystemConfig(model: OrganizationModel, path: string): Record<string, JsonValue> {
|
|
206
|
+
const system = getSystem(model, path)
|
|
207
|
+
if (system === undefined) return {}
|
|
208
|
+
|
|
209
|
+
return mergeJsonConfig({}, system.config ?? {})
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Return all resources whose `systemPath` belongs to the given system.
|
|
301
214
|
*
|
|
302
215
|
* When `includeDescendants` is false (default), only resources whose
|
|
303
216
|
* `systemPath` exactly matches `systemPath` are returned.
|
|
@@ -325,3 +238,69 @@ export function getResourcesForSystem(
|
|
|
325
238
|
(r) => r.systemPath === systemPath || (includeDescendants && r.systemPath.startsWith(prefix))
|
|
326
239
|
)
|
|
327
240
|
}
|
|
241
|
+
|
|
242
|
+
export interface SystemTopologyEdge {
|
|
243
|
+
id: string
|
|
244
|
+
relationship: OmTopologyRelationship
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
export interface SystemDeprecationDependents {
|
|
248
|
+
resources: ResourceEntry[]
|
|
249
|
+
topologyEdges: SystemTopologyEdge[]
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
function systemPathIsInScope(candidate: string, systemPath: string, includeDescendants: boolean): boolean {
|
|
253
|
+
return candidate === systemPath || (includeDescendants && candidate.startsWith(`${systemPath}.`))
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
function topologyRelationshipTouchesSystem(
|
|
257
|
+
relationship: OmTopologyRelationship,
|
|
258
|
+
systemPath: string,
|
|
259
|
+
resourceIds: Set<string>,
|
|
260
|
+
includeDescendants: boolean
|
|
261
|
+
): boolean {
|
|
262
|
+
if (
|
|
263
|
+
relationship.systemPath !== undefined &&
|
|
264
|
+
systemPathIsInScope(relationship.systemPath, systemPath, includeDescendants)
|
|
265
|
+
) {
|
|
266
|
+
return true
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
for (const ref of [relationship.from, relationship.to]) {
|
|
270
|
+
if (ref.kind === 'system' && systemPathIsInScope(ref.id, systemPath, includeDescendants)) return true
|
|
271
|
+
if (ref.kind === 'resource' && resourceIds.has(ref.id)) return true
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return false
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export function getTopologyEdgesForSystem(
|
|
278
|
+
model: OrganizationModel,
|
|
279
|
+
systemPath: string,
|
|
280
|
+
options: { includeDescendants?: boolean; resourceIds?: Iterable<string> } = {}
|
|
281
|
+
): SystemTopologyEdge[] {
|
|
282
|
+
const { includeDescendants = false } = options
|
|
283
|
+
const resourceIds = new Set(
|
|
284
|
+
options.resourceIds ?? getResourcesForSystem(model, systemPath, { includeDescendants }).map((r) => r.id)
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
return Object.entries(model.topology?.relationships ?? {})
|
|
288
|
+
.filter(([, relationship]) =>
|
|
289
|
+
topologyRelationshipTouchesSystem(relationship, systemPath, resourceIds, includeDescendants)
|
|
290
|
+
)
|
|
291
|
+
.map(([id, relationship]) => ({ id, relationship }))
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
export function getSystemDeprecationDependents(
|
|
295
|
+
model: OrganizationModel,
|
|
296
|
+
systemPath: string,
|
|
297
|
+
options: { includeDescendants?: boolean } = {}
|
|
298
|
+
): SystemDeprecationDependents {
|
|
299
|
+
const resources = getResourcesForSystem(model, systemPath, options).filter((resource) => resource.status === 'active')
|
|
300
|
+
const resourceIds = new Set(resources.map((resource) => resource.id))
|
|
301
|
+
|
|
302
|
+
return {
|
|
303
|
+
resources,
|
|
304
|
+
topologyEdges: getTopologyEdgesForSystem(model, systemPath, { ...options, resourceIds })
|
|
305
|
+
}
|
|
306
|
+
}
|
|
@@ -1,134 +1,115 @@
|
|
|
1
|
-
export * from './content-kinds/index'
|
|
2
1
|
export * from './schema'
|
|
3
2
|
export * from './types'
|
|
4
3
|
export * from './ontology'
|
|
5
4
|
export * from './contracts'
|
|
6
|
-
export {
|
|
7
|
-
ORGANIZATION_MODEL_ICON_TOKENS,
|
|
8
|
-
OrganizationModelBuiltinIconTokenSchema,
|
|
9
|
-
OrganizationModelIconTokenSchema
|
|
10
|
-
} from './icons'
|
|
11
|
-
export * from './defaults'
|
|
12
|
-
export * from './resolve'
|
|
13
|
-
export * from './foundation'
|
|
14
|
-
export * from './surface-projection'
|
|
15
|
-
export * from './helpers'
|
|
16
|
-
export * from './migration-helpers'
|
|
17
|
-
export * from './
|
|
18
|
-
export * from './
|
|
19
|
-
export * from './
|
|
20
|
-
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
CredentialRequirementSchema,
|
|
61
|
-
ProspectingBuildTemplateStepSchema,
|
|
62
|
-
ProspectingBuildTemplateSchema,
|
|
63
|
-
PROSPECTING_STEPS,
|
|
64
|
-
ACTION_REGISTRY,
|
|
65
|
-
findActionById
|
|
66
|
-
} from './domains/prospecting'
|
|
67
|
-
export type {
|
|
68
|
-
ListBuilderStep,
|
|
69
|
-
RecordColumnConfig,
|
|
70
|
-
CredentialRequirement,
|
|
71
|
-
TemplateName,
|
|
72
|
-
StepName,
|
|
73
|
-
ActionRegistry
|
|
74
|
-
} from './domains/prospecting'
|
|
75
|
-
export { ProjectsDomainStateSchema } from './domains/projects'
|
|
5
|
+
export {
|
|
6
|
+
ORGANIZATION_MODEL_ICON_TOKENS,
|
|
7
|
+
OrganizationModelBuiltinIconTokenSchema,
|
|
8
|
+
OrganizationModelIconTokenSchema
|
|
9
|
+
} from './icons'
|
|
10
|
+
export * from './defaults'
|
|
11
|
+
export * from './resolve'
|
|
12
|
+
export * from './foundation'
|
|
13
|
+
export * from './surface-projection'
|
|
14
|
+
export * from './helpers'
|
|
15
|
+
export * from './migration-helpers'
|
|
16
|
+
export * from './scaffolders'
|
|
17
|
+
export * from './graph'
|
|
18
|
+
export * from './catalogs/lead-gen'
|
|
19
|
+
export * from './domains/branding'
|
|
20
|
+
// Phase 4: OrganizationModelSalesSchema, OrganizationModelProspectingSchema,
|
|
21
|
+
// OrganizationModelProjectsSchema removed. Business-logic exports (StatefulPipelineDefinition,
|
|
22
|
+
// ProspectingBuildTemplateSchema, StatefulPipelineDefinition, etc.) still re-exported below.
|
|
23
|
+
export {
|
|
24
|
+
SalesStageSemanticClassSchema,
|
|
25
|
+
SalesStageSchema,
|
|
26
|
+
SalesPipelineSchema,
|
|
27
|
+
findPipeline,
|
|
28
|
+
getValidStatesForStage
|
|
29
|
+
} from './domains/sales'
|
|
30
|
+
export type {
|
|
31
|
+
StatefulStateDefinition,
|
|
32
|
+
StatefulStageDefinition,
|
|
33
|
+
StatefulPipelineDefinition,
|
|
34
|
+
CrmPriorityBucketKey,
|
|
35
|
+
CrmPriorityBucketDefinition,
|
|
36
|
+
CrmPriorityRuleConfig,
|
|
37
|
+
CrmNextActionMapping,
|
|
38
|
+
CrmNextActionRuleConfig
|
|
39
|
+
} from './domains/sales'
|
|
40
|
+
export {
|
|
41
|
+
ProspectingLifecycleStageSchema,
|
|
42
|
+
RecordColumnConfigSchema,
|
|
43
|
+
RecordColumnsConfigSchema,
|
|
44
|
+
CredentialRequirementSchema,
|
|
45
|
+
ProspectingBuildTemplateStepSchema,
|
|
46
|
+
ProspectingBuildTemplateSchema,
|
|
47
|
+
ACTION_REGISTRY,
|
|
48
|
+
findActionById
|
|
49
|
+
} from './domains/prospecting'
|
|
50
|
+
export type {
|
|
51
|
+
ListBuilderStep,
|
|
52
|
+
RecordColumnConfig,
|
|
53
|
+
CredentialRequirement,
|
|
54
|
+
TemplateName,
|
|
55
|
+
StepName,
|
|
56
|
+
ActionRegistry
|
|
57
|
+
} from './domains/prospecting'
|
|
58
|
+
export { ProjectsDomainStateSchema } from './domains/projects'
|
|
76
59
|
export * from './domains/systems'
|
|
77
60
|
export * from './domains/resources'
|
|
78
61
|
export * from './domains/topology'
|
|
79
62
|
export {
|
|
80
|
-
DEFAULT_ORGANIZATION_MODEL_NAVIGATION,
|
|
81
|
-
getSortedSidebarEntries,
|
|
82
|
-
NavigationGroupSchema,
|
|
83
|
-
OrganizationModelNavigationSchema,
|
|
84
|
-
SidebarNavigationSchema,
|
|
85
|
-
SidebarNodeSchema,
|
|
86
|
-
SidebarSectionSchema,
|
|
87
|
-
SidebarSurfaceTargetsSchema,
|
|
88
|
-
SurfaceDefinitionSchema,
|
|
89
|
-
SurfaceTypeSchema
|
|
90
|
-
} from './domains/navigation'
|
|
91
|
-
export {
|
|
92
|
-
EntitiesDomainSchema,
|
|
93
|
-
EntityIdSchema,
|
|
94
|
-
EntityLinkKindSchema,
|
|
95
|
-
EntityLinkSchema,
|
|
96
|
-
EntitySchema
|
|
97
|
-
} from './domains/entities'
|
|
98
|
-
export {
|
|
99
|
-
KnowledgeDomainSchema,
|
|
100
|
-
KnowledgeLinkSchema,
|
|
101
|
-
KnowledgeTargetKindSchema,
|
|
102
|
-
KnowledgeTargetRefSchema,
|
|
103
|
-
OrgKnowledgeKindSchema,
|
|
104
|
-
OrgKnowledgeNodeSchema
|
|
105
|
-
} from './domains/knowledge'
|
|
106
|
-
export * from './domains/roles'
|
|
107
|
-
export * from './domains/identity'
|
|
108
|
-
export * from './domains/policies'
|
|
109
|
-
export {
|
|
110
|
-
ActionsDomainSchema,
|
|
111
|
-
ActionIdSchema,
|
|
112
|
-
ActionInvocationKindSchema,
|
|
113
|
-
ActionInvocationSchema,
|
|
114
|
-
ActionRefSchema,
|
|
115
|
-
ActionSchema,
|
|
116
|
-
ActionScopeSchema,
|
|
117
|
-
ApiEndpointInvocationSchema,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
ActionScope
|
|
134
|
-
} from './domains/actions'
|
|
63
|
+
DEFAULT_ORGANIZATION_MODEL_NAVIGATION,
|
|
64
|
+
getSortedSidebarEntries,
|
|
65
|
+
NavigationGroupSchema,
|
|
66
|
+
OrganizationModelNavigationSchema,
|
|
67
|
+
SidebarNavigationSchema,
|
|
68
|
+
SidebarNodeSchema,
|
|
69
|
+
SidebarSectionSchema,
|
|
70
|
+
SidebarSurfaceTargetsSchema,
|
|
71
|
+
SurfaceDefinitionSchema,
|
|
72
|
+
SurfaceTypeSchema
|
|
73
|
+
} from './domains/navigation'
|
|
74
|
+
export {
|
|
75
|
+
EntitiesDomainSchema,
|
|
76
|
+
EntityIdSchema,
|
|
77
|
+
EntityLinkKindSchema,
|
|
78
|
+
EntityLinkSchema,
|
|
79
|
+
EntitySchema
|
|
80
|
+
} from './domains/entities'
|
|
81
|
+
export {
|
|
82
|
+
KnowledgeDomainSchema,
|
|
83
|
+
KnowledgeLinkSchema,
|
|
84
|
+
KnowledgeTargetKindSchema,
|
|
85
|
+
KnowledgeTargetRefSchema,
|
|
86
|
+
OrgKnowledgeKindSchema,
|
|
87
|
+
OrgKnowledgeNodeSchema
|
|
88
|
+
} from './domains/knowledge'
|
|
89
|
+
export * from './domains/roles'
|
|
90
|
+
export * from './domains/identity'
|
|
91
|
+
export * from './domains/policies'
|
|
92
|
+
export {
|
|
93
|
+
ActionsDomainSchema,
|
|
94
|
+
ActionIdSchema,
|
|
95
|
+
ActionInvocationKindSchema,
|
|
96
|
+
ActionInvocationSchema,
|
|
97
|
+
ActionRefSchema,
|
|
98
|
+
ActionSchema,
|
|
99
|
+
ActionScopeSchema,
|
|
100
|
+
ApiEndpointInvocationSchema,
|
|
101
|
+
DEFAULT_ORGANIZATION_MODEL_ACTIONS,
|
|
102
|
+
findOrganizationActionById,
|
|
103
|
+
McpToolInvocationSchema,
|
|
104
|
+
ScriptExecutionInvocationSchema,
|
|
105
|
+
SlashCommandInvocationSchema
|
|
106
|
+
} from './domains/actions'
|
|
107
|
+
export type {
|
|
108
|
+
ActionsDomain,
|
|
109
|
+
Action as OrganizationAction,
|
|
110
|
+
ActionId,
|
|
111
|
+
ActionInvocation,
|
|
112
|
+
ActionInvocationKind,
|
|
113
|
+
ActionRef,
|
|
114
|
+
ActionScope
|
|
115
|
+
} from './domains/actions'
|