@aster-cloud/aster-lang-test 0.0.2
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/corpus/tier1-equivalence/inputs/01-arithmetic-add.cases.json +30 -0
- package/corpus/tier1-equivalence/inputs/02-arithmetic-precedence.cases.json +33 -0
- package/corpus/tier1-equivalence/inputs/04-let-binding.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/05-comparison.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/06-string-concat.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/07-arithmetic-subtract.cases.json +30 -0
- package/corpus/tier1-equivalence/inputs/08-arithmetic-divide.cases.json +30 -0
- package/corpus/tier1-equivalence/inputs/09-arithmetic-modulo.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/10-arithmetic-negate.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/13-boolean-not.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/15-comparison-less.cases.json +30 -0
- package/corpus/tier1-equivalence/inputs/16-comparison-equals.cases.json +30 -0
- package/corpus/tier1-equivalence/inputs/19-let-multiple.cases.json +30 -0
- package/corpus/tier1-equivalence/inputs/20-let-dependent.cases.json +27 -0
- package/corpus/tier1-equivalence/inputs/28-business-insurance-premium.cases.json +30 -0
- package/corpus/tier1-equivalence/policies/01-arithmetic-add.aster +4 -0
- package/corpus/tier1-equivalence/policies/01-arithmetic-add.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/02-arithmetic-precedence.aster +4 -0
- package/corpus/tier1-equivalence/policies/02-arithmetic-precedence.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/04-let-binding.aster +5 -0
- package/corpus/tier1-equivalence/policies/04-let-binding.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/05-comparison.aster +4 -0
- package/corpus/tier1-equivalence/policies/05-comparison.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/06-string-concat.aster +4 -0
- package/corpus/tier1-equivalence/policies/06-string-concat.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/07-arithmetic-subtract.aster +4 -0
- package/corpus/tier1-equivalence/policies/07-arithmetic-subtract.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/08-arithmetic-divide.aster +4 -0
- package/corpus/tier1-equivalence/policies/08-arithmetic-divide.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/09-arithmetic-modulo.aster +5 -0
- package/corpus/tier1-equivalence/policies/09-arithmetic-modulo.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/10-arithmetic-negate.aster +4 -0
- package/corpus/tier1-equivalence/policies/10-arithmetic-negate.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/13-boolean-not.aster +4 -0
- package/corpus/tier1-equivalence/policies/13-boolean-not.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/15-comparison-less.aster +4 -0
- package/corpus/tier1-equivalence/policies/15-comparison-less.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/16-comparison-equals.aster +4 -0
- package/corpus/tier1-equivalence/policies/16-comparison-equals.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/19-let-multiple.aster +6 -0
- package/corpus/tier1-equivalence/policies/19-let-multiple.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/20-let-dependent.aster +6 -0
- package/corpus/tier1-equivalence/policies/20-let-dependent.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/28-business-insurance-premium.aster +7 -0
- package/corpus/tier1-equivalence/policies/28-business-insurance-premium.meta.json +12 -0
- package/corpus/tier1-equivalence/policies/arith_compare.aster +7 -0
- package/corpus/tier1-equivalence/policies/arith_compare.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/auto.aster +22 -0
- package/corpus/tier1-equivalence/policies/auto.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/bad_generic.aster +4 -0
- package/corpus/tier1-equivalence/policies/bad_generic.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/bad_generic_return.aster +4 -0
- package/corpus/tier1-equivalence/policies/bad_generic_return.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/bad_generic_return_type.aster +4 -0
- package/corpus/tier1-equivalence/policies/bad_generic_return_type.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/capability-v2.aster +12 -0
- package/corpus/tier1-equivalence/policies/capability-v2.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/capdemo.aster +7 -0
- package/corpus/tier1-equivalence/policies/capdemo.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/claims.aster +14 -0
- package/corpus/tier1-equivalence/policies/claims.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/cli_tool.aster +10 -0
- package/corpus/tier1-equivalence/policies/cli_tool.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/creditcard.aster +40 -0
- package/corpus/tier1-equivalence/policies/creditcard.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_alias_import.aster +22 -0
- package/corpus/tier1-equivalence/policies/eff_alias_import.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_alias_unmapped.aster +12 -0
- package/corpus/tier1-equivalence/policies/eff_alias_unmapped.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_brackets.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_brackets.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_missing_ai_model.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_missing_ai_model.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_missing_files.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_missing_files.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_missing_secrets.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_missing_secrets.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_unused_extra.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_unused_extra.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_unused_files.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_unused_files.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_unused_time.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_enforce_unused_time.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_bare.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_bare.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_brackets.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_brackets.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_files_secrets.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_files_secrets.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_mixed_brackets_and_and.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_mixed_brackets_and_and.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_single.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_caps_parse_single.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_custom_prefix.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_custom_prefix.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_infer_mixed.aster +8 -0
- package/corpus/tier1-equivalence/policies/eff_infer_mixed.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_infer_transitive.aster +10 -0
- package/corpus/tier1-equivalence/policies/eff_infer_transitive.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_infer_wrapper_cpu.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_infer_wrapper_cpu.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_infer_wrapper_io.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_infer_wrapper_io.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_all_caps.aster +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_all_caps.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_cpu_only.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_valid_cpu_only.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_exact_match.aster +5 -0
- package/corpus/tier1-equivalence/policies/eff_valid_exact_match.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_exact_match__programs-patterns.aster +5 -0
- package/corpus/tier1-equivalence/policies/eff_valid_exact_match__programs-patterns.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_http_sql.aster +5 -0
- package/corpus/tier1-equivalence/policies/eff_valid_http_sql.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_nested.aster +13 -0
- package/corpus/tier1-equivalence/policies/eff_valid_nested.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_pure_only.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_valid_pure_only.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_valid_subset_declared.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_valid_subset_declared.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_chain.aster +10 -0
- package/corpus/tier1-equivalence/policies/eff_violation_chain.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_cpu_calls_io.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_violation_cpu_calls_io.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_empty_caps.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_empty_caps.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_files_calls_secrets.aster +5 -0
- package/corpus/tier1-equivalence/policies/eff_violation_files_calls_secrets.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_files_only.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_files_only.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_http_calls_sql.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_http_calls_sql.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_missing_http.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_missing_http.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_missing_sql.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_missing_sql.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_missing_time.aster +5 -0
- package/corpus/tier1-equivalence/policies/eff_violation_missing_time.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_mixed_caps.aster +6 -0
- package/corpus/tier1-equivalence/policies/eff_violation_mixed_caps.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_multiple_errors.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_violation_multiple_errors.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_nested_a.aster +10 -0
- package/corpus/tier1-equivalence/policies/eff_violation_nested_a.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_nested_b.aster +10 -0
- package/corpus/tier1-equivalence/policies/eff_violation_nested_b.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_pure_calls_cpu.aster +7 -0
- package/corpus/tier1-equivalence/policies/eff_violation_pure_calls_cpu.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_secrets_calls_ai.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_secrets_calls_ai.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_secrets_calls_http.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_secrets_calls_http.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_sql_calls_files.aster +5 -0
- package/corpus/tier1-equivalence/policies/eff_violation_sql_calls_files.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eff_violation_transitive.aster +4 -0
- package/corpus/tier1-equivalence/policies/eff_violation_transitive.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/effect_enforcement.aster +4 -0
- package/corpus/tier1-equivalence/policies/effect_enforcement.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/eligibility.aster +18 -0
- package/corpus/tier1-equivalence/policies/eligibility.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/enum_exhaustiveness.aster +5 -0
- package/corpus/tier1-equivalence/policies/enum_exhaustiveness.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/enum_wildcard.aster +6 -0
- package/corpus/tier1-equivalence/policies/enum_wildcard.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/fetch_dashboard.aster +11 -0
- package/corpus/tier1-equivalence/policies/fetch_dashboard.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/fraud-simple-test.aster +9 -0
- package/corpus/tier1-equivalence/policies/fraud-simple-test.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/fraud.aster +10 -0
- package/corpus/tier1-equivalence/policies/fraud.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/greet.aster +8 -0
- package/corpus/tier1-equivalence/policies/greet.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/hello.aster +4 -0
- package/corpus/tier1-equivalence/policies/hello.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/hipaa-validation-demo.aster +126 -0
- package/corpus/tier1-equivalence/policies/hipaa-validation-demo.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/id_generic.aster +4 -0
- package/corpus/tier1-equivalence/policies/id_generic.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/if_param.aster +7 -0
- package/corpus/tier1-equivalence/policies/if_param.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/incremental.aster +8 -0
- package/corpus/tier1-equivalence/policies/incremental.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/incremental_test.aster +10 -0
- package/corpus/tier1-equivalence/policies/incremental_test.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/incremental_test2.aster +10 -0
- package/corpus/tier1-equivalence/policies/incremental_test2.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/incremental_test3.aster +10 -0
- package/corpus/tier1-equivalence/policies/incremental_test3.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/int_match.aster +8 -0
- package/corpus/tier1-equivalence/policies/int_match.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/int_match_default.aster +7 -0
- package/corpus/tier1-equivalence/policies/int_match_default.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/interop_overload.aster +19 -0
- package/corpus/tier1-equivalence/policies/interop_overload.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/interop_sum.aster +16 -0
- package/corpus/tier1-equivalence/policies/interop_sum.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl.aster +4 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_length.aster +4 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_length.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_length_cmp.aster +4 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_length_cmp.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_math_bool.aster +7 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_math_bool.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_short.aster +4 -0
- package/corpus/tier1-equivalence/policies/lambda_cnl_short.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/life.aster +18 -0
- package/corpus/tier1-equivalence/policies/life.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/list_ops.aster +10 -0
- package/corpus/tier1-equivalence/policies/list_ops.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/loan_fixed.aster +12 -0
- package/corpus/tier1-equivalence/policies/loan_fixed.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/loan_full_test.aster +12 -0
- package/corpus/tier1-equivalence/policies/loan_full_test.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/loan_with_constraints.aster +8 -0
- package/corpus/tier1-equivalence/policies/loan_with_constraints.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/loan_with_int.aster +12 -0
- package/corpus/tier1-equivalence/policies/loan_with_int.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/login.aster +11 -0
- package/corpus/tier1-equivalence/policies/login.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/map_ops.aster +7 -0
- package/corpus/tier1-equivalence/policies/map_ops.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/match_enum.aster +8 -0
- package/corpus/tier1-equivalence/policies/match_enum.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/match_multi.aster +8 -0
- package/corpus/tier1-equivalence/policies/match_multi.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/match_null.aster +6 -0
- package/corpus/tier1-equivalence/policies/match_null.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/nested_generic_function.aster +5 -0
- package/corpus/tier1-equivalence/policies/nested_generic_function.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/patient-record.aster +70 -0
- package/corpus/tier1-equivalence/policies/patient-record.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_function_return.aster +8 -0
- package/corpus/tier1-equivalence/policies/pii_function_return.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_http_safe.aster +4 -0
- package/corpus/tier1-equivalence/policies/pii_http_safe.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_http_violation.aster +4 -0
- package/corpus/tier1-equivalence/policies/pii_http_violation.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_nested_call.aster +11 -0
- package/corpus/tier1-equivalence/policies/pii_nested_call.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_propagation.aster +5 -0
- package/corpus/tier1-equivalence/policies/pii_propagation.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_type_basic.aster +4 -0
- package/corpus/tier1-equivalence/policies/pii_type_basic.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_type_in_data.aster +6 -0
- package/corpus/tier1-equivalence/policies/pii_type_in_data.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_type_in_function.aster +4 -0
- package/corpus/tier1-equivalence/policies/pii_type_in_function.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_type_mixed.aster +8 -0
- package/corpus/tier1-equivalence/policies/pii_type_mixed.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_type_phone.aster +4 -0
- package/corpus/tier1-equivalence/policies/pii_type_phone.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/pii_type_ssn.aster +4 -0
- package/corpus/tier1-equivalence/policies/pii_type_ssn.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/policy_demo.aster +19 -0
- package/corpus/tier1-equivalence/policies/policy_demo.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/policy_engine.aster +28 -0
- package/corpus/tier1-equivalence/policies/policy_engine.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/prescription-workflow.aster +83 -0
- package/corpus/tier1-equivalence/policies/prescription-workflow.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/rest_service.aster +10 -0
- package/corpus/tier1-equivalence/policies/rest_service.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/result_trycatch.aster +4 -0
- package/corpus/tier1-equivalence/policies/result_trycatch.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/risk.aster +8 -0
- package/corpus/tier1-equivalence/policies/risk.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/rules_engine.aster +4 -0
- package/corpus/tier1-equivalence/policies/rules_engine.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/simple_test.aster +6 -0
- package/corpus/tier1-equivalence/policies/simple_test.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/soc2-audit-demo.aster +117 -0
- package/corpus/tier1-equivalence/policies/soc2-audit-demo.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/stdlib_collections.aster +13 -0
- package/corpus/tier1-equivalence/policies/stdlib_collections.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/stdlib_io.aster +13 -0
- package/corpus/tier1-equivalence/policies/stdlib_io.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/stdlib_maybe_result.aster +19 -0
- package/corpus/tier1-equivalence/policies/stdlib_maybe_result.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/stdlib_text.aster +7 -0
- package/corpus/tier1-equivalence/policies/stdlib_text.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/symbolic_operators.aster +21 -0
- package/corpus/tier1-equivalence/policies/symbolic_operators.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test-operators.aster +12 -0
- package/corpus/tier1-equivalence/policies/test-operators.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_all_comparisons.aster +5 -0
- package/corpus/tier1-equivalence/policies/test_all_comparisons.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_arithmetic.aster +4 -0
- package/corpus/tier1-equivalence/policies/test_arithmetic.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_auto.aster +66 -0
- package/corpus/tier1-equivalence/policies/test_auto.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_claims.aster +44 -0
- package/corpus/tier1-equivalence/policies/test_claims.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_complex_return.aster +14 -0
- package/corpus/tier1-equivalence/policies/test_complex_return.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_copy.aster +7 -0
- package/corpus/tier1-equivalence/policies/test_copy.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_division.aster +9 -0
- package/corpus/tier1-equivalence/policies/test_division.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_eligibility.aster +46 -0
- package/corpus/tier1-equivalence/policies/test_eligibility.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_full.aster +14 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_full.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_minimal.aster +10 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_minimal.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_simple.aster +7 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_simple.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_struct.aster +15 -0
- package/corpus/tier1-equivalence/policies/test_eligibility_struct.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_exact_eligibility.aster +18 -0
- package/corpus/tier1-equivalence/policies/test_exact_eligibility.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_gte.aster +4 -0
- package/corpus/tier1-equivalence/policies/test_gte.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_helper1.aster +6 -0
- package/corpus/tier1-equivalence/policies/test_helper1.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_invalid.aster +6 -0
- package/corpus/tier1-equivalence/policies/test_invalid.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_let_in_if.aster +4 -0
- package/corpus/tier1-equivalence/policies/test_let_in_if.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_let_member_call.aster +10 -0
- package/corpus/tier1-equivalence/policies/test_let_member_call.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_life.aster +80 -0
- package/corpus/tier1-equivalence/policies/test_life.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_loan.aster +8 -0
- package/corpus/tier1-equivalence/policies/test_loan.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_operators.aster +5 -0
- package/corpus/tier1-equivalence/policies/test_operators.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_return_with.aster +6 -0
- package/corpus/tier1-equivalence/policies/test_return_with.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_second_func.aster +4 -0
- package/corpus/tier1-equivalence/policies/test_second_func.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_two_ifs.aster +4 -0
- package/corpus/tier1-equivalence/policies/test_two_ifs.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/test_two_statements.aster +12 -0
- package/corpus/tier1-equivalence/policies/test_two_statements.meta.json +9 -0
- package/corpus/tier1-equivalence/policies/text_ops.aster +16 -0
- package/corpus/tier1-equivalence/policies/text_ops.meta.json +9 -0
- package/corpus/tier2-divergent/java-only/11-boolean-and.aster +4 -0
- package/corpus/tier2-divergent/java-only/11-boolean-and.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/12-boolean-or.aster +4 -0
- package/corpus/tier2-divergent/java-only/12-boolean-or.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/14-boolean-short-circuit.aster +4 -0
- package/corpus/tier2-divergent/java-only/14-boolean-short-circuit.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/17-comparison-range.aster +4 -0
- package/corpus/tier2-divergent/java-only/17-comparison-range.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/26-if-bool-condition.aster +9 -0
- package/corpus/tier2-divergent/java-only/26-if-bool-condition.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/27-business-loan-eligibility.aster +4 -0
- package/corpus/tier2-divergent/java-only/27-business-loan-eligibility.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/30-business-gdpr-retention.aster +4 -0
- package/corpus/tier2-divergent/java-only/30-business-gdpr-retention.meta.json +12 -0
- package/corpus/tier2-divergent/java-only/neq_test.aster +10 -0
- package/corpus/tier2-divergent/java-only/neq_test.meta.json +11 -0
- package/corpus/tier2-divergent/ts-only/03-if-else.aster +9 -0
- package/corpus/tier2-divergent/ts-only/03-if-else.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/03-if-else.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/18-comparison-chained.aster +9 -0
- package/corpus/tier2-divergent/ts-only/18-comparison-chained.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/18-comparison-chained.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/21-let-conditional.aster +8 -0
- package/corpus/tier2-divergent/ts-only/21-let-conditional.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/21-let-conditional.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/22-let-shadowing.aster +9 -0
- package/corpus/tier2-divergent/ts-only/22-let-shadowing.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/22-let-shadowing.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/23-if-nested.aster +10 -0
- package/corpus/tier2-divergent/ts-only/23-if-nested.cases.json +30 -0
- package/corpus/tier2-divergent/ts-only/23-if-nested.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/24-if-guard-clause.aster +6 -0
- package/corpus/tier2-divergent/ts-only/24-if-guard-clause.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/24-if-guard-clause.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/25-if-multi-branch.aster +11 -0
- package/corpus/tier2-divergent/ts-only/25-if-multi-branch.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/25-if-multi-branch.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/29-business-tax-bracket.aster +11 -0
- package/corpus/tier2-divergent/ts-only/29-business-tax-bracket.cases.json +27 -0
- package/corpus/tier2-divergent/ts-only/29-business-tax-bracket.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/comparison_operators.aster +10 -0
- package/corpus/tier2-divergent/ts-only/comparison_operators.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/cross_compiler_ops.aster +73 -0
- package/corpus/tier2-divergent/ts-only/cross_compiler_ops.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/enterprise.aster +119 -0
- package/corpus/tier2-divergent/ts-only/enterprise.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_bind.aster +18 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_bind.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_bind__programs-patterns.aster +18 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_bind__programs-patterns.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_maybe.aster +8 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_maybe.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_maybe__programs-patterns.aster +8 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_maybe__programs-patterns.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_result.aster +8 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_result.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_result__programs-patterns.aster +8 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_match_result__programs-patterns.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_mixed.aster +11 -0
- package/corpus/tier2-divergent/ts-only/lambda_cnl_mixed.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_gte_test.aster +8 -0
- package/corpus/tier2-divergent/ts-only/lambda_gte_test.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/lambda_lte_test.aster +8 -0
- package/corpus/tier2-divergent/ts-only/lambda_lte_test.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/loan.aster +12 -0
- package/corpus/tier2-divergent/ts-only/loan.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/nested_generic_lambda.aster +7 -0
- package/corpus/tier2-divergent/ts-only/nested_generic_lambda.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/personal.aster +113 -0
- package/corpus/tier2-divergent/ts-only/personal.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/test_all_comparisons__ts-only.aster +9 -0
- package/corpus/tier2-divergent/ts-only/test_all_comparisons__ts-only.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/test_eligibility_with_ifs.aster +18 -0
- package/corpus/tier2-divergent/ts-only/test_eligibility_with_ifs.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/test_let_with_call.aster +6 -0
- package/corpus/tier2-divergent/ts-only/test_let_with_call.meta.json +12 -0
- package/corpus/tier2-divergent/ts-only/test_operators__ts-only.aster +6 -0
- package/corpus/tier2-divergent/ts-only/test_operators__ts-only.meta.json +12 -0
- package/corpus/tier3-fixtures/comments/comment1.in.aster +6 -0
- package/corpus/tier3-fixtures/comments/comment1.in.meta.json +9 -0
- package/corpus/tier3-fixtures/comments/comment1.out.aster +4 -0
- package/corpus/tier3-fixtures/comments/comment1.out.meta.json +9 -0
- package/corpus/tier3-fixtures/comments/comment2.in.aster +6 -0
- package/corpus/tier3-fixtures/comments/comment2.in.meta.json +9 -0
- package/corpus/tier3-fixtures/comments/comment2.out.aster +5 -0
- package/corpus/tier3-fixtures/comments/comment2.out.meta.json +9 -0
- package/corpus/tier3-fixtures/comments/comment3.in.aster +8 -0
- package/corpus/tier3-fixtures/comments/comment3.in.meta.json +9 -0
- package/corpus/tier3-fixtures/comments/comment3.out.aster +8 -0
- package/corpus/tier3-fixtures/comments/comment3.out.meta.json +9 -0
- package/corpus/tier3-fixtures/fixtures/capability-violations.aster +15 -0
- package/corpus/tier3-fixtures/fixtures/capability-violations.meta.json +9 -0
- package/corpus/tier3-fixtures/fixtures/parallel-workflow.aster +4 -0
- package/corpus/tier3-fixtures/fixtures/parallel-workflow.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-ast/workflow-compensate.aster +15 -0
- package/corpus/tier3-fixtures/golden-ast/workflow-compensate.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-ast/workflow-linear__golden-ast.aster +14 -0
- package/corpus/tier3-fixtures/golden-ast/workflow-linear__golden-ast.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/bad_division_by_zero.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/bad_division_by_zero.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/bad_list_index_out_of_bounds.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/bad_list_index_out_of_bounds.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/bad_text_substring_negative.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/bad_text_substring_negative.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/bad_type_mismatch_add_text.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/bad_type_mismatch_add_text.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_empty_generic_list.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/boundary_empty_generic_list.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_empty_list_length.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/boundary_empty_list_length.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_list_slice_zero.aster +5 -0
- package/corpus/tier3-fixtures/golden-core/boundary_list_slice_zero.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_map_type.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/boundary_map_type.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_maybe_match.aster +6 -0
- package/corpus/tier3-fixtures/golden-core/boundary_maybe_match.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_null_match_default.aster +6 -0
- package/corpus/tier3-fixtures/golden-core/boundary_null_match_default.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_result_both.aster +7 -0
- package/corpus/tier3-fixtures/golden-core/boundary_result_both.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_result_err_null.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/boundary_result_err_null.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_text_empty_concat.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/boundary_text_empty_concat.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/boundary_text_trim_whitespace.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/boundary_text_trim_whitespace.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/eff_generic_func.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/eff_generic_func.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/eff_multiple_caps.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/eff_multiple_caps.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/generic_list_of_results.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/generic_list_of_results.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/generic_result_maybe.aster +6 -0
- package/corpus/tier3-fixtures/golden-core/generic_result_maybe.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/if_param__golden-core.aster +7 -0
- package/corpus/tier3-fixtures/golden-core/if_param__golden-core.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/inventory_workflow.aster +16 -0
- package/corpus/tier3-fixtures/golden-core/inventory_workflow.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/login__golden-core.aster +11 -0
- package/corpus/tier3-fixtures/golden-core/login__golden-core.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/payment_workflow.aster +16 -0
- package/corpus/tier3-fixtures/golden-core/payment_workflow.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/pii_param_return.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/pii_param_return.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/pii_result_type.aster +4 -0
- package/corpus/tier3-fixtures/golden-core/pii_result_type.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/type_inference_cnl.aster +146 -0
- package/corpus/tier3-fixtures/golden-core/type_inference_cnl.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/workflow-diamond.aster +19 -0
- package/corpus/tier3-fixtures/golden-core/workflow-diamond.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-core/workflow-linear__golden-core.aster +22 -0
- package/corpus/tier3-fixtures/golden-core/workflow-linear__golden-core.meta.json +9 -0
- package/corpus/tier3-fixtures/golden-diagnostics/pii_http_violation__golden-diagnostics.aster +4 -0
- package/corpus/tier3-fixtures/golden-diagnostics/pii_http_violation__golden-diagnostics.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/01-hello.aster +8 -0
- package/corpus/tier3-fixtures/lexicon-i18n/01-hello.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/01-hello__i18n-en-US.aster +7 -0
- package/corpus/tier3-fixtures/lexicon-i18n/01-hello__i18n-en-US.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/01-hello__i18n-zh-CN.aster +8 -0
- package/corpus/tier3-fixtures/lexicon-i18n/01-hello__i18n-zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/02-types.aster +10 -0
- package/corpus/tier3-fixtures/lexicon-i18n/02-types.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/02-types__i18n-en-US.aster +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/02-types__i18n-en-US.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/02-types__i18n-zh-CN.aster +24 -0
- package/corpus/tier3-fixtures/lexicon-i18n/02-types__i18n-zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/03-functions.aster +27 -0
- package/corpus/tier3-fixtures/lexicon-i18n/03-functions.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/03-functions__i18n-en-US.aster +27 -0
- package/corpus/tier3-fixtures/lexicon-i18n/03-functions__i18n-en-US.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/03-functions__i18n-zh-CN.aster +27 -0
- package/corpus/tier3-fixtures/lexicon-i18n/03-functions__i18n-zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/04-control-flow.aster +35 -0
- package/corpus/tier3-fixtures/lexicon-i18n/04-control-flow.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/04-control-flow__i18n-en-US.aster +35 -0
- package/corpus/tier3-fixtures/lexicon-i18n/04-control-flow__i18n-en-US.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/04-control-flow__i18n-zh-CN.aster +35 -0
- package/corpus/tier3-fixtures/lexicon-i18n/04-control-flow__i18n-zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/05-patterns.aster +27 -0
- package/corpus/tier3-fixtures/lexicon-i18n/05-patterns.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/05-patterns__i18n-en-US.aster +27 -0
- package/corpus/tier3-fixtures/lexicon-i18n/05-patterns__i18n-en-US.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/05-patterns__i18n-zh-CN.aster +27 -0
- package/corpus/tier3-fixtures/lexicon-i18n/05-patterns__i18n-zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/06-operators.aster +49 -0
- package/corpus/tier3-fixtures/lexicon-i18n/06-operators.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/06-operators__i18n-en-US.aster +49 -0
- package/corpus/tier3-fixtures/lexicon-i18n/06-operators__i18n-en-US.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/06-operators__i18n-zh-CN.aster +49 -0
- package/corpus/tier3-fixtures/lexicon-i18n/06-operators__i18n-zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/arithmetic.aster +24 -0
- package/corpus/tier3-fixtures/lexicon-i18n/arithmetic.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/hello__zh-CN.aster +6 -0
- package/corpus/tier3-fixtures/lexicon-i18n/hello__zh-CN.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/loan_decision.aster +21 -0
- package/corpus/tier3-fixtures/lexicon-i18n/loan_decision.meta.json +9 -0
- package/corpus/tier3-fixtures/lexicon-i18n/user_greeting.aster +10 -0
- package/corpus/tier3-fixtures/lexicon-i18n/user_greeting.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly1.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly1.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly1.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly1.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly10.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly10.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly10.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly10.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly11.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly11.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly11.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly11.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly12.in.aster +6 -0
- package/corpus/tier3-fixtures/lossless/ugly12.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly12.out.aster +5 -0
- package/corpus/tier3-fixtures/lossless/ugly12.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly13.in.aster +6 -0
- package/corpus/tier3-fixtures/lossless/ugly13.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly13.out.aster +6 -0
- package/corpus/tier3-fixtures/lossless/ugly13.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly14.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly14.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly14.out.aster +6 -0
- package/corpus/tier3-fixtures/lossless/ugly14.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly2.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly2.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly2.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly2.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly3.in.aster +6 -0
- package/corpus/tier3-fixtures/lossless/ugly3.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly3.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly3.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly4.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly4.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly4.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly4.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly5.in.aster +7 -0
- package/corpus/tier3-fixtures/lossless/ugly5.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly5.out.aster +5 -0
- package/corpus/tier3-fixtures/lossless/ugly5.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly6.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly6.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly6.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly6.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly7.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly7.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly7.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly7.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly8.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly8.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly8.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly8.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly9.in.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly9.in.meta.json +9 -0
- package/corpus/tier3-fixtures/lossless/ugly9.out.aster +4 -0
- package/corpus/tier3-fixtures/lossless/ugly9.out.meta.json +9 -0
- package/corpus/tier3-fixtures/lsp/a.aster +5 -0
- package/corpus/tier3-fixtures/lsp/a.meta.json +9 -0
- package/corpus/tier3-fixtures/lsp/b.aster +5 -0
- package/corpus/tier3-fixtures/lsp/b.meta.json +9 -0
- package/corpus/tier3-fixtures/lsp/bar.aster +7 -0
- package/corpus/tier3-fixtures/lsp/bar.meta.json +9 -0
- package/corpus/tier3-fixtures/lsp/foo.aster +7 -0
- package/corpus/tier3-fixtures/lsp/foo.meta.json +9 -0
- package/corpus/tier3-fixtures/parser-error/simple_function.aster +4 -0
- package/corpus/tier3-fixtures/parser-error/simple_function.meta.json +9 -0
- package/corpus/tier3-fixtures/parser-error/test-bad-syntax.aster +4 -0
- package/corpus/tier3-fixtures/parser-error/test-bad-syntax.meta.json +9 -0
- package/corpus/tier3-fixtures/parser-error/test-number-type.aster +6 -0
- package/corpus/tier3-fixtures/parser-error/test-number-type.meta.json +9 -0
- package/corpus/tier3-fixtures/parser-error/test_if_syntax.aster +8 -0
- package/corpus/tier3-fixtures/parser-error/test_if_syntax.meta.json +7 -0
- package/corpus/tier3-fixtures/parser-error/with_data_type.aster +4 -0
- package/corpus/tier3-fixtures/parser-error/with_data_type.meta.json +9 -0
- package/corpus/tier3-fixtures/policy-converter/async_policy.aster +9 -0
- package/corpus/tier3-fixtures/policy-converter/async_policy.meta.json +9 -0
- package/corpus/tier3-fixtures/policy-converter/data_policy.aster +9 -0
- package/corpus/tier3-fixtures/policy-converter/data_policy.meta.json +9 -0
- package/corpus/tier3-fixtures/policy-converter/effects_policy.aster +7 -0
- package/corpus/tier3-fixtures/policy-converter/effects_policy.meta.json +9 -0
- package/corpus/tier3-fixtures/policy-converter/simple_policy.aster +7 -0
- package/corpus/tier3-fixtures/policy-converter/simple_policy.meta.json +9 -0
- package/corpus/tier3-fixtures/runtime-retry/retry_max_attempts.aster +13 -0
- package/corpus/tier3-fixtures/runtime-retry/retry_max_attempts.meta.json +9 -0
- package/corpus/tier3-fixtures/runtime-retry/retry_success.aster +13 -0
- package/corpus/tier3-fixtures/runtime-retry/retry_success.meta.json +9 -0
- package/corpus/tier3-fixtures/runtime-retry/retry_with_timeout.aster +4 -0
- package/corpus/tier3-fixtures/runtime-retry/retry_with_timeout.meta.json +9 -0
- package/corpus/tier3-fixtures/truffle/smoke-test.aster +4 -0
- package/corpus/tier3-fixtures/truffle/smoke-test.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/async_duplicate_start.aster +7 -0
- package/corpus/tier3-fixtures/type-checker/async_duplicate_start.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/async_duplicate_wait.aster +7 -0
- package/corpus/tier3-fixtures/type-checker/async_duplicate_wait.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/async_missing_wait.aster +5 -0
- package/corpus/tier3-fixtures/type-checker/async_missing_wait.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/async_wait_not_started.aster +5 -0
- package/corpus/tier3-fixtures/type-checker/async_wait_not_started.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/basic_types.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/basic_types.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/capability_missing_decl.aster +5 -0
- package/corpus/tier3-fixtures/type-checker/capability_missing_decl.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/effect_missing_cpu.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/effect_missing_cpu.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/effect_missing_io.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/effect_missing_io.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/effect_var_basic.aster +8 -0
- package/corpus/tier3-fixtures/type-checker/effect_var_basic.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/generics.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/generics.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/inventory_capability_missing_io.aster +7 -0
- package/corpus/tier3-fixtures/type-checker/inventory_capability_missing_io.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/inventory_capability_success.aster +9 -0
- package/corpus/tier3-fixtures/type-checker/inventory_capability_success.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/lambda_with_effects.aster +9 -0
- package/corpus/tier3-fixtures/type-checker/lambda_with_effects.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/list_literal_mismatch.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/list_literal_mismatch.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/payment_capability_missing_io.aster +7 -0
- package/corpus/tier3-fixtures/type-checker/payment_capability_missing_io.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/payment_capability_success.aster +9 -0
- package/corpus/tier3-fixtures/type-checker/payment_capability_success.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/pii_http_violation__type-checker.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/pii_http_violation__type-checker.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/return_type_mismatch.aster +4 -0
- package/corpus/tier3-fixtures/type-checker/return_type_mismatch.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/type_mismatch_assign.aster +7 -0
- package/corpus/tier3-fixtures/type-checker/type_mismatch_assign.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/with_external_package.aster +6 -0
- package/corpus/tier3-fixtures/type-checker/with_external_package.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-compensate-new-cap.aster +11 -0
- package/corpus/tier3-fixtures/type-checker/workflow-compensate-new-cap.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-linear__type-checker.aster +23 -0
- package/corpus/tier3-fixtures/type-checker/workflow-linear__type-checker.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-missing-compensate.aster +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-missing-compensate.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-missing-io.aster +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-missing-io.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-type-mismatch.aster +11 -0
- package/corpus/tier3-fixtures/type-checker/workflow-type-mismatch.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-undeclared-capability.aster +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow-undeclared-capability.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow_retry_exponential.aster +13 -0
- package/corpus/tier3-fixtures/type-checker/workflow_retry_exponential.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow_retry_many_attempts.aster +13 -0
- package/corpus/tier3-fixtures/type-checker/workflow_retry_many_attempts.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow_retry_timeout_conflict.aster +15 -0
- package/corpus/tier3-fixtures/type-checker/workflow_retry_timeout_conflict.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow_timeout_too_long.aster +11 -0
- package/corpus/tier3-fixtures/type-checker/workflow_timeout_too_long.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker/workflow_timeout_too_short.aster +11 -0
- package/corpus/tier3-fixtures/type-checker/workflow_timeout_too_short.meta.json +9 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/external-packages/mock/pkg/analytics/remote.aster +4 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/external-packages/mock/pkg/analytics/remote.meta.json +7 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_a.aster +4 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_a.meta.json +7 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_b.aster +6 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_b.meta.json +7 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_b_external.aster +6 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_b_external.meta.json +7 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_b_missing_pkg.aster +6 -0
- package/corpus/tier3-fixtures/type-checker-cross-module/module_b_missing_pkg.meta.json +7 -0
- package/dist/loader.d.ts +55 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +97 -0
- package/dist/loader.js.map +1 -0
- package/dist/test/loader.test.d.ts +2 -0
- package/dist/test/loader.test.d.ts.map +1 -0
- package/dist/test/loader.test.js +45 -0
- package/dist/test/loader.test.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# ========================================
|
|
2
|
+
# Healthcare Demo: E-Prescription Workflow
|
|
3
|
+
# HIPAA Compliant Medication Handling
|
|
4
|
+
# ========================================
|
|
5
|
+
|
|
6
|
+
Module examples.healthcare.prescription_workflow.
|
|
7
|
+
|
|
8
|
+
# 处方数据结构
|
|
9
|
+
# 注意:实际生产环境中应使用 @pii 注解标记敏感字段
|
|
10
|
+
Define Prescription has
|
|
11
|
+
prescription_id,
|
|
12
|
+
patient_id,
|
|
13
|
+
patient_name,
|
|
14
|
+
medication,
|
|
15
|
+
dosage,
|
|
16
|
+
frequency,
|
|
17
|
+
prescriber_id,
|
|
18
|
+
prescriber_name.
|
|
19
|
+
|
|
20
|
+
Define DrugInteraction has
|
|
21
|
+
drug_a,
|
|
22
|
+
drug_b,
|
|
23
|
+
severity,
|
|
24
|
+
description.
|
|
25
|
+
|
|
26
|
+
Define PharmacyVerification has
|
|
27
|
+
verified,
|
|
28
|
+
pharmacist_id,
|
|
29
|
+
timestamp,
|
|
30
|
+
notes.
|
|
31
|
+
|
|
32
|
+
Define VerificationStep has
|
|
33
|
+
step_name,
|
|
34
|
+
passed,
|
|
35
|
+
message.
|
|
36
|
+
|
|
37
|
+
# 药物相互作用检查(简化版)
|
|
38
|
+
# 返回描述文本而非完整结构,简化类型推断
|
|
39
|
+
Rule check_warfarin_aspirin_interaction given medication, has_aspirin, produce:
|
|
40
|
+
If medication equals to "warfarin"
|
|
41
|
+
If has_aspirin
|
|
42
|
+
Return ok of "Increased bleeding risk".
|
|
43
|
+
Return err of "No interaction".
|
|
44
|
+
|
|
45
|
+
# 验证处方医生执照
|
|
46
|
+
Rule validate_prescriber given prescriber_id, produce:
|
|
47
|
+
If prescriber_id equals to ""
|
|
48
|
+
Return VerificationStep with step_name set to "validate_prescriber", passed set to false, message set to "Prescriber ID required".
|
|
49
|
+
Return VerificationStep with step_name set to "validate_prescriber", passed set to true, message set to "Prescriber validated".
|
|
50
|
+
|
|
51
|
+
# 验证剂量合理性
|
|
52
|
+
Rule verify_dosage given medication, dosage, produce:
|
|
53
|
+
If dosage equals to ""
|
|
54
|
+
Return VerificationStep with step_name set to "verify_dosage", passed set to false, message set to "Dosage required".
|
|
55
|
+
Return VerificationStep with step_name set to "verify_dosage", passed set to true, message set to "Dosage verified".
|
|
56
|
+
|
|
57
|
+
# 处方验证工作流(简化版)
|
|
58
|
+
Rule verify_prescription given rx, has_aspirin, produce:
|
|
59
|
+
Let prescriber_check be validate_prescriber(rx.prescriber_id).
|
|
60
|
+
If prescriber_check.passed equals to false
|
|
61
|
+
Return err of prescriber_check.message.
|
|
62
|
+
Let interaction_check be check_warfarin_aspirin_interaction(rx.medication, has_aspirin).
|
|
63
|
+
If Result.isOk(interaction_check)
|
|
64
|
+
Return err of "Drug interaction detected".
|
|
65
|
+
Let dosage_check be verify_dosage(rx.medication, rx.dosage).
|
|
66
|
+
If dosage_check.passed equals to false
|
|
67
|
+
Return err of dosage_check.message.
|
|
68
|
+
Let verification be PharmacyVerification with verified set to true, pharmacist_id set to "PH-001", timestamp set to "2025-11-27T10:00:00Z", notes set to "All checks passed".
|
|
69
|
+
Return ok of verification.
|
|
70
|
+
|
|
71
|
+
# 安全传输处方(脱敏患者信息)
|
|
72
|
+
Rule transmit_prescription_safe given rx, produce:
|
|
73
|
+
Return Text.concat("Rx ", rx.prescription_id, " for ", redact(rx.patient_name), ": ", rx.medication, " ", rx.dosage).
|
|
74
|
+
|
|
75
|
+
# 示例:无相互作用的处方验证
|
|
76
|
+
Rule demo_safe_prescription, produce:
|
|
77
|
+
Let rx be Prescription with prescription_id set to "RX-001", patient_id set to "P-001", patient_name set to "John Doe", medication set to "lisinopril", dosage set to "10mg", frequency set to "once daily", prescriber_id set to "DR-001", prescriber_name set to "Dr. Smith".
|
|
78
|
+
Return verify_prescription(rx, false).
|
|
79
|
+
|
|
80
|
+
# 示例:有药物相互作用的处方验证
|
|
81
|
+
Rule demo_interaction_prescription, produce:
|
|
82
|
+
Let rx be Prescription with prescription_id set to "RX-002", patient_id set to "P-002", patient_name set to "Jane Doe", medication set to "warfarin", dosage set to "5mg", frequency set to "once daily", prescriber_id set to "DR-002", prescriber_name set to "Dr. Jones".
|
|
83
|
+
Return verify_prescription(rx, true).
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# ========================================
|
|
2
|
+
# SOC2 Compliance Demo: Audit Trail Verification
|
|
3
|
+
# CC7.2 - System Operations Monitoring
|
|
4
|
+
# ========================================
|
|
5
|
+
|
|
6
|
+
Module examples.compliance.soc2_audit_demo.
|
|
7
|
+
|
|
8
|
+
# 审计记录结构(防篡改哈希链)
|
|
9
|
+
Define AuditRecord has
|
|
10
|
+
record_number,
|
|
11
|
+
tenant_id,
|
|
12
|
+
event_type,
|
|
13
|
+
timestamp,
|
|
14
|
+
policy_module,
|
|
15
|
+
policy_function,
|
|
16
|
+
success,
|
|
17
|
+
prev_hash,
|
|
18
|
+
current_hash.
|
|
19
|
+
|
|
20
|
+
Define ChainVerificationResult has
|
|
21
|
+
is_valid,
|
|
22
|
+
records_count,
|
|
23
|
+
broken_index,
|
|
24
|
+
reason.
|
|
25
|
+
|
|
26
|
+
Define ChainState has
|
|
27
|
+
is_valid,
|
|
28
|
+
records_count,
|
|
29
|
+
broken_index,
|
|
30
|
+
reason,
|
|
31
|
+
last_hash.
|
|
32
|
+
|
|
33
|
+
# 计算审计记录哈希
|
|
34
|
+
# @cpu 因为调用 Crypto.hash 属于 CPU 类能力(本地哈希计算)
|
|
35
|
+
Rule compute_hash given record, produce. It performs cpu:
|
|
36
|
+
Let content be Text.concat(record.prev_hash, record.event_type, record.timestamp, record.tenant_id, record.policy_module, record.policy_function, Bool.toString(record.success)).
|
|
37
|
+
Return Crypto.hash(content, "SHA-256").
|
|
38
|
+
|
|
39
|
+
# 验证单条记录完整性
|
|
40
|
+
# @cpu 通过 compute_hash 间接传播
|
|
41
|
+
Rule verify_record_integrity given record, produce. It performs cpu:
|
|
42
|
+
Let expected be compute_hash(record).
|
|
43
|
+
Return expected equals to record.current_hash.
|
|
44
|
+
|
|
45
|
+
# 验证链接
|
|
46
|
+
Rule verify_chain_link given record, expected_prev_hash, produce:
|
|
47
|
+
If expected_prev_hash equals to ""
|
|
48
|
+
Return record.prev_hash equals to "".
|
|
49
|
+
Return record.prev_hash equals to expected_prev_hash.
|
|
50
|
+
|
|
51
|
+
# 验证单条记录并更新链状态
|
|
52
|
+
Rule verify_one_record given state, record, produce. It performs cpu:
|
|
53
|
+
If state.is_valid equals to false
|
|
54
|
+
Return state.
|
|
55
|
+
If verify_record_integrity(record) equals to false
|
|
56
|
+
Let msg be Text.concat("Hash integrity failed at record ", Int.toString(record.record_number)).
|
|
57
|
+
Return ChainState with is_valid set to false, records_count set to state.records_count plus 1, broken_index set to record.record_number, reason set to msg, last_hash set to state.last_hash.
|
|
58
|
+
If verify_chain_link(record, state.last_hash) equals to false
|
|
59
|
+
Let msg be Text.concat("Chain link broken at record ", Int.toString(record.record_number)).
|
|
60
|
+
Return ChainState with is_valid set to false, records_count set to state.records_count plus 1, broken_index set to record.record_number, reason set to msg, last_hash set to state.last_hash.
|
|
61
|
+
Return ChainState with is_valid set to true, records_count set to state.records_count plus 1, broken_index set to 0, reason set to "", last_hash set to record.current_hash.
|
|
62
|
+
|
|
63
|
+
# 验证三条记录的链(简化版,避免使用 List.reduce)
|
|
64
|
+
Rule verify_three_records given r1, r2, r3, produce. It performs cpu:
|
|
65
|
+
Let s0 be ChainState with is_valid set to true, records_count set to 0, broken_index set to 0, reason set to "", last_hash set to "".
|
|
66
|
+
Let s1 be verify_one_record(s0, r1).
|
|
67
|
+
Let s2 be verify_one_record(s1, r2).
|
|
68
|
+
Let s3 be verify_one_record(s2, r3).
|
|
69
|
+
Return ChainVerificationResult with is_valid set to s3.is_valid, records_count set to s3.records_count, broken_index set to s3.broken_index, reason set to s3.reason.
|
|
70
|
+
|
|
71
|
+
# 验证两条记录的链(简化版,避免使用 List.reduce)
|
|
72
|
+
Rule verify_two_records given r1, r2, produce. It performs cpu:
|
|
73
|
+
Let s0 be ChainState with is_valid set to true, records_count set to 0, broken_index set to 0, reason set to "", last_hash set to "".
|
|
74
|
+
Let s1 be verify_one_record(s0, r1).
|
|
75
|
+
Let s2 be verify_one_record(s1, r2).
|
|
76
|
+
Return ChainVerificationResult with is_valid set to s2.is_valid, records_count set to s2.records_count, broken_index set to s2.broken_index, reason set to s2.reason.
|
|
77
|
+
|
|
78
|
+
# 验证审计链完整性(SOC2 CC7.2)- 简化版验证单条
|
|
79
|
+
Rule verify_audit_chain given record, produce. It performs cpu:
|
|
80
|
+
Let s0 be ChainState with is_valid set to true, records_count set to 0, broken_index set to 0, reason set to "", last_hash set to "".
|
|
81
|
+
Let s1 be verify_one_record(s0, record).
|
|
82
|
+
Return ChainVerificationResult with is_valid set to s1.is_valid, records_count set to s1.records_count, broken_index set to s1.broken_index, reason set to s1.reason.
|
|
83
|
+
|
|
84
|
+
# 生成 SOC2 合规报告
|
|
85
|
+
Rule generate_soc2_report given tenant_id, verification, produce:
|
|
86
|
+
If verification.is_valid
|
|
87
|
+
Return Text.concat("SOC2 CC7.2 PASSED: Audit chain verified for tenant ", tenant_id, ". Records checked: ", Int.toString(verification.records_count)).
|
|
88
|
+
Otherwise
|
|
89
|
+
Return Text.concat("SOC2 CC7.2 FAILED: Audit chain broken at record ", Int.toString(verification.broken_index), ". Reason: ", verification.reason).
|
|
90
|
+
|
|
91
|
+
# 创建 Genesis 记录
|
|
92
|
+
# @cpu 通过 compute_hash 间接传播
|
|
93
|
+
Rule create_genesis_record given tenant_id, produce. It performs cpu:
|
|
94
|
+
Let record be AuditRecord with record_number set to 1, tenant_id set to tenant_id, event_type set to "POLICY_EXECUTED", timestamp set to "2025-11-27T10:00:00Z", policy_module set to "examples.compliance", policy_function set to "verify_audit_chain", success set to true, prev_hash set to "", current_hash set to "".
|
|
95
|
+
Let hash be compute_hash(record).
|
|
96
|
+
Return AuditRecord with record_number set to record.record_number, tenant_id set to record.tenant_id, event_type set to record.event_type, timestamp set to record.timestamp, policy_module set to record.policy_module, policy_function set to record.policy_function, success set to record.success, prev_hash set to "", current_hash set to hash.
|
|
97
|
+
|
|
98
|
+
# 追加审计记录
|
|
99
|
+
# @cpu 通过 compute_hash 间接传播
|
|
100
|
+
Rule append_audit_record given prev, event_type, policy_func, success, produce. It performs cpu:
|
|
101
|
+
Let record be AuditRecord with record_number set to prev.record_number plus 1, tenant_id set to prev.tenant_id, event_type set to event_type, timestamp set to "2025-11-27T10:01:00Z", policy_module set to "examples.compliance", policy_function set to policy_func, success set to success, prev_hash set to prev.current_hash, current_hash set to "".
|
|
102
|
+
Let hash be compute_hash(record).
|
|
103
|
+
Return AuditRecord with record_number set to record.record_number, tenant_id set to record.tenant_id, event_type set to record.event_type, timestamp set to record.timestamp, policy_module set to record.policy_module, policy_function set to record.policy_function, success set to record.success, prev_hash set to record.prev_hash, current_hash set to hash.
|
|
104
|
+
|
|
105
|
+
# 示例:验证有效链
|
|
106
|
+
Rule demo_valid_chain, produce. It performs cpu:
|
|
107
|
+
Let genesis be create_genesis_record("tenant-001").
|
|
108
|
+
Let record2 be append_audit_record(genesis, "DATA_ACCESS", "get_patient", true).
|
|
109
|
+
Let record3 be append_audit_record(record2, "DATA_MODIFY", "update_record", true).
|
|
110
|
+
Return verify_three_records(genesis, record2, record3).
|
|
111
|
+
|
|
112
|
+
# 示例:检测篡改链
|
|
113
|
+
Rule demo_tampered_chain, produce. It performs cpu:
|
|
114
|
+
Let genesis be create_genesis_record("tenant-001").
|
|
115
|
+
Let record2 be append_audit_record(genesis, "DATA_ACCESS", "get_patient", true).
|
|
116
|
+
Let tampered_record2 be AuditRecord with record_number set to record2.record_number, tenant_id set to record2.tenant_id, event_type set to record2.event_type, timestamp set to record2.timestamp, policy_module set to record2.policy_module, policy_function set to record2.policy_function, success set to record2.success, prev_hash set to "tampered_hash_value", current_hash set to record2.current_hash.
|
|
117
|
+
Return verify_two_records(genesis, tampered_record2).
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Module std.io.
|
|
2
|
+
|
|
3
|
+
Rule print given msg, produce. It performs io:
|
|
4
|
+
Return IO.print(msg).
|
|
5
|
+
|
|
6
|
+
Rule readLine, produce. It performs io:
|
|
7
|
+
Return IO.readLine().
|
|
8
|
+
|
|
9
|
+
Rule readFile given path, produce. It performs io:
|
|
10
|
+
Return IO.readFile(path).
|
|
11
|
+
|
|
12
|
+
Rule writeFile given path, contents, produce. It performs io:
|
|
13
|
+
Return IO.writeFile(path, contents).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Module std.maybe_result.
|
|
2
|
+
|
|
3
|
+
Rule inc given x, produce:
|
|
4
|
+
Return x.
|
|
5
|
+
|
|
6
|
+
Rule maybeWithDefault given x, d, produce:
|
|
7
|
+
Return Maybe.withDefault(x, d).
|
|
8
|
+
|
|
9
|
+
Rule mapMaybe given x, produce:
|
|
10
|
+
Return Maybe.map(x, inc).
|
|
11
|
+
|
|
12
|
+
Rule logErr given e, produce:
|
|
13
|
+
Return e.
|
|
14
|
+
|
|
15
|
+
Rule mapOk given r, produce:
|
|
16
|
+
Return Result.mapOk(r, inc).
|
|
17
|
+
|
|
18
|
+
Rule tapError given r, produce:
|
|
19
|
+
Return Result.tapError(r, logErr).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Module test.symbolicops.
|
|
2
|
+
|
|
3
|
+
Rule testSymbolicComparison given x, y, produce:
|
|
4
|
+
Let lt be x < y.
|
|
5
|
+
Let gt be x > y.
|
|
6
|
+
Let lte be x <= y.
|
|
7
|
+
Let gte be x >= y.
|
|
8
|
+
Let neq be x != y.
|
|
9
|
+
Let eq be x = y.
|
|
10
|
+
Return eq.
|
|
11
|
+
|
|
12
|
+
Rule testSymbolicArithmetic given x, y, produce:
|
|
13
|
+
Let sum be x + y.
|
|
14
|
+
Let diff be x - y.
|
|
15
|
+
Let prod be x * y.
|
|
16
|
+
Let quot be x / y.
|
|
17
|
+
Return sum.
|
|
18
|
+
|
|
19
|
+
Rule testMixedOperators given x, y, produce:
|
|
20
|
+
Let result be x + y > 10.
|
|
21
|
+
Return result.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Module test.operators.
|
|
2
|
+
|
|
3
|
+
Define TestResult has value, message.
|
|
4
|
+
|
|
5
|
+
Rule testLessOrEqual given x, produce:
|
|
6
|
+
Return TestResult with value set to x, message set to "greater than 10".
|
|
7
|
+
|
|
8
|
+
Rule testGreaterOrEqual given x, produce:
|
|
9
|
+
Return TestResult with value set to x, message set to "less than 10".
|
|
10
|
+
|
|
11
|
+
Rule testNotEqual given x, produce:
|
|
12
|
+
Return TestResult with value set to x, message set to "Equal to 10".
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Module test.insurance.auto.
|
|
2
|
+
|
|
3
|
+
Define Driver has driverId, age, yearsLicensed, accidentCount, violationCount, creditScore.
|
|
4
|
+
|
|
5
|
+
Define Vehicle has vin, year, make, model, value, safetyRating.
|
|
6
|
+
|
|
7
|
+
Define PolicyQuote has approved, reason, monthlyPremium, deductible, coverageLimit.
|
|
8
|
+
|
|
9
|
+
Rule calculateAgeFactor given age, produce:
|
|
10
|
+
Return 0.
|
|
11
|
+
Rule calculateVehicleFactor given vehicle, produce:
|
|
12
|
+
Return 0.
|
|
13
|
+
Rule calculateBasePremium given driver, vehicle, produce:
|
|
14
|
+
Return 0.
|
|
15
|
+
Rule calculateRiskMultiplier given driver, vehicle, produce:
|
|
16
|
+
Return 0.
|
|
17
|
+
Rule determineDeductible given coverageType, creditScore, produce:
|
|
18
|
+
Return 0.
|
|
19
|
+
Rule determineCoverageLimit given coverageType, vehicleValue, produce:
|
|
20
|
+
Return 0.
|
|
21
|
+
Rule generateAutoQuote given driver, vehicle, coverageType, produce:
|
|
22
|
+
Return 0.
|
|
23
|
+
Rule testDriverUnder18, produce:
|
|
24
|
+
Return 0.
|
|
25
|
+
Rule testTooManyAccidents, produce:
|
|
26
|
+
Return 0.
|
|
27
|
+
Rule testTooManyViolations, produce:
|
|
28
|
+
Return 0.
|
|
29
|
+
Rule testYoungDriverPremiumCoverage, produce:
|
|
30
|
+
Return 0.
|
|
31
|
+
Rule testMiddleAgedDriverStandardCoverage, produce:
|
|
32
|
+
Return 0.
|
|
33
|
+
Rule testSeniorDriverBasicCoverage, produce:
|
|
34
|
+
Return 0.
|
|
35
|
+
Rule testPerfectDriverNewCar, produce:
|
|
36
|
+
Return 0.
|
|
37
|
+
Rule testHighRiskDriverOldCar, produce:
|
|
38
|
+
Return 0.
|
|
39
|
+
Rule testLowCreditScore, produce:
|
|
40
|
+
Return 0.
|
|
41
|
+
Rule testHighValueVehicle, produce:
|
|
42
|
+
Return 0.
|
|
43
|
+
Rule testOldVehicle, produce:
|
|
44
|
+
Return 0.
|
|
45
|
+
Rule testCalculateAgeFactorYoung, produce:
|
|
46
|
+
Return 0.
|
|
47
|
+
Rule testCalculateAgeFactorMiddle, produce:
|
|
48
|
+
Return 0.
|
|
49
|
+
Rule testCalculateAgeFactorSenior, produce:
|
|
50
|
+
Return 0.
|
|
51
|
+
Rule testCalculateVehicleFactorNew, produce:
|
|
52
|
+
Return 0.
|
|
53
|
+
Rule testCalculateVehicleFactorOld, produce:
|
|
54
|
+
Return 0.
|
|
55
|
+
Rule testCalculateRiskMultiplierClean, produce:
|
|
56
|
+
Return 0.
|
|
57
|
+
Rule testCalculateRiskMultiplierHighRisk, produce:
|
|
58
|
+
Return 0.
|
|
59
|
+
Rule testDetermineDeductiblePremiumHigh, produce:
|
|
60
|
+
Return 0.
|
|
61
|
+
Rule testDetermineDeductibleStandardLow, produce:
|
|
62
|
+
Return 0.
|
|
63
|
+
Rule testDetermineCoverageLimitPremium, produce:
|
|
64
|
+
Return 0.
|
|
65
|
+
Rule testDetermineCoverageLimitBasicHighValue, produce:
|
|
66
|
+
Return 0.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Module test.healthcare.claims.
|
|
2
|
+
|
|
3
|
+
Define Claim has claimId, patientId, providerId, serviceDate, amount, diagnosisCode.
|
|
4
|
+
|
|
5
|
+
Define Provider has providerId, inNetwork, specialtyType, qualityScore.
|
|
6
|
+
|
|
7
|
+
Define ClaimDecision has approved, reason, approvedAmount, denialCode, requiresReview.
|
|
8
|
+
|
|
9
|
+
Rule calculateClaimApproval given claimAmount, coverage, specialty, produce:
|
|
10
|
+
Return 0.
|
|
11
|
+
Rule processClaim given claim, provider, patientCoverage, produce:
|
|
12
|
+
Return 0.
|
|
13
|
+
Rule validateClaimDocumentation given claim, hasPreAuth, hasReferral, produce:
|
|
14
|
+
Return 0.
|
|
15
|
+
Rule testOutOfNetworkProvider, produce:
|
|
16
|
+
Return 0.
|
|
17
|
+
Rule testAmountExceedsLimit, produce:
|
|
18
|
+
Return 0.
|
|
19
|
+
Rule testLowQualityProvider, produce:
|
|
20
|
+
Return 0.
|
|
21
|
+
Rule testGeneralProviderNormalClaim, produce:
|
|
22
|
+
Return 0.
|
|
23
|
+
Rule testSpecialistProvider, produce:
|
|
24
|
+
Return 0.
|
|
25
|
+
Rule testSurgeryProvider, produce:
|
|
26
|
+
Return 0.
|
|
27
|
+
Rule testHighAmountInNetworkClaim, produce:
|
|
28
|
+
Return 0.
|
|
29
|
+
Rule testMinimalAmountClaim, produce:
|
|
30
|
+
Return 0.
|
|
31
|
+
Rule testValidDocumentationWithPreAuth, produce:
|
|
32
|
+
Return 0.
|
|
33
|
+
Rule testInvalidDocumentationNoPreAuth, produce:
|
|
34
|
+
Return 0.
|
|
35
|
+
Rule testInvalidDocumentationNoReferral, produce:
|
|
36
|
+
Return 0.
|
|
37
|
+
Rule testLowAmountNoPreAuthRequired, produce:
|
|
38
|
+
Return 0.
|
|
39
|
+
Rule testCalculateClaimApprovalGeneral, produce:
|
|
40
|
+
Return 0.
|
|
41
|
+
Rule testCalculateClaimApprovalSpecialist, produce:
|
|
42
|
+
Return 0.
|
|
43
|
+
Rule testCalculateClaimApprovalSurgery, produce:
|
|
44
|
+
Return 0.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Module test.complex.return.
|
|
2
|
+
|
|
3
|
+
Define Patient has insuranceType, age.
|
|
4
|
+
|
|
5
|
+
Define Service has basePrice, requiresPreAuth.
|
|
6
|
+
|
|
7
|
+
Define EligibilityCheck has eligible, reason, coveragePercent, estimatedCost, requiresPreAuth.
|
|
8
|
+
|
|
9
|
+
Rule determineMinorCoverage given insuranceType, service, produce:
|
|
10
|
+
Return 0.
|
|
11
|
+
Rule calculatePatientCost given basePrice, coveragePercent, produce:
|
|
12
|
+
Return 0.
|
|
13
|
+
Rule checkServiceEligibility given patient, service, produce:
|
|
14
|
+
Return 0.
|