@specverse/engines 6.4.0 → 6.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"analyse-runner.d.ts","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAGL,KAAK,WAAW,EAAE,KAAK,YAAY,EACpC,MAAM,gBAAgB,CAAC;AAiBxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,aAAa,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAqCD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuRnF"}
1
+ {"version":3,"file":"analyse-runner.d.ts","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAGL,KAAK,WAAW,EAAE,KAAK,YAAY,EACpC,MAAM,gBAAgB,CAAC;AAiBxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,aAAa,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAqCD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8SnF"}
@@ -92,11 +92,14 @@ export async function runAnalyse(opts) {
92
92
  let factsContent = '';
93
93
  let factsSource = null;
94
94
  let methodFactsContent = '';
95
+ // Hold raw method fact sheets for the deterministic cross-check (#32 v2).
96
+ let methodFactSheetsRaw;
95
97
  if (opts.autoFacts && !opts.factsPath) {
96
98
  const { runPrepass, formatFactsAsMarkdown, formatMethodFactsAsMarkdown } = await import('./../analyse-prepass/index.js');
97
99
  const facts = await runPrepass(opts.sourceDir);
98
100
  factsContent = formatFactsAsMarkdown(facts);
99
101
  methodFactsContent = formatMethodFactsAsMarkdown(facts.methodFactSheets);
102
+ methodFactSheetsRaw = facts.methodFactSheets;
100
103
  factsSource = `auto (${facts.meta.backend}, adapters: ${facts.meta.adaptersRun.join(', ') || 'none'})`;
101
104
  writeFileSync(join(factsDir(opts.outputDir), 'facts.md'), factsContent);
102
105
  if (methodFactsContent) {
@@ -213,6 +216,24 @@ export async function runAnalyse(opts) {
213
216
  let verifyDurationMs = 0;
214
217
  if (opts.verify) {
215
218
  try {
219
+ // Deterministic behavior cross-check (#32 v2). Runs BEFORE the LLM
220
+ // call. Compares draft.publishes / draft.ensures against
221
+ // MethodFactSheet.emits / dbWrites. Each violation is a factual
222
+ // mismatch the LLM should treat as ground truth, not LLM judgment.
223
+ let crossCheckMd = '';
224
+ if (methodFactSheetsRaw && methodFactSheetsRaw.length > 0) {
225
+ try {
226
+ const { crossCheckBehaviors, formatBehaviorViolationsAsMarkdown } = await import('./behavior-cross-check/index.js');
227
+ const yaml = await import('js-yaml');
228
+ const parsedDraft = yaml.load(draftSpec);
229
+ const violations = crossCheckBehaviors(parsedDraft, methodFactSheetsRaw);
230
+ if (violations.length > 0) {
231
+ crossCheckMd = formatBehaviorViolationsAsMarkdown(violations);
232
+ writeFileSync(join(factsDir(opts.outputDir), 'behavior-cross-check.md'), crossCheckMd);
233
+ }
234
+ }
235
+ catch { /* spec didn't parse cleanly enough for cross-check; skip */ }
236
+ }
216
237
  const verifyResult = await runPrompt({
217
238
  operation: 'verify-analyse',
218
239
  values: {
@@ -222,6 +243,8 @@ export async function runAnalyse(opts) {
222
243
  '(no structural facts available — extract-facts pre-pass was not run)',
223
244
  methodFacts: methodFactsContent ||
224
245
  '(no method fact sheets available — backend did not extract per-method facts)',
246
+ behaviorCrossCheck: crossCheckMd ||
247
+ '(no deterministic violations — proceed with LLM-judgment checks)',
225
248
  },
226
249
  model,
227
250
  timeoutMs: opts.timeoutMs ?? 15 * 60_000,
@@ -1 +1 @@
1
- {"version":3,"file":"analyse-runner.js","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyse-runner.js","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Deterministic behavior ↔ method-facts cross-check (TODO #32 v2).
3
+ *
4
+ * Pure-function, no-LLM check that compares analysed `behaviors[].publishes`
5
+ * (and `actions[].publishes`, `operations[].publishes`) against
6
+ * `MethodFactSheet.emits` lists. If a spec behavior claims to publish event
7
+ * X but no source method actually emits X, that's a hallucination — flag it
8
+ * BEFORE the LLM verify call so retry feedback is grounded in source truth.
9
+ *
10
+ * Symmetric check for `dbWrites`: if the source mutates Order but no
11
+ * `ensures:` clause references the mutation, flag it.
12
+ *
13
+ * v1 was LLM-judgment-only via verify-analyse check 8. v2 promotes the
14
+ * objective parts (emit set membership, dbWrite presence) to deterministic
15
+ * gate that runs alongside the LLM call.
16
+ */
17
+ import type { MethodFactSheet } from '../../analyse-prepass/interface.js';
18
+ export interface BehaviorViolation {
19
+ /** Where in the spec the violation lives. */
20
+ modelOrService: string;
21
+ behaviorOrOperation: string;
22
+ /** Violation category. */
23
+ kind: 'emit-not-in-source' | 'source-emit-missing-from-spec' | 'dbwrite-missing-ensures';
24
+ /** Human-readable explanation suitable for retry-prompt feedback. */
25
+ message: string;
26
+ }
27
+ /**
28
+ * Run the cross-check. Walks every executable in every component (model
29
+ * behaviors, controller actions, service operations) and compares against
30
+ * the supplied method fact sheets indexed by qualifiedName.
31
+ *
32
+ * Symbol-matching heuristic:
33
+ * - Behavior `Model.foo` matches MethodFactSheet `ModelController.foo` OR
34
+ * `ModelService.foo` OR `Model.foo` (most specific wins).
35
+ * - Action `Controller.foo` matches MethodFactSheet `Controller.foo`.
36
+ * - Operation `Service.foo` matches MethodFactSheet `Service.foo`.
37
+ *
38
+ * When no matching fact sheet exists, the executable is skipped silently
39
+ * (the source method might have a different name, OR backend didn't extract
40
+ * its details).
41
+ */
42
+ export declare function crossCheckBehaviors(spec: any, sheets: MethodFactSheet[]): BehaviorViolation[];
43
+ /**
44
+ * Format violations as a markdown block for prompt injection. The
45
+ * verify-behavior prompt receives this alongside the per-behavior
46
+ * fact sheet so the LLM sees the deterministic signal up front.
47
+ */
48
+ export declare function formatBehaviorViolationsAsMarkdown(violations: BehaviorViolation[]): string;
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/behavior-cross-check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B;IAC1B,IAAI,EACA,oBAAoB,GACpB,+BAA+B,GAC/B,yBAAyB,CAAC;IAC9B,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAoC7F;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAe1F"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Deterministic behavior ↔ method-facts cross-check (TODO #32 v2).
3
+ *
4
+ * Pure-function, no-LLM check that compares analysed `behaviors[].publishes`
5
+ * (and `actions[].publishes`, `operations[].publishes`) against
6
+ * `MethodFactSheet.emits` lists. If a spec behavior claims to publish event
7
+ * X but no source method actually emits X, that's a hallucination — flag it
8
+ * BEFORE the LLM verify call so retry feedback is grounded in source truth.
9
+ *
10
+ * Symmetric check for `dbWrites`: if the source mutates Order but no
11
+ * `ensures:` clause references the mutation, flag it.
12
+ *
13
+ * v1 was LLM-judgment-only via verify-analyse check 8. v2 promotes the
14
+ * objective parts (emit set membership, dbWrite presence) to deterministic
15
+ * gate that runs alongside the LLM call.
16
+ */
17
+ /**
18
+ * Run the cross-check. Walks every executable in every component (model
19
+ * behaviors, controller actions, service operations) and compares against
20
+ * the supplied method fact sheets indexed by qualifiedName.
21
+ *
22
+ * Symbol-matching heuristic:
23
+ * - Behavior `Model.foo` matches MethodFactSheet `ModelController.foo` OR
24
+ * `ModelService.foo` OR `Model.foo` (most specific wins).
25
+ * - Action `Controller.foo` matches MethodFactSheet `Controller.foo`.
26
+ * - Operation `Service.foo` matches MethodFactSheet `Service.foo`.
27
+ *
28
+ * When no matching fact sheet exists, the executable is skipped silently
29
+ * (the source method might have a different name, OR backend didn't extract
30
+ * its details).
31
+ */
32
+ export function crossCheckBehaviors(spec, sheets) {
33
+ if (!sheets || sheets.length === 0)
34
+ return [];
35
+ const violations = [];
36
+ // Index sheets by qualifiedName for O(1) lookup
37
+ const sheetByQName = new Map();
38
+ for (const s of sheets)
39
+ sheetByQName.set(s.qualifiedName, s);
40
+ // Walk every component's executables
41
+ const components = normalizeComponents(spec);
42
+ for (const comp of components) {
43
+ // Model behaviors
44
+ for (const [modelName, model] of Object.entries(comp.models || {})) {
45
+ for (const [behaviorName, exec] of Object.entries(model.behaviors || {})) {
46
+ const sheet = findSheetForBehavior(modelName, behaviorName, sheetByQName);
47
+ if (sheet)
48
+ checkExecutable(modelName, behaviorName, exec, sheet, violations);
49
+ }
50
+ }
51
+ // Controller actions
52
+ for (const [ctrlName, ctrl] of Object.entries(comp.controllers || {})) {
53
+ for (const [actionName, exec] of Object.entries(ctrl.actions || {})) {
54
+ const sheet = sheetByQName.get(`${ctrlName}.${actionName}`);
55
+ if (sheet)
56
+ checkExecutable(ctrlName, actionName, exec, sheet, violations);
57
+ }
58
+ }
59
+ // Service operations
60
+ for (const [svcName, svc] of Object.entries(comp.services || {})) {
61
+ for (const [opName, exec] of Object.entries(svc.operations || {})) {
62
+ const sheet = sheetByQName.get(`${svcName}.${opName}`);
63
+ if (sheet)
64
+ checkExecutable(svcName, opName, exec, sheet, violations);
65
+ }
66
+ }
67
+ }
68
+ return violations;
69
+ }
70
+ /**
71
+ * Format violations as a markdown block for prompt injection. The
72
+ * verify-behavior prompt receives this alongside the per-behavior
73
+ * fact sheet so the LLM sees the deterministic signal up front.
74
+ */
75
+ export function formatBehaviorViolationsAsMarkdown(violations) {
76
+ if (violations.length === 0)
77
+ return '';
78
+ const lines = [];
79
+ lines.push('# Deterministic behavior cross-check violations');
80
+ lines.push('');
81
+ lines.push('These were flagged BEFORE the LLM verify call by comparing the');
82
+ lines.push('spec\'s `publishes:` / `ensures:` declarations against the source');
83
+ lines.push('method\'s actual `Emits:` / `DbWrites:` lists. Each one is a');
84
+ lines.push('factual mismatch — fix the spec to match source.');
85
+ lines.push('');
86
+ for (const v of violations) {
87
+ lines.push(`- **[${v.kind}]** \`${v.modelOrService}.${v.behaviorOrOperation}\` — ${v.message}`);
88
+ }
89
+ lines.push('');
90
+ return lines.join('\n');
91
+ }
92
+ // ── helpers ──
93
+ function normalizeComponents(spec) {
94
+ if (Array.isArray(spec?.components))
95
+ return spec.components;
96
+ if (spec?.components && typeof spec.components === 'object') {
97
+ return Object.values(spec.components);
98
+ }
99
+ // flat shape (single-component spec)
100
+ return [spec];
101
+ }
102
+ /**
103
+ * For a behavior on `Model.foo`, find a fact sheet on `ModelController.foo`
104
+ * OR `ModelService.foo` OR `Model.foo`. Most specific match wins (controller
105
+ * > service > model).
106
+ */
107
+ function findSheetForBehavior(modelName, behaviorName, sheets) {
108
+ return (sheets.get(`${modelName}Controller.${behaviorName}`) ||
109
+ sheets.get(`${modelName}Service.${behaviorName}`) ||
110
+ sheets.get(`${modelName}.${behaviorName}`));
111
+ }
112
+ function checkExecutable(ownerName, execName, exec, sheet, violations) {
113
+ // Check 1: every spec.publishes[E] must appear in source.emits
114
+ const sourceEmits = new Set((sheet.emits || []).map((e) => e.toLowerCase()));
115
+ for (const event of exec.publishes || []) {
116
+ // Match case-insensitively to tolerate stylistic differences
117
+ if (!sourceEmits.has(event.toLowerCase())) {
118
+ // Look for a "fuzzy" match — same root word
119
+ const fuzzyMatch = [...sourceEmits].some((e) => e.includes(event.toLowerCase()) || event.toLowerCase().includes(e));
120
+ if (!fuzzyMatch) {
121
+ violations.push({
122
+ modelOrService: ownerName,
123
+ behaviorOrOperation: execName,
124
+ kind: 'emit-not-in-source',
125
+ message: `spec publishes [${event}] but source method does NOT emit it (source emits: [${[...sourceEmits].join(', ') || 'nothing'}])`,
126
+ });
127
+ }
128
+ }
129
+ }
130
+ // Check 2: source emits that the spec doesn't publish — soft signal
131
+ // (the spec might be intentionally narrowing).
132
+ for (const sourceEvent of sheet.emits || []) {
133
+ const specPublishes = new Set((exec.publishes || []).map((e) => e.toLowerCase()));
134
+ if (!specPublishes.has(sourceEvent.toLowerCase())) {
135
+ // Only flag when there's no fuzzy match
136
+ const fuzzyMatch = [...specPublishes].some((e) => e.includes(sourceEvent.toLowerCase()) || sourceEvent.toLowerCase().includes(e));
137
+ if (!fuzzyMatch) {
138
+ violations.push({
139
+ modelOrService: ownerName,
140
+ behaviorOrOperation: execName,
141
+ kind: 'source-emit-missing-from-spec',
142
+ message: `source emits [${sourceEvent}] but spec doesn't list it in publishes (spec publishes: [${[...specPublishes].join(', ') || 'nothing'}])`,
143
+ });
144
+ }
145
+ }
146
+ }
147
+ // Check 3: source dbWrites without an ensures clause referencing the entity
148
+ const ensuresStr = Array.isArray(exec.ensures) ? exec.ensures.join(' ').toLowerCase() : (exec.ensures || '').toLowerCase();
149
+ for (const w of sheet.dbWrites || []) {
150
+ if (!ensuresStr.includes(w.entity.toLowerCase())) {
151
+ violations.push({
152
+ modelOrService: ownerName,
153
+ behaviorOrOperation: execName,
154
+ kind: 'dbwrite-missing-ensures',
155
+ message: `source ${w.op}s ${w.entity} but no ensures-clause mentions ${w.entity} (ensures: ${exec.ensures ? JSON.stringify(exec.ensures) : 'none'})`,
156
+ });
157
+ }
158
+ }
159
+ }
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/behavior-cross-check/index.ts"],"names":[],"mappings":"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"}
@@ -43,11 +43,14 @@ export interface QuintGenResult {
43
43
  violations: QuintViolation[];
44
44
  }
45
45
  export interface QuintViolation {
46
- /** Which model + lifecycle the violation belongs to. */
46
+ /** Which model + lifecycle the violation belongs to. (lifecycleName is "" for cross-model checks.) */
47
47
  modelName: string;
48
48
  lifecycleName: string;
49
- /** One of: states-not-unique, transition-references-unknown-state, behavior-requires-unknown-state. */
50
- kind: 'states-not-unique' | 'transition-references-unknown-state' | 'behavior-requires-unknown-state' | 'no-states-declared';
49
+ /**
50
+ * Violation category. v1 covers lifecycle shape; v2 adds cross-model
51
+ * relationship validity + behavior-ensures state references.
52
+ */
53
+ kind: 'states-not-unique' | 'transition-references-unknown-state' | 'behavior-requires-unknown-state' | 'behavior-ensures-unknown-state' | 'relationship-target-unknown' | 'no-states-declared';
51
54
  /** Human-readable explanation suitable for retry-prompt feedback. */
52
55
  message: string;
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inference/quint-gen/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,yBAAyB,EAAE,MAAM,CAAC;IAClC,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,uGAAuG;IACvG,IAAI,EAAE,mBAAmB,GAAG,qCAAqC,GAAG,iCAAiC,GAAG,oBAAoB,CAAC;IAC7H,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc,CA2K/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inference/quint-gen/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,yBAAyB,EAAE,MAAM,CAAC;IAClC,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,IAAI,EACA,mBAAmB,GACnB,qCAAqC,GACrC,iCAAiC,GACjC,gCAAgC,GAChC,6BAA6B,GAC7B,oBAAoB,CAAC;IACzB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc,CAgO/D"}
@@ -58,16 +58,48 @@ export function generateQuintFromSpec(spec) {
58
58
  return lc.length > 0;
59
59
  return Object.keys(lc).length > 0;
60
60
  });
61
- if (modelsWithLifecycles.length === 0) {
62
- return { content: '', modelCount: 0, behaviorPreconditionCount: 0, skipped: true, skipReason: 'no models with lifecycles', violations: [] };
61
+ // Cross-model index every declared model name across all components.
62
+ // v2 cross-model invariants check `relationship.target` against this set.
63
+ const declaredModelNames = new Set(allModels.map((m) => m.name));
64
+ // Cross-model relationship validity (v2). Check every model's
65
+ // relationships, not just those with lifecycles — referential integrity
66
+ // is a property of the spec as a whole.
67
+ const crossModelViolations = [];
68
+ for (const model of allModels) {
69
+ const rels = normalizeRelationships(model.relationships);
70
+ for (const rel of rels) {
71
+ if (!rel.target)
72
+ continue;
73
+ if (!declaredModelNames.has(rel.target)) {
74
+ crossModelViolations.push({
75
+ modelName: model.name,
76
+ lifecycleName: '',
77
+ kind: 'relationship-target-unknown',
78
+ message: `${model.name}.${rel.name || '(unnamed)'}: relationship targets "${rel.target}" but no model with that name is declared (${declaredModelNames.size} models declared)`,
79
+ });
80
+ }
81
+ }
82
+ }
83
+ if (modelsWithLifecycles.length === 0 && crossModelViolations.length === 0) {
84
+ return { content: '', modelCount: 0, behaviorPreconditionCount: 0, skipped: true, skipReason: 'no models with lifecycles and no relationship issues', violations: [] };
63
85
  }
64
86
  const lines = [];
65
87
  lines.push('// Auto-generated by @specverse/engines/inference/quint-gen');
66
- lines.push('// v1 — lifecycle reachability + transition validity + behavior-requires validity');
88
+ lines.push('// v2 — lifecycle reachability + transition validity +');
89
+ lines.push('// behavior-requires + behavior-ensures validity +');
90
+ lines.push('// cross-model relationship-target validity');
67
91
  lines.push('// See docs/plans/2026-04-30-DETERMINISTIC-VERIFICATION-GATES.md');
68
92
  lines.push('');
93
+ // Cross-model section in the Quint module — declares the universe of
94
+ // model names so future quint-run extensions can use it as a Set.
95
+ if (declaredModelNames.size > 0) {
96
+ lines.push('module Models {');
97
+ lines.push(` pure val modelNames: Set[str] = Set(${[...declaredModelNames].map((n) => `"${n}"`).join(', ')})`);
98
+ lines.push('}');
99
+ lines.push('');
100
+ }
69
101
  let behaviorPreconditionCount = 0;
70
- const violations = [];
102
+ const violations = [...crossModelViolations];
71
103
  for (const model of modelsWithLifecycles) {
72
104
  const lifecycles = normalizeLifecycles(model.lifecycles);
73
105
  for (const [lcName, lc] of Object.entries(lifecycles)) {
@@ -184,6 +216,24 @@ export function generateQuintFromSpec(spec) {
184
216
  message: `${model.name}.behaviors: requires-clause names state "${unknown}" not in ${lcName} (declared: [${states.join(', ')}])`,
185
217
  });
186
218
  }
219
+ // v2 — behavior-ensures cross-check. Same pattern as requires:
220
+ // postconditions naming a state must reference a declared state.
221
+ // Catches typos in `ensures: ["status is now confimed"]` etc.
222
+ const ensuresRefs = collectBehaviorStateReferencesByField(model.behaviors, states, 'ensures');
223
+ if (ensuresRefs.declared.length > 0) {
224
+ const refsExpr = ensuresRefs.declared.map((r) => `"${r}"`).join(', ');
225
+ lines.push(` pure val behaviorEnsuredStates: Set[str] = Set(${refsExpr})`);
226
+ lines.push(` pure val behaviorEnsuresValid: bool = behaviorEnsuredStates.forall(s => states.contains(s))`);
227
+ lines.push('');
228
+ }
229
+ for (const unknown of ensuresRefs.unknown) {
230
+ violations.push({
231
+ modelName: model.name,
232
+ lifecycleName: lcName,
233
+ kind: 'behavior-ensures-unknown-state',
234
+ message: `${model.name}.behaviors: ensures-clause names state "${unknown}" not in ${lcName} (declared: [${states.join(', ')}])`,
235
+ });
236
+ }
187
237
  lines.push('}');
188
238
  lines.push('');
189
239
  }
@@ -261,6 +311,18 @@ function inferInitial(states, transitions) {
261
311
  return states[0]; // fallback
262
312
  }
263
313
  function collectBehaviorStateReferences(behaviors, states) {
314
+ return collectBehaviorStateReferencesByField(behaviors, states, 'requires');
315
+ }
316
+ /**
317
+ * Walk every behavior's `requires` OR `ensures` field (v2) and return any
318
+ * state-like tokens found, classified into "declared" (exists in states[])
319
+ * vs "unknown" (looks like a state name but doesn't match — likely typo).
320
+ *
321
+ * Heuristic phrase patterns capture state names after common keyword
322
+ * positions ("is in X" / "transitions to X" / "is now X" — the latter
323
+ * particularly relevant for ensures-clauses).
324
+ */
325
+ function collectBehaviorStateReferencesByField(behaviors, states, field) {
264
326
  if (!behaviors)
265
327
  return { declared: [], unknown: [] };
266
328
  const map = Array.isArray(behaviors)
@@ -269,21 +331,20 @@ function collectBehaviorStateReferences(behaviors, states) {
269
331
  const stateSet = new Set(states);
270
332
  const declared = new Set();
271
333
  const unknown = new Set();
272
- // "is in <state>" / "transitions to <state>" / "after <state>" — common
273
- // requires-clause patterns. Capture the token after these phrases and
274
- // check it against the lifecycle's declared states.
275
334
  const phrasePatterns = [
276
- /\bis\s+(?:in|at)\s+(\w+)/gi,
335
+ /\bis\s+(?:in|at|now)\s+(\w+)/gi, // "is in X", "is now X" (ensures-style)
277
336
  /\btransitions?\s+(?:to|from)\s+(\w+)/gi,
278
337
  /\bafter\s+(\w+)/gi,
279
338
  /\bbefore\s+(\w+)/gi,
280
339
  /\b(?:in|when)\s+state\s+(\w+)/gi,
340
+ /\bbecomes?\s+(\w+)/gi, // "becomes X" (ensures-style)
341
+ /\bmoves?\s+to\s+(\w+)/gi, // "moves to X"
281
342
  ];
282
343
  for (const b of Object.values(map)) {
283
- const requires = b?.requires;
284
- if (!requires)
344
+ const clauses = b?.[field];
345
+ if (!clauses)
285
346
  continue;
286
- const list = Array.isArray(requires) ? requires : [requires];
347
+ const list = Array.isArray(clauses) ? clauses : [clauses];
287
348
  for (const clause of list) {
288
349
  if (typeof clause !== 'string')
289
350
  continue;
@@ -300,7 +361,6 @@ function collectBehaviorStateReferences(behaviors, states) {
300
361
  unknown.add(token);
301
362
  }
302
363
  }
303
- // Also: direct name mentions (legacy heuristic)
304
364
  for (const state of stateSet) {
305
365
  const re = new RegExp(`\\b${state.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}\\b`);
306
366
  if (re.test(clause))
@@ -310,6 +370,31 @@ function collectBehaviorStateReferences(behaviors, states) {
310
370
  }
311
371
  return { declared: [...declared], unknown: [...unknown] };
312
372
  }
373
+ /** Normalize relationships into a list of {name, type, target}. */
374
+ function normalizeRelationships(relsRaw) {
375
+ if (!relsRaw)
376
+ return [];
377
+ if (Array.isArray(relsRaw)) {
378
+ return relsRaw.map((r) => (typeof r === 'string' ? parseRelationshipShorthand('', r) : r)).filter(Boolean);
379
+ }
380
+ return Object.entries(relsRaw)
381
+ .map(([name, body]) => {
382
+ if (typeof body === 'string')
383
+ return parseRelationshipShorthand(name, body);
384
+ return { name, ...body };
385
+ })
386
+ .filter(Boolean);
387
+ }
388
+ /** Parse "hasMany Booking cascade" / "belongsTo Customer" shorthand into a RelationshipSpec. */
389
+ function parseRelationshipShorthand(name, shorthand) {
390
+ const parts = shorthand.trim().split(/\s+/);
391
+ if (parts.length < 2)
392
+ return null;
393
+ const [type, target] = parts;
394
+ if (!['hasMany', 'hasOne', 'belongsTo', 'manyToMany'].includes(type))
395
+ return null;
396
+ return { name, type: type, target };
397
+ }
313
398
  /** Heuristic: a candidate string "looks like" a state name when it matches
314
399
  * the case-style of the declared states (snake_case or single-word). */
315
400
  function looksLikeStateName(token, states) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inference/quint-gen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inference/quint-gen/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAmEH;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAS;IAC7C,MAAM,SAAS,GAAgB,EAAE,CAAC;IAElC,uEAAuE;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,EAAE,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,eAAe,CAAE,IAAY,CAAC,MAAM,CAAC,CAAC;YACrD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC;QACxB,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjE,8DAA8D;IAC9D,wEAAwE;IACxE,wCAAwC;IACxC,MAAM,oBAAoB,GAAqB,EAAE,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,SAAS;YAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,oBAAoB,CAAC,IAAI,CAAC;oBACxB,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,aAAa,EAAE,EAAE;oBACjB,IAAI,EAAE,6BAA6B;oBACnC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW,2BAA2B,GAAG,CAAC,MAAM,8CAA8C,kBAAkB,CAAC,IAAI,mBAAmB;iBAC/K,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,sDAAsD,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACzK,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,qEAAqE;IACrE,kEAAkE;IAClE,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAqB,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAE/D,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC;oBACd,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,aAAa,EAAE,MAAM;oBACrB,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,yFAAyF;iBAC1H,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,yEAAyE;YACzE,+DAA+D;YAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,oEAAoE;YACpE,0DAA0D;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;oBAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,UAAU,CAAC,IAAI,CAAC;wBACd,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,aAAa,EAAE,MAAM;wBACrB,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,gCAAgC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACnF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC9C,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC;wBACd,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,aAAa,EAAE,MAAM;wBACrB,IAAI,EAAE,qCAAqC;wBAC3C,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,gBAAgB,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;qBACjI,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,UAAU,CAAC,IAAI,CAAC;wBACd,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,aAAa,EAAE,MAAM;wBACrB,IAAI,EAAE,qCAAqC;wBAC3C,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,gBAAgB,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;qBAC/H,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,mEAAmE;YACnE,uEAAuE;YACvE,gEAAgE;YAChE,KAAK,CAAC,IAAI,CAAC,oDAAoD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,4DAA4D;YAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,eAAe,GAAG,WAAW;qBAChC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,IAAI,CAAC;qBAC9D,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,sDAAsD,eAAe,GAAG,CAAC,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,mHAAmH,CAAC,CAAC;gBAChI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAED,sEAAsE;YACtE,qEAAqE;YACrE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACvD,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,mCAAmC,YAAY,GAAG,CAAC,CAAC;gBAC/D,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,oEAAoE;YACpE,sEAAsE;YACtE,qEAAqE;YACrE,wDAAwD;YACxD,iEAAiE;YACjE,kCAAkC;YAClC,MAAM,YAAY,GAAG,8BAA8B,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7E,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,yBAAyB,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1D,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,CAAC,qDAAqD,QAAQ,GAAG,CAAC,CAAC;gBAC7E,KAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;gBAC9G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,qEAAqE;YACrE,oEAAoE;YACpE,qEAAqE;YACrE,gCAAgC;YAChC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC3C,UAAU,CAAC,IAAI,CAAC;oBACd,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,aAAa,EAAE,MAAM;oBACrB,IAAI,EAAE,iCAAiC;oBACvC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,4CAA4C,OAAO,YAAY,MAAM,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;iBACjI,CAAC,CAAC;YACL,CAAC;YAED,+DAA+D;YAC/D,iEAAiE;YACjE,8DAA8D;YAC9D,MAAM,WAAW,GAAG,qCAAqC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9F,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtE,KAAK,CAAC,IAAI,CAAC,oDAAoD,QAAQ,GAAG,CAAC,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;gBAC5G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC;oBACd,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,aAAa,EAAE,MAAM;oBACrB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,2CAA2C,OAAO,YAAY,MAAM,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;iBAChI,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,UAAU,EAAE,oBAAoB,CAAC,MAAM;QACvC,yBAAyB;QACzB,OAAO,EAAE,KAAK;QACd,UAAU;KACX,CAAC;AACJ,CAAC;AAED,gBAAgB;AAEhB,SAAS,eAAe,CAAC,SAAc;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAwB,CAAC;IAC9D,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAI,IAAY,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAmD;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAkC,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,EAAiB;IACtC,yEAAyE;IACzE,yEAAyE;IACzE,sEAAsE;IACtE,4DAA4D;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAiB;IAC3C,MAAM,GAAG,GAAsD,EAAE,CAAC;IAClE,IAAI,EAAE,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YACxC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,IAAI,IAAI,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,MAAgB,EAAE,WAAgD;IACtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;AAC/B,CAAC;AASD,SAAS,8BAA8B,CAAC,SAAiC,EAAE,MAAgB;IACzF,OAAO,qCAAqC,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,qCAAqC,CAC5C,SAAiC,EACjC,MAAgB,EAChB,KAA6B;IAE7B,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,cAAc,GAAG;QACrB,gCAAgC,EAAU,wCAAwC;QAClF,wCAAwC;QACxC,mBAAmB;QACnB,oBAAoB;QACpB,iCAAiC;QACjC,sBAAsB,EAAqB,8BAA8B;QACzE,yBAAyB,EAAkB,eAAe;KAC3D,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACzC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,IAAI,CAAyB,CAAC;gBAC9B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,KAAK;wBAAE,SAAS;oBACrB,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;yBACxC,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;wBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpF,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,mEAAmE;AACnE,SAAS,sBAAsB,CAAC,OAAmC;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAuB,CAAC;IACnI,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5E,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAuB,CAAC;AAC3C,CAAC;AAED,gGAAgG;AAChG,SAAS,0BAA0B,CAAC,IAAY,EAAE,SAAiB;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAC7B,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAgC,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC;AAED;yEACyE;AACzE,SAAS,kBAAkB,CAAC,KAAa,EAAE,MAAgB;IACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,YAAY;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specverse/engines",
3
- "version": "6.4.0",
3
+ "version": "6.5.0",
4
4
  "description": "SpecVerse toolchain — parser, inference, realize, generators, AI, registry, bundles",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",