@aster-cloud/aster-lang-ts 0.2.0 → 1.0.0

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 (171) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/src/ast/ast.d.ts +2 -2
  3. package/dist/src/ast/ast.d.ts.map +1 -1
  4. package/dist/src/ast/ast.js +5 -2
  5. package/dist/src/ast/ast.js.map +1 -1
  6. package/dist/src/browser.d.ts +16 -1
  7. package/dist/src/browser.d.ts.map +1 -1
  8. package/dist/src/browser.js +10 -2
  9. package/dist/src/browser.js.map +1 -1
  10. package/dist/src/config/effect_config.d.ts.map +1 -1
  11. package/dist/src/config/effect_config.js +7 -1
  12. package/dist/src/config/effect_config.js.map +1 -1
  13. package/dist/src/config/lexicons/de-DE.d.ts.map +1 -1
  14. package/dist/src/config/lexicons/de-DE.js +3 -0
  15. package/dist/src/config/lexicons/de-DE.js.map +1 -1
  16. package/dist/src/config/lexicons/en-US.d.ts.map +1 -1
  17. package/dist/src/config/lexicons/en-US.js +3 -0
  18. package/dist/src/config/lexicons/en-US.js.map +1 -1
  19. package/dist/src/config/lexicons/identifiers/registry.d.ts +9 -0
  20. package/dist/src/config/lexicons/identifiers/registry.d.ts.map +1 -1
  21. package/dist/src/config/lexicons/identifiers/registry.js +12 -0
  22. package/dist/src/config/lexicons/identifiers/registry.js.map +1 -1
  23. package/dist/src/config/lexicons/template.d.ts.map +1 -1
  24. package/dist/src/config/lexicons/template.js +7 -1
  25. package/dist/src/config/lexicons/template.js.map +1 -1
  26. package/dist/src/config/lexicons/zh-CN.d.ts.map +1 -1
  27. package/dist/src/config/lexicons/zh-CN.js +38 -20
  28. package/dist/src/config/lexicons/zh-CN.js.map +1 -1
  29. package/dist/src/config/semantic.d.ts +4 -0
  30. package/dist/src/config/semantic.d.ts.map +1 -1
  31. package/dist/src/config/semantic.js +4 -0
  32. package/dist/src/config/semantic.js.map +1 -1
  33. package/dist/src/config/token-kind.d.ts +7 -1
  34. package/dist/src/config/token-kind.d.ts.map +1 -1
  35. package/dist/src/config/token-kind.js +10 -2
  36. package/dist/src/config/token-kind.js.map +1 -1
  37. package/dist/src/core/core_ir.d.ts +2 -2
  38. package/dist/src/core/core_ir.d.ts.map +1 -1
  39. package/dist/src/core/core_ir.js +5 -2
  40. package/dist/src/core/core_ir.js.map +1 -1
  41. package/dist/src/core/interpreter.js +341 -12
  42. package/dist/src/core/interpreter.js.map +1 -1
  43. package/dist/src/diagnostics/error_codes.d.ts +2 -0
  44. package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
  45. package/dist/src/diagnostics/error_codes.js +11 -5
  46. package/dist/src/diagnostics/error_codes.js.map +1 -1
  47. package/dist/src/effects/effect_inference_browser.d.ts.map +1 -1
  48. package/dist/src/effects/effect_inference_browser.js +22 -4
  49. package/dist/src/effects/effect_inference_browser.js.map +1 -1
  50. package/dist/src/frontend/canonicalizer.d.ts +33 -0
  51. package/dist/src/frontend/canonicalizer.d.ts.map +1 -1
  52. package/dist/src/frontend/canonicalizer.js +86 -7
  53. package/dist/src/frontend/canonicalizer.js.map +1 -1
  54. package/dist/src/lower_to_core.js +2 -2
  55. package/dist/src/lower_to_core.js.map +1 -1
  56. package/dist/src/lsp/config.d.ts +13 -9
  57. package/dist/src/lsp/config.d.ts.map +1 -1
  58. package/dist/src/lsp/config.js +18 -5
  59. package/dist/src/lsp/config.js.map +1 -1
  60. package/dist/src/lsp/server.js +19 -7
  61. package/dist/src/lsp/server.js.map +1 -1
  62. package/dist/src/package/package-installer.js +2 -2
  63. package/dist/src/package/package-installer.js.map +1 -1
  64. package/dist/src/parser/context.d.ts.map +1 -1
  65. package/dist/src/parser/context.js +32 -12
  66. package/dist/src/parser/context.js.map +1 -1
  67. package/dist/src/parser/decl-parser.d.ts +2 -2
  68. package/dist/src/parser/decl-parser.d.ts.map +1 -1
  69. package/dist/src/parser/decl-parser.js +114 -13
  70. package/dist/src/parser/decl-parser.js.map +1 -1
  71. package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
  72. package/dist/src/parser/expr-stmt-parser.js +57 -1
  73. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  74. package/dist/src/parser/import-parser.d.ts +3 -2
  75. package/dist/src/parser/import-parser.d.ts.map +1 -1
  76. package/dist/src/parser/import-parser.js +12 -3
  77. package/dist/src/parser/import-parser.js.map +1 -1
  78. package/dist/src/typecheck/alias.d.ts +24 -0
  79. package/dist/src/typecheck/alias.d.ts.map +1 -0
  80. package/dist/src/typecheck/alias.js +30 -0
  81. package/dist/src/typecheck/alias.js.map +1 -0
  82. package/dist/src/typecheck/browser.d.ts +41 -4
  83. package/dist/src/typecheck/browser.d.ts.map +1 -1
  84. package/dist/src/typecheck/browser.js +111 -16
  85. package/dist/src/typecheck/browser.js.map +1 -1
  86. package/dist/src/typecheck/context.js +1 -1
  87. package/dist/src/typecheck/context.js.map +1 -1
  88. package/dist/src/typecheck/effects.js +1 -1
  89. package/dist/src/typecheck/effects.js.map +1 -1
  90. package/dist/src/typecheck/expression.js +1 -1
  91. package/dist/src/typecheck/expression.js.map +1 -1
  92. package/dist/src/typecheck/generics.js +1 -1
  93. package/dist/src/typecheck/generics.js.map +1 -1
  94. package/dist/src/typecheck/module.d.ts.map +1 -1
  95. package/dist/src/typecheck/module.js +13 -8
  96. package/dist/src/typecheck/module.js.map +1 -1
  97. package/dist/src/typecheck/pattern.js +1 -1
  98. package/dist/src/typecheck/pattern.js.map +1 -1
  99. package/dist/src/typecheck/pure.d.ts +66 -0
  100. package/dist/src/typecheck/pure.d.ts.map +1 -0
  101. package/dist/src/typecheck/pure.js +163 -0
  102. package/dist/src/typecheck/pure.js.map +1 -0
  103. package/dist/src/typecheck/statement.js +1 -1
  104. package/dist/src/typecheck/statement.js.map +1 -1
  105. package/dist/src/typecheck/type_system.d.ts +6 -1
  106. package/dist/src/typecheck/type_system.d.ts.map +1 -1
  107. package/dist/src/typecheck/type_system.js +61 -13
  108. package/dist/src/typecheck/type_system.js.map +1 -1
  109. package/dist/src/typecheck/utils.d.ts +4 -69
  110. package/dist/src/typecheck/utils.d.ts.map +1 -1
  111. package/dist/src/typecheck/utils.js +17 -170
  112. package/dist/src/typecheck/utils.js.map +1 -1
  113. package/dist/src/typecheck/workflow.js +1 -1
  114. package/dist/src/typecheck/workflow.js.map +1 -1
  115. package/dist/src/typecheck-pii.d.ts.map +1 -1
  116. package/dist/src/typecheck-pii.js +11 -1
  117. package/dist/src/typecheck-pii.js.map +1 -1
  118. package/dist/src/types/base.d.ts +1 -0
  119. package/dist/src/types/base.d.ts.map +1 -1
  120. package/dist/src/types.d.ts +17 -0
  121. package/dist/src/types.d.ts.map +1 -1
  122. package/dist/src/types.js.map +1 -1
  123. package/dist/test/type-checker/pii-propagation.test.js +24 -18
  124. package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
  125. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.d.ts +2 -0
  126. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.d.ts.map +1 -0
  127. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js +193 -0
  128. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js.map +1 -0
  129. package/dist/test/unit/browser/typecheck-browser-unsupported.test.js +21 -11
  130. package/dist/test/unit/browser/typecheck-browser-unsupported.test.js.map +1 -1
  131. package/dist/test/unit/canonicalizer/canonicalizer.test.js +120 -1
  132. package/dist/test/unit/canonicalizer/canonicalizer.test.js.map +1 -1
  133. package/dist/test/unit/canonicalizer/cjk-punctuation.test.d.ts +2 -0
  134. package/dist/test/unit/canonicalizer/cjk-punctuation.test.d.ts.map +1 -0
  135. package/dist/test/unit/canonicalizer/cjk-punctuation.test.js +118 -0
  136. package/dist/test/unit/canonicalizer/cjk-punctuation.test.js.map +1 -0
  137. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.d.ts +2 -0
  138. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.d.ts.map +1 -0
  139. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.js +40 -0
  140. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.js.map +1 -0
  141. package/dist/test/unit/config/lexicons/i18n.test.js +11 -3
  142. package/dist/test/unit/config/lexicons/i18n.test.js.map +1 -1
  143. package/dist/test/unit/config/lexicons/zh-CN.test.js +129 -132
  144. package/dist/test/unit/config/lexicons/zh-CN.test.js.map +1 -1
  145. package/dist/test/unit/keyword-translator.test.js +16 -19
  146. package/dist/test/unit/keyword-translator.test.js.map +1 -1
  147. package/dist/test/unit/lowering/lowering.test.js +12 -0
  148. package/dist/test/unit/lowering/lowering.test.js.map +1 -1
  149. package/dist/test/unit/parser/entry-annotations.test.d.ts +2 -0
  150. package/dist/test/unit/parser/entry-annotations.test.d.ts.map +1 -0
  151. package/dist/test/unit/parser/entry-annotations.test.js +110 -0
  152. package/dist/test/unit/parser/entry-annotations.test.js.map +1 -0
  153. package/dist/test/unit/parser/parser.test.js +30 -6
  154. package/dist/test/unit/parser/parser.test.js.map +1 -1
  155. package/dist/test/unit/scripts/verify-browser-entry.test.d.ts +2 -0
  156. package/dist/test/unit/scripts/verify-browser-entry.test.d.ts.map +1 -0
  157. package/dist/test/unit/scripts/verify-browser-entry.test.js +179 -0
  158. package/dist/test/unit/scripts/verify-browser-entry.test.js.map +1 -0
  159. package/dist/test/unit/typecheck/function-return-inference.test.d.ts +2 -0
  160. package/dist/test/unit/typecheck/function-return-inference.test.d.ts.map +1 -0
  161. package/dist/test/unit/typecheck/function-return-inference.test.js +79 -0
  162. package/dist/test/unit/typecheck/function-return-inference.test.js.map +1 -0
  163. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.d.ts +2 -0
  164. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.d.ts.map +1 -0
  165. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js +191 -0
  166. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js.map +1 -0
  167. package/dist/test/unit/typecheck/should-enforce-pii.test.js +25 -110
  168. package/dist/test/unit/typecheck/should-enforce-pii.test.js.map +1 -1
  169. package/dist/test/unit/typecheck/type-system.test.js +83 -3
  170. package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
  171. package/package.json +38 -9
@@ -64,13 +64,35 @@ class ReturnSignal {
64
64
  this.value = value;
65
65
  }
66
66
  }
67
+ /**
68
+ * 闭包运行时值:求值 Lambda 表达式的结果。捕获 lambda 的参数、函数体以及
69
+ * 定义处的词法环境(lexical capture),从而支持引用外层变量的高阶函数
70
+ * (如 List.map / Maybe.map 的回调)。与 aster-lang-truffle 的 LambdaValue
71
+ * 语义对齐:调用时把实参绑定到参数名,叠加捕获的环境后执行函数体。
72
+ */
73
+ class Closure {
74
+ params;
75
+ body;
76
+ capturedEnv;
77
+ __closure = true;
78
+ constructor(params, body, capturedEnv) {
79
+ this.params = params;
80
+ this.body = body;
81
+ this.capturedEnv = capturedEnv;
82
+ }
83
+ }
67
84
  /** 安全限制常量 */
68
85
  const MAX_STEPS = 10_000;
69
86
  const MAX_CALL_DEPTH = 50;
87
+ /** evalStdlibCall 的哨兵返回值:表示"不是已知 stdlib 调用"。用 Symbol 避免与任何合法返回值冲突。 */
88
+ const NOT_STDLIB = Symbol('not-stdlib');
70
89
  /** 内置运算符集合 */
71
90
  const BUILTIN_OPS = new Set([
72
- '+', '-', '*', '/',
73
- '>', '<', '>=', '<=', '==',
91
+ '+', '-', '*', '/', '//', '%',
92
+ // 比较运算符必须与 evalBinaryOp switch 分支一一对应。遗漏 '!='
93
+ // 会让 `not equal to`(降低为 Call(Name('!='), …))越过内置分发、
94
+ // 落入用户函数查找,从而抛出 "Undefined function '!='"。
95
+ '>', '<', '>=', '<=', '==', '!=',
74
96
  'and', 'or', 'not',
75
97
  ]);
76
98
  /**
@@ -213,14 +235,37 @@ class Interpreter {
213
235
  switch (pattern.kind) {
214
236
  case 'PatNull':
215
237
  return value === null || value === undefined;
216
- case 'PatName':
217
- // 通配符绑定:匹配任何值并绑定到变量
238
+ case 'PatName': {
239
+ // PatName 双语义,与 Java MatchNode.PatNameNode 对齐:
240
+ // - 大写开头(枚举变体/类型名,如 NotFound)→ 按名称相等匹配,不绑定。
241
+ // 否则第一个 PatName 臂会吞掉所有输入(match_enum/enum_wildcard bug)。
242
+ // - 小写开头(绑定变量,如 x/value)→ catch-all,匹配任意非 null 值并绑定。
243
+ const isVariant = /^[A-Z]/.test(pattern.name);
244
+ if (isVariant) {
245
+ if (value === null || value === undefined)
246
+ return false;
247
+ if (typeof value === 'string')
248
+ return value === pattern.name;
249
+ if (typeof value === 'object') {
250
+ const o = value;
251
+ // 枚举值 { value: "Invalid" } 或构造体 { __type: "Color" }
252
+ return o.value === pattern.name || o.__type === pattern.name;
253
+ }
254
+ return false;
255
+ }
256
+ // 小写:catch-all 绑定(Java 端非 null 才匹配)。
257
+ if (value === null || value === undefined)
258
+ return false;
218
259
  env.set(pattern.name, value);
219
260
  return true;
261
+ }
220
262
  case 'PatInt':
221
263
  return value === pattern.value;
222
264
  case 'PatCtor': {
223
- // 构造器模式匹配(如 Ok(x)、Some(x)
265
+ // 构造器模式匹配(如 Ok(value)、Err(err)、Some(x)、User(id, name))。
266
+ // 与 aster-lang-truffle MatchNode.PatCtorNode 对齐:按位置(非按名)把
267
+ // 构造体的非 __type 字段值依序绑定到模式的 bind 名——因为 Ok(value)/
268
+ // Err(err) 的载荷统一存于 `value` 字段,绑定名却各异,按名绑定会落空。
224
269
  if (value === null || value === undefined || typeof value !== 'object') {
225
270
  return false;
226
271
  }
@@ -228,10 +273,14 @@ class Interpreter {
228
273
  if (obj.__type !== pattern.typeName) {
229
274
  return false;
230
275
  }
231
- // 绑定字段到 names
276
+ const fieldValues = Object.keys(obj)
277
+ .filter((k) => k !== '__type')
278
+ .map((k) => obj[k]);
232
279
  if (pattern.names) {
233
- for (const name of pattern.names) {
234
- env.set(name, obj[name]);
280
+ for (let i = 0; i < pattern.names.length; i++) {
281
+ const bn = pattern.names[i];
282
+ if (bn && bn !== '_')
283
+ env.set(bn, fieldValues[i]);
235
284
  }
236
285
  }
237
286
  return true;
@@ -274,7 +323,8 @@ class Interpreter {
274
323
  case 'Some':
275
324
  return { __type: 'Some', value: this.evalExpr(expr.expr, env) };
276
325
  case 'Lambda':
277
- throw new InterpreterError('Lambda expressions are not supported in the interpreter');
326
+ // 词法捕获当前环境的快照,避免后续 Set 改写影响已创建的闭包。
327
+ return new Closure(expr.params, expr.body, new Map(env));
278
328
  case 'Await':
279
329
  throw new InterpreterError('Await expressions are not supported in the interpreter');
280
330
  default:
@@ -321,15 +371,41 @@ class Interpreter {
321
371
  if (call.target.kind === 'Name' && BUILTIN_OPS.has(call.target.name)) {
322
372
  return this.evalBuiltinOp(call.target.name, call.args, env);
323
373
  }
324
- // 用户定义函数调用
374
+ // Ok/Err/Some 的调用形式(如 `Ok(x)`)——TS 前端把它降为 Call{Name 'Ok'}
375
+ // 而非 Expr.Ok(关键字形式 `ok of x` 才降为 Expr.Ok)。与 Java AstBuilder
376
+ // 对 Ok/Err/Some/None 调用形式的特判对齐,统一构造判定结果。
377
+ if (call.target.kind === 'Name') {
378
+ const ctor = call.target.name;
379
+ if ((ctor === 'Ok' || ctor === 'Err' || ctor === 'Some') && call.args.length === 1) {
380
+ return { __type: ctor, value: this.evalExpr(call.args[0], env) };
381
+ }
382
+ if (ctor === 'None' && call.args.length === 0) {
383
+ return null;
384
+ }
385
+ }
386
+ // stdlib namespaced builtin(Text.* 等),与 Java Builtins 对齐。
387
+ // 必须在用户函数查找之前,否则 Text.concat 落入未定义函数分支。
388
+ if (call.target.kind === 'Name' && call.target.name.includes('.')) {
389
+ const stdlib = this.evalStdlibCall(call.target.name, call.args, env);
390
+ if (stdlib !== NOT_STDLIB)
391
+ return stdlib;
392
+ }
393
+ // 函数调用:可能是用户定义的模块函数,或绑定在环境里的闭包变量
394
+ // (Let f be function with …)。先求值参数,再分派。
325
395
  if (call.target.kind === 'Name') {
326
396
  const funcName = call.target.name;
397
+ const argValues = call.args.map(arg => this.evalExpr(arg, env));
398
+ // 闭包变量优先(局部绑定遮蔽同名模块函数)。
399
+ if (env.has(funcName)) {
400
+ const bound = env.get(funcName);
401
+ if (bound instanceof Closure) {
402
+ return this.applyClosure(bound, argValues);
403
+ }
404
+ }
327
405
  const func = this.funcs.get(funcName);
328
406
  if (!func) {
329
407
  throw new InterpreterError(`Undefined function '${funcName}'`);
330
408
  }
331
- // 求值参数
332
- const argValues = call.args.map(arg => this.evalExpr(arg, env));
333
409
  // 构建函数环境
334
410
  const funcEnv = new Map();
335
411
  for (let i = 0; i < func.params.length; i++) {
@@ -340,6 +416,243 @@ class Interpreter {
340
416
  }
341
417
  throw new InterpreterError(`Cannot call expression of kind '${call.target.kind}'`);
342
418
  }
419
+ /**
420
+ * 调用一个可调用值(闭包或具名模块函数),把实参按位置绑定到形参后执行。
421
+ * 供高阶 stdlib(List.map / List.filter / List.reduce / Maybe.map /
422
+ * Result.mapOk 等)统一复用——回调既可以是 \`Let f be function …\` 产生的
423
+ * 闭包,也可以是直接传入的模块函数名(如 \`List.map(xs, id)\`)。
424
+ */
425
+ applyCallable(callable, args) {
426
+ if (callable instanceof Closure) {
427
+ return this.applyClosure(callable, args);
428
+ }
429
+ if (typeof callable === 'string') {
430
+ // 具名模块函数(作为一等函数传入)。
431
+ const func = this.funcs.get(callable);
432
+ if (!func) {
433
+ throw new InterpreterError(`Undefined function '${callable}' used as callback`);
434
+ }
435
+ const funcEnv = new Map();
436
+ for (let i = 0; i < func.params.length; i++) {
437
+ funcEnv.set(func.params[i].name, i < args.length ? args[i] : null);
438
+ }
439
+ return this.invokeFunc(func, funcEnv);
440
+ }
441
+ throw new InterpreterError('Expected a function (lambda or function name) as callback');
442
+ }
443
+ /** 以捕获环境为基底,绑定实参后执行闭包体。 */
444
+ applyClosure(closure, args) {
445
+ const callEnv = new Map(closure.capturedEnv);
446
+ for (let i = 0; i < closure.params.length; i++) {
447
+ callEnv.set(closure.params[i].name, i < args.length ? args[i] : null);
448
+ }
449
+ this.callDepth++;
450
+ if (this.callDepth > MAX_CALL_DEPTH) {
451
+ throw new InterpreterError(`Maximum call depth (${MAX_CALL_DEPTH}) exceeded`);
452
+ }
453
+ try {
454
+ this.execBlock(closure.body, callEnv);
455
+ return null;
456
+ }
457
+ catch (signal) {
458
+ if (signal instanceof ReturnSignal)
459
+ return signal.value;
460
+ throw signal;
461
+ }
462
+ finally {
463
+ this.callDepth--;
464
+ }
465
+ }
466
+ /**
467
+ * stdlib 命名空间 builtin(Text.* 等),语义与 aster-lang-truffle Builtins
468
+ * 对齐。返回 NOT_STDLIB 表示不是已知 stdlib 调用(交回用户函数查找)。
469
+ * 目前覆盖语料库用到的 Text.* 子集;未来 List/Map/Result 可同法扩展。
470
+ */
471
+ evalStdlibCall(name, argExprs, env) {
472
+ const text = (v) => String(v);
473
+ const a = () => argExprs.map((e) => this.evalExpr(e, env));
474
+ // 解析"可调用"参数:若是引用模块函数的裸 Name(非局部变量),返回函数名字符串
475
+ // 供 applyCallable 按名调用(如 List.map(xs, id));否则正常求值(→ Closure)。
476
+ const callableArg = (idx) => {
477
+ const e = argExprs[idx];
478
+ if (e && e.kind === 'Name' && !env.has(e.name) && this.funcs.has(e.name)) {
479
+ return e.name;
480
+ }
481
+ return e ? this.evalExpr(e, env) : null;
482
+ };
483
+ switch (name) {
484
+ case 'Text.concat': {
485
+ const [x, y] = a();
486
+ return text(x) + text(y);
487
+ }
488
+ case 'Text.toUpper': return text(a()[0]).toUpperCase();
489
+ case 'Text.toLower': return text(a()[0]).toLowerCase();
490
+ case 'Text.length': return text(a()[0]).length;
491
+ case 'Text.startsWith': {
492
+ const [x, y] = a();
493
+ return text(x).startsWith(text(y));
494
+ }
495
+ case 'Text.contains': {
496
+ const [x, y] = a();
497
+ return text(x).includes(text(y));
498
+ }
499
+ case 'Text.indexOf': {
500
+ const [x, y] = a();
501
+ return text(x).indexOf(text(y));
502
+ }
503
+ case 'Text.equals': {
504
+ const [x, y] = a();
505
+ return text(x) === text(y);
506
+ }
507
+ case 'Text.split': {
508
+ const [x, y] = a();
509
+ return text(x).split(text(y));
510
+ }
511
+ case 'Text.trim': return text(a()[0]).trim();
512
+ // List.* (非 lambda 部分;List.map/filter/reduce 依赖 lambda,TS 暂不支持)
513
+ case 'List.empty': return [];
514
+ case 'List.length': {
515
+ const [l] = a();
516
+ return Array.isArray(l) ? l.length : 0;
517
+ }
518
+ case 'List.isEmpty': {
519
+ const [l] = a();
520
+ return Array.isArray(l) ? l.length === 0 : true;
521
+ }
522
+ case 'List.get': {
523
+ const [l, i] = a();
524
+ return Array.isArray(l) ? l[Number(i)] : null;
525
+ }
526
+ case 'List.contains': {
527
+ const [l, x] = a();
528
+ return Array.isArray(l) ? l.includes(x) : false;
529
+ }
530
+ case 'List.append': {
531
+ const [l, x] = a();
532
+ return Array.isArray(l) ? [...l, x] : [x];
533
+ }
534
+ case 'List.concat': {
535
+ const [l1, l2] = a();
536
+ return [...(Array.isArray(l1) ? l1 : []), ...(Array.isArray(l2) ? l2 : [])];
537
+ }
538
+ // Map.* — guest map 是普通对象 { key: value }
539
+ case 'Map.empty': return {};
540
+ case 'Map.get': {
541
+ const [m, k] = a();
542
+ return m && typeof m === 'object' ? m[String(k)] ?? null : null;
543
+ }
544
+ case 'Map.contains': {
545
+ const [m, k] = a();
546
+ return m && typeof m === 'object' ? String(k) in m : false;
547
+ }
548
+ case 'Map.size': {
549
+ const [m] = a();
550
+ return m && typeof m === 'object' ? Object.keys(m).length : 0;
551
+ }
552
+ // Maybe/Option/Result(非 lambda 部分)。Some/Ok/Err/None 形如 { __type, value }。
553
+ case 'Maybe.withDefault':
554
+ case 'Option.unwrapOr':
555
+ case 'Maybe.unwrapOr': {
556
+ const [x, d] = a();
557
+ const o = x;
558
+ return o && o.__type === 'Some' ? o.value : d;
559
+ }
560
+ case 'Maybe.isSome':
561
+ case 'Option.isSome': {
562
+ const [x] = a();
563
+ return x?.__type === 'Some';
564
+ }
565
+ case 'Maybe.isNone':
566
+ case 'Option.isNone': {
567
+ const [x] = a();
568
+ return x?.__type !== 'Some';
569
+ }
570
+ case 'Result.isOk': {
571
+ const [r] = a();
572
+ return r?.__type === 'Ok';
573
+ }
574
+ case 'Result.isErr': {
575
+ const [r] = a();
576
+ return r?.__type === 'Err';
577
+ }
578
+ // === 高阶(lambda)List 操作 ===
579
+ // List.map(list, fn) — fn 接收 (item),返回新列表。
580
+ case 'List.map': {
581
+ const list = this.evalExpr(argExprs[0], env);
582
+ const fn = callableArg(1);
583
+ if (!Array.isArray(list))
584
+ throw new InterpreterError(`List.map: expected List, got ${typeof list}`);
585
+ return list.map((item) => this.applyCallable(fn, [item]));
586
+ }
587
+ // List.filter(list, pred) — pred 接收 (item),返回布尔。
588
+ case 'List.filter': {
589
+ const list = this.evalExpr(argExprs[0], env);
590
+ const fn = callableArg(1);
591
+ if (!Array.isArray(list))
592
+ throw new InterpreterError(`List.filter: expected List, got ${typeof list}`);
593
+ return list.filter((item) => this.applyCallable(fn, [item]) === true);
594
+ }
595
+ // List.reduce(list, init, fn) — fn 接收 (accumulator, item),返回新累加值。
596
+ case 'List.reduce': {
597
+ const list = this.evalExpr(argExprs[0], env);
598
+ const init = this.evalExpr(argExprs[1], env);
599
+ const fn = callableArg(2);
600
+ if (!Array.isArray(list))
601
+ throw new InterpreterError(`List.reduce: expected List, got ${typeof list}`);
602
+ let acc = init;
603
+ for (const item of list)
604
+ acc = this.applyCallable(fn, [acc, item]);
605
+ return acc;
606
+ }
607
+ // === 高阶 Maybe / Result 操作 ===
608
+ // Maybe.map(opt, fn):Some(v)→Some(fn(v)),None 原样返回。
609
+ case 'Maybe.map':
610
+ case 'Option.map': {
611
+ const o = this.evalExpr(argExprs[0], env);
612
+ if (o && o.__type === 'Some') {
613
+ const fn = callableArg(1);
614
+ return { __type: 'Some', value: this.applyCallable(fn, [o.value]) };
615
+ }
616
+ return { __type: 'None' };
617
+ }
618
+ // Result.mapOk(res, fn):Ok(v)→Ok(fn(v)),Err 原样返回。
619
+ case 'Result.mapOk': {
620
+ const r = this.evalExpr(argExprs[0], env);
621
+ if (r && r.__type === 'Err')
622
+ return r;
623
+ if (r && r.__type === 'Ok') {
624
+ const fn = callableArg(1);
625
+ return { __type: 'Ok', value: this.applyCallable(fn, [r.value]) };
626
+ }
627
+ throw new InterpreterError('Result.mapOk: expected Result (Ok or Err)');
628
+ }
629
+ // Result.mapErr(res, fn):Err(v)→Err(fn(v)),Ok 原样返回。
630
+ case 'Result.mapErr': {
631
+ const r = this.evalExpr(argExprs[0], env);
632
+ if (r && r.__type === 'Ok')
633
+ return r;
634
+ if (r && r.__type === 'Err') {
635
+ const fn = callableArg(1);
636
+ return { __type: 'Err', value: this.applyCallable(fn, [r.value]) };
637
+ }
638
+ throw new InterpreterError('Result.mapErr: expected Result (Ok or Err)');
639
+ }
640
+ // Result.tapError(res, fn):对 Err 调用 fn 产生副作用后原样返回 Err;Ok 原样返回。
641
+ case 'Result.tapError': {
642
+ const r = this.evalExpr(argExprs[0], env);
643
+ if (r && r.__type === 'Ok')
644
+ return r;
645
+ if (r && r.__type === 'Err') {
646
+ const fn = callableArg(1);
647
+ this.applyCallable(fn, [r.value]); // 副作用,丢弃返回值
648
+ return r;
649
+ }
650
+ throw new InterpreterError('Result.tapError: expected Result (Ok or Err)');
651
+ }
652
+ default:
653
+ return NOT_STDLIB;
654
+ }
655
+ }
343
656
  /** 求值内置运算符 */
344
657
  evalBuiltinOp(op, args, env) {
345
658
  // 单目运算符
@@ -395,6 +708,22 @@ class Interpreter {
395
708
  }
396
709
  return left / right;
397
710
  }
711
+ case '//': {
712
+ // 整除:向零截断(Math.trunc),与 Java intdiv builtin 一致。
713
+ this.assertNumbers(op, left, right);
714
+ if (right === 0) {
715
+ throw new InterpreterError('Division by zero');
716
+ }
717
+ return Math.trunc(left / right);
718
+ }
719
+ case '%': {
720
+ // 取模:JS `%` 已是向零截断语义,与 Java mod builtin 一致。
721
+ this.assertNumbers(op, left, right);
722
+ if (right === 0) {
723
+ throw new InterpreterError('Division by zero');
724
+ }
725
+ return left % right;
726
+ }
398
727
  // 比较运算
399
728
  case '>':
400
729
  this.assertNumbers(op, left, right);
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../../src/core/interpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../../src/core/interpreter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export type ErrorCategory = 'type' | 'effect' | 'capability' | 'scope' | 'pii' | 'async';
2
2
  export type ErrorSeverity = 'error' | 'warning' | 'info';
3
3
  export declare const enum ErrorCode {
4
+ MULTIPLE_ENTRY_RULES = "MULTIPLE_ENTRY_RULES",
4
5
  TYPE_MISMATCH = "E001",
5
6
  TYPE_MISMATCH_ASSIGN = "E002",
6
7
  RETURN_TYPE_MISMATCH = "E003",
@@ -58,6 +59,7 @@ export declare const enum ErrorCode {
58
59
  PII_ANNOTATION_MISSING = "E401",
59
60
  PII_SENSITIVITY_MISMATCH = "E402",
60
61
  PII_MISSING_CONSENT_CHECK = "E403",
62
+ PII_ANALYZER_FAILED = "E404",
61
63
  ASYNC_START_NOT_WAITED = "E500",
62
64
  ASYNC_WAIT_NOT_STARTED = "E501",
63
65
  ASYNC_DUPLICATE_START = "E502",
@@ -1 +1 @@
1
- {"version":3,"file":"error_codes.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/error_codes.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AACzF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,0BAAkB,SAAS;IACzB,aAAa,SAAS;IACtB,oBAAoB,SAAS;IAC7B,oBAAoB,SAAS;IAC7B,mBAAmB,SAAS;IAC5B,iBAAiB,SAAS;IAC1B,uBAAuB,SAAS;IAChC,oBAAoB,SAAS;IAC7B,kBAAkB,SAAS;IAC3B,qBAAqB,SAAS;IAC9B,oBAAoB,SAAS;IAC7B,aAAa,SAAS;IACtB,mBAAmB,SAAS;IAC5B,sBAAsB,SAAS;IAC/B,cAAc,SAAS;IACvB,UAAU,SAAS;IACnB,mBAAmB,SAAS;IAC5B,oBAAoB,SAAS;IAC7B,mBAAmB,SAAS;IAC5B,yBAAyB,SAAS;IAClC,0BAA0B,SAAS;IACnC,iBAAiB,SAAS;IAC1B,wBAAwB,SAAS;IACjC,2BAA2B,SAAS;IACpC,sBAAsB,SAAS;IAC/B,wBAAwB,SAAS;IACjC,0BAA0B,SAAS;IACnC,8BAA8B,SAAS;IACvC,yBAAyB,SAAS;IAClC,gCAAgC,SAAS;IACzC,4BAA4B,SAAS;IACrC,oBAAoB,SAAS;IAC7B,oBAAoB,SAAS;IAC7B,iBAAiB,SAAS;IAC1B,sBAAsB,SAAS;IAC/B,kBAAkB,SAAS;IAC3B,gBAAgB,SAAS;IACzB,cAAc,SAAS;IACvB,eAAe,SAAS;IACxB,2BAA2B,SAAS;IACpC,kBAAkB,SAAS;IAC3B,mBAAmB,SAAS;IAC5B,oBAAoB,SAAS;IAC7B,qBAAqB,SAAS;IAC9B,sBAAsB,SAAS;IAC/B,uBAAuB,SAAS;IAChC,+BAA+B,SAAS;IACxC,qBAAqB,SAAS;IAC9B,qBAAqB,SAAS;IAC9B,sBAAsB,SAAS;IAC/B,eAAe,SAAS;IACxB,mBAAmB,SAAS;IAC5B,2BAA2B,SAAS;IACpC,4BAA4B,SAAS;IACrC,oBAAoB,SAAS;IAC7B,sBAAsB,SAAS;IAC/B,wBAAwB,SAAS;IACjC,yBAAyB,SAAS;IAClC,sBAAsB,SAAS;IAC/B,sBAAsB,SAAS;IAC/B,qBAAqB,SAAS;IAC9B,oBAAoB,SAAS;IAC7B,uBAAuB,SAAS;IAChC,oBAAoB,SAAS;IAC7B,gBAAgB,SAAS;IACzB,2BAA2B,SAAS;IACpC,6BAA6B,SAAS;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAmEpD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAmE3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAC7D,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAE/D"}
1
+ {"version":3,"file":"error_codes.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/error_codes.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AACzF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,0BAAkB,SAAS;IACzB,oBAAoB,yBAAyB;IAC7C,aAAa,SAAS;IACtB,oBAAoB,SAAS;IAC7B,oBAAoB,SAAS;IAC7B,mBAAmB,SAAS;IAC5B,iBAAiB,SAAS;IAC1B,uBAAuB,SAAS;IAChC,oBAAoB,SAAS;IAC7B,kBAAkB,SAAS;IAC3B,qBAAqB,SAAS;IAC9B,oBAAoB,SAAS;IAC7B,aAAa,SAAS;IACtB,mBAAmB,SAAS;IAC5B,sBAAsB,SAAS;IAC/B,cAAc,SAAS;IACvB,UAAU,SAAS;IACnB,mBAAmB,SAAS;IAC5B,oBAAoB,SAAS;IAC7B,mBAAmB,SAAS;IAC5B,yBAAyB,SAAS;IAClC,0BAA0B,SAAS;IACnC,iBAAiB,SAAS;IAC1B,wBAAwB,SAAS;IACjC,2BAA2B,SAAS;IACpC,sBAAsB,SAAS;IAC/B,wBAAwB,SAAS;IACjC,0BAA0B,SAAS;IACnC,8BAA8B,SAAS;IACvC,yBAAyB,SAAS;IAClC,gCAAgC,SAAS;IACzC,4BAA4B,SAAS;IACrC,oBAAoB,SAAS;IAC7B,oBAAoB,SAAS;IAC7B,iBAAiB,SAAS;IAC1B,sBAAsB,SAAS;IAC/B,kBAAkB,SAAS;IAC3B,gBAAgB,SAAS;IACzB,cAAc,SAAS;IACvB,eAAe,SAAS;IACxB,2BAA2B,SAAS;IACpC,kBAAkB,SAAS;IAC3B,mBAAmB,SAAS;IAC5B,oBAAoB,SAAS;IAC7B,qBAAqB,SAAS;IAC9B,sBAAsB,SAAS;IAC/B,uBAAuB,SAAS;IAChC,+BAA+B,SAAS;IACxC,qBAAqB,SAAS;IAC9B,qBAAqB,SAAS;IAC9B,sBAAsB,SAAS;IAC/B,eAAe,SAAS;IACxB,mBAAmB,SAAS;IAC5B,2BAA2B,SAAS;IACpC,4BAA4B,SAAS;IACrC,oBAAoB,SAAS;IAC7B,sBAAsB,SAAS;IAC/B,wBAAwB,SAAS;IACjC,yBAAyB,SAAS;IAClC,mBAAmB,SAAS;IAC5B,sBAAsB,SAAS;IAC/B,sBAAsB,SAAS;IAC/B,qBAAqB,SAAS;IAC9B,oBAAoB,SAAS;IAC7B,uBAAuB,SAAS;IAChC,oBAAoB,SAAS;IAC7B,gBAAgB,SAAS;IACzB,2BAA2B,SAAS;IACpC,6BAA6B,SAAS;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAqEpD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAuE3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAC7D,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAE/D"}
@@ -1,6 +1,7 @@
1
1
  // 本文件由 scripts/generate_error_codes.ts 自动生成,请勿手动修改。
2
2
  // 源数据: shared/error_codes.json
3
3
  export const ERROR_MESSAGES = {
4
+ ["MULTIPLE_ENTRY_RULES" /* ErrorCode.MULTIPLE_ENTRY_RULES */]: "Multiple @entry rules found in module: {first} and {second}",
4
5
  ["E001" /* ErrorCode.TYPE_MISMATCH */]: "Type mismatch: expected {expected}, got {actual}",
5
6
  ["E002" /* ErrorCode.TYPE_MISMATCH_ASSIGN */]: "Type mismatch assigning to '{name}': {expected} vs {actual}",
6
7
  ["E003" /* ErrorCode.RETURN_TYPE_MISMATCH */]: "Return type mismatch: expected {expected}, got {actual}",
@@ -58,6 +59,7 @@ export const ERROR_MESSAGES = {
58
59
  ["E401" /* ErrorCode.PII_ANNOTATION_MISSING */]: "PII annotation missing for value flowing into '{sink}'",
59
60
  ["E402" /* ErrorCode.PII_SENSITIVITY_MISMATCH */]: "PII sensitivity mismatch: required {required}, got {actual}",
60
61
  ["E403" /* ErrorCode.PII_MISSING_CONSENT_CHECK */]: "Function '{func}' processes PII data without consent check (GDPR Art. 6)",
62
+ ["E404" /* ErrorCode.PII_ANALYZER_FAILED */]: "PII safety analysis failed for this module — the editor cannot verify whether sensitive data is correctly handled. This policy should not be deployed until the analysis succeeds. Internal reason: {reason}",
61
63
  ["E500" /* ErrorCode.ASYNC_START_NOT_WAITED */]: "Started async task '{task}' not waited",
62
64
  ["E501" /* ErrorCode.ASYNC_WAIT_NOT_STARTED */]: "Waiting for async task '{task}' that was never started",
63
65
  ["E502" /* ErrorCode.ASYNC_DUPLICATE_START */]: "Async task '{task}' started multiple times ({count} occurrences)",
@@ -69,6 +71,7 @@ export const ERROR_MESSAGES = {
69
71
  ["W106" /* ErrorCode.WORKFLOW_TIMEOUT_UNREASONABLE */]: "Workflow timeout configuration may be unreasonable: {reason}",
70
72
  };
71
73
  export const ERROR_METADATA = {
74
+ ["MULTIPLE_ENTRY_RULES" /* ErrorCode.MULTIPLE_ENTRY_RULES */]: { code: "MULTIPLE_ENTRY_RULES" /* ErrorCode.MULTIPLE_ENTRY_RULES */, category: 'type', severity: 'error', message: "Multiple @entry rules found in module: {first} and {second}", help: "Keep at most one Rule annotated with @entry in a module." },
72
75
  ["E001" /* ErrorCode.TYPE_MISMATCH */]: { code: "E001" /* ErrorCode.TYPE_MISMATCH */, category: 'type', severity: 'error', message: "Type mismatch: expected {expected}, got {actual}", help: "Check that the type annotation matches the inferred expression type." },
73
76
  ["E002" /* ErrorCode.TYPE_MISMATCH_ASSIGN */]: { code: "E002" /* ErrorCode.TYPE_MISMATCH_ASSIGN */, category: 'type', severity: 'error', message: "Type mismatch assigning to '{name}': {expected} vs {actual}", help: "Ensure the variable's previous binding type matches the current assignment." },
74
77
  ["E003" /* ErrorCode.RETURN_TYPE_MISMATCH */]: { code: "E003" /* ErrorCode.RETURN_TYPE_MISMATCH */, category: 'type', severity: 'error', message: "Return type mismatch: expected {expected}, got {actual}", help: "Check that the return statement matches the declared return type." },
@@ -99,9 +102,11 @@ export const ERROR_METADATA = {
99
102
  ["E028" /* ErrorCode.COMPENSATE_NEW_CAPABILITY */]: { code: "E028" /* ErrorCode.COMPENSATE_NEW_CAPABILITY */, category: 'capability', severity: 'error', message: "Compensate block for step '{step}' in function '{func}' introduces new capability {capability} that does not appear in the main step body.", help: "Compensate blocks can only reuse capabilities from the main step body." },
100
103
  ["E029" /* ErrorCode.WORKFLOW_UNKNOWN_STEP_DEPENDENCY */]: { code: "E029" /* ErrorCode.WORKFLOW_UNKNOWN_STEP_DEPENDENCY */, category: 'scope', severity: 'error', message: "Workflow step '{step}' depends on undefined step '{dependency}'.", help: "Only reference declared step names in the current workflow." },
101
104
  ["E030" /* ErrorCode.WORKFLOW_CIRCULAR_DEPENDENCY */]: { code: "E030" /* ErrorCode.WORKFLOW_CIRCULAR_DEPENDENCY */, category: 'type', severity: 'error', message: "Workflow contains circular step dependency: {cycle}", help: "Remove or restructure circular dependencies to enable topological execution." },
102
- ["E070" /* ErrorCode.PII_ASSIGN_DOWNGRADE */]: { code: "E070" /* ErrorCode.PII_ASSIGN_DOWNGRADE */, category: 'type', severity: 'error', message: "Cannot assign PII data to lower-level target: {source} -> {target}", help: "Use a sanitization function or declare a matching @pii level on the target." },
103
- ["E072" /* ErrorCode.PII_SINK_UNSANITIZED */]: { code: "E072" /* ErrorCode.PII_SINK_UNSANITIZED */, category: 'type', severity: 'error', message: "PII level {level} data output to {sinkKind} without sanitization", help: "Call redact() or tokenize() before output to reduce sensitivity." },
104
- ["E073" /* ErrorCode.PII_ARG_VIOLATION */]: { code: "E073" /* ErrorCode.PII_ARG_VIOLATION */, category: 'type', severity: 'error', message: "PII argument type mismatch: expected {expected}, got {actual}", help: "Check the function signature to ensure PII levels and categories match." },
105
+ // P0-R2 (codex review Medium #10): PII codes 统一分类为 'pii'(原本是
106
+ // 'type' 是历史遗留,让 PII_CODES 自动派生不可能正确)
107
+ ["E070" /* ErrorCode.PII_ASSIGN_DOWNGRADE */]: { code: "E070" /* ErrorCode.PII_ASSIGN_DOWNGRADE */, category: 'pii', severity: 'error', message: "Cannot assign PII data to lower-level target: {source} -> {target}", help: "Use a sanitization function or declare a matching @pii level on the target." },
108
+ ["E072" /* ErrorCode.PII_SINK_UNSANITIZED */]: { code: "E072" /* ErrorCode.PII_SINK_UNSANITIZED */, category: 'pii', severity: 'error', message: "PII level {level} data output to {sinkKind} without sanitization", help: "Call redact() or tokenize() before output to reduce sensitivity." },
109
+ ["E073" /* ErrorCode.PII_ARG_VIOLATION */]: { code: "E073" /* ErrorCode.PII_ARG_VIOLATION */, category: 'pii', severity: 'error', message: "PII argument type mismatch: expected {expected}, got {actual}", help: "Check the function signature to ensure PII levels and categories match." },
105
110
  ["E100" /* ErrorCode.DUPLICATE_IMPORT_ALIAS */]: { code: "E100" /* ErrorCode.DUPLICATE_IMPORT_ALIAS */, category: 'scope', severity: 'warning', message: "Duplicate import alias '{alias}'.", help: "Use unique aliases for different imports to avoid shadowing." },
106
111
  ["E101" /* ErrorCode.UNDEFINED_VARIABLE */]: { code: "E101" /* ErrorCode.UNDEFINED_VARIABLE */, category: 'scope', severity: 'error', message: "Undefined variable: {name}", help: "Declare and initialize the variable before use." },
107
112
  ["E102" /* ErrorCode.DUPLICATE_SYMBOL */]: { code: "E102" /* ErrorCode.DUPLICATE_SYMBOL */, category: 'scope', severity: 'error', message: "Symbol '{name}' is already defined in this scope.", help: "Choose a different name or check for unintended duplicate declarations." },
@@ -126,13 +131,14 @@ export const ERROR_METADATA = {
126
131
  ["E401" /* ErrorCode.PII_ANNOTATION_MISSING */]: { code: "E401" /* ErrorCode.PII_ANNOTATION_MISSING */, category: 'pii', severity: 'error', message: "PII annotation missing for value flowing into '{sink}'", help: "Add @pii annotation to sensitive data for tracking." },
127
132
  ["E402" /* ErrorCode.PII_SENSITIVITY_MISMATCH */]: { code: "E402" /* ErrorCode.PII_SENSITIVITY_MISMATCH */, category: 'pii', severity: 'warning', message: "PII sensitivity mismatch: required {required}, got {actual}", help: "Adjust the data sensitivity level or update the process requirements." },
128
133
  ["E403" /* ErrorCode.PII_MISSING_CONSENT_CHECK */]: { code: "E403" /* ErrorCode.PII_MISSING_CONSENT_CHECK */, category: 'pii', severity: 'warning', message: "Function '{func}' processes PII data without consent check (GDPR Art. 6)", help: "Call checkConsent() or add @consent_required annotation before processing PII data." },
134
+ ["E404" /* ErrorCode.PII_ANALYZER_FAILED */]: { code: "E404" /* ErrorCode.PII_ANALYZER_FAILED */, category: 'pii', severity: 'error', message: "PII safety analysis failed for this module — the editor cannot verify whether sensitive data is correctly handled. This policy should not be deployed until the analysis succeeds. Internal reason: {reason}", help: "Try saving and reloading the file. If the error persists, contact your administrator or report this issue with the source code attached." },
129
135
  ["E500" /* ErrorCode.ASYNC_START_NOT_WAITED */]: { code: "E500" /* ErrorCode.ASYNC_START_NOT_WAITED */, category: 'async', severity: 'error', message: "Started async task '{task}' not waited", help: "Call wait on started async tasks to ensure completion." },
130
136
  ["E501" /* ErrorCode.ASYNC_WAIT_NOT_STARTED */]: { code: "E501" /* ErrorCode.ASYNC_WAIT_NOT_STARTED */, category: 'async', severity: 'error', message: "Waiting for async task '{task}' that was never started", help: "Ensure the task name in wait matches a started task." },
131
137
  ["E502" /* ErrorCode.ASYNC_DUPLICATE_START */]: { code: "E502" /* ErrorCode.ASYNC_DUPLICATE_START */, category: 'async', severity: 'error', message: "Async task '{task}' started multiple times ({count} occurrences)", help: "Avoid starting the same task multiple times; reuse or rename." },
132
138
  ["E503" /* ErrorCode.ASYNC_DUPLICATE_WAIT */]: { code: "E503" /* ErrorCode.ASYNC_DUPLICATE_WAIT */, category: 'async', severity: 'warning', message: "Async task '{task}' waited multiple times ({count} occurrences)", help: "Ensure each task is waited on only once, or use a separate synchronization mechanism." },
133
139
  ["E504" /* ErrorCode.ASYNC_WAIT_BEFORE_START */]: { code: "E504" /* ErrorCode.ASYNC_WAIT_BEFORE_START */, category: 'async', severity: 'error', message: "Wait for async task '{task}' occurs before any matching start", help: "Execute start before wait, and ensure both are on compatible control paths." },
134
- ["W071" /* ErrorCode.PII_IMPLICIT_UPLEVEL */]: { code: "W071" /* ErrorCode.PII_IMPLICIT_UPLEVEL */, category: 'type', severity: 'warning', message: "Implicit PII level escalation detected: {source} -> {target}", help: "Add explicit type annotations for level changes to aid auditing." },
135
- ["W074" /* ErrorCode.PII_SINK_UNKNOWN */]: { code: "W074" /* ErrorCode.PII_SINK_UNKNOWN */, category: 'type', severity: 'warning', message: "PII data may flow to {sinkKind} without annotation", help: "Add @pii annotation to track sensitive data flow." },
140
+ ["W071" /* ErrorCode.PII_IMPLICIT_UPLEVEL */]: { code: "W071" /* ErrorCode.PII_IMPLICIT_UPLEVEL */, category: 'pii', severity: 'warning', message: "Implicit PII level escalation detected: {source} -> {target}", help: "Add explicit type annotations for level changes to aid auditing." },
141
+ ["W074" /* ErrorCode.PII_SINK_UNKNOWN */]: { code: "W074" /* ErrorCode.PII_SINK_UNKNOWN */, category: 'pii', severity: 'warning', message: "PII data may flow to {sinkKind} without annotation", help: "Add @pii annotation to track sensitive data flow." },
136
142
  ["W105" /* ErrorCode.WORKFLOW_RETRY_INCONSISTENT */]: { code: "W105" /* ErrorCode.WORKFLOW_RETRY_INCONSISTENT */, category: 'type', severity: 'warning', message: "Workflow retry configuration may be unreasonable: {reason}", help: "Check the combination of total wait time, maxAttempts, and backoff strategy." },
137
143
  ["W106" /* ErrorCode.WORKFLOW_TIMEOUT_UNREASONABLE */]: { code: "W106" /* ErrorCode.WORKFLOW_TIMEOUT_UNREASONABLE */, category: 'type', severity: 'warning', message: "Workflow timeout configuration may be unreasonable: {reason}", help: "Check whether the timeout value is too large or too small." },
138
144
  };