@orcalang/orca-lang 0.1.21 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/compiler/dt-compiler.d.ts +1 -0
  2. package/dist/compiler/dt-compiler.d.ts.map +1 -1
  3. package/dist/compiler/dt-compiler.js +160 -3
  4. package/dist/compiler/dt-compiler.js.map +1 -1
  5. package/dist/compiler/xstate.d.ts.map +1 -1
  6. package/dist/compiler/xstate.js +13 -1
  7. package/dist/compiler/xstate.js.map +1 -1
  8. package/dist/health-check.js +75 -0
  9. package/dist/health-check.js.map +1 -1
  10. package/dist/parser/dt-ast.d.ts +11 -1
  11. package/dist/parser/dt-ast.d.ts.map +1 -1
  12. package/dist/parser/dt-parser.d.ts.map +1 -1
  13. package/dist/parser/dt-parser.js +40 -8
  14. package/dist/parser/dt-parser.js.map +1 -1
  15. package/dist/parser/markdown-parser.d.ts.map +1 -1
  16. package/dist/parser/markdown-parser.js +6 -0
  17. package/dist/parser/markdown-parser.js.map +1 -1
  18. package/dist/skills.d.ts +2 -2
  19. package/dist/skills.d.ts.map +1 -1
  20. package/dist/skills.js +200 -6
  21. package/dist/skills.js.map +1 -1
  22. package/dist/tools.js +4 -4
  23. package/dist/tools.js.map +1 -1
  24. package/dist/verifier/determinism.js +5 -5
  25. package/dist/verifier/determinism.js.map +1 -1
  26. package/dist/verifier/dt-verifier.d.ts.map +1 -1
  27. package/dist/verifier/dt-verifier.js +259 -31
  28. package/dist/verifier/dt-verifier.js.map +1 -1
  29. package/dist/verifier/structural.d.ts.map +1 -1
  30. package/dist/verifier/structural.js +11 -5
  31. package/dist/verifier/structural.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/compiler/dt-compiler.ts +160 -3
  34. package/src/compiler/xstate.ts +15 -1
  35. package/src/health-check.ts +79 -0
  36. package/src/parser/dt-ast.ts +4 -2
  37. package/src/parser/dt-parser.ts +46 -8
  38. package/src/parser/markdown-parser.ts +6 -0
  39. package/src/skills.ts +201 -7
  40. package/src/tools.ts +4 -4
  41. package/src/verifier/determinism.ts +5 -5
  42. package/src/verifier/dt-verifier.ts +272 -29
  43. package/src/verifier/structural.ts +12 -5
@@ -1 +1 @@
1
- {"version":3,"file":"structural.js","sourceRoot":"","sources":["../../src/verifier/structural.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structural.js","sourceRoot":"","sources":["../../src/verifier/structural.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orcalang/orca-lang",
3
- "version": "0.1.21",
3
+ "version": "0.1.27",
4
4
  "description": "Orca (Orchestrated State Machine Language) - an LLM-native code generation target",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -55,7 +55,7 @@ function generateTypeScriptType(type: string, values: string[]): string {
55
55
  if (type === 'enum') {
56
56
  return values.length > 0 ? values.map(v => `'${v}'`).join(' | ') : 'string';
57
57
  }
58
- if (type === 'int_range') {
58
+ if (type === 'int_range' || type === 'decimal_range') {
59
59
  return 'number';
60
60
  }
61
61
  return 'string';
@@ -68,10 +68,12 @@ function generateConditionCheck(condName: string, condType: string, cell: CellVa
68
68
  return ''; // No condition needed
69
69
 
70
70
  case 'exact':
71
- // For bool type, compare to boolean; for others, compare to string
72
71
  if (condType === 'bool') {
73
72
  return `input.${condName} === ${cell.value}`;
74
73
  }
74
+ if (condType === 'int_range' || condType === 'decimal_range') {
75
+ return `input.${condName} === ${cell.value}`;
76
+ }
75
77
  return `input.${condName} === '${cell.value}'`;
76
78
 
77
79
  case 'negated':
@@ -80,14 +82,27 @@ function generateConditionCheck(condName: string, condType: string, cell: CellVa
80
82
  }
81
83
  return `input.${condName} !== '${cell.value}'`;
82
84
 
83
- case 'set':
85
+ case 'set': {
84
86
  const checks = cell.values.map(v => {
85
87
  if (condType === 'bool') {
86
88
  return `input.${condName} === ${v}`;
87
89
  }
90
+ if (condType === 'int_range' || condType === 'decimal_range') {
91
+ return `input.${condName} === ${v}`;
92
+ }
88
93
  return `input.${condName} === '${v}'`;
89
94
  }).join(' || ');
90
95
  return `(${checks})`;
96
+ }
97
+
98
+ case 'compare':
99
+ return `input.${condName} ${cell.op} ${cell.value}`;
100
+
101
+ case 'range': {
102
+ const lowCheck = cell.lowInc ? `input.${condName} >= ${cell.low}` : `input.${condName} > ${cell.low}`;
103
+ const highCheck = cell.highInc ? `input.${condName} <= ${cell.high}` : `input.${condName} < ${cell.high}`;
104
+ return `(${lowCheck} && ${highCheck})`;
105
+ }
91
106
 
92
107
  default:
93
108
  return '';
@@ -222,6 +237,12 @@ export function compileDecisionTableToJSON(dt: DecisionTableDef): string {
222
237
  conditions[name] = `!${cell.value}`;
223
238
  } else if (cell.kind === 'set') {
224
239
  conditions[name] = cell.values.join(',');
240
+ } else if (cell.kind === 'compare') {
241
+ conditions[name] = `${cell.op}${cell.value}`;
242
+ } else if (cell.kind === 'range') {
243
+ const lowBracket = cell.lowInc ? '' : '(';
244
+ const highBracket = cell.highInc ? '' : ')';
245
+ conditions[name] = `${lowBracket}${cell.low}..${cell.high}${highBracket}`;
225
246
  }
226
247
  // 'any' is omitted
227
248
  }
@@ -246,6 +267,7 @@ export function compileDecisionTableToJSON(dt: DecisionTableDef): string {
246
267
  function generatePythonType(type: string): string {
247
268
  if (type === 'bool') return 'bool';
248
269
  if (type === 'int_range') return 'int';
270
+ if (type === 'decimal_range') return 'float';
249
271
  return 'str';
250
272
  }
251
273
 
@@ -255,6 +277,7 @@ function generatePythonConditionCheck(condName: string, condType: string, cell:
255
277
  return '';
256
278
  case 'exact':
257
279
  if (condType === 'bool') return `input.${condName} == ${cell.value}`;
280
+ if (condType === 'int_range' || condType === 'decimal_range') return `input.${condName} == ${cell.value}`;
258
281
  return `input.${condName} == '${cell.value}'`;
259
282
  case 'negated':
260
283
  if (condType === 'bool') return `input.${condName} != ${cell.value}`;
@@ -265,6 +288,13 @@ function generatePythonConditionCheck(condName: string, condType: string, cell:
265
288
  ).join(' or ');
266
289
  return `(${checks})`;
267
290
  }
291
+ case 'compare':
292
+ return `input.${condName} ${cell.op} ${cell.value}`;
293
+ case 'range': {
294
+ const lowCheck = cell.lowInc ? `input.${condName} >= ${cell.low}` : `input.${condName} > ${cell.low}`;
295
+ const highCheck = cell.highInc ? `input.${condName} <= ${cell.high}` : `input.${condName} < ${cell.high}`;
296
+ return `(${lowCheck} and ${highCheck})`;
297
+ }
268
298
  default:
269
299
  return '';
270
300
  }
@@ -352,6 +382,7 @@ export function compileDecisionTableToPython(dt: DecisionTableDef): string {
352
382
  function generateGoType(type: string): string {
353
383
  if (type === 'bool') return 'bool';
354
384
  if (type === 'int_range') return 'int';
385
+ if (type === 'decimal_range') return 'float64';
355
386
  return 'string';
356
387
  }
357
388
 
@@ -362,6 +393,7 @@ function generateGoConditionCheck(condName: string, condType: string, cell: Cell
362
393
  return '';
363
394
  case 'exact':
364
395
  if (condType === 'bool') return `input.${goField} == ${cell.value}`;
396
+ if (condType === 'int_range' || condType === 'decimal_range') return `input.${goField} == ${cell.value}`;
365
397
  return `input.${goField} == "${cell.value}"`;
366
398
  case 'negated':
367
399
  if (condType === 'bool') return `input.${goField} != ${cell.value}`;
@@ -372,6 +404,13 @@ function generateGoConditionCheck(condName: string, condType: string, cell: Cell
372
404
  ).join(' || ');
373
405
  return `(${checks})`;
374
406
  }
407
+ case 'compare':
408
+ return `input.${goField} ${cell.op} ${cell.value}`;
409
+ case 'range': {
410
+ const lowCheck = cell.lowInc ? `input.${goField} >= ${cell.low}` : `input.${goField} > ${cell.low}`;
411
+ const highCheck = cell.highInc ? `input.${goField} <= ${cell.high}` : `input.${goField} < ${cell.high}`;
412
+ return `(${lowCheck} && ${highCheck})`;
413
+ }
375
414
  default:
376
415
  return '';
377
416
  }
@@ -452,3 +491,121 @@ export function compileDecisionTableToGo(dt: DecisionTableDef): string {
452
491
 
453
492
  return lines.join('\n');
454
493
  }
494
+
495
+ // ============================================================
496
+ // Rust Compiler
497
+ // ============================================================
498
+
499
+ function generateRustType(type: string): string {
500
+ if (type === 'bool') return 'bool';
501
+ if (type === 'int_range') return 'i64';
502
+ if (type === 'decimal_range') return 'f64';
503
+ return 'String';
504
+ }
505
+
506
+ function generateRustConditionCheck(condName: string, condType: string, cell: CellValue): string {
507
+ switch (cell.kind) {
508
+ case 'any':
509
+ return '';
510
+ case 'exact':
511
+ if (condType === 'bool') return `input.${condName} == ${cell.value}`;
512
+ if (condType === 'int_range' || condType === 'decimal_range') return `input.${condName} == ${cell.value}`;
513
+ return `input.${condName} == "${cell.value}"`;
514
+ case 'negated':
515
+ if (condType === 'bool') return `input.${condName} != ${cell.value}`;
516
+ return `input.${condName} != "${cell.value}"`;
517
+ case 'set': {
518
+ const checks = cell.values.map(v =>
519
+ condType === 'bool' ? `input.${condName} == ${v}` : `input.${condName} == "${v}"`
520
+ ).join(' || ');
521
+ return `(${checks})`;
522
+ }
523
+ case 'compare':
524
+ return `input.${condName} ${cell.op} ${cell.value}`;
525
+ case 'range': {
526
+ const lowCheck = cell.lowInc ? `input.${condName} >= ${cell.low}` : `input.${condName} > ${cell.low}`;
527
+ const highCheck = cell.highInc ? `input.${condName} <= ${cell.high}` : `input.${condName} < ${cell.high}`;
528
+ return `(${lowCheck} && ${highCheck})`;
529
+ }
530
+ default:
531
+ return '';
532
+ }
533
+ }
534
+
535
+ export function compileDecisionTableToRust(dt: DecisionTableDef): string {
536
+ const inputTypeName = `${toPascalCase(dt.name)}Input`;
537
+ const outputTypeName = `${toPascalCase(dt.name)}Output`;
538
+ const fnName = `evaluate_${toSnakeCase(dt.name)}`;
539
+
540
+ const lines: string[] = [];
541
+
542
+ lines.push(`/// Input conditions for the ${dt.name} decision table`);
543
+ lines.push('#[derive(Debug, Clone)]');
544
+ lines.push(`pub struct ${inputTypeName} {`);
545
+ for (const cond of dt.conditions) {
546
+ const rustType = generateRustType(cond.type);
547
+ const comment = cond.type === 'enum' && cond.values.length > 0
548
+ ? ` // ${cond.values.join(', ')}`
549
+ : '';
550
+ lines.push(` pub ${cond.name}: ${rustType},${comment}`);
551
+ }
552
+ lines.push('}');
553
+ lines.push('');
554
+
555
+ lines.push(`/// Decision outputs for the ${dt.name} decision table`);
556
+ lines.push('#[derive(Debug, Clone)]');
557
+ lines.push(`pub struct ${outputTypeName} {`);
558
+ for (const action of dt.actions) {
559
+ const rustType = generateRustType(action.type);
560
+ const comment = action.type === 'enum' && action.values && action.values.length > 0
561
+ ? ` // ${action.values.join(', ')}`
562
+ : '';
563
+ lines.push(` pub ${action.name}: ${rustType},${comment}`);
564
+ }
565
+ lines.push('}');
566
+ lines.push('');
567
+
568
+ const policy = dt.policy ?? 'first-match';
569
+ lines.push(`/// Evaluate the ${dt.name} decision table (${policy} policy)`);
570
+ lines.push(`pub fn ${fnName}(input: &${inputTypeName}) -> Option<${outputTypeName}> {`);
571
+
572
+ for (let ruleIdx = 0; ruleIdx < dt.rules.length; ruleIdx++) {
573
+ const rule = dt.rules[ruleIdx];
574
+ const ruleNum = rule.number ?? ruleIdx + 1;
575
+
576
+ const checks: string[] = [];
577
+ for (const [condName, cell] of rule.conditions) {
578
+ const condDef = dt.conditions.find(c => c.name === condName);
579
+ const condType = condDef?.type ?? 'string';
580
+ const check = generateRustConditionCheck(condName, condType, cell);
581
+ if (check) checks.push(check);
582
+ }
583
+
584
+ const actionFields = dt.actions
585
+ .map(a => {
586
+ const value = rule.actions.get(a.name);
587
+ if (value === undefined) return null;
588
+ const aType = a.type as string;
589
+ if (aType === 'bool') return `${a.name}: ${value}`;
590
+ if (aType === 'int_range') return `${a.name}: ${value}`;
591
+ if (aType === 'decimal_range') return `${a.name}: ${value}`;
592
+ return `${a.name}: "${value}".to_string()`;
593
+ })
594
+ .filter((v): v is string => v !== null)
595
+ .join(', ');
596
+
597
+ lines.push(` // Rule ${ruleNum}`);
598
+ if (checks.length === 0) {
599
+ lines.push(` return Some(${outputTypeName} { ${actionFields} });`);
600
+ } else {
601
+ lines.push(` if ${checks.join(' && ')} {`);
602
+ lines.push(` return Some(${outputTypeName} { ${actionFields} });`);
603
+ lines.push(` }`);
604
+ }
605
+ }
606
+
607
+ lines.push(' None // no rule matched');
608
+ lines.push('}');
609
+
610
+ return lines.join('\n');
611
+ }
@@ -528,7 +528,7 @@ export function compileToXState(machine: MachineDef): string {
528
528
  lines.push(` target: '${target}',`);
529
529
  if (t.guard) {
530
530
  const guardName = t.guard.negated ? `!${t.guard.name}` : t.guard.name;
531
- lines.push(` guard: '${guardName}',`);
531
+ lines.push(` guard: { type: '${guardName}' },`);
532
532
  }
533
533
  if (t.action) {
534
534
  lines.push(` actions: '${t.action}',`);
@@ -554,6 +554,20 @@ export function compileToXState(machine: MachineDef): string {
554
554
  }
555
555
 
556
556
  lines.push(` },`);
557
+
558
+ // Emit guards section if any guards are defined
559
+ if (machine.guards.length > 0) {
560
+ lines.push(`}, {`);
561
+ lines.push(` guards: {`);
562
+ for (const guard of machine.guards) {
563
+ lines.push(` '${guard.name}': ({ context }) => {`);
564
+ lines.push(` // TODO: implement guard logic for: ${guard.name}`);
565
+ lines.push(` return true;`);
566
+ lines.push(` },`);
567
+ }
568
+ lines.push(` },`);
569
+ }
570
+
557
571
  lines.push(`});`);
558
572
 
559
573
  return lines.join('\n');
@@ -186,6 +186,85 @@ async function runHealthCheck(): Promise<HealthReport> {
186
186
  }
187
187
  }
188
188
 
189
+ // ── Step 7: runtime-rust tests ──────────────────────────────────
190
+ {
191
+ const step: StepResult = { name: 'runtime-rust:test', status: 'pending', output: '', duration: 0 };
192
+ const start = Date.now();
193
+ console.log('━━━ Running runtime-rust tests ━━━');
194
+ const result = runCommand('cd packages/runtime-rust && cargo test 2>&1', REPO_ROOT);
195
+ step.duration = Date.now() - start;
196
+ step.status = result.status === 0 ? 'success' : 'failed';
197
+ step.output = result.status === 0 ? 'Tests passed' : result.stdout;
198
+ report.steps.push(step);
199
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} runtime-rust tests ${step.status} (${step.duration}ms)\n`);
200
+ if (step.status === 'failed') {
201
+ report.endTime = Date.now();
202
+ return report;
203
+ }
204
+ }
205
+
206
+ // ── Step 7b: demo-fortran ─────────────────────────────────────
207
+ {
208
+ const step: StepResult = { name: 'demo-fortran', status: 'pending', output: '', duration: 0 };
209
+ const start = Date.now();
210
+
211
+ // Check if gfortran is available
212
+ const gfortranCheck = runCommand('which gfortran 2>/dev/null', REPO_ROOT);
213
+ if (gfortranCheck.status !== 0) {
214
+ step.duration = Date.now() - start;
215
+ step.status = 'success';
216
+ step.output = 'Skipped (gfortran not installed)';
217
+ report.steps.push(step);
218
+ console.log(` ○ demo-fortran skipped (gfortran not installed) (${step.duration}ms)\n`);
219
+ } else {
220
+ console.log('━━━ Building and running demo-fortran ━━━');
221
+ const result = runCommand('cd packages/demo-fortran && make run 2>&1', REPO_ROOT);
222
+ step.duration = Date.now() - start;
223
+ step.status = result.status === 0 ? 'success' : 'failed';
224
+ step.output = result.status === 0 ? 'Demo passed' : result.stdout;
225
+ report.steps.push(step);
226
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-fortran ${step.status} (${step.duration}ms)\n`);
227
+ if (step.status === 'failed') {
228
+ report.endTime = Date.now();
229
+ return report;
230
+ }
231
+ }
232
+ }
233
+
234
+ // ── Step 7c: demo-rust ─────────────────────────────────────────
235
+ {
236
+ const step: StepResult = { name: 'demo-rust', status: 'pending', output: '', duration: 0 };
237
+ const start = Date.now();
238
+ console.log('━━━ Running demo-rust tests ━━━');
239
+ const result = runCommand('cd packages/demo-rust && cargo test 2>&1', REPO_ROOT);
240
+ step.duration = Date.now() - start;
241
+ step.status = result.status === 0 ? 'success' : 'failed';
242
+ step.output = result.status === 0 ? 'Tests passed' : result.stdout;
243
+ report.steps.push(step);
244
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-rust tests ${step.status} (${step.duration}ms)\n`);
245
+ if (step.status === 'failed') {
246
+ report.endTime = Date.now();
247
+ return report;
248
+ }
249
+ }
250
+
251
+ // ── Step 7d: demo-rust-event ───────────────────────────────────
252
+ {
253
+ const step: StepResult = { name: 'demo-rust-event', status: 'pending', output: '', duration: 0 };
254
+ const start = Date.now();
255
+ console.log('━━━ Running demo-rust-event ━━━');
256
+ const result = runCommand('cd packages/demo-rust-event && cargo run 2>&1', REPO_ROOT);
257
+ step.duration = Date.now() - start;
258
+ step.status = result.status === 0 ? 'success' : 'failed';
259
+ step.output = result.status === 0 ? 'Demo passed' : result.stdout;
260
+ report.steps.push(step);
261
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-rust-event ${step.status} (${step.duration}ms)\n`);
262
+ if (step.status === 'failed') {
263
+ report.endTime = Date.now();
264
+ return report;
265
+ }
266
+ }
267
+
189
268
  // ── Step 8: demo-nanolab tests ─────────────────────────────────
190
269
  {
191
270
  const step: StepResult = { name: 'demo-nanolab:test', status: 'pending', output: '', duration: 0 };
@@ -1,6 +1,6 @@
1
1
  // Decision Table AST Types
2
2
 
3
- export type ConditionType = 'bool' | 'enum' | 'int_range' | 'string';
3
+ export type ConditionType = 'bool' | 'enum' | 'int_range' | 'decimal_range' | 'string';
4
4
 
5
5
  export interface ConditionDef {
6
6
  name: string;
@@ -22,7 +22,9 @@ export type CellValue =
22
22
  | { kind: 'any' } // "-" wildcard
23
23
  | { kind: 'exact'; value: string } // exact match
24
24
  | { kind: 'negated'; value: string } // "!value"
25
- | { kind: 'set'; values: string[] }; // "a,b" (match any in set)
25
+ | { kind: 'set'; values: string[] } // "a,b" (match any in set)
26
+ | { kind: 'compare'; op: '>' | '>=' | '<' | '<='; value: number } // >=750, <0.3
27
+ | { kind: 'range'; low: number; high: number; lowInc: boolean; highInc: boolean }; // 700..749, 0.3-0.4
26
28
 
27
29
  export interface Rule {
28
30
  number?: number; // optional rule # from the # column
@@ -21,7 +21,37 @@ function findColumnIndex(headers: string[], name: string): number {
21
21
 
22
22
  // --- Cell Value Parsing ---
23
23
 
24
- function parseCellValue(text: string | undefined): CellValue {
24
+ function parseNumericCell(text: string): CellValue | null {
25
+ // Suffix form: 750+ means >=750
26
+ const suffixPlus = text.match(/^(-?\d+(?:\.\d+)?)\+$/);
27
+ if (suffixPlus) {
28
+ return { kind: 'compare', op: '>=', value: parseFloat(suffixPlus[1]) };
29
+ }
30
+
31
+ // Comparison operators: >=750, <=0.3, >100, <600
32
+ const cmpMatch = text.match(/^(>=|<=|>|<)\s*(-?\d+(?:\.\d+)?)$/);
33
+ if (cmpMatch) {
34
+ return { kind: 'compare', op: cmpMatch[1] as '>' | '>=' | '<' | '<=', value: parseFloat(cmpMatch[2]) };
35
+ }
36
+
37
+ // Range with .. separator: 1..50 (inclusive both ends)
38
+ const dotRange = text.match(/^(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)$/);
39
+ if (dotRange) {
40
+ return { kind: 'range', low: parseFloat(dotRange[1]), high: parseFloat(dotRange[2]), lowInc: true, highInc: true };
41
+ }
42
+
43
+ // Range with - separator for numbers: 700-749, 0.3-0.4
44
+ // Must have at least one side that looks numeric (digit-starting).
45
+ // Negative numbers on the left are ambiguous with subtraction — require left >= 0.
46
+ const dashRange = text.match(/^(\d+(?:\.\d+)?)\s*-\s*(\d+(?:\.\d+)?)$/);
47
+ if (dashRange) {
48
+ return { kind: 'range', low: parseFloat(dashRange[1]), high: parseFloat(dashRange[2]), lowInc: true, highInc: true };
49
+ }
50
+
51
+ return null;
52
+ }
53
+
54
+ function parseCellValue(text: string | undefined, condType?: ConditionType): CellValue {
25
55
  if (!text || text.trim() === '' || text.trim() === '-') {
26
56
  return { kind: 'any' };
27
57
  }
@@ -36,6 +66,12 @@ function parseCellValue(text: string | undefined): CellValue {
36
66
  }
37
67
  }
38
68
 
69
+ // Numeric range/compare patterns — only attempt for numeric condition types
70
+ if (condType === 'int_range' || condType === 'decimal_range') {
71
+ const numeric = parseNumericCell(trimmed);
72
+ if (numeric) return numeric;
73
+ }
74
+
39
75
  // Set: a,b,c
40
76
  if (trimmed.includes(',')) {
41
77
  return { kind: 'set', values: trimmed.split(',').map(v => v.trim()).filter(Boolean) };
@@ -65,11 +101,11 @@ function parseConditionsTable(table: MdTable): ConditionDef[] {
65
101
 
66
102
  if (type === 'bool') {
67
103
  values = valuesStr.trim() ? valuesStr.split(',').map(v => v.trim()) : ['true', 'false'];
68
- } else if (type === 'int_range') {
69
- // Parse min..max format
70
- const rangeMatch = valuesStr.match(/(\d+)\s*\.\.\s*(\d+)/);
104
+ } else if (type === 'int_range' || type === 'decimal_range') {
105
+ // Parse min..max format (integers or decimals)
106
+ const rangeMatch = valuesStr.match(/(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)/);
71
107
  if (rangeMatch) {
72
- range = { min: parseInt(rangeMatch[1], 10), max: parseInt(rangeMatch[2], 10) };
108
+ range = { min: parseFloat(rangeMatch[1]), max: parseFloat(rangeMatch[2]) };
73
109
  values = [];
74
110
  } else {
75
111
  values = [];
@@ -116,7 +152,8 @@ function parseActionsTable(table: MdTable): ActionOutputDef[] {
116
152
  function parseRulesTable(
117
153
  table: MdTable,
118
154
  conditionNames: Set<string>,
119
- actionNames: Set<string>
155
+ actionNames: Set<string>,
156
+ conditionDefs?: ConditionDef[]
120
157
  ): { rules: Rule[]; warnings: string[] } {
121
158
  const warnings: string[] = [];
122
159
  const rules: Rule[] = [];
@@ -167,7 +204,8 @@ function parseRulesTable(
167
204
  rule.number = num;
168
205
  }
169
206
  } else if (col.type === 'condition') {
170
- const cellValue = parseCellValue(cell);
207
+ const condDef = conditionDefs?.find(c => c.name === col.name);
208
+ const cellValue = parseCellValue(cell, condDef?.type);
171
209
  rule.conditions.set(col.name, cellValue);
172
210
  } else if (col.type === 'action') {
173
211
  const value = cell?.trim() || '';
@@ -254,7 +292,7 @@ export function parseDecisionTable(elements: MdElement[]): { decisionTable: Deci
254
292
  } else if (currentSection === 'actions') {
255
293
  actions = parseActionsTable(el);
256
294
  } else if (currentSection === 'rules') {
257
- const result = parseRulesTable(el, new Set(conditions.map(c => c.name)), new Set(actions.map(a => a.name)));
295
+ const result = parseRulesTable(el, new Set(conditions.map(c => c.name)), new Set(actions.map(a => a.name)), conditions);
258
296
  rules = result.rules;
259
297
  warnings.push(...result.warnings);
260
298
  }
@@ -511,7 +511,13 @@ function parsePropertyFromBullet(text: string): Property {
511
511
  const to = parts[0].trim();
512
512
  const withinParts = parts[1].split(/\s+within\s+/);
513
513
  const from = withinParts[0].trim();
514
+ if (!withinParts[1]) {
515
+ throw new Error(`Invalid responds property: missing 'within N' bound in '${text}'`);
516
+ }
514
517
  const within = parseInt(withinParts[1].trim(), 10);
518
+ if (isNaN(within)) {
519
+ throw new Error(`Invalid responds property: 'within' value '${withinParts[1].trim()}' is not a number in '${text}'`);
520
+ }
515
521
  // Match DSL parser property order: kind, from, to, within
516
522
  return { kind: 'responds', from, to, within } as RespondsProperty;
517
523
  }