@orcalang/orca-lang 0.1.21 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/dt-compiler.d.ts +1 -0
- package/dist/compiler/dt-compiler.d.ts.map +1 -1
- package/dist/compiler/dt-compiler.js +149 -3
- package/dist/compiler/dt-compiler.js.map +1 -1
- package/dist/health-check.js +75 -0
- package/dist/health-check.js.map +1 -1
- package/dist/parser/dt-ast.d.ts +11 -1
- package/dist/parser/dt-ast.d.ts.map +1 -1
- package/dist/parser/dt-parser.d.ts.map +1 -1
- package/dist/parser/dt-parser.js +40 -8
- package/dist/parser/dt-parser.js.map +1 -1
- package/dist/skills.d.ts +2 -2
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +200 -6
- package/dist/skills.js.map +1 -1
- package/dist/tools.js +4 -4
- package/dist/tools.js.map +1 -1
- package/dist/verifier/dt-verifier.d.ts.map +1 -1
- package/dist/verifier/dt-verifier.js +259 -31
- package/dist/verifier/dt-verifier.js.map +1 -1
- package/package.json +1 -1
- package/src/compiler/dt-compiler.ts +151 -3
- package/src/health-check.ts +79 -0
- package/src/parser/dt-ast.ts +4 -2
- package/src/parser/dt-parser.ts +46 -8
- package/src/skills.ts +201 -7
- package/src/tools.ts +4 -4
- package/src/verifier/dt-verifier.ts +272 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dt-parser.js","sourceRoot":"","sources":["../../src/parser/dt-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dt-parser.js","sourceRoot":"","sources":["../../src/parser/dt-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.d.ts
CHANGED
|
@@ -170,7 +170,7 @@ export interface VerifyDTSkillResult {
|
|
|
170
170
|
}
|
|
171
171
|
export interface CompileDTSkillResult {
|
|
172
172
|
status: 'success' | 'error';
|
|
173
|
-
target:
|
|
173
|
+
target: string;
|
|
174
174
|
output: string;
|
|
175
175
|
warnings: SkillError[];
|
|
176
176
|
}
|
|
@@ -189,7 +189,7 @@ export declare function verifyDTSkill(input: SkillInput): VerifyDTSkillResult;
|
|
|
189
189
|
/**
|
|
190
190
|
* Compile a decision table to TypeScript or JSON.
|
|
191
191
|
*/
|
|
192
|
-
export declare function compileDTSkill(input: SkillInput, target?:
|
|
192
|
+
export declare function compileDTSkill(input: SkillInput, target?: string): CompileDTSkillResult;
|
|
193
193
|
/**
|
|
194
194
|
* Generate a decision table from natural language spec.
|
|
195
195
|
*/
|
package/dist/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.js
CHANGED
|
@@ -7,7 +7,7 @@ import { checkProperties } from './verifier/properties.js';
|
|
|
7
7
|
import { compileToXState } from './compiler/xstate.js';
|
|
8
8
|
import { compileToMermaid } from './compiler/mermaid.js';
|
|
9
9
|
import { verifyDecisionTables, checkFileContextAlignment, checkDTMachineIntegration, computeAlignedDTOutputDomain } from './verifier/dt-verifier.js';
|
|
10
|
-
import { compileDecisionTableToTypeScript, compileDecisionTableToPython, compileDecisionTableToGo, compileDecisionTableToJSON, toSnakeCase, } from './compiler/dt-compiler.js';
|
|
10
|
+
import { compileDecisionTableToTypeScript, compileDecisionTableToPython, compileDecisionTableToGo, compileDecisionTableToRust, compileDecisionTableToJSON, toSnakeCase, } from './compiler/dt-compiler.js';
|
|
11
11
|
import { loadConfig } from './config/index.js';
|
|
12
12
|
import { createProvider } from './llm/index.js';
|
|
13
13
|
import { getCodeGenerator } from './generators/index.js';
|
|
@@ -271,6 +271,9 @@ export async function generateActionsSkill(input, language = 'typescript', useLL
|
|
|
271
271
|
else if (language === 'go') {
|
|
272
272
|
decisionTableCode[dt.name] = compileDecisionTableToGo(dt);
|
|
273
273
|
}
|
|
274
|
+
else if (language === 'rust') {
|
|
275
|
+
decisionTableCode[dt.name] = compileDecisionTableToRust(dt);
|
|
276
|
+
}
|
|
274
277
|
else {
|
|
275
278
|
decisionTableCode[dt.name] = compileDecisionTableToTypeScript(dt);
|
|
276
279
|
}
|
|
@@ -412,6 +415,9 @@ function generateTemplateTestsForAction(action, machine, language = 'typescript'
|
|
|
412
415
|
if (language === 'go') {
|
|
413
416
|
return generateGoTestScaffold(action, machine);
|
|
414
417
|
}
|
|
418
|
+
if (language === 'rust') {
|
|
419
|
+
return generateRustTestScaffold(action, machine);
|
|
420
|
+
}
|
|
415
421
|
return generateTypeScriptTestScaffold(action, machine);
|
|
416
422
|
}
|
|
417
423
|
function generateTypeScriptTestScaffold(action, machine) {
|
|
@@ -582,6 +588,60 @@ ${preserved.map(f => `\tif result["${f}"] != ctx["${f}"] {\n\t\tt.Errorf("${f}:
|
|
|
582
588
|
}
|
|
583
589
|
`;
|
|
584
590
|
}
|
|
591
|
+
function generateRustTestScaffold(action, machine) {
|
|
592
|
+
const ctxFields = machine.context.map(f => {
|
|
593
|
+
return ` "${f.name}": ${getDefaultValueForType(f.type, 'rust')}`;
|
|
594
|
+
}).join(',\n');
|
|
595
|
+
const contextUsed = action.context_used.length > 0 ? action.context_used : machine.context.map(f => f.name);
|
|
596
|
+
const preserved = contextUsed.filter(f => !actionModifiesField(action, f));
|
|
597
|
+
if (action.hasEffect) {
|
|
598
|
+
return `// Tests for ${action.name}
|
|
599
|
+
#[cfg(test)]
|
|
600
|
+
mod tests {
|
|
601
|
+
use super::*;
|
|
602
|
+
use serde_json::json;
|
|
603
|
+
|
|
604
|
+
#[test]
|
|
605
|
+
fn test_${action.name}_executes_effect() {
|
|
606
|
+
let ctx = json!({
|
|
607
|
+
${ctxFields}
|
|
608
|
+
});
|
|
609
|
+
let event = json!({"type": "test"});
|
|
610
|
+
let (result, effect) = ${action.name}(&ctx, &event);
|
|
611
|
+
assert!(result.is_object());
|
|
612
|
+
assert_eq!(effect.effect_type, "${action.effectType}");
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
`;
|
|
616
|
+
}
|
|
617
|
+
return `// Tests for ${action.name}
|
|
618
|
+
#[cfg(test)]
|
|
619
|
+
mod tests {
|
|
620
|
+
use super::*;
|
|
621
|
+
use serde_json::json;
|
|
622
|
+
|
|
623
|
+
#[test]
|
|
624
|
+
fn test_${action.name}_transforms_context() {
|
|
625
|
+
let ctx = json!({
|
|
626
|
+
${ctxFields}
|
|
627
|
+
});
|
|
628
|
+
let event = json!({"type": "test"});
|
|
629
|
+
let result = ${action.name}(&ctx, &event);
|
|
630
|
+
assert!(result.is_object());
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
#[test]
|
|
634
|
+
fn test_${action.name}_preserves_fields() {
|
|
635
|
+
let ctx = json!({
|
|
636
|
+
${ctxFields}
|
|
637
|
+
});
|
|
638
|
+
let event = json!({"type": "test"});
|
|
639
|
+
let result = ${action.name}(&ctx, &event);
|
|
640
|
+
${preserved.map(f => ` assert_eq!(result["${f}"], ctx["${f}"]);`).join('\n')}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
`;
|
|
644
|
+
}
|
|
585
645
|
function actionModifiesField(action, fieldName) {
|
|
586
646
|
// Heuristic: if the action name suggests modification of a field, it likely modifies it
|
|
587
647
|
const modifiers = ['increment', 'decrement', 'set', 'update', 'add', 'remove', 'clear', 'reset', 'toggle'];
|
|
@@ -599,7 +659,7 @@ function actionModifiesField(action, fieldName) {
|
|
|
599
659
|
}
|
|
600
660
|
function getDefaultValueForType(type, language = 'typescript') {
|
|
601
661
|
if (!type) {
|
|
602
|
-
return language === 'python' ? '""' : language === 'go' ? '""' : "''";
|
|
662
|
+
return language === 'python' ? '""' : language === 'go' ? '""' : language === 'rust' ? '"".to_string()' : "''";
|
|
603
663
|
}
|
|
604
664
|
if (typeof type === 'object' && 'kind' in type) {
|
|
605
665
|
if (language === 'python') {
|
|
@@ -626,6 +686,25 @@ function getDefaultValueForType(type, language = 'typescript') {
|
|
|
626
686
|
case 'custom': return 'nil';
|
|
627
687
|
}
|
|
628
688
|
}
|
|
689
|
+
else if (language === 'rust') {
|
|
690
|
+
switch (type.kind) {
|
|
691
|
+
case 'string': return '"".to_string()';
|
|
692
|
+
case 'int': return '0';
|
|
693
|
+
case 'decimal': return '0.0';
|
|
694
|
+
case 'bool': return 'false';
|
|
695
|
+
case 'optional': return 'null';
|
|
696
|
+
case 'array': return 'vec![]';
|
|
697
|
+
case 'map': return 'HashMap::new()';
|
|
698
|
+
case 'custom': {
|
|
699
|
+
// Handle common type aliases
|
|
700
|
+
if (type.name === 'float' || type.name === 'double')
|
|
701
|
+
return '0.0';
|
|
702
|
+
if (type.name === 'integer' || type.name === 'long')
|
|
703
|
+
return '0';
|
|
704
|
+
return 'null';
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
629
708
|
else {
|
|
630
709
|
switch (type.kind) {
|
|
631
710
|
case 'string': return "''";
|
|
@@ -639,7 +718,7 @@ function getDefaultValueForType(type, language = 'typescript') {
|
|
|
639
718
|
}
|
|
640
719
|
}
|
|
641
720
|
}
|
|
642
|
-
return language === 'python' ? 'None' : language === 'go' ? 'nil' : 'null';
|
|
721
|
+
return language === 'python' ? 'None' : language === 'go' ? 'nil' : language === 'rust' ? 'null' : 'null';
|
|
643
722
|
}
|
|
644
723
|
function extractContextFields(machine, actionName) {
|
|
645
724
|
const fields = [];
|
|
@@ -727,6 +806,26 @@ function generateDTCallComment(dt, language) {
|
|
|
727
806
|
`\t// }`,
|
|
728
807
|
].join('\n');
|
|
729
808
|
}
|
|
809
|
+
if (language === 'rust') {
|
|
810
|
+
const fnName = `evaluate_${toSnakeCase(dtName)}`;
|
|
811
|
+
const inputStruct = `${toPascalCase(dtName)}Input`;
|
|
812
|
+
const inputArgs = dt.conditions.map(c => {
|
|
813
|
+
const hint = c.type === 'enum' && c.values.length > 0
|
|
814
|
+
? `String (${c.values.join(', ')})`
|
|
815
|
+
: c.type === 'bool' ? 'bool' : c.type === 'int_range' ? 'i64' : 'String';
|
|
816
|
+
return ` // ${c.name}: ..., // ${hint} — map from ctx`;
|
|
817
|
+
}).join('\n');
|
|
818
|
+
const outputFields = dt.actions.map(a => ` // result["${a.name}"] = Value::String(dt_result.${a.name}.clone());`).join('\n');
|
|
819
|
+
return [
|
|
820
|
+
` // Call ${fnName} to evaluate ${dtName} rules:`,
|
|
821
|
+
` // let dt_input = ${inputStruct} {`,
|
|
822
|
+
inputArgs,
|
|
823
|
+
` // };`,
|
|
824
|
+
` // if let Some(dt_result) = ${fnName}(&dt_input) {`,
|
|
825
|
+
outputFields,
|
|
826
|
+
` // }`,
|
|
827
|
+
].join('\n');
|
|
828
|
+
}
|
|
730
829
|
// TypeScript (default)
|
|
731
830
|
const fnName = `evaluate${toPascalCase(dtName)}`;
|
|
732
831
|
const inputType = `${toPascalCase(dtName)}Input`;
|
|
@@ -766,6 +865,16 @@ function goCtxRead(fieldName, condType) {
|
|
|
766
865
|
return `ctx["${fieldName}"].(int)`;
|
|
767
866
|
return `ctx["${fieldName}"].(string)`;
|
|
768
867
|
}
|
|
868
|
+
/** Generate a Rust serde_json value extraction for reading a context value. */
|
|
869
|
+
function rustCtxRead(fieldName, condType) {
|
|
870
|
+
if (condType === 'bool')
|
|
871
|
+
return `ctx["${fieldName}"].as_bool().unwrap_or_default()`;
|
|
872
|
+
if (condType === 'int_range')
|
|
873
|
+
return `ctx["${fieldName}"].as_i64().unwrap_or_default()`;
|
|
874
|
+
if (condType === 'decimal_range')
|
|
875
|
+
return `ctx["${fieldName}"].as_f64().unwrap_or_default()`;
|
|
876
|
+
return `ctx["${fieldName}"].as_str().unwrap_or_default().to_string()`;
|
|
877
|
+
}
|
|
769
878
|
function generateFullyWiredActionScaffold(action, machine, language, dt) {
|
|
770
879
|
if (language === 'python') {
|
|
771
880
|
const dtFnName = `evaluate_${toSnakeCase(dt.name)}`;
|
|
@@ -827,6 +936,47 @@ ${outputAssigns}
|
|
|
827
936
|
\t}
|
|
828
937
|
\treturn result
|
|
829
938
|
}
|
|
939
|
+
`;
|
|
940
|
+
}
|
|
941
|
+
if (language === 'rust') {
|
|
942
|
+
const dtFnName = `evaluate_${toSnakeCase(dt.name)}`;
|
|
943
|
+
const inputStruct = `${toPascalCase(dt.name)}Input`;
|
|
944
|
+
const ctxReads = dt.conditions
|
|
945
|
+
.map(c => ` let ${c.name} = ${rustCtxRead(c.name, c.type)};`)
|
|
946
|
+
.join('\n');
|
|
947
|
+
const inputFields = dt.conditions
|
|
948
|
+
.map(c => ` ${c.name},`)
|
|
949
|
+
.join('\n');
|
|
950
|
+
const outputAssigns = dt.actions
|
|
951
|
+
.map(a => {
|
|
952
|
+
const aType = a.type;
|
|
953
|
+
if (aType === 'bool')
|
|
954
|
+
return ` result["${a.name}"] = Value::Bool(dt_result.${a.name});`;
|
|
955
|
+
if (aType === 'int_range')
|
|
956
|
+
return ` result["${a.name}"] = json!(dt_result.${a.name});`;
|
|
957
|
+
if (aType === 'decimal_range')
|
|
958
|
+
return ` result["${a.name}"] = json!(dt_result.${a.name});`;
|
|
959
|
+
return ` result["${a.name}"] = Value::String(dt_result.${a.name}.clone());`;
|
|
960
|
+
})
|
|
961
|
+
.join('\n');
|
|
962
|
+
return `// Action: ${action.name}
|
|
963
|
+
// Decision table: ${dt.name}
|
|
964
|
+
// Register via: machine.register_action_rust("${action.name}", Box::new(${action.name}))
|
|
965
|
+
|
|
966
|
+
use serde_json::{Value, json};
|
|
967
|
+
|
|
968
|
+
fn ${action.name}(ctx: &Value, event: &Value) -> Value {
|
|
969
|
+
${ctxReads}
|
|
970
|
+
let dt_input = ${inputStruct} {
|
|
971
|
+
${inputFields}
|
|
972
|
+
};
|
|
973
|
+
if let Some(dt_result) = ${dtFnName}(&dt_input) {
|
|
974
|
+
let mut result = ctx.clone();
|
|
975
|
+
${outputAssigns}
|
|
976
|
+
return result;
|
|
977
|
+
}
|
|
978
|
+
ctx.clone()
|
|
979
|
+
}
|
|
830
980
|
`;
|
|
831
981
|
}
|
|
832
982
|
// TypeScript (default)
|
|
@@ -916,6 +1066,35 @@ ${goTodo}
|
|
|
916
1066
|
\t}
|
|
917
1067
|
\treturn result
|
|
918
1068
|
}
|
|
1069
|
+
`;
|
|
1070
|
+
}
|
|
1071
|
+
if (language === 'rust') {
|
|
1072
|
+
if (action.hasEffect) {
|
|
1073
|
+
return `// Action: ${action.name}
|
|
1074
|
+
// Effect: ${action.effectType}
|
|
1075
|
+
// Register via: machine.register_action_rust("${action.name}", Box::new(${action.name}))
|
|
1076
|
+
|
|
1077
|
+
use serde_json::Value;
|
|
1078
|
+
|
|
1079
|
+
fn ${action.name}(ctx: &Value, event: &Value) -> (Value, Effect) {
|
|
1080
|
+
// TODO: Implement effect
|
|
1081
|
+
(ctx.clone(), Effect { effect_type: "${action.effectType}".to_string(), payload: Value::Null })
|
|
1082
|
+
}
|
|
1083
|
+
`;
|
|
1084
|
+
}
|
|
1085
|
+
const rustDTComment = matchedDT ? '\n' + generateDTCallComment(matchedDT, 'rust') + '\n' : '';
|
|
1086
|
+
const rustTodo = matchedDT
|
|
1087
|
+
? ` // TODO: Implement action using ${matchedDT.name} decision table`
|
|
1088
|
+
: ' // TODO: Implement action';
|
|
1089
|
+
return `// Action: ${action.name}${matchedDT ? `\n// Decision table: ${matchedDT.name}` : ''}
|
|
1090
|
+
// Register via: machine.register_action_rust("${action.name}", Box::new(${action.name}))
|
|
1091
|
+
|
|
1092
|
+
use serde_json::Value;
|
|
1093
|
+
|
|
1094
|
+
fn ${action.name}(ctx: &Value, event: &Value) -> Value {${rustDTComment}
|
|
1095
|
+
${rustTodo}
|
|
1096
|
+
ctx.clone()
|
|
1097
|
+
}
|
|
919
1098
|
`;
|
|
920
1099
|
}
|
|
921
1100
|
// TypeScript (default)
|
|
@@ -1766,9 +1945,24 @@ export function compileDTSkill(input, target = 'typescript') {
|
|
|
1766
1945
|
};
|
|
1767
1946
|
}
|
|
1768
1947
|
const dt = file.decisionTables[0];
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
:
|
|
1948
|
+
let output;
|
|
1949
|
+
switch (target) {
|
|
1950
|
+
case 'json':
|
|
1951
|
+
output = compileDecisionTableToJSON(dt);
|
|
1952
|
+
break;
|
|
1953
|
+
case 'python':
|
|
1954
|
+
output = compileDecisionTableToPython(dt);
|
|
1955
|
+
break;
|
|
1956
|
+
case 'go':
|
|
1957
|
+
output = compileDecisionTableToGo(dt);
|
|
1958
|
+
break;
|
|
1959
|
+
case 'rust':
|
|
1960
|
+
output = compileDecisionTableToRust(dt);
|
|
1961
|
+
break;
|
|
1962
|
+
default:
|
|
1963
|
+
output = compileDecisionTableToTypeScript(dt);
|
|
1964
|
+
break;
|
|
1965
|
+
}
|
|
1772
1966
|
return { status: 'success', target, output, warnings: [] };
|
|
1773
1967
|
}
|
|
1774
1968
|
catch (err) {
|