@orcalang/orca-lang 0.1.18 → 0.1.21

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 (62) hide show
  1. package/dist/compiler/dt-compiler.d.ts +26 -0
  2. package/dist/compiler/dt-compiler.d.ts.map +1 -0
  3. package/dist/compiler/dt-compiler.js +387 -0
  4. package/dist/compiler/dt-compiler.js.map +1 -0
  5. package/dist/health-check.d.ts +3 -0
  6. package/dist/health-check.d.ts.map +1 -0
  7. package/dist/health-check.js +235 -0
  8. package/dist/health-check.js.map +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +5 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/parser/ast-to-markdown.d.ts.map +1 -1
  13. package/dist/parser/ast-to-markdown.js +3 -1
  14. package/dist/parser/ast-to-markdown.js.map +1 -1
  15. package/dist/parser/ast.d.ts +3 -0
  16. package/dist/parser/ast.d.ts.map +1 -1
  17. package/dist/parser/dt-ast.d.ts +43 -0
  18. package/dist/parser/dt-ast.d.ts.map +1 -0
  19. package/dist/parser/dt-ast.js +3 -0
  20. package/dist/parser/dt-ast.js.map +1 -0
  21. package/dist/parser/dt-parser.d.ts +40 -0
  22. package/dist/parser/dt-parser.d.ts.map +1 -0
  23. package/dist/parser/dt-parser.js +240 -0
  24. package/dist/parser/dt-parser.js.map +1 -0
  25. package/dist/parser/markdown-parser.d.ts.map +1 -1
  26. package/dist/parser/markdown-parser.js +43 -8
  27. package/dist/parser/markdown-parser.js.map +1 -1
  28. package/dist/skills.d.ts +50 -1
  29. package/dist/skills.d.ts.map +1 -1
  30. package/dist/skills.js +508 -21
  31. package/dist/skills.js.map +1 -1
  32. package/dist/tools.d.ts.map +1 -1
  33. package/dist/tools.js +49 -0
  34. package/dist/tools.js.map +1 -1
  35. package/dist/verifier/dt-verifier.d.ts +32 -0
  36. package/dist/verifier/dt-verifier.d.ts.map +1 -0
  37. package/dist/verifier/dt-verifier.js +830 -0
  38. package/dist/verifier/dt-verifier.js.map +1 -0
  39. package/dist/verifier/properties.d.ts +4 -0
  40. package/dist/verifier/properties.d.ts.map +1 -1
  41. package/dist/verifier/properties.js +56 -20
  42. package/dist/verifier/properties.js.map +1 -1
  43. package/dist/verifier/structural.d.ts.map +1 -1
  44. package/dist/verifier/structural.js +6 -1
  45. package/dist/verifier/structural.js.map +1 -1
  46. package/dist/verifier/types.d.ts +4 -0
  47. package/dist/verifier/types.d.ts.map +1 -1
  48. package/package.json +3 -2
  49. package/src/compiler/dt-compiler.ts +454 -0
  50. package/src/health-check.ts +273 -0
  51. package/src/index.ts +5 -1
  52. package/src/parser/ast-to-markdown.ts +2 -1
  53. package/src/parser/ast.ts +4 -0
  54. package/src/parser/dt-ast.ts +40 -0
  55. package/src/parser/dt-parser.ts +289 -0
  56. package/src/parser/markdown-parser.ts +43 -8
  57. package/src/skills.ts +591 -22
  58. package/src/tools.ts +53 -0
  59. package/src/verifier/dt-verifier.ts +928 -0
  60. package/src/verifier/properties.ts +78 -23
  61. package/src/verifier/structural.ts +5 -1
  62. package/src/verifier/types.ts +4 -0
@@ -0,0 +1,26 @@
1
+ import { DecisionTableDef } from '../parser/dt-ast.js';
2
+ export declare function toSnakeCase(name: string): string;
3
+ export declare function compileDecisionTableToTypeScript(dt: DecisionTableDef): string;
4
+ export interface DTJSONRule {
5
+ conditions: Record<string, string>;
6
+ actions: Record<string, string>;
7
+ }
8
+ export interface DTJSON {
9
+ name: string;
10
+ conditions: Array<{
11
+ name: string;
12
+ type: string;
13
+ values: string[];
14
+ }>;
15
+ actions: Array<{
16
+ name: string;
17
+ type: string;
18
+ values?: string[];
19
+ }>;
20
+ rules: DTJSONRule[];
21
+ policy: 'first-match' | 'all-match';
22
+ }
23
+ export declare function compileDecisionTableToJSON(dt: DecisionTableDef): string;
24
+ export declare function compileDecisionTableToPython(dt: DecisionTableDef): string;
25
+ export declare function compileDecisionTableToGo(dt: DecisionTableDef): string;
26
+ //# sourceMappingURL=dt-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dt-compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/dt-compiler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAa,MAAM,qBAAqB,CAAC;AAWlE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAkGD,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAuD7E;AAGD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC;CACrC;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CA2CvE;AAiCD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAyEzE;AAkCD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CA0ErE"}
@@ -0,0 +1,387 @@
1
+ // Decision Table Compiler
2
+ // Compiles verified decision tables to TypeScript, Python, Go evaluator functions or JSON
3
+ // Convert camelCase or snake_case to PascalCase
4
+ function toPascalCase(name) {
5
+ return name
6
+ .split(/[_-]/)
7
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
8
+ .join('');
9
+ }
10
+ // Convert PascalCase or camelCase to snake_case
11
+ export function toSnakeCase(name) {
12
+ return name
13
+ .replace(/([A-Z])/g, '_$1')
14
+ .toLowerCase()
15
+ .replace(/^_/, '');
16
+ }
17
+ // Generate TypeScript type for input interface
18
+ function generateInputType(dt) {
19
+ const lines = [];
20
+ lines.push(`export interface ${toPascalCase(dt.name)}Input {`);
21
+ for (const cond of dt.conditions) {
22
+ const typeStr = generateTypeScriptType(cond.type, cond.values);
23
+ lines.push(` ${cond.name}: ${typeStr};`);
24
+ }
25
+ lines.push('}');
26
+ return lines.join('\n');
27
+ }
28
+ // Generate TypeScript type for output interface
29
+ function generateOutputType(dt) {
30
+ const lines = [];
31
+ lines.push(`export interface ${toPascalCase(dt.name)}Output {`);
32
+ for (const action of dt.actions) {
33
+ const typeStr = generateTypeScriptType(action.type, action.values || []);
34
+ lines.push(` ${action.name}: ${typeStr};`);
35
+ }
36
+ lines.push('}');
37
+ return lines.join('\n');
38
+ }
39
+ // Generate TypeScript type string from condition/action type
40
+ function generateTypeScriptType(type, values) {
41
+ if (type === 'bool') {
42
+ return 'boolean';
43
+ }
44
+ if (type === 'enum') {
45
+ return values.length > 0 ? values.map(v => `'${v}'`).join(' | ') : 'string';
46
+ }
47
+ if (type === 'int_range') {
48
+ return 'number';
49
+ }
50
+ return 'string';
51
+ }
52
+ // Generate condition check code
53
+ function generateConditionCheck(condName, condType, cell) {
54
+ switch (cell.kind) {
55
+ case 'any':
56
+ return ''; // No condition needed
57
+ case 'exact':
58
+ // For bool type, compare to boolean; for others, compare to string
59
+ if (condType === 'bool') {
60
+ return `input.${condName} === ${cell.value}`;
61
+ }
62
+ return `input.${condName} === '${cell.value}'`;
63
+ case 'negated':
64
+ if (condType === 'bool') {
65
+ return `input.${condName} !== ${cell.value}`;
66
+ }
67
+ return `input.${condName} !== '${cell.value}'`;
68
+ case 'set':
69
+ const checks = cell.values.map(v => {
70
+ if (condType === 'bool') {
71
+ return `input.${condName} === ${v}`;
72
+ }
73
+ return `input.${condName} === '${v}'`;
74
+ }).join(' || ');
75
+ return `(${checks})`;
76
+ default:
77
+ return '';
78
+ }
79
+ }
80
+ // Generate return statement for a rule
81
+ function generateReturnStatement(dt, ruleIndex) {
82
+ const rule = dt.rules[ruleIndex];
83
+ const actionEntries = [];
84
+ for (const action of dt.actions) {
85
+ const value = rule.actions.get(action.name);
86
+ if (value !== undefined) {
87
+ if (action.type === 'bool') {
88
+ // Bool actions use true/false
89
+ actionEntries.push(` ${action.name}: ${value}`);
90
+ }
91
+ else {
92
+ actionEntries.push(` ${action.name}: '${value}'`);
93
+ }
94
+ }
95
+ }
96
+ return `return {\n${actionEntries.join(',\n')}\n };`;
97
+ }
98
+ // Compile to TypeScript evaluator function
99
+ export function compileDecisionTableToTypeScript(dt) {
100
+ const inputTypeName = `${toPascalCase(dt.name)}Input`;
101
+ const outputTypeName = `${toPascalCase(dt.name)}Output`;
102
+ const functionName = `evaluate${toPascalCase(dt.name)}`;
103
+ const lines = [];
104
+ // Input interface
105
+ lines.push(generateInputType(dt));
106
+ lines.push('');
107
+ // Output interface
108
+ lines.push(generateOutputType(dt));
109
+ lines.push('');
110
+ // Evaluator function
111
+ lines.push(`export function ${functionName}(input: ${inputTypeName}): ${outputTypeName} | null {`);
112
+ // Generate rule checks
113
+ for (let ruleIdx = 0; ruleIdx < dt.rules.length; ruleIdx++) {
114
+ const rule = dt.rules[ruleIdx];
115
+ const ruleNum = rule.number ?? ruleIdx + 1;
116
+ // Collect condition checks
117
+ const checks = [];
118
+ for (const [condName, cell] of rule.conditions) {
119
+ const condDef = dt.conditions.find(c => c.name === condName);
120
+ const condType = condDef?.type ?? 'string';
121
+ const check = generateConditionCheck(condName, condType, cell);
122
+ if (check) {
123
+ checks.push(check);
124
+ }
125
+ }
126
+ // Build the if statement
127
+ if (checks.length === 0) {
128
+ // Rule with all wildcards - always matches
129
+ lines.push(` // Rule ${ruleNum}: always matches`);
130
+ lines.push(` {`);
131
+ lines.push(` ${generateReturnStatement(dt, ruleIdx)}`);
132
+ lines.push(` }`);
133
+ }
134
+ else {
135
+ lines.push(` // Rule ${ruleNum}`);
136
+ const conditionStr = checks.join(' && ');
137
+ lines.push(` if (${conditionStr}) {`);
138
+ lines.push(` ${generateReturnStatement(dt, ruleIdx)}`);
139
+ lines.push(` }`);
140
+ }
141
+ }
142
+ // Default return null
143
+ lines.push(' return null; // no rule matched');
144
+ lines.push('}');
145
+ return lines.join('\n');
146
+ }
147
+ export function compileDecisionTableToJSON(dt) {
148
+ const json = {
149
+ name: dt.name,
150
+ conditions: dt.conditions.map(c => ({
151
+ name: c.name,
152
+ type: c.type,
153
+ values: c.values,
154
+ })),
155
+ actions: dt.actions.map(a => {
156
+ const result = {
157
+ name: a.name,
158
+ type: a.type,
159
+ };
160
+ if (a.values) {
161
+ result.values = a.values;
162
+ }
163
+ return result;
164
+ }),
165
+ rules: dt.rules.map(rule => {
166
+ // Omit wildcard conditions (kind: 'any')
167
+ const conditions = {};
168
+ for (const [name, cell] of rule.conditions) {
169
+ if (cell.kind === 'exact') {
170
+ conditions[name] = cell.value;
171
+ }
172
+ else if (cell.kind === 'negated') {
173
+ conditions[name] = `!${cell.value}`;
174
+ }
175
+ else if (cell.kind === 'set') {
176
+ conditions[name] = cell.values.join(',');
177
+ }
178
+ // 'any' is omitted
179
+ }
180
+ const actions = {};
181
+ for (const [name, value] of rule.actions) {
182
+ actions[name] = value;
183
+ }
184
+ return { conditions, actions };
185
+ }),
186
+ policy: dt.policy,
187
+ };
188
+ return JSON.stringify(json, null, 2);
189
+ }
190
+ // ============================================================
191
+ // Python Compiler
192
+ // ============================================================
193
+ function generatePythonType(type) {
194
+ if (type === 'bool')
195
+ return 'bool';
196
+ if (type === 'int_range')
197
+ return 'int';
198
+ return 'str';
199
+ }
200
+ function generatePythonConditionCheck(condName, condType, cell) {
201
+ switch (cell.kind) {
202
+ case 'any':
203
+ return '';
204
+ case 'exact':
205
+ if (condType === 'bool')
206
+ return `input.${condName} == ${cell.value}`;
207
+ return `input.${condName} == '${cell.value}'`;
208
+ case 'negated':
209
+ if (condType === 'bool')
210
+ return `input.${condName} != ${cell.value}`;
211
+ return `input.${condName} != '${cell.value}'`;
212
+ case 'set': {
213
+ const checks = cell.values.map(v => condType === 'bool' ? `input.${condName} == ${v}` : `input.${condName} == '${v}'`).join(' or ');
214
+ return `(${checks})`;
215
+ }
216
+ default:
217
+ return '';
218
+ }
219
+ }
220
+ export function compileDecisionTableToPython(dt) {
221
+ const inputClassName = `${toPascalCase(dt.name)}Input`;
222
+ const outputClassName = `${toPascalCase(dt.name)}Output`;
223
+ const fnName = `evaluate_${toSnakeCase(dt.name)}`;
224
+ const lines = [
225
+ 'from typing import Optional',
226
+ 'from dataclasses import dataclass',
227
+ '',
228
+ '',
229
+ '@dataclass',
230
+ `class ${inputClassName}:`,
231
+ ];
232
+ for (const cond of dt.conditions) {
233
+ const typeStr = generatePythonType(cond.type);
234
+ const comment = cond.type === 'enum' && cond.values.length > 0
235
+ ? ` # ${cond.values.join(', ')}`
236
+ : '';
237
+ lines.push(` ${cond.name}: ${typeStr}${comment}`);
238
+ }
239
+ lines.push('');
240
+ lines.push('');
241
+ lines.push('@dataclass');
242
+ lines.push(`class ${outputClassName}:`);
243
+ for (const action of dt.actions) {
244
+ const typeStr = generatePythonType(action.type);
245
+ const comment = action.type === 'enum' && action.values && action.values.length > 0
246
+ ? ` # ${action.values.join(', ')}`
247
+ : '';
248
+ lines.push(` ${action.name}: ${typeStr}${comment}`);
249
+ }
250
+ lines.push('');
251
+ lines.push('');
252
+ lines.push(`def ${fnName}(input: ${inputClassName}) -> Optional[${outputClassName}]:`);
253
+ for (let ruleIdx = 0; ruleIdx < dt.rules.length; ruleIdx++) {
254
+ const rule = dt.rules[ruleIdx];
255
+ const ruleNum = rule.number ?? ruleIdx + 1;
256
+ const checks = [];
257
+ for (const [condName, cell] of rule.conditions) {
258
+ const condDef = dt.conditions.find(c => c.name === condName);
259
+ const condType = condDef?.type ?? 'string';
260
+ const check = generatePythonConditionCheck(condName, condType, cell);
261
+ if (check)
262
+ checks.push(check);
263
+ }
264
+ const actionArgs = dt.actions
265
+ .map(a => {
266
+ const value = rule.actions.get(a.name);
267
+ if (value === undefined)
268
+ return null;
269
+ if (a.type === 'bool')
270
+ return `${a.name}=${value}`;
271
+ return `${a.name}='${value}'`;
272
+ })
273
+ .filter((v) => v !== null)
274
+ .join(', ');
275
+ lines.push(` # Rule ${ruleNum}`);
276
+ if (checks.length === 0) {
277
+ lines.push(` return ${outputClassName}(${actionArgs})`);
278
+ }
279
+ else {
280
+ lines.push(` if ${checks.join(' and ')}:`);
281
+ lines.push(` return ${outputClassName}(${actionArgs})`);
282
+ }
283
+ }
284
+ lines.push(' return None # no rule matched');
285
+ return lines.join('\n');
286
+ }
287
+ // ============================================================
288
+ // Go Compiler
289
+ // ============================================================
290
+ function generateGoType(type) {
291
+ if (type === 'bool')
292
+ return 'bool';
293
+ if (type === 'int_range')
294
+ return 'int';
295
+ return 'string';
296
+ }
297
+ function generateGoConditionCheck(condName, condType, cell) {
298
+ const goField = toPascalCase(condName);
299
+ switch (cell.kind) {
300
+ case 'any':
301
+ return '';
302
+ case 'exact':
303
+ if (condType === 'bool')
304
+ return `input.${goField} == ${cell.value}`;
305
+ return `input.${goField} == "${cell.value}"`;
306
+ case 'negated':
307
+ if (condType === 'bool')
308
+ return `input.${goField} != ${cell.value}`;
309
+ return `input.${goField} != "${cell.value}"`;
310
+ case 'set': {
311
+ const checks = cell.values.map(v => condType === 'bool' ? `input.${goField} == ${v}` : `input.${goField} == "${v}"`).join(' || ');
312
+ return `(${checks})`;
313
+ }
314
+ default:
315
+ return '';
316
+ }
317
+ }
318
+ export function compileDecisionTableToGo(dt) {
319
+ const inputTypeName = `${toPascalCase(dt.name)}Input`;
320
+ const outputTypeName = `${toPascalCase(dt.name)}Output`;
321
+ const fnName = `Evaluate${toPascalCase(dt.name)}`;
322
+ const lines = [];
323
+ lines.push(`// ${inputTypeName} defines the input conditions for the ${dt.name} decision table`);
324
+ lines.push(`type ${inputTypeName} struct {`);
325
+ for (const cond of dt.conditions) {
326
+ const goType = generateGoType(cond.type);
327
+ const fieldName = toPascalCase(cond.name);
328
+ const comment = cond.type === 'enum' && cond.values.length > 0
329
+ ? ` // ${cond.values.join(', ')}`
330
+ : '';
331
+ lines.push(`\t${fieldName} ${goType}${comment}`);
332
+ }
333
+ lines.push('}');
334
+ lines.push('');
335
+ lines.push(`// ${outputTypeName} defines the decision outputs for the ${dt.name} decision table`);
336
+ lines.push(`type ${outputTypeName} struct {`);
337
+ for (const action of dt.actions) {
338
+ const goType = generateGoType(action.type);
339
+ const fieldName = toPascalCase(action.name);
340
+ const comment = action.type === 'enum' && action.values && action.values.length > 0
341
+ ? ` // ${action.values.join(', ')}`
342
+ : '';
343
+ lines.push(`\t${fieldName} ${goType}${comment}`);
344
+ }
345
+ lines.push('}');
346
+ lines.push('');
347
+ const policy = dt.policy ?? 'first-match';
348
+ lines.push(`// ${fnName} evaluates the ${dt.name} decision table (${policy} policy)`);
349
+ lines.push(`func ${fnName}(input ${inputTypeName}) *${outputTypeName} {`);
350
+ for (let ruleIdx = 0; ruleIdx < dt.rules.length; ruleIdx++) {
351
+ const rule = dt.rules[ruleIdx];
352
+ const ruleNum = rule.number ?? ruleIdx + 1;
353
+ const checks = [];
354
+ for (const [condName, cell] of rule.conditions) {
355
+ const condDef = dt.conditions.find(c => c.name === condName);
356
+ const condType = condDef?.type ?? 'string';
357
+ const check = generateGoConditionCheck(condName, condType, cell);
358
+ if (check)
359
+ checks.push(check);
360
+ }
361
+ const actionFields = dt.actions
362
+ .map(a => {
363
+ const value = rule.actions.get(a.name);
364
+ if (value === undefined)
365
+ return null;
366
+ const fieldName = toPascalCase(a.name);
367
+ if (a.type === 'bool')
368
+ return `${fieldName}: ${value}`;
369
+ return `${fieldName}: "${value}"`;
370
+ })
371
+ .filter((v) => v !== null)
372
+ .join(', ');
373
+ lines.push(`\t// Rule ${ruleNum}`);
374
+ if (checks.length === 0) {
375
+ lines.push(`\treturn &${outputTypeName}{${actionFields}}`);
376
+ }
377
+ else {
378
+ lines.push(`\tif ${checks.join(' && ')} {`);
379
+ lines.push(`\t\treturn &${outputTypeName}{${actionFields}}`);
380
+ lines.push(`\t}`);
381
+ }
382
+ }
383
+ lines.push('\treturn nil // no rule matched');
384
+ lines.push('}');
385
+ return lines.join('\n');
386
+ }
387
+ //# sourceMappingURL=dt-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dt-compiler.js","sourceRoot":"","sources":["../../src/compiler/dt-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=health-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../src/health-check.ts"],"names":[],"mappings":""}