speckeeper 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -849,7 +849,20 @@ declare abstract class Model<TSchema extends ZodType> {
849
849
  * Check if renderer exists for specific format
850
850
  */
851
851
  hasRenderer(format: string): boolean;
852
+ /**
853
+ * Register spec instances for this model.
854
+ * Stores specs in the global specStore keyed by this model's id.
855
+ */
856
+ register(specs: z.infer<TSchema>[]): void;
852
857
  }
858
+ /**
859
+ * Get the global spec store (model ID → spec ID → spec data)
860
+ */
861
+ declare function getSpecStore(): Map<string, Map<string, unknown>>;
862
+ /**
863
+ * Reset the spec store (clears all registered specs)
864
+ */
865
+ declare function resetSpecStore(): void;
853
866
  /**
854
867
  * Register model
855
868
  */
@@ -1308,43 +1321,31 @@ declare function generateSpecsPath(baseDir: string, category: string, filename:
1308
1321
  /**
1309
1322
  * Model Loader
1310
1323
  *
1311
- * Load models defined in TypeScript and convert to usable format for build command
1324
+ * Load models and specs from design/ directory.
1325
+ * Spec registration is done explicitly via Model.register() in each spec file.
1312
1326
  */
1313
1327
 
1314
1328
  /**
1315
- * Model registry - stores all loaded models
1316
- */
1317
- interface ModelRegistry {
1318
- requirements: Map<string, unknown>;
1319
- useCases: Map<string, unknown>;
1320
- actors: Map<string, unknown>;
1321
- components: Map<string, unknown>;
1322
- entities: Map<string, unknown>;
1323
- relations: Map<string, unknown>;
1324
- rules: Map<string, unknown>;
1325
- screens: Map<string, unknown>;
1326
- transitions: Map<string, unknown>;
1327
- forms: Map<string, unknown>;
1328
- processFlows: Map<string, unknown>;
1329
- glossaryTerms: Map<string, unknown>;
1330
- apiRefs: Map<string, unknown>;
1331
- tableRefs: Map<string, unknown>;
1332
- testRefs: Map<string, unknown>;
1333
- layers: Map<string, unknown>;
1334
- boundaries: Map<string, unknown>;
1335
- artifacts: Map<string, unknown>;
1336
- }
1337
- declare function createEmptyRegistry(): ModelRegistry;
1338
- declare function getGlobalRegistry(): ModelRegistry;
1339
- declare function resetGlobalRegistry(): void;
1329
+ * Model registry - stores all loaded spec data.
1330
+ * Keys are model IDs (e.g. 'functional-requirement', 'usecase').
1331
+ * Values are Maps of spec ID -> spec data.
1332
+ */
1333
+ type ModelRegistry = Record<string, Map<string, unknown>>;
1340
1334
  /**
1341
- * Dynamically import TS files from specified directory and collect models
1335
+ * Dynamically import TS files from specified directory.
1336
+ * Model class instances found in exports are registered to core registry.
1337
+ * Spec data is registered via Model.register() side effects during import.
1342
1338
  */
1343
1339
  declare function loadModelsFromDirectory(dirPath: string, options?: {
1344
1340
  recursive?: boolean;
1345
1341
  }): Promise<string[]>;
1346
1342
  /**
1347
- * Load all models based on configuration
1343
+ * Load all models and specs based on configuration.
1344
+ *
1345
+ * 1. Reset spec store and model registry
1346
+ * 2. Register Model class instances from config.models
1347
+ * 3. Scan design/ files (triggers Model.register() calls as side effects)
1348
+ * 4. Build registry from specStore
1348
1349
  */
1349
1350
  declare function loadAllModels(config: SpeckeeperConfig, cwd?: string): Promise<{
1350
1351
  registry: ModelRegistry;
@@ -1354,6 +1355,10 @@ declare function loadAllModels(config: SpeckeeperConfig, cwd?: string): Promise<
1354
1355
  error: unknown;
1355
1356
  }>;
1356
1357
  }>;
1358
+ /**
1359
+ * Get specs from registry for a given model ID
1360
+ */
1361
+ declare function getSpecsFromRegistry(registry: ModelRegistry, modelId: string): unknown[];
1357
1362
  /**
1358
1363
  * Get registry statistics
1359
1364
  */
@@ -1365,13 +1370,13 @@ declare function getAllIds(registry: ModelRegistry): Set<string>;
1365
1370
  /**
1366
1371
  * Identify model type from ID
1367
1372
  */
1368
- declare function findModelType(registry: ModelRegistry, id: string): keyof ModelRegistry | null;
1373
+ declare function findModelType(registry: ModelRegistry, id: string): string | null;
1369
1374
  /**
1370
1375
  * Get model by ID
1371
1376
  */
1372
1377
  declare function getModelById(registry: ModelRegistry, id: string): {
1373
- type: keyof ModelRegistry;
1378
+ type: string;
1374
1379
  model: unknown;
1375
1380
  } | null;
1376
1381
 
1377
- export { type APIRefId, type ActorId, type BaseModelInstance, type BatchRefId, type BatchWriteResult, type BoundaryId, type CheckContext, type CheckError, CheckErrorSchema, type CheckResult, CheckResultSchema, type CheckWarning, CheckWarningSchema, type ComponentId, type ConcretizationSlot, ConcretizationSlotSchema, type CoverageChecker, type CoverageResult, type DTORequirementId, type DriftResult, type EntityId, type ErrorCaseId, type EventRequirementId, type ExportContext, type Exporter, type ExternalChecker, type FormId, ID_PATTERNS, type IaCRefId, type InferModelType, type JsonSchemaExporter, type LayerId, type Link, LinkSchema, type LintContext, type LintIssue, LintIssueSchema, type LintResult, type LintRule, type MarkdownExporter, type MermaidExporter, type MetaModelConfig, type MetaModelRegistry, Model, type ModelDefinition, type ModelDefinitionInput, type ModelLevel, type ModelRegistry, type ModelRegistrySchema, type OutputPaths, type Phase, PhaseSchema, type Priority, PrioritySchema, type ProcessFlowId, RELATION_CONSTRAINTS, RELATION_TYPES, type ReferenceDefinition, ReferenceDefinitionSchema, type Relation, type RelationId, RelationSchema, type RelationValidationError, RelationsFieldSchema, type RenderContext, type Renderer, type RequirementId, type ResolvedSpeckeeperConfig, type RuleId, type ScreenId, type Severity, type SpeckeeperConfig, type SpeckeeperConfigInput, type StateId, type TableRefId, type TermId, type TransitionId, type UIComponentId, type UseCaseId, type ValidationError, type ValidationResult, type WriteResult, batchWriteFiles, checkBatchDrift, checkExternalSsot, checkFileDrift, checkReferenceIntegrity, clearModelRegistry, computeHash, createAPIRefId, createActorId, createBatchRefId, createBoundaryId, createComponentId, createDTORequirementId, createEmptyRegistry, createEntityId, createErrorCaseId, createEventRequirementId, createFormId, createIaCRefId, createLayerId, createLintRule, createMarkdownExporter, createMermaidExporter, createProcessFlowId, createRelationId, createRequirementId, createRuleId, createScreenId, createStateId, createTableRefId, createTermId, createTransitionId, createUIComponentId, createUseCaseId, defineConfig, defineModel, detectCycles, ensureDir, exportAllModels, exportMarkdown, exportMermaid, findConfigFile, findDefinitionFiles, findFiles, findModelType, findTypeScriptFiles, generateDocsPath, generateSpecsPath, getAllIds, getAllInstances, getAllModelDefinitions, getAllModelInstances, getAllModels, getExpectedOutputDirs, getGlobalModelRegistry, getGlobalRegistry, getLevelIndex, getModel, getModelById, getModelDefinition, getModelInstance, getModelRegistryStats, getOutputPaths, getRegistryStats, inferModelIdFromSpecId, lintAllModels, lintModel, loadAllModels, loadConfig, loadModelsFromDirectory, loadSpeckeeperConfig, registerModel, registerModelDefinition, registerModelDefinitions, registerModelInstance, resetGlobalRegistry, resetModelInstances, resetModelRegistry, resolveReference, validateConfig, validateOutputPaths, validateRelationLevel, writeFile, writeJsonFile };
1382
+ export { type APIRefId, type ActorId, type BaseModelInstance, type BatchRefId, type BatchWriteResult, type BoundaryId, type CheckContext, type CheckError, CheckErrorSchema, type CheckResult, CheckResultSchema, type CheckWarning, CheckWarningSchema, type ComponentId, type ConcretizationSlot, ConcretizationSlotSchema, type CoverageChecker, type CoverageResult, type DTORequirementId, type DriftResult, type EntityId, type ErrorCaseId, type EventRequirementId, type ExportContext, type Exporter, type ExternalChecker, type FormId, ID_PATTERNS, type IaCRefId, type InferModelType, type JsonSchemaExporter, type LayerId, type Link, LinkSchema, type LintContext, type LintIssue, LintIssueSchema, type LintResult, type LintRule, type MarkdownExporter, type MermaidExporter, type MetaModelConfig, type MetaModelRegistry, Model, type ModelDefinition, type ModelDefinitionInput, type ModelLevel, type ModelRegistry, type ModelRegistrySchema, type OutputPaths, type Phase, PhaseSchema, type Priority, PrioritySchema, type ProcessFlowId, RELATION_CONSTRAINTS, RELATION_TYPES, type ReferenceDefinition, ReferenceDefinitionSchema, type Relation, type RelationId, RelationSchema, type RelationValidationError, RelationsFieldSchema, type RenderContext, type Renderer, type RequirementId, type ResolvedSpeckeeperConfig, type RuleId, type ScreenId, type Severity, type SpeckeeperConfig, type SpeckeeperConfigInput, type StateId, type TableRefId, type TermId, type TransitionId, type UIComponentId, type UseCaseId, type ValidationError, type ValidationResult, type WriteResult, batchWriteFiles, checkBatchDrift, checkExternalSsot, checkFileDrift, checkReferenceIntegrity, clearModelRegistry, computeHash, createAPIRefId, createActorId, createBatchRefId, createBoundaryId, createComponentId, createDTORequirementId, createEntityId, createErrorCaseId, createEventRequirementId, createFormId, createIaCRefId, createLayerId, createLintRule, createMarkdownExporter, createMermaidExporter, createProcessFlowId, createRelationId, createRequirementId, createRuleId, createScreenId, createStateId, createTableRefId, createTermId, createTransitionId, createUIComponentId, createUseCaseId, defineConfig, defineModel, detectCycles, ensureDir, exportAllModels, exportMarkdown, exportMermaid, findConfigFile, findDefinitionFiles, findFiles, findModelType, findTypeScriptFiles, generateDocsPath, generateSpecsPath, getAllIds, getAllInstances, getAllModelDefinitions, getAllModelInstances, getAllModels, getExpectedOutputDirs, getGlobalModelRegistry, getLevelIndex, getModel, getModelById, getModelDefinition, getModelInstance, getModelRegistryStats, getOutputPaths, getRegistryStats, getSpecStore, getSpecsFromRegistry, inferModelIdFromSpecId, lintAllModels, lintModel, loadAllModels, loadConfig, loadModelsFromDirectory, loadSpeckeeperConfig, registerModel, registerModelDefinition, registerModelDefinitions, registerModelInstance, resetModelInstances, resetModelRegistry, resetSpecStore, resolveReference, validateConfig, validateOutputPaths, validateRelationLevel, writeFile, writeJsonFile };
package/dist/index.js CHANGED
@@ -546,7 +546,27 @@ var Model = class {
546
546
  hasRenderer(format) {
547
547
  return this.renderers.some((r) => r.format === format);
548
548
  }
549
+ /**
550
+ * Register spec instances for this model.
551
+ * Stores specs in the global specStore keyed by this model's id.
552
+ */
553
+ register(specs) {
554
+ if (!specStore.has(this.id)) {
555
+ specStore.set(this.id, /* @__PURE__ */ new Map());
556
+ }
557
+ const map = specStore.get(this.id);
558
+ for (const spec of specs) {
559
+ map.set(spec.id, spec);
560
+ }
561
+ }
549
562
  };
563
+ var specStore = /* @__PURE__ */ new Map();
564
+ function getSpecStore() {
565
+ return specStore;
566
+ }
567
+ function resetSpecStore() {
568
+ specStore.clear();
569
+ }
550
570
  var modelRegistry = /* @__PURE__ */ new Map();
551
571
  function registerModel(model) {
552
572
  modelRegistry.set(model.id, model);
@@ -1094,172 +1114,16 @@ function generateDocsPath(baseDir, category, filename) {
1094
1114
  function generateSpecsPath(baseDir, category, filename) {
1095
1115
  return join(baseDir, category, filename);
1096
1116
  }
1097
- function createEmptyRegistry() {
1098
- return {
1099
- requirements: /* @__PURE__ */ new Map(),
1100
- useCases: /* @__PURE__ */ new Map(),
1101
- actors: /* @__PURE__ */ new Map(),
1102
- components: /* @__PURE__ */ new Map(),
1103
- entities: /* @__PURE__ */ new Map(),
1104
- relations: /* @__PURE__ */ new Map(),
1105
- rules: /* @__PURE__ */ new Map(),
1106
- screens: /* @__PURE__ */ new Map(),
1107
- transitions: /* @__PURE__ */ new Map(),
1108
- forms: /* @__PURE__ */ new Map(),
1109
- processFlows: /* @__PURE__ */ new Map(),
1110
- glossaryTerms: /* @__PURE__ */ new Map(),
1111
- apiRefs: /* @__PURE__ */ new Map(),
1112
- tableRefs: /* @__PURE__ */ new Map(),
1113
- testRefs: /* @__PURE__ */ new Map(),
1114
- layers: /* @__PURE__ */ new Map(),
1115
- boundaries: /* @__PURE__ */ new Map(),
1116
- artifacts: /* @__PURE__ */ new Map()
1117
- };
1118
- }
1119
- var globalRegistry2 = createEmptyRegistry();
1120
- function getGlobalRegistry() {
1121
- return globalRegistry2;
1122
- }
1123
- function resetGlobalRegistry() {
1124
- globalRegistry2 = createEmptyRegistry();
1125
- }
1126
1117
  function isModelInstance(value) {
1127
1118
  if (!value || typeof value !== "object") return false;
1128
1119
  const obj = value;
1129
1120
  return typeof obj.id === "string" && typeof obj.name === "string" && typeof obj.idPrefix === "string" && obj.schema !== void 0 && typeof obj.validate === "function" && typeof obj.lint === "function";
1130
1121
  }
1131
- function registerExportedModels(module) {
1132
- for (const [exportName, exportValue] of Object.entries(module)) {
1122
+ function registerExportedModelInstances(module) {
1123
+ for (const [, exportValue] of Object.entries(module)) {
1133
1124
  if (!exportValue || typeof exportValue !== "object") continue;
1134
1125
  if (isModelInstance(exportValue)) {
1135
1126
  registerModel(exportValue);
1136
- continue;
1137
- }
1138
- if (Array.isArray(exportValue)) {
1139
- registerArrayItems(exportName, exportValue);
1140
- continue;
1141
- }
1142
- const value = exportValue;
1143
- if (value.components && value.layers && value.boundaries && value.relations) {
1144
- const arch = value;
1145
- for (const comp of arch.components) {
1146
- if (comp.id) globalRegistry2.components.set(comp.id, comp);
1147
- }
1148
- for (const layer of arch.layers) {
1149
- if (layer.id) globalRegistry2.layers.set(layer.id, layer);
1150
- }
1151
- for (const boundary of arch.boundaries) {
1152
- if (boundary.id) globalRegistry2.boundaries.set(boundary.id, boundary);
1153
- }
1154
- for (const rel of arch.relations) {
1155
- if (rel.id) globalRegistry2.relations.set(rel.id, rel);
1156
- }
1157
- continue;
1158
- }
1159
- if (value.entities && value.relations && Array.isArray(value.entities)) {
1160
- const concept = value;
1161
- for (const entity of concept.entities) {
1162
- if (entity.id) globalRegistry2.entities.set(entity.id, entity);
1163
- }
1164
- for (const rel of concept.relations) {
1165
- if (rel.id) globalRegistry2.relations.set(rel.id, rel);
1166
- }
1167
- for (const rule of concept.rules || []) {
1168
- if (rule.id) globalRegistry2.rules.set(rule.id, rule);
1169
- }
1170
- continue;
1171
- }
1172
- if (value.useCases && value.actors) {
1173
- const ucModel = value;
1174
- for (const uc of ucModel.useCases) {
1175
- if (uc.id) globalRegistry2.useCases.set(uc.id, uc);
1176
- }
1177
- for (const actor of ucModel.actors) {
1178
- if (actor.id) globalRegistry2.actors.set(actor.id, actor);
1179
- }
1180
- continue;
1181
- }
1182
- if (value.terms && Array.isArray(value.terms)) {
1183
- const glossary = value;
1184
- for (const term of glossary.terms) {
1185
- if (term.id) globalRegistry2.glossaryTerms.set(term.id, term);
1186
- }
1187
- continue;
1188
- }
1189
- if (value.id && value.title && (value.kind || value.type || value.acceptance)) {
1190
- globalRegistry2.requirements.set(value.id, value);
1191
- continue;
1192
- }
1193
- if (value.id && value.name && value.attributes && Array.isArray(value.attributes)) {
1194
- globalRegistry2.entities.set(value.id, value);
1195
- continue;
1196
- }
1197
- if (value.id && value.name && value.actor && value.mainFlow) {
1198
- globalRegistry2.useCases.set(value.id, value);
1199
- continue;
1200
- }
1201
- if (value.id && value.name && value.type && ["human", "system", "external"].includes(value.type)) {
1202
- globalRegistry2.actors.set(value.id, value);
1203
- continue;
1204
- }
1205
- if (value.id && (value.term || value.abbreviation) && value.definition) {
1206
- globalRegistry2.glossaryTerms.set(value.id, value);
1207
- continue;
1208
- }
1209
- }
1210
- }
1211
- function registerArrayItems(exportName, items) {
1212
- for (const item of items) {
1213
- if (!item || typeof item !== "object") continue;
1214
- const obj = item;
1215
- if (!obj.id || typeof obj.id !== "string") continue;
1216
- if (exportName.toLowerCase().includes("requirement") || exportName.toLowerCase().includes("constraints") || obj.type && obj.acceptanceCriteria) {
1217
- globalRegistry2.requirements.set(obj.id, item);
1218
- continue;
1219
- }
1220
- if (exportName.toLowerCase().includes("usecase") || obj.actor && obj.mainFlow) {
1221
- globalRegistry2.useCases.set(obj.id, item);
1222
- continue;
1223
- }
1224
- if (exportName.toLowerCase().includes("actor") || obj.type && ["human", "system", "external"].includes(obj.type) && !obj.mainFlow) {
1225
- globalRegistry2.actors.set(obj.id, item);
1226
- continue;
1227
- }
1228
- if (exportName.toLowerCase().includes("component") || exportName.toLowerCase().includes("container") || obj.type && ["person", "system", "container", "component"].includes(obj.type)) {
1229
- globalRegistry2.components.set(obj.id, item);
1230
- continue;
1231
- }
1232
- if (exportName.toLowerCase().includes("entit") || obj.name && obj.attributes && Array.isArray(obj.attributes)) {
1233
- globalRegistry2.entities.set(obj.id, item);
1234
- continue;
1235
- }
1236
- if (exportName.toLowerCase().includes("term") || exportName.toLowerCase().includes("acronym") || exportName.toLowerCase().includes("glossary") || obj.term && obj.definition) {
1237
- globalRegistry2.glossaryTerms.set(obj.id, item);
1238
- continue;
1239
- }
1240
- if (exportName.toLowerCase().includes("relation") || obj.from && obj.to && obj.label) {
1241
- globalRegistry2.relations.set(obj.id, item);
1242
- continue;
1243
- }
1244
- if (exportName.toLowerCase().includes("layer") || obj.name && typeof obj.order === "number") {
1245
- globalRegistry2.layers.set(obj.id, item);
1246
- continue;
1247
- }
1248
- if (exportName.toLowerCase().includes("boundar") || obj.type && ["system", "context", "container", "deployment"].includes(obj.type) && obj.description) {
1249
- globalRegistry2.boundaries.set(obj.id, item);
1250
- continue;
1251
- }
1252
- if (exportName.toLowerCase().includes("screen") || obj.type && ["page", "modal", "drawer", "panel", "wizard"].includes(obj.type) && obj.auth) {
1253
- globalRegistry2.screens.set(obj.id, item);
1254
- continue;
1255
- }
1256
- if (exportName.toLowerCase().includes("testref") || exportName.toLowerCase().includes("test-ref") || obj.source && obj.verifiesRequirements && Array.isArray(obj.verifiesRequirements)) {
1257
- globalRegistry2.testRefs.set(obj.id, item);
1258
- continue;
1259
- }
1260
- if (exportName.toLowerCase().includes("artifact") || obj.category && obj.location && obj.purpose && ["ssot", "human-readable", "machine-readable", "implementation"].includes(obj.category)) {
1261
- globalRegistry2.artifacts.set(obj.id, item);
1262
- continue;
1263
1127
  }
1264
1128
  }
1265
1129
  }
@@ -1284,9 +1148,9 @@ async function loadModelsFromDirectory(dirPath, options = {}) {
1284
1148
  try {
1285
1149
  const module = await import(fullPath);
1286
1150
  loadedFiles.push(fullPath);
1287
- registerExportedModels(module);
1151
+ registerExportedModelInstances(module);
1288
1152
  } catch (error) {
1289
- console.error(`Failed to load model from ${fullPath}:`, error);
1153
+ console.error(`Failed to load from ${fullPath}:`, error);
1290
1154
  }
1291
1155
  }
1292
1156
  }
@@ -1294,11 +1158,20 @@ async function loadModelsFromDirectory(dirPath, options = {}) {
1294
1158
  return loadedFiles;
1295
1159
  }
1296
1160
  async function loadAllModels(config, cwd = process.cwd()) {
1297
- resetGlobalRegistry();
1161
+ resetSpecStore();
1162
+ clearModelRegistry();
1298
1163
  const loadedFiles = [];
1299
1164
  const errors = [];
1165
+ if (config.models && Array.isArray(config.models)) {
1166
+ for (const model of config.models) {
1167
+ if (isModelInstance(model)) {
1168
+ registerModel(model);
1169
+ }
1170
+ }
1171
+ }
1300
1172
  const designDir = resolve(cwd, config.designDir || "design");
1301
1173
  const modelDirs = [
1174
+ { path: join(designDir, "_models") },
1302
1175
  { path: join(designDir, "requirements") },
1303
1176
  { path: join(designDir, "usecases") },
1304
1177
  { path: join(designDir, "architecture") },
@@ -1306,7 +1179,6 @@ async function loadAllModels(config, cwd = process.cwd()) {
1306
1179
  { path: join(designDir, "screens") },
1307
1180
  { path: join(designDir, "flows") },
1308
1181
  { path: join(designDir, "glossary") },
1309
- // Also load files directly under design/ by default (index.ts, etc.)
1310
1182
  { path: designDir }
1311
1183
  ];
1312
1184
  for (const { path: dirPath } of modelDirs) {
@@ -1320,12 +1192,22 @@ async function loadAllModels(config, cwd = process.cwd()) {
1320
1192
  errors.push({ file: dirPath, error });
1321
1193
  }
1322
1194
  }
1195
+ const store = getSpecStore();
1196
+ const registry = {};
1197
+ for (const [modelId, specMap] of store) {
1198
+ registry[modelId] = specMap;
1199
+ }
1323
1200
  return {
1324
- registry: getGlobalRegistry(),
1201
+ registry,
1325
1202
  loadedFiles,
1326
1203
  errors
1327
1204
  };
1328
1205
  }
1206
+ function getSpecsFromRegistry(registry, modelId) {
1207
+ const map = registry[modelId];
1208
+ if (!map) return [];
1209
+ return Array.from(map.values());
1210
+ }
1329
1211
  function getRegistryStats(registry) {
1330
1212
  const stats = {};
1331
1213
  for (const [key, map] of Object.entries(registry)) {
@@ -1359,6 +1241,6 @@ function getModelById(registry, id) {
1359
1241
  };
1360
1242
  }
1361
1243
 
1362
- export { CheckErrorSchema, CheckResultSchema, CheckWarningSchema, ConcretizationSlotSchema, ID_PATTERNS, LinkSchema, LintIssueSchema, Model, PhaseSchema, PrioritySchema, RELATION_CONSTRAINTS, RELATION_TYPES, ReferenceDefinitionSchema, RelationSchema, RelationsFieldSchema, batchWriteFiles, checkBatchDrift, checkExternalSsot, checkFileDrift, checkReferenceIntegrity, clearModelRegistry, computeHash, createAPIRefId, createActorId, createBatchRefId, createBoundaryId, createComponentId, createDTORequirementId, createEmptyRegistry, createEntityId, createErrorCaseId, createEventRequirementId, createFormId, createIaCRefId, createLayerId, createLintRule, createMarkdownExporter, createMermaidExporter, createProcessFlowId, createRelationId, createRequirementId, createRuleId, createScreenId, createStateId, createTableRefId, createTermId, createTransitionId, createUIComponentId, createUseCaseId, defineConfig, defineModel, detectCycles, ensureDir, exportAllModels, exportMarkdown, exportMermaid, findConfigFile, findDefinitionFiles, findFiles, findModelType, findTypeScriptFiles, generateDocsPath, generateSpecsPath, getAllIds, getAllInstances, getAllModelDefinitions, getAllModelInstances, getAllModels, getExpectedOutputDirs, getGlobalModelRegistry, getGlobalRegistry, getLevelIndex, getModel, getModelById, getModelDefinition, getModelInstance, getModelRegistryStats, getOutputPaths, getRegistryStats, inferModelIdFromSpecId, lintAllModels, lintModel, loadAllModels, loadConfig, loadModelsFromDirectory, loadSpeckeeperConfig, registerModel, registerModelDefinition, registerModelDefinitions, registerModelInstance, resetGlobalRegistry, resetModelInstances, resetModelRegistry, resolveReference, validateConfig, validateOutputPaths, validateRelationLevel, writeFile, writeJsonFile };
1244
+ export { CheckErrorSchema, CheckResultSchema, CheckWarningSchema, ConcretizationSlotSchema, ID_PATTERNS, LinkSchema, LintIssueSchema, Model, PhaseSchema, PrioritySchema, RELATION_CONSTRAINTS, RELATION_TYPES, ReferenceDefinitionSchema, RelationSchema, RelationsFieldSchema, batchWriteFiles, checkBatchDrift, checkExternalSsot, checkFileDrift, checkReferenceIntegrity, clearModelRegistry, computeHash, createAPIRefId, createActorId, createBatchRefId, createBoundaryId, createComponentId, createDTORequirementId, createEntityId, createErrorCaseId, createEventRequirementId, createFormId, createIaCRefId, createLayerId, createLintRule, createMarkdownExporter, createMermaidExporter, createProcessFlowId, createRelationId, createRequirementId, createRuleId, createScreenId, createStateId, createTableRefId, createTermId, createTransitionId, createUIComponentId, createUseCaseId, defineConfig, defineModel, detectCycles, ensureDir, exportAllModels, exportMarkdown, exportMermaid, findConfigFile, findDefinitionFiles, findFiles, findModelType, findTypeScriptFiles, generateDocsPath, generateSpecsPath, getAllIds, getAllInstances, getAllModelDefinitions, getAllModelInstances, getAllModels, getExpectedOutputDirs, getGlobalModelRegistry, getLevelIndex, getModel, getModelById, getModelDefinition, getModelInstance, getModelRegistryStats, getOutputPaths, getRegistryStats, getSpecStore, getSpecsFromRegistry, inferModelIdFromSpecId, lintAllModels, lintModel, loadAllModels, loadConfig, loadModelsFromDirectory, loadSpeckeeperConfig, registerModel, registerModelDefinition, registerModelDefinitions, registerModelInstance, resetModelInstances, resetModelRegistry, resetSpecStore, resolveReference, validateConfig, validateOutputPaths, validateRelationLevel, writeFile, writeJsonFile };
1363
1245
  //# sourceMappingURL=index.js.map
1364
1246
  //# sourceMappingURL=index.js.map