@orcalang/orca-lang 0.1.18 → 0.1.19

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 (45) hide show
  1. package/dist/compiler/dt-compiler.d.ts +23 -0
  2. package/dist/compiler/dt-compiler.d.ts.map +1 -0
  3. package/dist/compiler/dt-compiler.js +183 -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/parser/ast.d.ts +2 -0
  10. package/dist/parser/ast.d.ts.map +1 -1
  11. package/dist/parser/dt-ast.d.ts +43 -0
  12. package/dist/parser/dt-ast.d.ts.map +1 -0
  13. package/dist/parser/dt-ast.js +3 -0
  14. package/dist/parser/dt-ast.js.map +1 -0
  15. package/dist/parser/dt-parser.d.ts +40 -0
  16. package/dist/parser/dt-parser.d.ts.map +1 -0
  17. package/dist/parser/dt-parser.js +240 -0
  18. package/dist/parser/dt-parser.js.map +1 -0
  19. package/dist/parser/markdown-parser.d.ts.map +1 -1
  20. package/dist/parser/markdown-parser.js +29 -4
  21. package/dist/parser/markdown-parser.js.map +1 -1
  22. package/dist/skills.d.ts +49 -1
  23. package/dist/skills.d.ts.map +1 -1
  24. package/dist/skills.js +223 -0
  25. package/dist/skills.js.map +1 -1
  26. package/dist/tools.d.ts.map +1 -1
  27. package/dist/tools.js +49 -0
  28. package/dist/tools.js.map +1 -1
  29. package/dist/verifier/dt-verifier.d.ts +5 -0
  30. package/dist/verifier/dt-verifier.d.ts.map +1 -0
  31. package/dist/verifier/dt-verifier.js +499 -0
  32. package/dist/verifier/dt-verifier.js.map +1 -0
  33. package/dist/verifier/types.d.ts +4 -0
  34. package/dist/verifier/types.d.ts.map +1 -1
  35. package/package.json +3 -2
  36. package/src/compiler/dt-compiler.ts +232 -0
  37. package/src/health-check.ts +273 -0
  38. package/src/parser/ast.ts +3 -0
  39. package/src/parser/dt-ast.ts +40 -0
  40. package/src/parser/dt-parser.ts +289 -0
  41. package/src/parser/markdown-parser.ts +32 -5
  42. package/src/skills.ts +274 -1
  43. package/src/tools.ts +53 -0
  44. package/src/verifier/dt-verifier.ts +562 -0
  45. package/src/verifier/types.ts +4 -0
@@ -0,0 +1,23 @@
1
+ import { DecisionTableDef } from '../parser/dt-ast.js';
2
+ export declare function compileDecisionTableToTypeScript(dt: DecisionTableDef): string;
3
+ export interface DTJSONRule {
4
+ conditions: Record<string, string>;
5
+ actions: Record<string, string>;
6
+ }
7
+ export interface DTJSON {
8
+ name: string;
9
+ conditions: Array<{
10
+ name: string;
11
+ type: string;
12
+ values: string[];
13
+ }>;
14
+ actions: Array<{
15
+ name: string;
16
+ type: string;
17
+ values?: string[];
18
+ }>;
19
+ rules: DTJSONRule[];
20
+ policy: 'first-match' | 'all-match';
21
+ }
22
+ export declare function compileDecisionTableToJSON(dt: DecisionTableDef): string;
23
+ //# 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;AA0GlE,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"}
@@ -0,0 +1,183 @@
1
+ // Decision Table Compiler
2
+ // Compiles verified decision tables to TypeScript 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
+ // Generate TypeScript type for input interface
11
+ function generateInputType(dt) {
12
+ const lines = [];
13
+ lines.push(`export interface ${toPascalCase(dt.name)}Input {`);
14
+ for (const cond of dt.conditions) {
15
+ const typeStr = generateTypeScriptType(cond.type, cond.values);
16
+ lines.push(` ${cond.name}: ${typeStr};`);
17
+ }
18
+ lines.push('}');
19
+ return lines.join('\n');
20
+ }
21
+ // Generate TypeScript type for output interface
22
+ function generateOutputType(dt) {
23
+ const lines = [];
24
+ lines.push(`export interface ${toPascalCase(dt.name)}Output {`);
25
+ for (const action of dt.actions) {
26
+ const typeStr = generateTypeScriptType(action.type, action.values || []);
27
+ lines.push(` ${action.name}: ${typeStr};`);
28
+ }
29
+ lines.push('}');
30
+ return lines.join('\n');
31
+ }
32
+ // Generate TypeScript type string from condition/action type
33
+ function generateTypeScriptType(type, values) {
34
+ if (type === 'bool') {
35
+ return 'boolean';
36
+ }
37
+ if (type === 'enum') {
38
+ return values.length > 0 ? values.map(v => `'${v}'`).join(' | ') : 'string';
39
+ }
40
+ if (type === 'int_range') {
41
+ return 'number';
42
+ }
43
+ return 'string';
44
+ }
45
+ // Generate condition check code
46
+ function generateConditionCheck(condName, condType, cell) {
47
+ switch (cell.kind) {
48
+ case 'any':
49
+ return ''; // No condition needed
50
+ case 'exact':
51
+ // For bool type, compare to boolean; for others, compare to string
52
+ if (condType === 'bool') {
53
+ return `input.${condName} === ${cell.value}`;
54
+ }
55
+ return `input.${condName} === '${cell.value}'`;
56
+ case 'negated':
57
+ if (condType === 'bool') {
58
+ return `input.${condName} !== ${cell.value}`;
59
+ }
60
+ return `input.${condName} !== '${cell.value}'`;
61
+ case 'set':
62
+ const checks = cell.values.map(v => {
63
+ if (condType === 'bool') {
64
+ return `input.${condName} === ${v}`;
65
+ }
66
+ return `input.${condName} === '${v}'`;
67
+ }).join(' || ');
68
+ return `(${checks})`;
69
+ default:
70
+ return '';
71
+ }
72
+ }
73
+ // Generate return statement for a rule
74
+ function generateReturnStatement(dt, ruleIndex) {
75
+ const rule = dt.rules[ruleIndex];
76
+ const actionEntries = [];
77
+ for (const action of dt.actions) {
78
+ const value = rule.actions.get(action.name);
79
+ if (value !== undefined) {
80
+ if (action.type === 'bool') {
81
+ // Bool actions use true/false
82
+ actionEntries.push(` ${action.name}: ${value}`);
83
+ }
84
+ else {
85
+ actionEntries.push(` ${action.name}: '${value}'`);
86
+ }
87
+ }
88
+ }
89
+ return `return {\n${actionEntries.join(',\n')}\n };`;
90
+ }
91
+ // Compile to TypeScript evaluator function
92
+ export function compileDecisionTableToTypeScript(dt) {
93
+ const inputTypeName = `${toPascalCase(dt.name)}Input`;
94
+ const outputTypeName = `${toPascalCase(dt.name)}Output`;
95
+ const functionName = `evaluate${toPascalCase(dt.name)}`;
96
+ const lines = [];
97
+ // Input interface
98
+ lines.push(generateInputType(dt));
99
+ lines.push('');
100
+ // Output interface
101
+ lines.push(generateOutputType(dt));
102
+ lines.push('');
103
+ // Evaluator function
104
+ lines.push(`export function ${functionName}(input: ${inputTypeName}): ${outputTypeName} | null {`);
105
+ // Generate rule checks
106
+ for (let ruleIdx = 0; ruleIdx < dt.rules.length; ruleIdx++) {
107
+ const rule = dt.rules[ruleIdx];
108
+ const ruleNum = rule.number ?? ruleIdx + 1;
109
+ // Collect condition checks
110
+ const checks = [];
111
+ for (const [condName, cell] of rule.conditions) {
112
+ const condDef = dt.conditions.find(c => c.name === condName);
113
+ const condType = condDef?.type ?? 'string';
114
+ const check = generateConditionCheck(condName, condType, cell);
115
+ if (check) {
116
+ checks.push(check);
117
+ }
118
+ }
119
+ // Build the if statement
120
+ if (checks.length === 0) {
121
+ // Rule with all wildcards - always matches
122
+ lines.push(` // Rule ${ruleNum}: always matches`);
123
+ lines.push(` {`);
124
+ lines.push(` ${generateReturnStatement(dt, ruleIdx)}`);
125
+ lines.push(` }`);
126
+ }
127
+ else {
128
+ lines.push(` // Rule ${ruleNum}`);
129
+ const conditionStr = checks.join(' && ');
130
+ lines.push(` if (${conditionStr}) {`);
131
+ lines.push(` ${generateReturnStatement(dt, ruleIdx)}`);
132
+ lines.push(` }`);
133
+ }
134
+ }
135
+ // Default return null
136
+ lines.push(' return null; // no rule matched');
137
+ lines.push('}');
138
+ return lines.join('\n');
139
+ }
140
+ export function compileDecisionTableToJSON(dt) {
141
+ const json = {
142
+ name: dt.name,
143
+ conditions: dt.conditions.map(c => ({
144
+ name: c.name,
145
+ type: c.type,
146
+ values: c.values,
147
+ })),
148
+ actions: dt.actions.map(a => {
149
+ const result = {
150
+ name: a.name,
151
+ type: a.type,
152
+ };
153
+ if (a.values) {
154
+ result.values = a.values;
155
+ }
156
+ return result;
157
+ }),
158
+ rules: dt.rules.map(rule => {
159
+ // Omit wildcard conditions (kind: 'any')
160
+ const conditions = {};
161
+ for (const [name, cell] of rule.conditions) {
162
+ if (cell.kind === 'exact') {
163
+ conditions[name] = cell.value;
164
+ }
165
+ else if (cell.kind === 'negated') {
166
+ conditions[name] = `!${cell.value}`;
167
+ }
168
+ else if (cell.kind === 'set') {
169
+ conditions[name] = cell.values.join(',');
170
+ }
171
+ // 'any' is omitted
172
+ }
173
+ const actions = {};
174
+ for (const [name, value] of rule.actions) {
175
+ actions[name] = value;
176
+ }
177
+ return { conditions, actions };
178
+ }),
179
+ policy: dt.policy,
180
+ };
181
+ return JSON.stringify(json, null, 2);
182
+ }
183
+ //# 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":""}
@@ -0,0 +1,235 @@
1
+ #!/usr/bin/env node
2
+ // Health Check Runner - Dogfooding Orca to check itself
3
+ // Uses sequential execution pattern modeled after Orca state machine semantics
4
+ import { execSync } from 'child_process';
5
+ import { join, dirname } from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const REPO_ROOT = join(__dirname, '../../..');
9
+ function runCommand(cmd, cwd, timeout = 120000) {
10
+ try {
11
+ const stdout = execSync(cmd, { cwd, encoding: 'utf-8', timeout, maxBuffer: 10 * 1024 * 1024 });
12
+ return { status: 0, stdout: stdout, stderr: '' };
13
+ }
14
+ catch (e) {
15
+ return {
16
+ status: e.status || 1,
17
+ stdout: e.stdout?.toString() || '',
18
+ stderr: e.stderr?.toString() || e.message || ''
19
+ };
20
+ }
21
+ }
22
+ async function runHealthCheck() {
23
+ const report = {
24
+ steps: [],
25
+ startTime: Date.now(),
26
+ endTime: 0,
27
+ totalPassed: 0,
28
+ totalFailed: 0
29
+ };
30
+ // ── Step 1: Build ──────────────────────────────────────────────
31
+ {
32
+ const step = { name: 'build', status: 'pending', output: '', duration: 0 };
33
+ const start = Date.now();
34
+ console.log('━━━ Building TypeScript packages ━━━');
35
+ const result = runCommand('pnpm run build', REPO_ROOT);
36
+ step.duration = Date.now() - start;
37
+ step.status = result.status === 0 ? 'success' : 'failed';
38
+ step.output = result.status === 0 ? 'Build succeeded' : result.stderr || result.stdout;
39
+ report.steps.push(step);
40
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} Build ${step.status} (${step.duration}ms)\n`);
41
+ if (step.status === 'failed') {
42
+ report.endTime = Date.now();
43
+ return report;
44
+ }
45
+ }
46
+ // ── Step 2: orca-lang tests ─────────────────────────────────────
47
+ {
48
+ const step = { name: 'test:lang', status: 'pending', output: '', duration: 0 };
49
+ const start = Date.now();
50
+ console.log('━━━ Running orca-lang tests ━━━');
51
+ const result = runCommand('cd packages/orca-lang && pnpm test 2>&1', REPO_ROOT);
52
+ step.duration = Date.now() - start;
53
+ const match = result.stdout.match(/(\d+) passed.*?(\d+) skipped/);
54
+ step.passed = match ? parseInt(match[1]) : 0;
55
+ step.skipped = match ? parseInt(match[2]) : 0;
56
+ step.status = result.status === 0 && step.passed >= 180 ? 'success' : 'failed';
57
+ step.output = `${step.passed} passed, ${step.skipped} skipped`;
58
+ report.steps.push(step);
59
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} ${step.passed} tests passed, ${step.skipped} skipped (${step.duration}ms)\n`);
60
+ if (step.status === 'failed') {
61
+ report.endTime = Date.now();
62
+ return report;
63
+ }
64
+ }
65
+ // ── Step 3: demo-ts smoke test ─────────────────────────────────
66
+ {
67
+ const step = { name: 'demo-ts:test', status: 'pending', output: '', duration: 0 };
68
+ const start = Date.now();
69
+ console.log('━━━ Running demo-ts smoke test ━━━');
70
+ const result = runCommand('pnpm --filter orca-demo-ts run test 2>&1', REPO_ROOT);
71
+ step.duration = Date.now() - start;
72
+ step.status = result.status === 0 ? 'success' : 'failed';
73
+ step.output = result.status === 0 ? 'Tests passed' : result.stdout;
74
+ report.steps.push(step);
75
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-ts tests ${step.status} (${step.duration}ms)\n`);
76
+ if (step.status === 'failed') {
77
+ report.endTime = Date.now();
78
+ return report;
79
+ }
80
+ }
81
+ // ── Step 4: demo-ts ticket demo ─────────────────────────────────
82
+ {
83
+ const step = { name: 'demo-ts:ticket', status: 'pending', output: '', duration: 0 };
84
+ const start = Date.now();
85
+ console.log('━━━ Running demo-ts ticket demo ━━━');
86
+ const result = runCommand('pnpm -w run run:demo-ts:ticket 2>&1', REPO_ROOT);
87
+ step.duration = Date.now() - start;
88
+ step.status = result.status === 0 ? 'success' : 'failed';
89
+ step.output = result.status === 0 ? 'Demo passed' : result.stdout;
90
+ report.steps.push(step);
91
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} Support Ticket demo ${step.status} (${step.duration}ms)\n`);
92
+ if (step.status === 'failed') {
93
+ report.endTime = Date.now();
94
+ return report;
95
+ }
96
+ }
97
+ // ── Step 5: demo-python ─────────────────────────────────────────
98
+ {
99
+ const step = { name: 'demo-python', status: 'pending', output: '', duration: 0 };
100
+ const start = Date.now();
101
+ console.log('━━━ Running demo-python ━━━');
102
+ const result = runCommand('.venv/bin/python packages/demo-python/demo.py 2>&1', REPO_ROOT);
103
+ step.duration = Date.now() - start;
104
+ step.status = result.status === 0 ? 'success' : 'failed';
105
+ step.output = result.status === 0 ? 'Demo passed' : result.stdout;
106
+ report.steps.push(step);
107
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-python ${step.status} (${step.duration}ms)\n`);
108
+ if (step.status === 'failed') {
109
+ report.endTime = Date.now();
110
+ return report;
111
+ }
112
+ }
113
+ // ── Step 6: demo-go ─────────────────────────────────────────────
114
+ {
115
+ const step = { name: 'demo-go (trip)', status: 'pending', output: '', duration: 0 };
116
+ const start = Date.now();
117
+ console.log('━━━ Running demo-go (trip) ━━━');
118
+ const result = runCommand('pnpm run test:demo-go 2>&1', REPO_ROOT);
119
+ step.duration = Date.now() - start;
120
+ step.status = result.status === 0 ? 'success' : 'failed';
121
+ step.output = result.status === 0 ? 'Demo passed' : result.stdout;
122
+ report.steps.push(step);
123
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-go (trip) ${step.status} (${step.duration}ms)\n`);
124
+ if (step.status === 'failed') {
125
+ report.endTime = Date.now();
126
+ return report;
127
+ }
128
+ }
129
+ // ── Step 6b: demo-go:loan ──────────────────────────────────────
130
+ {
131
+ const step = { name: 'demo-go:loan', status: 'pending', output: '', duration: 0 };
132
+ const start = Date.now();
133
+ // Build the loan binary first (not pre-built like 'trip')
134
+ console.log('━━━ Building demo-go:loan binary ━━━');
135
+ const buildResult = runCommand('cd packages/demo-go && go build -o loan ./cmd/loan 2>&1', REPO_ROOT);
136
+ if (buildResult.status !== 0) {
137
+ step.duration = Date.now() - start;
138
+ step.status = 'failed';
139
+ step.output = buildResult.stderr || buildResult.stdout;
140
+ report.steps.push(step);
141
+ console.log(` ✗ Build failed (${step.duration}ms): ${step.output}\n`);
142
+ report.endTime = Date.now();
143
+ return report;
144
+ }
145
+ console.log(` ✓ Build succeeded (${Date.now() - start}ms)\n`);
146
+ console.log('━━━ Running demo-go:loan (loan application) ━━━');
147
+ const runStart = Date.now();
148
+ const result = runCommand('cd packages/demo-go && ./loan 2>&1', REPO_ROOT);
149
+ step.duration = Date.now() - runStart;
150
+ step.status = result.status === 0 ? 'success' : 'failed';
151
+ step.output = result.status === 0 ? 'Demo passed' : result.stdout;
152
+ report.steps.push(step);
153
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-go:loan (loan) ${step.status} (${step.duration}ms)\n`);
154
+ if (step.status === 'failed') {
155
+ report.endTime = Date.now();
156
+ return report;
157
+ }
158
+ }
159
+ // ── Step 8: demo-nanolab tests ─────────────────────────────────
160
+ {
161
+ const step = { name: 'demo-nanolab:test', status: 'pending', output: '', duration: 0 };
162
+ const start = Date.now();
163
+ console.log('━━━ Running demo-nanolab tests ━━━');
164
+ const result = runCommand('pnpm run test:demo-nanolab 2>&1', REPO_ROOT);
165
+ step.duration = Date.now() - start;
166
+ step.status = result.status === 0 ? 'success' : 'failed';
167
+ step.output = result.status === 0 ? 'Tests passed' : result.stdout;
168
+ report.steps.push(step);
169
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-nanolab tests ${step.status} (${step.duration}ms)\n`);
170
+ if (step.status === 'failed') {
171
+ report.endTime = Date.now();
172
+ return report;
173
+ }
174
+ }
175
+ // ── Step 8: Example verification ────────────────────────────────
176
+ {
177
+ const step = { name: 'examples:verify', status: 'pending', output: '', duration: 0 };
178
+ const start = Date.now();
179
+ console.log('━━━ Verifying example files ━━━');
180
+ const result = runCommand('cd packages/orca-lang && pnpm exec tsx src/index.ts verify examples/simple-toggle.orca.md examples/payment-processor.orca.md 2>&1', REPO_ROOT);
181
+ step.duration = Date.now() - start;
182
+ step.status = result.status === 0 ? 'success' : 'failed';
183
+ step.output = result.status === 0 ? 'Examples verified' : result.stdout;
184
+ report.steps.push(step);
185
+ console.log(` ${step.status === 'success' ? '✓' : '✗'} Examples verified ${step.status} (${step.duration}ms)\n`);
186
+ if (step.status === 'failed') {
187
+ report.endTime = Date.now();
188
+ return report;
189
+ }
190
+ }
191
+ report.endTime = Date.now();
192
+ return report;
193
+ }
194
+ function printReport(report) {
195
+ console.log('╔════════════════════════════════════════════════════════════╗');
196
+ console.log('║ HEALTH CHECK REPORT ║');
197
+ console.log('╚════════════════════════════════════════════════════════════╝\n');
198
+ for (const step of report.steps) {
199
+ const icon = step.status === 'success' ? '✓' : step.status === 'failed' ? '✗' : '○';
200
+ const label = step.status === 'success' ? 'PASS' : step.status === 'failed' ? 'FAIL' : 'SKIP';
201
+ console.log(` ${icon} ${step.name.padEnd(20)} ${label.padEnd(6)} ${step.duration}ms${step.passed !== undefined ? ` (${step.passed} tests)` : ''}`);
202
+ }
203
+ const totalDuration = report.endTime - report.startTime;
204
+ report.totalPassed = report.steps.filter(s => s.status === 'success').length;
205
+ report.totalFailed = report.steps.filter(s => s.status === 'failed').length;
206
+ console.log(`\n Total time: ${totalDuration}ms`);
207
+ console.log(` Passed: ${report.totalPassed}/${report.totalPassed + report.totalFailed}\n`);
208
+ if (report.totalFailed === 0) {
209
+ console.log(' ✓ ALL CHECKS PASSED - Project is healthy\n');
210
+ }
211
+ else {
212
+ console.log(` ✗ ${report.totalFailed} CHECK(S) FAILED\n`);
213
+ // Print failed step outputs
214
+ for (const step of report.steps.filter(s => s.status === 'failed')) {
215
+ console.log(` ── ${step.name} output ──`);
216
+ console.log(` ${step.output.split('\n').slice(0, 10).join('\n ')}`);
217
+ if (step.output.split('\n').length > 10)
218
+ console.log(' ... (truncated)');
219
+ console.log();
220
+ }
221
+ }
222
+ }
223
+ async function main() {
224
+ console.log('╔════════════════════════════════════════════════════════════╗');
225
+ console.log('║ ORCA HEALTH CHECK - SELF-HOSTED RUNNER ║');
226
+ console.log('╚════════════════════════════════════════════════════════════╝\n');
227
+ const report = await runHealthCheck();
228
+ printReport(report);
229
+ process.exit(report.totalFailed > 0 ? 1 : 0);
230
+ }
231
+ main().catch(err => {
232
+ console.error('Health check failed with error:', err);
233
+ process.exit(1);
234
+ });
235
+ //# sourceMappingURL=health-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-check.js","sourceRoot":"","sources":["../src/health-check.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { DecisionTableDef } from './dt-ast.js';
1
2
  export interface Position {
2
3
  line: number;
3
4
  column: number;
@@ -175,6 +176,7 @@ export interface MachineDef {
175
176
  }
176
177
  export interface OrcaFile {
177
178
  machines: MachineDef[];
179
+ decisionTables: DecisionTableDef[];
178
180
  }
179
181
  export interface ParseResult {
180
182
  file: OrcaFile;
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export type ConditionType = 'bool' | 'enum' | 'int_range' | 'string';
2
+ export interface ConditionDef {
3
+ name: string;
4
+ type: ConditionType;
5
+ values: string[];
6
+ range?: {
7
+ min: number;
8
+ max: number;
9
+ };
10
+ }
11
+ export type ActionType = 'bool' | 'enum' | 'string';
12
+ export interface ActionOutputDef {
13
+ name: string;
14
+ type: ActionType;
15
+ description?: string;
16
+ values?: string[];
17
+ }
18
+ export type CellValue = {
19
+ kind: 'any';
20
+ } | {
21
+ kind: 'exact';
22
+ value: string;
23
+ } | {
24
+ kind: 'negated';
25
+ value: string;
26
+ } | {
27
+ kind: 'set';
28
+ values: string[];
29
+ };
30
+ export interface Rule {
31
+ number?: number;
32
+ conditions: Map<string, CellValue>;
33
+ actions: Map<string, string>;
34
+ }
35
+ export interface DecisionTableDef {
36
+ name: string;
37
+ description?: string;
38
+ conditions: ConditionDef[];
39
+ actions: ActionOutputDef[];
40
+ rules: Rule[];
41
+ policy: 'first-match' | 'all-match';
42
+ }
43
+ //# sourceMappingURL=dt-ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dt-ast.d.ts","sourceRoot":"","sources":["../../src/parser/dt-ast.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEtC,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC;CACrC"}
@@ -0,0 +1,3 @@
1
+ // Decision Table AST Types
2
+ export {};
3
+ //# sourceMappingURL=dt-ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dt-ast.js","sourceRoot":"","sources":["../../src/parser/dt-ast.ts"],"names":[],"mappings":"AAAA,2BAA2B"}
@@ -0,0 +1,40 @@
1
+ import { DecisionTableDef } from './dt-ast.js';
2
+ interface MdHeading {
3
+ kind: 'heading';
4
+ level: number;
5
+ text: string;
6
+ line: number;
7
+ }
8
+ interface MdTable {
9
+ kind: 'table';
10
+ headers: string[];
11
+ rows: string[][];
12
+ line: number;
13
+ }
14
+ interface MdBulletList {
15
+ kind: 'bullets';
16
+ items: string[];
17
+ line: number;
18
+ }
19
+ interface MdBlockquote {
20
+ kind: 'blockquote';
21
+ text: string;
22
+ line: number;
23
+ }
24
+ interface MdParagraph {
25
+ kind: 'paragraph';
26
+ text: string;
27
+ line: number;
28
+ }
29
+ interface MdSeparator {
30
+ kind: 'separator';
31
+ line: number;
32
+ }
33
+ type MdElement = MdHeading | MdTable | MdBulletList | MdBlockquote | MdParagraph | MdSeparator;
34
+ export declare function parseDecisionTable(elements: MdElement[]): {
35
+ decisionTable: DecisionTableDef;
36
+ warnings: string[];
37
+ };
38
+ export declare function parseDecisionTableChunk(chunk: MdElement[]): DecisionTableDef | null;
39
+ export {};
40
+ //# sourceMappingURL=dt-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dt-parser.d.ts","sourceRoot":"","sources":["../../src/parser/dt-parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAEY,gBAAgB,EAClC,MAAM,aAAa,CAAC;AAErB,UAAU,SAAS;IAAG,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAClF,UAAU,OAAO;IAAG,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACtF,UAAU,YAAY;IAAG,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACzE,UAAU,YAAY;IAAG,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACzE,UAAU,WAAW;IAAG,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACvE,UAAU,WAAW;IAAG,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAEzD,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;AA4K/F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG;IAAE,aAAa,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAuFjH;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAUnF"}