@aster-cloud/aster-lang-ts 0.0.32 → 0.1.1

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 (262) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -4
  3. package/dist/peg/headers-parser.js +233 -468
  4. package/dist/scripts/aster.js +5 -5
  5. package/dist/scripts/aster.js.map +1 -1
  6. package/dist/scripts/cleanup-examples.js +1 -1
  7. package/dist/scripts/cleanup-examples.js.map +1 -1
  8. package/dist/scripts/emit-classfiles.js +1 -50
  9. package/dist/scripts/emit-classfiles.js.map +1 -1
  10. package/dist/scripts/emit-core.js +1 -1
  11. package/dist/scripts/emit-core.js.map +1 -1
  12. package/dist/scripts/golden.js +5 -8
  13. package/dist/scripts/golden.js.map +1 -1
  14. package/dist/scripts/lsp-build-index.js +1 -1
  15. package/dist/scripts/lsp-build-index.js.map +1 -1
  16. package/dist/scripts/lsp-capmanifest-codeaction-smoke.js +2 -2
  17. package/dist/scripts/lsp-capmanifest-codeaction-smoke.js.map +1 -1
  18. package/dist/scripts/lsp-codeaction-smoke.js +2 -2
  19. package/dist/scripts/lsp-codeaction-smoke.js.map +1 -1
  20. package/dist/scripts/lsp-health-smoke.js +1 -1
  21. package/dist/scripts/lsp-health-smoke.js.map +1 -1
  22. package/dist/scripts/lsp-missing-header-codeaction-smoke.js +1 -1
  23. package/dist/scripts/lsp-missing-header-codeaction-smoke.js.map +1 -1
  24. package/dist/scripts/lsp-multi-rename.test.js +1 -1
  25. package/dist/scripts/lsp-multi-rename.test.js.map +1 -1
  26. package/dist/scripts/lsp-punct-codeaction-smoke.js +1 -1
  27. package/dist/scripts/lsp-punct-codeaction-smoke.js.map +1 -1
  28. package/dist/scripts/lsp-streaming-progress-smoke.js +2 -2
  29. package/dist/scripts/lsp-streaming-progress-smoke.js.map +1 -1
  30. package/dist/scripts/perf-benchmark.js +1 -1
  31. package/dist/scripts/perf-benchmark.js.map +1 -1
  32. package/dist/scripts/perf-diagnostics.js +1 -1
  33. package/dist/scripts/perf-diagnostics.js.map +1 -1
  34. package/dist/scripts/profile-medium-project.js +1 -1
  35. package/dist/scripts/profile-medium-project.js.map +1 -1
  36. package/dist/scripts/repl.js +1 -1
  37. package/dist/scripts/repl.js.map +1 -1
  38. package/dist/scripts/typecheck-cli.js +1 -1
  39. package/dist/scripts/typecheck-cli.js.map +1 -1
  40. package/dist/scripts/update-eff-violation-expected.js +1 -1
  41. package/dist/scripts/update-eff-violation-expected.js.map +1 -1
  42. package/dist/scripts/verify-capabilities.js +1 -1
  43. package/dist/scripts/verify-capabilities.js.map +1 -1
  44. package/dist/src/ai/validator.d.ts.map +1 -1
  45. package/dist/src/ai/validator.js +13 -1
  46. package/dist/src/ai/validator.js.map +1 -1
  47. package/dist/src/ast/ast.js +1 -1
  48. package/dist/src/ast/ast.js.map +1 -1
  49. package/dist/src/browser.d.ts +10 -18
  50. package/dist/src/browser.d.ts.map +1 -1
  51. package/dist/src/browser.js +36 -33
  52. package/dist/src/browser.js.map +1 -1
  53. package/dist/src/cli/policy-converter.js +1 -1
  54. package/dist/src/cli/policy-converter.js.map +1 -1
  55. package/dist/src/config/lexicons/diagnostic-messages.d.ts +23 -0
  56. package/dist/src/config/lexicons/diagnostic-messages.d.ts.map +1 -0
  57. package/dist/src/config/lexicons/diagnostic-messages.js +130 -0
  58. package/dist/src/config/lexicons/diagnostic-messages.js.map +1 -0
  59. package/dist/src/config/lexicons/input-generation-rules.d.ts +22 -0
  60. package/dist/src/config/lexicons/input-generation-rules.d.ts.map +1 -0
  61. package/dist/src/config/lexicons/input-generation-rules.js +142 -0
  62. package/dist/src/config/lexicons/input-generation-rules.js.map +1 -0
  63. package/dist/src/config/lexicons/lsp-ui-texts.d.ts +42 -0
  64. package/dist/src/config/lexicons/lsp-ui-texts.d.ts.map +1 -0
  65. package/dist/src/config/lexicons/lsp-ui-texts.js +75 -0
  66. package/dist/src/config/lexicons/lsp-ui-texts.js.map +1 -0
  67. package/dist/src/config/lexicons/overlay-loader.d.ts +55 -0
  68. package/dist/src/config/lexicons/overlay-loader.d.ts.map +1 -0
  69. package/dist/src/config/lexicons/overlay-loader.js +30 -0
  70. package/dist/src/config/lexicons/overlay-loader.js.map +1 -0
  71. package/dist/src/config/lexicons/type-inference-rules.d.ts +19 -0
  72. package/dist/src/config/lexicons/type-inference-rules.d.ts.map +1 -0
  73. package/dist/src/config/lexicons/type-inference-rules.js +56 -0
  74. package/dist/src/config/lexicons/type-inference-rules.js.map +1 -0
  75. package/dist/src/config/lexicons/types.d.ts +10 -0
  76. package/dist/src/config/lexicons/types.d.ts.map +1 -1
  77. package/dist/src/config/lexicons/types.js.map +1 -1
  78. package/dist/src/config/semantic.d.ts +0 -8
  79. package/dist/src/config/semantic.d.ts.map +1 -1
  80. package/dist/src/config/semantic.js +0 -16
  81. package/dist/src/config/semantic.js.map +1 -1
  82. package/dist/src/core/index.d.ts +2 -0
  83. package/dist/src/core/index.d.ts.map +1 -1
  84. package/dist/src/core/index.js +1 -0
  85. package/dist/src/core/index.js.map +1 -1
  86. package/dist/src/core/interpreter.d.ts +37 -0
  87. package/dist/src/core/interpreter.d.ts.map +1 -0
  88. package/dist/src/core/interpreter.js +454 -0
  89. package/dist/src/core/interpreter.js.map +1 -0
  90. package/dist/src/diagnostics/diagnostics.d.ts +6 -7
  91. package/dist/src/diagnostics/diagnostics.d.ts.map +1 -1
  92. package/dist/src/diagnostics/diagnostics.js +15 -9
  93. package/dist/src/diagnostics/diagnostics.js.map +1 -1
  94. package/dist/src/diagnostics/error_codes.d.ts +2 -1
  95. package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
  96. package/dist/src/diagnostics/error_codes.js +85 -480
  97. package/dist/src/diagnostics/error_codes.js.map +1 -1
  98. package/dist/src/formatter.js +9 -24
  99. package/dist/src/formatter.js.map +1 -1
  100. package/dist/src/frontend/lexer.d.ts +1 -1
  101. package/dist/src/frontend/lexer.js +1 -1
  102. package/dist/src/index.d.ts +4 -3
  103. package/dist/src/index.d.ts.map +1 -1
  104. package/dist/src/index.js +3 -3
  105. package/dist/src/index.js.map +1 -1
  106. package/dist/src/jvm/emitter.js +3 -3
  107. package/dist/src/jvm/emitter.js.map +1 -1
  108. package/dist/src/lower_to_core.d.ts +3 -3
  109. package/dist/src/lower_to_core.js +3 -3
  110. package/dist/src/lsp/codeaction.d.ts +2 -1
  111. package/dist/src/lsp/codeaction.d.ts.map +1 -1
  112. package/dist/src/lsp/codeaction.js +17 -14
  113. package/dist/src/lsp/codeaction.js.map +1 -1
  114. package/dist/src/lsp/completion.d.ts +4 -51
  115. package/dist/src/lsp/completion.d.ts.map +1 -1
  116. package/dist/src/lsp/completion.js +16 -84
  117. package/dist/src/lsp/completion.js.map +1 -1
  118. package/dist/src/lsp/diagnostics.d.ts +3 -2
  119. package/dist/src/lsp/diagnostics.d.ts.map +1 -1
  120. package/dist/src/lsp/diagnostics.js +14 -7
  121. package/dist/src/lsp/diagnostics.js.map +1 -1
  122. package/dist/src/lsp/navigation/definition.js +1 -1
  123. package/dist/src/lsp/navigation/definition.js.map +1 -1
  124. package/dist/src/lsp/navigation/document-symbol.js +1 -1
  125. package/dist/src/lsp/navigation/document-symbol.js.map +1 -1
  126. package/dist/src/lsp/navigation/hover.d.ts +2 -1
  127. package/dist/src/lsp/navigation/hover.d.ts.map +1 -1
  128. package/dist/src/lsp/navigation/hover.js +23 -36
  129. package/dist/src/lsp/navigation/hover.js.map +1 -1
  130. package/dist/src/lsp/navigation.d.ts +1 -1
  131. package/dist/src/lsp/navigation.d.ts.map +1 -1
  132. package/dist/src/lsp/navigation.js +2 -2
  133. package/dist/src/lsp/navigation.js.map +1 -1
  134. package/dist/src/lsp/pii_diagnostics.js +3 -13
  135. package/dist/src/lsp/pii_diagnostics.js.map +1 -1
  136. package/dist/src/lsp/server.js +35 -8
  137. package/dist/src/lsp/server.js.map +1 -1
  138. package/dist/src/lsp/tokens.js +2 -2
  139. package/dist/src/lsp/tokens.js.map +1 -1
  140. package/dist/src/lsp/workspace/document-indexer.js +2 -2
  141. package/dist/src/lsp/workspace/document-indexer.js.map +1 -1
  142. package/dist/src/package/resolver.js +6 -6
  143. package/dist/src/package/resolver.js.map +1 -1
  144. package/dist/src/parser/constraint-parser.d.ts +1 -10
  145. package/dist/src/parser/constraint-parser.d.ts.map +1 -1
  146. package/dist/src/parser/constraint-parser.js +0 -30
  147. package/dist/src/parser/constraint-parser.js.map +1 -1
  148. package/dist/src/parser/context.d.ts +3 -1
  149. package/dist/src/parser/context.d.ts.map +1 -1
  150. package/dist/src/parser/context.js +2 -1
  151. package/dist/src/parser/context.js.map +1 -1
  152. package/dist/src/parser/decl-parser.d.ts +6 -10
  153. package/dist/src/parser/decl-parser.d.ts.map +1 -1
  154. package/dist/src/parser/decl-parser.js +86 -58
  155. package/dist/src/parser/decl-parser.js.map +1 -1
  156. package/dist/src/parser/expr-stmt-parser.js +3 -3
  157. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  158. package/dist/src/parser/field-variant-parser.js +1 -1
  159. package/dist/src/parser/field-variant-parser.js.map +1 -1
  160. package/dist/src/parser/import-parser.d.ts +1 -1
  161. package/dist/src/parser/import-parser.js +2 -2
  162. package/dist/src/parser/import-parser.js.map +1 -1
  163. package/dist/src/parser/input-generator.d.ts +20 -6
  164. package/dist/src/parser/input-generator.d.ts.map +1 -1
  165. package/dist/src/parser/input-generator.js +20 -403
  166. package/dist/src/parser/input-generator.js.map +1 -1
  167. package/dist/src/parser/type-inference.d.ts +10 -16
  168. package/dist/src/parser/type-inference.d.ts.map +1 -1
  169. package/dist/src/parser/type-inference.js +36 -127
  170. package/dist/src/parser/type-inference.js.map +1 -1
  171. package/dist/src/parser.d.ts +18 -5
  172. package/dist/src/parser.d.ts.map +1 -1
  173. package/dist/src/parser.js +11 -8
  174. package/dist/src/parser.js.map +1 -1
  175. package/dist/src/typecheck/context.d.ts +2 -0
  176. package/dist/src/typecheck/context.d.ts.map +1 -1
  177. package/dist/src/typecheck/context.js.map +1 -1
  178. package/dist/src/typecheck/diagnostics.d.ts +6 -0
  179. package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
  180. package/dist/src/typecheck/diagnostics.js +11 -3
  181. package/dist/src/typecheck/diagnostics.js.map +1 -1
  182. package/dist/src/typecheck/module.d.ts.map +1 -1
  183. package/dist/src/typecheck/module.js +8 -2
  184. package/dist/src/typecheck/module.js.map +1 -1
  185. package/dist/src/typecheck/workflow.js +10 -10
  186. package/dist/src/typecheck/workflow.js.map +1 -1
  187. package/dist/src/types/type-inference.d.ts +20 -0
  188. package/dist/src/types/type-inference.d.ts.map +1 -0
  189. package/dist/src/types/type-inference.js +8 -0
  190. package/dist/src/types/type-inference.js.map +1 -0
  191. package/dist/src/types.d.ts +0 -21
  192. package/dist/src/types.d.ts.map +1 -1
  193. package/dist/src/types.js.map +1 -1
  194. package/dist/test/benchmark.js +8 -8
  195. package/dist/test/benchmark.js.map +1 -1
  196. package/dist/test/compiler/depends-on.test.js +1 -1
  197. package/dist/test/compiler/depends-on.test.js.map +1 -1
  198. package/dist/test/compiler/workflow-emitter-helpers.js +1 -1
  199. package/dist/test/compiler/workflow-emitter-helpers.js.map +1 -1
  200. package/dist/test/e2e/runner/golden-runner.js +3 -3
  201. package/dist/test/e2e/runner/golden-runner.js.map +1 -1
  202. package/dist/test/fuzz/formatter-fuzz.test.js +5 -1
  203. package/dist/test/fuzz/formatter-fuzz.test.js.map +1 -1
  204. package/dist/test/integration/compliance/compliance-smoke.test.js +4 -1
  205. package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
  206. package/dist/test/integration/lsp/lsp-completion.test.js +1 -1
  207. package/dist/test/integration/lsp/lsp-completion.test.js.map +1 -1
  208. package/dist/test/integration/lsp/lsp-diagnostics.test.js +1 -1
  209. package/dist/test/integration/lsp/lsp-diagnostics.test.js.map +1 -1
  210. package/dist/test/integration/lsp/lsp-modules.test.js +1 -1
  211. package/dist/test/integration/lsp/lsp-modules.test.js.map +1 -1
  212. package/dist/test/integration/lsp/lsp-navigation.test.js +1 -1
  213. package/dist/test/integration/lsp/lsp-navigation.test.js.map +1 -1
  214. package/dist/test/integration/pipeline/pipeline.test.js +4 -4
  215. package/dist/test/integration/pipeline/pipeline.test.js.map +1 -1
  216. package/dist/test/property/lsp-props.test.js +2 -2
  217. package/dist/test/property/lsp-props.test.js.map +1 -1
  218. package/dist/test/property/property.test.js +15 -15
  219. package/dist/test/property/property.test.js.map +1 -1
  220. package/dist/test/regression/type-checker-golden.test.js +1 -1
  221. package/dist/test/regression/type-checker-golden.test.js.map +1 -1
  222. package/dist/test/type-checker/cross-module-packages.test.js +1 -1
  223. package/dist/test/type-checker/cross-module-packages.test.js.map +1 -1
  224. package/dist/test/type-checker/pii-propagation.test.js +1 -2
  225. package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
  226. package/dist/test/unit/async/async-discipline.test.js +1 -1
  227. package/dist/test/unit/async/async-discipline.test.js.map +1 -1
  228. package/dist/test/unit/async/async-schedule.test.js +1 -1
  229. package/dist/test/unit/async/async-schedule.test.js.map +1 -1
  230. package/dist/test/unit/browser/extract-schema.test.d.ts +2 -0
  231. package/dist/test/unit/browser/extract-schema.test.d.ts.map +1 -0
  232. package/dist/test/unit/browser/extract-schema.test.js +117 -0
  233. package/dist/test/unit/browser/extract-schema.test.js.map +1 -0
  234. package/dist/test/unit/emitter/emitter.test.js +30 -35
  235. package/dist/test/unit/emitter/emitter.test.js.map +1 -1
  236. package/dist/test/unit/interpreter/interpreter.test.d.ts +2 -0
  237. package/dist/test/unit/interpreter/interpreter.test.d.ts.map +1 -0
  238. package/dist/test/unit/interpreter/interpreter.test.js +507 -0
  239. package/dist/test/unit/interpreter/interpreter.test.js.map +1 -0
  240. package/dist/test/unit/keyword-translator.test.js +4 -4
  241. package/dist/test/unit/keyword-translator.test.js.map +1 -1
  242. package/dist/test/unit/lowering/lowering.test.js +2 -2
  243. package/dist/test/unit/lowering/lowering.test.js.map +1 -1
  244. package/dist/test/unit/lsp/pii-diagnostics.test.js +5 -5
  245. package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -1
  246. package/dist/test/unit/parser/parser.test.js +39 -37
  247. package/dist/test/unit/parser/parser.test.js.map +1 -1
  248. package/dist/test/unit/parser/type-inference.test.js +50 -32
  249. package/dist/test/unit/parser/type-inference.test.js.map +1 -1
  250. package/dist/test/unit/typecheck/async-discipline-extended.test.js +1 -1
  251. package/dist/test/unit/typecheck/async-discipline-extended.test.js.map +1 -1
  252. package/dist/test/unit/typecheck/effects-and-capabilities.test.js +4 -4
  253. package/dist/test/unit/typecheck/effects-and-capabilities.test.js.map +1 -1
  254. package/dist/test/unit/typecheck/regression-fixes.test.js +12 -12
  255. package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -1
  256. package/dist/test/unit/typecheck/type-inference.test.js +1 -1
  257. package/dist/test/unit/typecheck/type-inference.test.js.map +1 -1
  258. package/dist/test/unit/typecheck/type-system.test.js +2 -2
  259. package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
  260. package/dist/test/unit/typecheck/typecheck-advanced.test.js +3 -3
  261. package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
  262. package/package.json +6 -3
@@ -16,7 +16,7 @@
16
16
  * ```typescript
17
17
  * import { compile, compileWithDiagnostics } from '@aster-cloud/aster-lang-ts/browser';
18
18
  *
19
- * const source = `This module is app. To greet name String, produce String: Return "Hello, " + name.`;
19
+ * const source = `Module app. Rule greet given name as Text, produce Text: Return "Hello, " + name.`;
20
20
  * const result = compile(source);
21
21
  *
22
22
  * if (result.success) {
@@ -37,11 +37,15 @@ export { createKeywordTranslator, buildKeywordTranslationIndex, buildFullTransla
37
37
  export { Core, Effect } from './core/core_ir.js';
38
38
  export { TokenKind, KW } from './frontend/tokens.js';
39
39
  export { Node } from './ast/ast.js';
40
+ // Core IR interpreter (evaluate policies in the browser)
41
+ export { evaluate } from './core/interpreter.js';
40
42
  // Input value generation (for policy execution)
41
43
  export { generateFieldValue, generateInputValues, getFieldValueHint, } from './parser/input-generator.js';
42
44
  // Lexicons for multi-language support
43
45
  import { LexiconRegistry, initializeDefaultLexicons } from './config/lexicons/index.js';
44
46
  export { EN_US, ZH_CN, DE_DE, LexiconRegistry, initializeDefaultLexicons } from './config/lexicons/index.js';
47
+ // LSP UI texts (localized labels for hover, completion, etc.)
48
+ export { getLspUiTexts } from './config/lexicons/lsp-ui-texts.js';
45
49
  // ============================================================================
46
50
  // High-level compilation API (browser-friendly)
47
51
  // ============================================================================
@@ -51,6 +55,7 @@ import { parse } from './parser.js';
51
55
  import { lowerModule } from './lower_to_core.js';
52
56
  import { typecheckBrowser as _typecheckBrowser } from './typecheck/browser.js';
53
57
  import { createKeywordTranslator, needsKeywordTranslation } from './frontend/keyword-translator.js';
58
+ import { attachTypeInferenceRules } from './config/lexicons/type-inference-rules.js';
54
59
  import { DiagnosticError } from './diagnostics/diagnostics.js';
55
60
  /**
56
61
  * Compile CNL source code to Core IR
@@ -66,8 +71,8 @@ import { DiagnosticError } from './diagnostics/diagnostics.js';
66
71
  * @example
67
72
  * ```typescript
68
73
  * const result = compile(`
69
- * This module is pricing.
70
- * To calculate_discount amount Number, produce Number:
74
+ * Module pricing.
75
+ * Rule calculate_discount given amount as Number, produce Number:
71
76
  * If amount > 100 then Return amount * 0.1
72
77
  * Otherwise Return 0.
73
78
  * `);
@@ -102,26 +107,32 @@ export function compile(source, options) {
102
107
  tokens = translator.translateTokens(tokens);
103
108
  }
104
109
  // Step 4: Parse to AST (now with English tokens)
105
- const ast = parse(tokens);
110
+ const effectiveLex = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
111
+ const parseResult = parse(tokens, effectiveLex);
106
112
  // Check for parse errors
107
- if ('error' in ast || !ast) {
113
+ if (parseResult.diagnostics.length > 0 && parseResult.ast.decls.length === 0) {
108
114
  const result = {
109
115
  success: false,
110
- parseErrors: [{
111
- message: 'error' in ast ? ast.error : 'Parse failed',
112
- }],
116
+ parseErrors: parseResult.diagnostics.map(d => ({
117
+ message: d.message,
118
+ span: d.span,
119
+ })),
113
120
  };
114
121
  if (options?.includeIntermediates) {
115
122
  result.tokens = tokens;
116
123
  }
117
124
  return result;
118
125
  }
119
- // Step 4: Lower to Core IR
126
+ const ast = parseResult.ast;
127
+ // Step 5: Lower to Core IR
120
128
  const core = lowerModule(ast);
121
129
  const result = {
122
130
  success: true,
123
131
  core,
124
132
  };
133
+ if (parseResult.diagnostics.length > 0) {
134
+ result.parseErrors = parseResult.diagnostics.map(d => ({ message: d.message, span: d.span }));
135
+ }
125
136
  if (options?.includeIntermediates) {
126
137
  result.tokens = tokens;
127
138
  result.ast = ast;
@@ -166,9 +177,14 @@ export function validateSyntaxWithSpan(source, lexicon) {
166
177
  const translator = createKeywordTranslator(lexicon);
167
178
  tokens = translator.translateTokens(tokens);
168
179
  }
169
- const ast = parse(tokens);
170
- if ('error' in ast) {
171
- return [{ message: ast.error }];
180
+ const effectiveLexForValidation = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
181
+ const result = parse(tokens, effectiveLexForValidation);
182
+ // 错误恢复模式:直接返回收集到的诊断
183
+ if (result.diagnostics.length > 0) {
184
+ return result.diagnostics.map(d => ({
185
+ message: d.message,
186
+ span: d.span,
187
+ }));
172
188
  }
173
189
  return [];
174
190
  }
@@ -184,20 +200,6 @@ export function validateSyntaxWithSpan(source, lexicon) {
184
200
  return [{ message: error instanceof Error ? error.message : String(error) }];
185
201
  }
186
202
  }
187
- /**
188
- * Validate CNL source code syntax without full compilation
189
- *
190
- * This is a lightweight validation that only runs lexer and parser,
191
- * useful for real-time editor validation.
192
- *
193
- * @param source - CNL source code
194
- * @param lexicon - CNL lexicon (optional, defaults to EN_US)
195
- * @returns Array of error messages (empty if valid)
196
- * @deprecated Use validateSyntaxWithSpan for position information
197
- */
198
- export function validateSyntax(source, lexicon) {
199
- return validateSyntaxWithSpan(source, lexicon).map(e => e.message);
200
- }
201
203
  /**
202
204
  * Get tokens from CNL source (for syntax highlighting)
203
205
  *
@@ -278,9 +280,9 @@ function typeToString(type) {
278
280
  * @example
279
281
  * ```typescript
280
282
  * const result = extractSchema(`
281
- * This module is loan.
282
- * A LoanApplication has creditScore Int, amount Float, term Int.
283
- * To evaluate application LoanApplication, produce Bool:
283
+ * Module loan.
284
+ * Define LoanApplication has creditScore as Int, amount as Float, term as Int.
285
+ * Rule evaluate given application as LoanApplication, produce Bool:
284
286
  * If application.creditScore >= 700 then Return true
285
287
  * Otherwise Return false.
286
288
  * `);
@@ -303,14 +305,15 @@ export function extractSchema(source, options) {
303
305
  tokens = translator.translateTokens(tokens);
304
306
  }
305
307
  // Parse to AST
306
- const ast = parse(tokens);
307
- if ('error' in ast || !ast) {
308
+ const effectiveLexForSchema = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
309
+ const parseResult = parse(tokens, effectiveLexForSchema);
310
+ if (parseResult.diagnostics.length > 0 && parseResult.ast.decls.length === 0) {
308
311
  return {
309
312
  success: false,
310
- error: 'error' in ast ? ast.error : 'Parse failed',
313
+ error: parseResult.diagnostics[0]?.message ?? 'Parse failed',
311
314
  };
312
315
  }
313
- const module = ast;
316
+ const module = parseResult.ast;
314
317
  const moduleName = module.name ?? 'unknown';
315
318
  // Find all Data declarations (for struct field resolution)
316
319
  const dataDecls = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ function compileToJson(inputPath, outputPath) {
39
39
  // 编译管线:CNL → Canonical → Tokens → AST → Core IR
40
40
  const canonical = canonicalize(source);
41
41
  const tokens = lex(canonical);
42
- const ast = parse(tokens);
42
+ const { ast } = parse(tokens);
43
43
  const coreIR = lowerModule(ast);
44
44
  // 序列化为 JSON
45
45
  const metadata = {
@@ -1 +1 @@
1
- {"version":3,"file":"policy-converter.js","sourceRoot":"","sources":["../../../src/cli/policy-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-converter.js","sourceRoot":"","sources":["../../../src/cli/policy-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 语言特定的诊断消息翻译(overlay 模式)
3
+ *
4
+ * 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
5
+ * 在运行时将翻译附加到 Lexicon 对象上。
6
+ *
7
+ * 规则数据来源优先级:
8
+ * 1. 从语言包 JSON overlay 加载(通过 registerOverlay*)
9
+ * 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
10
+ */
11
+ import type { Lexicon } from './types.js';
12
+ import type { OverlayData } from './overlay-loader.js';
13
+ /**
14
+ * 从 JSON overlay 数据注册诊断消息翻译(覆盖内联 fallback)。
15
+ */
16
+ export declare function registerOverlayDiagnosticMessages(lexiconId: string, overlay: NonNullable<OverlayData['diagnosticMessages']>): void;
17
+ /**
18
+ * 从 JSON overlay 数据注册诊断帮助文本翻译(覆盖内联 fallback)。
19
+ */
20
+ export declare function registerOverlayDiagnosticHelp(lexiconId: string, overlay: NonNullable<OverlayData['diagnosticHelp']>): void;
21
+ /** 为 lexicon 附加诊断消息翻译(不修改原对象) */
22
+ export declare function attachDiagnosticMessages(lexicon: Lexicon): Lexicon;
23
+ //# sourceMappingURL=diagnostic-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-messages.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/diagnostic-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqGvD;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAElI;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAE1H;AAED,iCAAiC;AACjC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CASlE"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * 语言特定的诊断消息翻译(overlay 模式)
3
+ *
4
+ * 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
5
+ * 在运行时将翻译附加到 Lexicon 对象上。
6
+ *
7
+ * 规则数据来源优先级:
8
+ * 1. 从语言包 JSON overlay 加载(通过 registerOverlay*)
9
+ * 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
10
+ */
11
+ import { loadDiagnosticMessages, loadDiagnosticHelp } from './overlay-loader.js';
12
+ /** 内联 fallback:中文诊断消息 */
13
+ const ZH_CN_MESSAGES = {
14
+ E008: 'If分支返回类型不一致: then分支 {thenType} vs else分支 {elseType}',
15
+ E013: '构造 {type} 缺少必需字段 \'{field}\'',
16
+ E070: '禁止将 PII 数据赋给较低等级目标: {source} -> {target}',
17
+ E072: 'PII 等级 {level} 数据未脱敏即输出到 {sinkKind}',
18
+ E073: 'PII 参数类型不匹配: 期望 {expected}, 实际 {actual}',
19
+ E205: '函数 \'{func}\' 缺少 @io 效果声明,推断要求 IO。',
20
+ E206: '函数 \'{func}\' 缺少 @cpu 效果声明,推断要求 CPU(或 @io)。',
21
+ E207: '函数 \'{func}\' 声明了 @io,但推断未发现 IO 副作用。',
22
+ E208: '函数 \'{func}\' 声明了 @cpu,但推断未发现 CPU 副作用。',
23
+ E209: '函数 \'{func}\' 同时声明 @cpu 和 @io;由于需要 @io,@cpu 可移除。',
24
+ E210: '效应变量 {var} 未声明',
25
+ E211: '效应变量 {vars} 无法推断出具体效果',
26
+ W071: '检测到隐式 PII 等级提升: {source} -> {target}',
27
+ W074: '可能有 PII 数据流向 {sinkKind} 但缺少注解',
28
+ W105: 'Workflow retry 配置可能不合理: {reason}',
29
+ W106: 'Workflow timeout 配置可能不合理: {reason}',
30
+ };
31
+ /** 内联 fallback:中文帮助文本 */
32
+ const ZH_CN_HELP = {
33
+ E001: '检查类型标注与表达式的推断结果是否一致。',
34
+ E002: '确认变量先前绑定的类型与当前赋值结果一致。',
35
+ E003: '检查函数返回语句与声明的返回类型是否一致。',
36
+ E004: '在函数签名的 of 子句中显式声明使用到的类型变量。',
37
+ E005: '移除未使用的类型参数,避免造成误导。',
38
+ E006: '对于看起来像类型变量的名称,务必在 of 子句中声明。',
39
+ E007: '确认类型推断的多个使用点产出相同的具体类型。',
40
+ E008: '确保 if 两个分支返回类型保持一致。',
41
+ E009: '检查 match 每个分支的返回类型是否统一。',
42
+ E010: '仅在 Int 类型的匹配表达式中使用整数模式。',
43
+ E011: '检查构造体或数据类型的字段名称是否正确。',
44
+ E012: '校验字段初始化表达式的类型是否匹配声明。',
45
+ E013: '为数据构造提供声明中的所有必需字段。',
46
+ E014: '调整 not 调用的参数数量为 1。',
47
+ E015: '仅对 Maybe 或 Result 类型调用 await。',
48
+ E016: '移除重复的枚举分支,保持匹配语句简洁。',
49
+ E017: '为 Maybe 匹配补齐 null 与非 null 分支。',
50
+ E018: '补充所有未覆盖的枚举分支,或添加通配符。',
51
+ E019: '统一互操作调用的参数数值类型,避免隐式装箱与拓宽。',
52
+ E020: '确保列表字面量中的所有元素类型一致。',
53
+ E021: '传入 Maybe/Option 类型或显式包装值。',
54
+ E022: '确保补偿块返回 Result<Unit, E>,其中 E 为 step 错误类型。',
55
+ E023: '为包含 IO 副作用的 step 提供 compensate 块以便回滚。',
56
+ E024: '设置 retry.maxAttempts 为正整数。',
57
+ E025: '配置 timeout 秒数为正值,确保补偿逻辑可被触发。',
58
+ E026: '在函数头部添加 @io 效果声明,否则编译器拒绝 workflow 语句。',
59
+ E027: '在函数头部列出实际使用到的能力。',
60
+ E028: 'Compensate 只能重复主体已使用的能力。',
61
+ E029: '仅引用当前 workflow 中已声明的步骤名称,或修正依赖拼写。',
62
+ E030: '移除或重构循环依赖,确保步骤可拓扑排序执行。',
63
+ E070: '使用脱敏函数或为目标变量声明匹配的 @pii 等级。',
64
+ E072: '在输出前调用 redact() 或 tokenize() 以降低敏感度。',
65
+ E073: '检查函数签名,确保 PII 等级与类别一致。',
66
+ E100: '为不同的导入使用唯一别名,避免覆盖。',
67
+ E101: '在使用变量前先声明并初始化。',
68
+ E102: '选择不同的名称或检查是否存在意外的重复声明。',
69
+ E200: '为具有 IO 行为的函数声明 @io 效果。',
70
+ E201: '为 CPU 密集型函数声明 @cpu 或 @io 效果。',
71
+ E202: '若函数仅执行 CPU 工作,可移除多余的 @io 声明。',
72
+ E203: '确认是否需要 @io;若无 IO 行为可移除。',
73
+ E204: '移除多余的 @cpu 声明或增加相应的 CPU 工作。',
74
+ E205: '根据推断结果为函数添加 @io 效果。',
75
+ E206: '根据推断结果补齐 @cpu 或 @io 效果。',
76
+ E207: '确认是否需要保留 @io 声明。',
77
+ E208: '若无 CPU 副作用,可删除 @cpu 声明。',
78
+ E209: '保留 @io 即可满足需求,移除多余的 @cpu。',
79
+ E210: '在函数签名的效果参数列表中添加效应类型参数。',
80
+ E211: '参考调用或声明补充明确的效果(pure/cpu/io/workflow),或移除未使用的效应变量。',
81
+ E300: '更新能力清单或修改函数实现以符合限制。',
82
+ E301: '在函数头部声明实际使用到的能力。',
83
+ E302: '移除未使用的能力声明以保持清晰。',
84
+ E303: '在函数头部声明 @io 效果,或移除相关调用保持纯度。',
85
+ E304: '为函数添加 @cpu 或 @io 效果以覆盖 CPU 能力。',
86
+ E400: '使用加密通道(HTTPS)或脱敏处理后再传输 PII 数据。',
87
+ E401: '为敏感数据添加 @pii 标注以便跟踪。',
88
+ E402: '调整数据的敏感级别或更新流程要求。',
89
+ E403: '在处理 PII 数据前调用 checkConsent() 或添加 @consent_required 注解。',
90
+ E500: '对启动的异步任务调用 wait,确保执行完毕。',
91
+ E501: '确认 wait 的任务名称在 Start 中正确出现。',
92
+ E502: '避免重复启动同名任务,可复用已有任务或改用新名称。',
93
+ E503: '确保每个任务仅等待一次,或使用单独的同步机制。',
94
+ E504: '在 wait for 之前先执行 start,并确保两者位于兼容的控制路径。',
95
+ W071: '为等级变化添加显式类型注解以便审计。',
96
+ W074: '为数据增加 @pii 注解以追踪敏感数据流。',
97
+ W105: '检查 retry 总等待时间、maxAttempts 与 backoff 策略的组合是否合理。',
98
+ W106: '检查 timeout 值是否过大或过小。',
99
+ };
100
+ const MESSAGES_BY_LEXICON = {
101
+ 'zh-CN': ZH_CN_MESSAGES,
102
+ };
103
+ const HELP_BY_LEXICON = {
104
+ 'zh-CN': ZH_CN_HELP,
105
+ };
106
+ /**
107
+ * 从 JSON overlay 数据注册诊断消息翻译(覆盖内联 fallback)。
108
+ */
109
+ export function registerOverlayDiagnosticMessages(lexiconId, overlay) {
110
+ MESSAGES_BY_LEXICON[lexiconId] = loadDiagnosticMessages(overlay);
111
+ }
112
+ /**
113
+ * 从 JSON overlay 数据注册诊断帮助文本翻译(覆盖内联 fallback)。
114
+ */
115
+ export function registerOverlayDiagnosticHelp(lexiconId, overlay) {
116
+ HELP_BY_LEXICON[lexiconId] = loadDiagnosticHelp(overlay);
117
+ }
118
+ /** 为 lexicon 附加诊断消息翻译(不修改原对象) */
119
+ export function attachDiagnosticMessages(lexicon) {
120
+ if (lexicon.diagnosticMessages && lexicon.diagnosticHelp)
121
+ return lexicon;
122
+ const messages = lexicon.diagnosticMessages ?? MESSAGES_BY_LEXICON[lexicon.id];
123
+ const help = lexicon.diagnosticHelp ?? HELP_BY_LEXICON[lexicon.id];
124
+ return {
125
+ ...lexicon,
126
+ ...(messages !== undefined && { diagnosticMessages: messages }),
127
+ ...(help !== undefined && { diagnosticHelp: help }),
128
+ };
129
+ }
130
+ //# sourceMappingURL=diagnostic-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-messages.js","sourceRoot":"","sources":["../../../../src/config/lexicons/diagnostic-messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 语言特定的输入值生成规则(overlay 模式)
3
+ *
4
+ * 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
5
+ * 在运行时将规则附加到 Lexicon 对象上。
6
+ *
7
+ * 规则数据来源优先级:
8
+ * 1. 从语言包 JSON overlay 加载(通过 registerOverlayRules)
9
+ * 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
10
+ */
11
+ import type { ValueGenerationRule } from '../../parser/input-generator.js';
12
+ import type { Lexicon } from './types.js';
13
+ import type { OverlayData } from './overlay-loader.js';
14
+ /**
15
+ * 从 JSON overlay 数据注册输入生成规则(覆盖内联 fallback)。
16
+ */
17
+ export declare function registerOverlayInputGenerationRules(lexiconId: string, overlay: NonNullable<OverlayData['inputGenerationRules']>): void;
18
+ /** 获取指定 lexicon 的输入生成规则,回退到英文 */
19
+ export declare function getInputGenerationRules(lexicon?: Lexicon): readonly ValueGenerationRule[];
20
+ /** 为 lexicon 附加输入值生成规则(不修改原对象) */
21
+ export declare function attachInputGenerationRules(lexicon: Lexicon): Lexicon;
22
+ //# sourceMappingURL=input-generation-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-generation-rules.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/input-generation-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoHvD;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAEtI;AAED,iCAAiC;AACjC,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,mBAAmB,EAAE,CAGzF;AAED,kCAAkC;AAClC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKpE"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * 语言特定的输入值生成规则(overlay 模式)
3
+ *
4
+ * 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
5
+ * 在运行时将规则附加到 Lexicon 对象上。
6
+ *
7
+ * 规则数据来源优先级:
8
+ * 1. 从语言包 JSON overlay 加载(通过 registerOverlayRules)
9
+ * 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
10
+ */
11
+ import { loadInputGenerationRules } from './overlay-loader.js';
12
+ /** 内联 fallback:英文字段名值生成规则 */
13
+ const EN_US_RULES = [
14
+ // 金融领域
15
+ { pattern: /(?:credit|fico).*?score/i, generate: () => 720, priority: 10 },
16
+ { pattern: /(?:loan|mortgage|principal).*?amount/i, generate: () => 50000.0, priority: 10 },
17
+ { pattern: /(?:annual|monthly|yearly)?.*?(?:income|salary|earnings)/i, generate: () => 85000.0, priority: 9 },
18
+ { pattern: /(?:monthly)?.*?(?:debt|obligation|payment)/i, generate: () => 1500.0, priority: 8 },
19
+ { pattern: /(?:interest|apr|apy).*?rate/i, generate: () => 5.5, priority: 9 },
20
+ { pattern: /(?:rate|interest)$/i, generate: () => 5.5, priority: 7 },
21
+ { pattern: /(?:loan|term).*?(?:months?|years?|term)/i, generate: () => 36, priority: 9 },
22
+ { pattern: /dti|debt.*?(?:to|income).*?ratio/i, generate: () => 0.35, priority: 10 },
23
+ { pattern: /ltv|loan.*?(?:to|value).*?ratio/i, generate: () => 0.80, priority: 10 },
24
+ // 保险领域
25
+ { pattern: /premium/i, generate: () => 1200, priority: 9 },
26
+ { pattern: /deductible/i, generate: () => 500, priority: 9 },
27
+ { pattern: /(?:coverage|policy).*?limit/i, generate: () => 100000, priority: 9 },
28
+ { pattern: /(?:years?)?.*?licensed|driving.*?experience/i, generate: () => 8, priority: 8 },
29
+ { pattern: /accident.*?(?:count|number)/i, generate: () => 0, priority: 8 },
30
+ { pattern: /violation.*?(?:count|number)/i, generate: () => 1, priority: 8 },
31
+ // 用户/个人信息
32
+ { pattern: /^age$|.*?age$/i, generate: () => 35, priority: 10 },
33
+ { pattern: /(?:applicant|customer|user|member|patient).*?id/i, generate: () => 'USR-2024-001', priority: 10 },
34
+ { pattern: /(?:policy|claim|order|transaction).*?id/i, generate: () => 'POL-2024-001', priority: 10 },
35
+ { pattern: /(?:id|identifier)$/i, generate: () => 'ID-001', priority: 6 },
36
+ { pattern: /(?:applicant|customer|user|patient|member)?.*?name/i, generate: () => 'John Smith', priority: 8 },
37
+ { pattern: /email/i, generate: () => 'john.smith@example.com', priority: 9 },
38
+ { pattern: /phone|mobile|tel/i, generate: () => '+1-555-123-4567', priority: 9 },
39
+ { pattern: /address/i, generate: () => '123 Main Street, Anytown, ST 12345', priority: 8 },
40
+ { pattern: /(?:years?)?.*?(?:employed|employment|work.*?experience)/i, generate: () => 5, priority: 8 },
41
+ // 车辆信息
42
+ { pattern: /(?:vehicle)?.*?make/i, generate: () => 'Toyota', priority: 9 },
43
+ { pattern: /(?:vehicle)?.*?model/i, generate: () => 'Camry', priority: 9 },
44
+ { pattern: /(?:vehicle|car).*?year/i, generate: () => 2022, priority: 9 },
45
+ { pattern: /vin/i, generate: () => '1HGBH41JXMN109186', priority: 10 },
46
+ { pattern: /mileage|odometer/i, generate: () => 35000, priority: 9 },
47
+ // 医疗健康
48
+ { pattern: /patient.*?id/i, generate: () => 'PAT-2024-001', priority: 11 },
49
+ { pattern: /(?:diagnosis|icd).*?code/i, generate: () => 'J06.9', priority: 10 },
50
+ { pattern: /claim.*?amount/i, generate: () => 2500.0, priority: 10 },
51
+ { pattern: /service.*?(?:type|code)/i, generate: () => 'OFFICE_VISIT', priority: 8 },
52
+ { pattern: /provider.*?id/i, generate: () => 'PRV-001', priority: 9 },
53
+ // 通用数值
54
+ { pattern: /amount|price|cost|fee|total|balance|payment/i, generate: () => 1000.0, priority: 5 },
55
+ { pattern: /percentage|ratio|percent/i, generate: () => 0.25, priority: 6 },
56
+ { pattern: /count|number|qty|quantity/i, generate: () => 10, priority: 5 },
57
+ { pattern: /score|rating|level|rank/i, generate: () => 85, priority: 5 },
58
+ { pattern: /limit|max|min|threshold/i, generate: () => 1000, priority: 5 },
59
+ // 布尔
60
+ { pattern: /(?:is|has)?.*?(?:approved|verified|valid|active|enabled|confirmed)/i, generate: () => true, priority: 8 },
61
+ { pattern: /(?:is|has)?.*?(?:rejected|denied|disabled|blocked|suspended)/i, generate: () => false, priority: 8 },
62
+ { pattern: /^(?:has|is|can|should|does|did|will|was)/i, generate: () => true, priority: 6 },
63
+ { pattern: /flag$/i, generate: () => true, priority: 5 },
64
+ // 日期时间
65
+ { pattern: /birth.*?(?:date|day)|birthday/i, generate: () => '1990-01-15', priority: 10 },
66
+ { pattern: /(?:created|registered|signup|joined).*?(?:date|at|time)/i, generate: () => '2024-01-01T10:00:00Z', priority: 9 },
67
+ { pattern: /(?:expir|expire|expiry|expires).*?(?:date|at|time)/i, generate: () => '2025-12-31', priority: 9 },
68
+ { pattern: /(?:updated|modified|changed).*?(?:date|at|time)/i, generate: () => '2024-06-15T14:30:00Z', priority: 9 },
69
+ { pattern: /(?:date|time|timestamp)$/i, generate: () => new Date().toISOString().split('T')[0], priority: 4 },
70
+ // 状态/枚举
71
+ { pattern: /account.*?status/i, generate: () => 'ACTIVE', priority: 9 },
72
+ { pattern: /employment.*?(?:status|type)/i, generate: () => 'EMPLOYED', priority: 9 },
73
+ { pattern: /marital.*?status/i, generate: () => 'MARRIED', priority: 9 },
74
+ { pattern: /(?:housing|residence).*?(?:status|type)/i, generate: () => 'OWN', priority: 9 },
75
+ { pattern: /status/i, generate: () => 'ACTIVE', priority: 4 },
76
+ { pattern: /type|category|kind/i, generate: () => 'STANDARD', priority: 4 },
77
+ ].sort((a, b) => b.priority - a.priority);
78
+ /** 内联 fallback:中文字段名值生成规则 */
79
+ const ZH_CN_RULES = [
80
+ { pattern: /信用评分|信用分/, generate: () => 720, priority: 10 },
81
+ { pattern: /贷款金额/, generate: () => 50000.0, priority: 10 },
82
+ { pattern: /年收入/, generate: () => 85000.0, priority: 9 },
83
+ { pattern: /月收入/, generate: () => 7000.0, priority: 9 },
84
+ { pattern: /债务/, generate: () => 1500.0, priority: 8 },
85
+ { pattern: /利率/, generate: () => 5.5, priority: 9 },
86
+ { pattern: /贷款期限/, generate: () => 36, priority: 9 },
87
+ { pattern: /保费/, generate: () => 1200, priority: 9 },
88
+ { pattern: /免赔额/, generate: () => 500, priority: 9 },
89
+ { pattern: /保险限额/, generate: () => 100000, priority: 9 },
90
+ { pattern: /驾龄/, generate: () => 8, priority: 8 },
91
+ { pattern: /事故次数/, generate: () => 0, priority: 8 },
92
+ { pattern: /年龄/, generate: () => 35, priority: 10 },
93
+ { pattern: /姓名|申请人/, generate: () => '张三', priority: 8 },
94
+ { pattern: /邮箱/, generate: () => 'zhangsan@example.com', priority: 9 },
95
+ { pattern: /电话|手机/, generate: () => '13800138000', priority: 9 },
96
+ { pattern: /地址/, generate: () => '北京市朝阳区建国路1号', priority: 8 },
97
+ { pattern: /评分/, generate: () => 85, priority: 5 },
98
+ { pattern: /金额/, generate: () => 1000.0, priority: 5 },
99
+ { pattern: /数量|次数/, generate: () => 10, priority: 5 },
100
+ { pattern: /额度/, generate: () => 50000, priority: 8 },
101
+ { pattern: /账龄/, generate: () => 5, priority: 8 },
102
+ { pattern: /卡数/, generate: () => 3, priority: 8 },
103
+ { pattern: /百分比|比率|费率/, generate: () => 0.25, priority: 6 },
104
+ ];
105
+ /** 内联 fallback:德语字段名值生成规则 */
106
+ const DE_DE_RULES = [
107
+ { pattern: /Kreditbewertung/i, generate: () => 720, priority: 10 },
108
+ { pattern: /Darlehensbetrag/i, generate: () => 50000.0, priority: 10 },
109
+ { pattern: /Alter/i, generate: () => 35, priority: 10 },
110
+ { pattern: /Name/i, generate: () => 'Max Mustermann', priority: 8 },
111
+ { pattern: /Adresse/i, generate: () => 'Musterstraße 1, 10115 Berlin', priority: 8 },
112
+ { pattern: /Telefon/i, generate: () => '+49-30-12345678', priority: 9 },
113
+ { pattern: /Praemie/i, generate: () => 1200, priority: 9 },
114
+ { pattern: /Selbstbeteiligung/i, generate: () => 500, priority: 9 },
115
+ ];
116
+ const RULES_BY_LEXICON = {
117
+ 'en-US': EN_US_RULES,
118
+ 'zh-CN': ZH_CN_RULES,
119
+ 'de-DE': DE_DE_RULES,
120
+ };
121
+ /**
122
+ * 从 JSON overlay 数据注册输入生成规则(覆盖内联 fallback)。
123
+ */
124
+ export function registerOverlayInputGenerationRules(lexiconId, overlay) {
125
+ RULES_BY_LEXICON[lexiconId] = loadInputGenerationRules(overlay);
126
+ }
127
+ /** 获取指定 lexicon 的输入生成规则,回退到英文 */
128
+ export function getInputGenerationRules(lexicon) {
129
+ if (!lexicon)
130
+ return EN_US_RULES;
131
+ return lexicon.inputGenerationRules ?? RULES_BY_LEXICON[lexicon.id] ?? EN_US_RULES;
132
+ }
133
+ /** 为 lexicon 附加输入值生成规则(不修改原对象) */
134
+ export function attachInputGenerationRules(lexicon) {
135
+ if (lexicon.inputGenerationRules)
136
+ return lexicon;
137
+ const rules = RULES_BY_LEXICON[lexicon.id];
138
+ if (!rules)
139
+ return lexicon;
140
+ return { ...lexicon, inputGenerationRules: rules };
141
+ }
142
+ //# sourceMappingURL=input-generation-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-generation-rules.js","sourceRoot":"","sources":["../../../../src/config/lexicons/input-generation-rules.ts"],"names":[],"mappings":"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"}