@aster-cloud/aster-lang-ts 0.1.5 → 0.2.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.
Files changed (243) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/LICENSE +201 -0
  3. package/README.md +2 -0
  4. package/dist/scripts/core-ir-json.d.ts +3 -0
  5. package/dist/scripts/core-ir-json.d.ts.map +1 -0
  6. package/dist/scripts/core-ir-json.js +72 -0
  7. package/dist/scripts/core-ir-json.js.map +1 -0
  8. package/dist/scripts/golden.js +49 -0
  9. package/dist/scripts/golden.js.map +1 -1
  10. package/dist/src/ai/providers/anthropic.d.ts +17 -0
  11. package/dist/src/ai/providers/anthropic.d.ts.map +1 -1
  12. package/dist/src/ai/providers/anthropic.js +58 -15
  13. package/dist/src/ai/providers/anthropic.js.map +1 -1
  14. package/dist/src/ast/ast.d.ts +2 -2
  15. package/dist/src/ast/ast.d.ts.map +1 -1
  16. package/dist/src/ast/ast.js +5 -2
  17. package/dist/src/ast/ast.js.map +1 -1
  18. package/dist/src/browser/schema.d.ts +52 -0
  19. package/dist/src/browser/schema.d.ts.map +1 -0
  20. package/dist/src/browser/schema.js +205 -0
  21. package/dist/src/browser/schema.js.map +1 -0
  22. package/dist/src/browser.d.ts +19 -54
  23. package/dist/src/browser.d.ts.map +1 -1
  24. package/dist/src/browser.js +30 -188
  25. package/dist/src/browser.js.map +1 -1
  26. package/dist/src/cli/policy-converter.js +8 -1
  27. package/dist/src/cli/policy-converter.js.map +1 -1
  28. package/dist/src/config/effect_config.d.ts.map +1 -1
  29. package/dist/src/config/effect_config.js +7 -1
  30. package/dist/src/config/effect_config.js.map +1 -1
  31. package/dist/src/config/lexicons/de-DE.d.ts.map +1 -1
  32. package/dist/src/config/lexicons/de-DE.js +1 -0
  33. package/dist/src/config/lexicons/de-DE.js.map +1 -1
  34. package/dist/src/config/lexicons/en-US.d.ts.map +1 -1
  35. package/dist/src/config/lexicons/en-US.js +1 -0
  36. package/dist/src/config/lexicons/en-US.js.map +1 -1
  37. package/dist/src/config/lexicons/fallback-lexicon.d.ts +41 -0
  38. package/dist/src/config/lexicons/fallback-lexicon.d.ts.map +1 -0
  39. package/dist/src/config/lexicons/fallback-lexicon.js +88 -0
  40. package/dist/src/config/lexicons/fallback-lexicon.js.map +1 -0
  41. package/dist/src/config/lexicons/identifiers/registry.d.ts +9 -0
  42. package/dist/src/config/lexicons/identifiers/registry.d.ts.map +1 -1
  43. package/dist/src/config/lexicons/identifiers/registry.js +12 -0
  44. package/dist/src/config/lexicons/identifiers/registry.js.map +1 -1
  45. package/dist/src/config/lexicons/index.d.ts +25 -3
  46. package/dist/src/config/lexicons/index.d.ts.map +1 -1
  47. package/dist/src/config/lexicons/index.js +42 -7
  48. package/dist/src/config/lexicons/index.js.map +1 -1
  49. package/dist/src/config/lexicons/registry.d.ts.map +1 -1
  50. package/dist/src/config/lexicons/registry.js +43 -5
  51. package/dist/src/config/lexicons/registry.js.map +1 -1
  52. package/dist/src/config/lexicons/template.d.ts.map +1 -1
  53. package/dist/src/config/lexicons/template.js +2 -0
  54. package/dist/src/config/lexicons/template.js.map +1 -1
  55. package/dist/src/config/lexicons/zh-CN.d.ts.map +1 -1
  56. package/dist/src/config/lexicons/zh-CN.js +36 -20
  57. package/dist/src/config/lexicons/zh-CN.js.map +1 -1
  58. package/dist/src/config/semantic.d.ts +13 -0
  59. package/dist/src/config/semantic.d.ts.map +1 -1
  60. package/dist/src/config/semantic.js +17 -0
  61. package/dist/src/config/semantic.js.map +1 -1
  62. package/dist/src/config/token-kind.d.ts +2 -0
  63. package/dist/src/config/token-kind.d.ts.map +1 -1
  64. package/dist/src/config/token-kind.js +3 -1
  65. package/dist/src/config/token-kind.js.map +1 -1
  66. package/dist/src/core/core_ir.d.ts +2 -2
  67. package/dist/src/core/core_ir.d.ts.map +1 -1
  68. package/dist/src/core/core_ir.js +5 -2
  69. package/dist/src/core/core_ir.js.map +1 -1
  70. package/dist/src/core/interpreter.js +6 -1
  71. package/dist/src/core/interpreter.js.map +1 -1
  72. package/dist/src/core/visitor.d.ts.map +1 -1
  73. package/dist/src/core/visitor.js +17 -0
  74. package/dist/src/core/visitor.js.map +1 -1
  75. package/dist/src/diagnostics/error_codes.d.ts +2 -0
  76. package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
  77. package/dist/src/diagnostics/error_codes.js +11 -5
  78. package/dist/src/diagnostics/error_codes.js.map +1 -1
  79. package/dist/src/effects/effect_inference_browser.d.ts.map +1 -1
  80. package/dist/src/effects/effect_inference_browser.js +22 -4
  81. package/dist/src/effects/effect_inference_browser.js.map +1 -1
  82. package/dist/src/frontend/canonicalizer.d.ts +33 -0
  83. package/dist/src/frontend/canonicalizer.d.ts.map +1 -1
  84. package/dist/src/frontend/canonicalizer.js +77 -5
  85. package/dist/src/frontend/canonicalizer.js.map +1 -1
  86. package/dist/src/frontend/lexer.d.ts.map +1 -1
  87. package/dist/src/frontend/lexer.js +7 -1
  88. package/dist/src/frontend/lexer.js.map +1 -1
  89. package/dist/src/jvm/emitter.js +2 -2
  90. package/dist/src/jvm/emitter.js.map +1 -1
  91. package/dist/src/lower_to_core.js +2 -2
  92. package/dist/src/lower_to_core.js.map +1 -1
  93. package/dist/src/lsp/config.d.ts +13 -9
  94. package/dist/src/lsp/config.d.ts.map +1 -1
  95. package/dist/src/lsp/config.js +19 -5
  96. package/dist/src/lsp/config.js.map +1 -1
  97. package/dist/src/lsp/diagnostics.d.ts +10 -0
  98. package/dist/src/lsp/diagnostics.d.ts.map +1 -1
  99. package/dist/src/lsp/diagnostics.js +43 -1
  100. package/dist/src/lsp/diagnostics.js.map +1 -1
  101. package/dist/src/lsp/pii_diagnostics.d.ts.map +1 -1
  102. package/dist/src/lsp/pii_diagnostics.js +4 -1
  103. package/dist/src/lsp/pii_diagnostics.js.map +1 -1
  104. package/dist/src/lsp/server.js +49 -17
  105. package/dist/src/lsp/server.js.map +1 -1
  106. package/dist/src/lsp/utils.js +1 -1
  107. package/dist/src/lsp/utils.js.map +1 -1
  108. package/dist/src/parser/context.d.ts.map +1 -1
  109. package/dist/src/parser/context.js +32 -12
  110. package/dist/src/parser/context.js.map +1 -1
  111. package/dist/src/parser/decl-parser.d.ts +2 -2
  112. package/dist/src/parser/decl-parser.d.ts.map +1 -1
  113. package/dist/src/parser/decl-parser.js +113 -14
  114. package/dist/src/parser/decl-parser.js.map +1 -1
  115. package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
  116. package/dist/src/parser/expr-stmt-parser.js +111 -4
  117. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  118. package/dist/src/parser/import-parser.d.ts +3 -2
  119. package/dist/src/parser/import-parser.d.ts.map +1 -1
  120. package/dist/src/parser/import-parser.js +12 -3
  121. package/dist/src/parser/import-parser.js.map +1 -1
  122. package/dist/src/parser/input-generator.d.ts +2 -0
  123. package/dist/src/parser/input-generator.d.ts.map +1 -1
  124. package/dist/src/parser/input-generator.js +11 -1
  125. package/dist/src/parser/input-generator.js.map +1 -1
  126. package/dist/src/parser/type-parser.js +1 -1
  127. package/dist/src/parser/type-parser.js.map +1 -1
  128. package/dist/src/typecheck/alias.d.ts +24 -0
  129. package/dist/src/typecheck/alias.d.ts.map +1 -0
  130. package/dist/src/typecheck/alias.js +30 -0
  131. package/dist/src/typecheck/alias.js.map +1 -0
  132. package/dist/src/typecheck/browser.d.ts +41 -4
  133. package/dist/src/typecheck/browser.d.ts.map +1 -1
  134. package/dist/src/typecheck/browser.js +189 -14
  135. package/dist/src/typecheck/browser.js.map +1 -1
  136. package/dist/src/typecheck/context.js +1 -1
  137. package/dist/src/typecheck/context.js.map +1 -1
  138. package/dist/src/typecheck/effects.d.ts.map +1 -1
  139. package/dist/src/typecheck/effects.js +18 -4
  140. package/dist/src/typecheck/effects.js.map +1 -1
  141. package/dist/src/typecheck/expression.js +1 -1
  142. package/dist/src/typecheck/expression.js.map +1 -1
  143. package/dist/src/typecheck/generics.js +1 -1
  144. package/dist/src/typecheck/generics.js.map +1 -1
  145. package/dist/src/typecheck/module.d.ts.map +1 -1
  146. package/dist/src/typecheck/module.js +13 -8
  147. package/dist/src/typecheck/module.js.map +1 -1
  148. package/dist/src/typecheck/pattern.js +1 -1
  149. package/dist/src/typecheck/pattern.js.map +1 -1
  150. package/dist/src/typecheck/pure.d.ts +66 -0
  151. package/dist/src/typecheck/pure.d.ts.map +1 -0
  152. package/dist/src/typecheck/pure.js +163 -0
  153. package/dist/src/typecheck/pure.js.map +1 -0
  154. package/dist/src/typecheck/statement.js +1 -1
  155. package/dist/src/typecheck/statement.js.map +1 -1
  156. package/dist/src/typecheck/type_system.d.ts +6 -1
  157. package/dist/src/typecheck/type_system.d.ts.map +1 -1
  158. package/dist/src/typecheck/type_system.js +61 -13
  159. package/dist/src/typecheck/type_system.js.map +1 -1
  160. package/dist/src/typecheck/utils.d.ts +4 -69
  161. package/dist/src/typecheck/utils.d.ts.map +1 -1
  162. package/dist/src/typecheck/utils.js +17 -170
  163. package/dist/src/typecheck/utils.js.map +1 -1
  164. package/dist/src/typecheck/workflow.js +1 -1
  165. package/dist/src/typecheck/workflow.js.map +1 -1
  166. package/dist/src/typecheck-pii.d.ts.map +1 -1
  167. package/dist/src/typecheck-pii.js +11 -1
  168. package/dist/src/typecheck-pii.js.map +1 -1
  169. package/dist/src/types/base.d.ts +1 -0
  170. package/dist/src/types/base.d.ts.map +1 -1
  171. package/dist/src/types.d.ts +18 -0
  172. package/dist/src/types.d.ts.map +1 -1
  173. package/dist/src/types.js +1 -0
  174. package/dist/src/types.js.map +1 -1
  175. package/dist/test/e2e/runner/golden-runner.js +21 -10
  176. package/dist/test/e2e/runner/golden-runner.js.map +1 -1
  177. package/dist/test/integration/compliance/compliance-smoke.test.js +27 -35
  178. package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
  179. package/dist/test/integration/lsp/lsp-multi-rename.test.js +8 -7
  180. package/dist/test/integration/lsp/lsp-multi-rename.test.js.map +1 -1
  181. package/dist/test/policy-converter/round-trip.test.js +6 -4
  182. package/dist/test/policy-converter/round-trip.test.js.map +1 -1
  183. package/dist/test/regression/type-checker-golden.test.js +8 -4
  184. package/dist/test/regression/type-checker-golden.test.js.map +1 -1
  185. package/dist/test/type-checker/cross-module-packages.test.js +5 -3
  186. package/dist/test/type-checker/cross-module-packages.test.js.map +1 -1
  187. package/dist/test/type-checker/pii-propagation.test.js +24 -18
  188. package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
  189. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.d.ts +2 -0
  190. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.d.ts.map +1 -0
  191. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js +193 -0
  192. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js.map +1 -0
  193. package/dist/test/unit/browser/typecheck-browser-unsupported.test.d.ts +2 -0
  194. package/dist/test/unit/browser/typecheck-browser-unsupported.test.d.ts.map +1 -0
  195. package/dist/test/unit/browser/typecheck-browser-unsupported.test.js +110 -0
  196. package/dist/test/unit/browser/typecheck-browser-unsupported.test.js.map +1 -0
  197. package/dist/test/unit/canonicalizer/canonicalizer.test.js +91 -1
  198. package/dist/test/unit/canonicalizer/canonicalizer.test.js.map +1 -1
  199. package/dist/test/unit/canonicalizer/cjk-punctuation.test.d.ts +2 -0
  200. package/dist/test/unit/canonicalizer/cjk-punctuation.test.d.ts.map +1 -0
  201. package/dist/test/unit/canonicalizer/cjk-punctuation.test.js +118 -0
  202. package/dist/test/unit/canonicalizer/cjk-punctuation.test.js.map +1 -0
  203. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.d.ts +2 -0
  204. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.d.ts.map +1 -0
  205. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.js +40 -0
  206. package/dist/test/unit/canonicalizer/conformance-cjk-v2.test.js.map +1 -0
  207. package/dist/test/unit/config/lexicons/i18n.test.js +31 -14
  208. package/dist/test/unit/config/lexicons/i18n.test.js.map +1 -1
  209. package/dist/test/unit/config/lexicons/zh-CN.test.js +150 -143
  210. package/dist/test/unit/config/lexicons/zh-CN.test.js.map +1 -1
  211. package/dist/test/unit/keyword-translator.test.js +16 -19
  212. package/dist/test/unit/keyword-translator.test.js.map +1 -1
  213. package/dist/test/unit/lexicons/fallback-lexicon.test.d.ts +16 -0
  214. package/dist/test/unit/lexicons/fallback-lexicon.test.d.ts.map +1 -0
  215. package/dist/test/unit/lexicons/fallback-lexicon.test.js +98 -0
  216. package/dist/test/unit/lexicons/fallback-lexicon.test.js.map +1 -0
  217. package/dist/test/unit/llm-providers.test.js +105 -93
  218. package/dist/test/unit/llm-providers.test.js.map +1 -1
  219. package/dist/test/unit/lowering/lowering.test.js +12 -0
  220. package/dist/test/unit/lowering/lowering.test.js.map +1 -1
  221. package/dist/test/unit/parser/entry-annotations.test.d.ts +2 -0
  222. package/dist/test/unit/parser/entry-annotations.test.d.ts.map +1 -0
  223. package/dist/test/unit/parser/entry-annotations.test.js +110 -0
  224. package/dist/test/unit/parser/entry-annotations.test.js.map +1 -0
  225. package/dist/test/unit/parser/parser.test.js +30 -6
  226. package/dist/test/unit/parser/parser.test.js.map +1 -1
  227. package/dist/test/unit/scripts/verify-browser-entry.test.d.ts +2 -0
  228. package/dist/test/unit/scripts/verify-browser-entry.test.d.ts.map +1 -0
  229. package/dist/test/unit/scripts/verify-browser-entry.test.js +179 -0
  230. package/dist/test/unit/scripts/verify-browser-entry.test.js.map +1 -0
  231. package/dist/test/unit/typecheck/function-return-inference.test.d.ts +2 -0
  232. package/dist/test/unit/typecheck/function-return-inference.test.d.ts.map +1 -0
  233. package/dist/test/unit/typecheck/function-return-inference.test.js +79 -0
  234. package/dist/test/unit/typecheck/function-return-inference.test.js.map +1 -0
  235. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.d.ts +2 -0
  236. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.d.ts.map +1 -0
  237. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js +191 -0
  238. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js.map +1 -0
  239. package/dist/test/unit/typecheck/should-enforce-pii.test.js +25 -110
  240. package/dist/test/unit/typecheck/should-enforce-pii.test.js.map +1 -1
  241. package/dist/test/unit/typecheck/type-system.test.js +83 -3
  242. package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
  243. package/package.json +41 -9
@@ -1 +1 @@
1
- {"version":3,"file":"type_system.d.ts","sourceRoot":"","sources":["../../../src/typecheck/type_system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAwF7B,qBAAa,UAAU;IACrB,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI;IAI3B,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,UAAQ,GAAG,OAAO;IAkF1D,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAa,GAAG,OAAO;IA+ElF,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO;IA0C/C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAK3D,OAAO,CAAC,MAAM,CAAC,eAAe;IAoD9B,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI;IAgBvE,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ;IAU3G,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM;IAgCpD,OAAO,CAAC,MAAM,CAAC,eAAe;IAW9B,OAAO,CAAC,MAAM,CAAC,eAAe;CA6D/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IAEpD,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;IAI/C,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;CAgBlC"}
1
+ {"version":3,"file":"type_system.d.ts","sourceRoot":"","sources":["../../../src/typecheck/type_system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAwF7B,qBAAa,UAAU;IACrB,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI;IAI3B,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,UAAQ,GAAG,OAAO;IAkF1D,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAa,GAAG,OAAO;IA+ElF,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO;IA0C/C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAK3D,OAAO,CAAC,MAAM,CAAC,eAAe;IAoD9B,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI;IAgBvE,MAAM,CAAC,iBAAiB,CACtB,MAAM,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,EACjC,IAAI,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,EAC/B,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GACrC,IAAI,CAAC,QAAQ;IAUhB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM;IAgCpD,OAAO,CAAC,MAAM,CAAC,eAAe;IAmB9B,OAAO,CAAC,MAAM,CAAC,eAAe;IA0E9B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAKtC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAYlC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B,OAAO,CAAC,MAAM,CAAC,WAAW;CAM3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IAEpD,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;IAI/C,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;CAgBlC"}
@@ -387,9 +387,9 @@ export class TypeSystem {
387
387
  }
388
388
  return current;
389
389
  }
390
- static inferFunctionType(params, body) {
390
+ static inferFunctionType(params, body, fieldTypes) {
391
391
  const paramTypes = params.map(p => cloneType(p.type));
392
- const ret = TypeSystem.inferReturnType(body);
392
+ const ret = TypeSystem.inferReturnType(body, fieldTypes);
393
393
  return {
394
394
  kind: 'FuncType',
395
395
  params: paramTypes,
@@ -428,17 +428,24 @@ export class TypeSystem {
428
428
  return 'Unknown';
429
429
  }
430
430
  }
431
- static inferReturnType(body) {
432
- for (let i = body.length - 1; i >= 0; i--) {
433
- const stmt = body[i];
434
- if (stmt.kind === 'Return') {
435
- const ret = TypeSystem.inferStaticType(stmt.expr);
436
- return ret ?? TypeSystem.unknown();
431
+ static inferReturnType(body, fieldTypes) {
432
+ const returnTypes = [];
433
+ for (const stmt of body) {
434
+ if (stmt.kind !== 'Return')
435
+ continue;
436
+ returnTypes.push(TypeSystem.inferStaticType(stmt.expr, fieldTypes) ?? TypeSystem.unknown());
437
+ }
438
+ if (returnTypes.length === 0)
439
+ return TypeSystem.unknown();
440
+ const current = cloneType(returnTypes[0]);
441
+ for (let i = 1; i < returnTypes.length; i++) {
442
+ if (!TypeSystem.equals(current, returnTypes[i], true)) {
443
+ return TypeSystem.unknown();
437
444
  }
438
445
  }
439
- return TypeSystem.unknown();
446
+ return current;
440
447
  }
441
- static inferStaticType(expr) {
448
+ static inferStaticType(expr, fieldTypes) {
442
449
  if (!expr)
443
450
  return null;
444
451
  switch (expr.kind) {
@@ -455,15 +462,15 @@ export class TypeSystem {
455
462
  case 'Null':
456
463
  return { kind: 'Maybe', type: TypeSystem.unknown() };
457
464
  case 'Ok': {
458
- const inner = TypeSystem.inferStaticType(expr.expr) ?? TypeSystem.unknown();
465
+ const inner = TypeSystem.inferStaticType(expr.expr, fieldTypes) ?? TypeSystem.unknown();
459
466
  return { kind: 'Result', ok: inner, err: TypeSystem.unknown() };
460
467
  }
461
468
  case 'Err': {
462
- const inner = TypeSystem.inferStaticType(expr.expr) ?? TypeSystem.unknown();
469
+ const inner = TypeSystem.inferStaticType(expr.expr, fieldTypes) ?? TypeSystem.unknown();
463
470
  return { kind: 'Result', ok: TypeSystem.unknown(), err: inner };
464
471
  }
465
472
  case 'Some': {
466
- const inner = TypeSystem.inferStaticType(expr.expr) ?? TypeSystem.unknown();
473
+ const inner = TypeSystem.inferStaticType(expr.expr, fieldTypes) ?? TypeSystem.unknown();
467
474
  return { kind: 'Option', type: inner };
468
475
  }
469
476
  case 'None':
@@ -479,8 +486,19 @@ export class TypeSystem {
479
486
  }
480
487
  case 'Construct':
481
488
  return { kind: 'TypeName', name: expr.typeName };
489
+ case 'Name': {
490
+ const fieldName = TypeSystem.fieldNameFromDottedName(expr.name);
491
+ const fieldType = fieldName ? fieldTypes?.get(fieldName) : undefined;
492
+ if (fieldType)
493
+ return cloneType(fieldType);
494
+ const annotated = expr.inferredType;
495
+ return annotated ?? null;
496
+ }
482
497
  case 'Call': {
483
498
  if (expr.target.kind === 'Name') {
499
+ const arithmetic = TypeSystem.inferArithmeticCall(expr.target.name, expr.args, fieldTypes);
500
+ if (arithmetic)
501
+ return arithmetic;
484
502
  switch (expr.target.name) {
485
503
  case 'Text.concat':
486
504
  case 'Crypto.hash':
@@ -501,6 +519,36 @@ export class TypeSystem {
501
519
  }
502
520
  }
503
521
  }
522
+ static fieldNameFromDottedName(name) {
523
+ if (!name.includes('.'))
524
+ return null;
525
+ return name.split('.').pop() || null;
526
+ }
527
+ static inferArithmeticCall(operator, args, fieldTypes) {
528
+ if (!['+', '-', '*', '/', '%'].includes(operator) || args.length < 2)
529
+ return null;
530
+ const left = TypeSystem.inferStaticType(args[0], fieldTypes);
531
+ const right = TypeSystem.inferStaticType(args[1], fieldTypes);
532
+ if (!left || !right)
533
+ return null;
534
+ return TypeSystem.promoteNumericTypes(left, right);
535
+ }
536
+ static promoteNumericTypes(left, right) {
537
+ if (!TypeSystem.isNumericType(left) || !TypeSystem.isNumericType(right))
538
+ return null;
539
+ if (TypeSystem.hasTypeName(left, right, 'Double'))
540
+ return { kind: 'TypeName', name: 'Double' };
541
+ if (TypeSystem.hasTypeName(left, right, 'Long'))
542
+ return { kind: 'TypeName', name: 'Long' };
543
+ return { kind: 'TypeName', name: 'Int' };
544
+ }
545
+ static isNumericType(type) {
546
+ return type.kind === 'TypeName' && ['Int', 'Long', 'Double'].includes(type.name);
547
+ }
548
+ static hasTypeName(left, right, name) {
549
+ return ((left.kind === 'TypeName' && left.name === name) ||
550
+ (right.kind === 'TypeName' && right.name === name));
551
+ }
504
552
  }
505
553
  export class ConstraintSolver {
506
554
  constraints = [];
@@ -1 +1 @@
1
- {"version":3,"file":"type_system.js","sourceRoot":"","sources":["../../../src/typecheck/type_system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type_system.js","sourceRoot":"","sources":["../../../src/typecheck/type_system.ts"],"names":[],"mappings":"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"}
@@ -1,74 +1,9 @@
1
- import type { Core, Origin, Span } from '../types.js';
2
- export declare const UNKNOWN_TYPE: Core.Type;
3
- export declare const UNIT_TYPE: Core.Type;
4
- export declare const IO_EFFECT_TYPE: Core.Type;
5
- export declare const CPU_EFFECT_TYPE: Core.Type;
6
- export declare const PURE_EFFECT_TYPE: Core.Type;
7
- /**
8
- * Get IO prefixes for effect inference.
9
- * Loads from config in Node.js, uses defaults in browser.
10
- */
1
+ export { UNKNOWN_TYPE, UNIT_TYPE, IO_EFFECT_TYPE, CPU_EFFECT_TYPE, PURE_EFFECT_TYPE, IO_PREFIXES, CPU_PREFIXES, isUnknown, unknownType, buildFieldTypeMap, normalizeType, formatType, isWorkflowType, unwrapWorkflowResult, typesEqual, isAssignable, originToSpan, shouldEnforcePii, checkEntryRuleUniqueness, } from './pure.js';
2
+ /** Get IO prefixes for effect inference (Node-only path, reads from config). */
11
3
  export declare function getIOPrefixesCompat(): readonly string[];
12
- /**
13
- * Get CPU prefixes for effect inference.
14
- * Loads from config in Node.js, uses defaults in browser.
15
- */
4
+ /** Get CPU prefixes for effect inference (Node-only path, reads from config). */
16
5
  export declare function getCPUPrefixesCompat(): readonly string[];
17
- export declare const IO_PREFIXES: readonly string[];
18
- export declare const CPU_PREFIXES: readonly string[];
19
- /**
20
- * 解析导入别名到真实模块前缀
21
- * @param name 原始名称(如 "H.get")
22
- * @param imports 别名映射(如 {H: "Http"})
23
- * @returns 解析后的名称(如 "Http.get")
24
- */
25
- export declare function resolveAlias(name: string, imports: ReadonlyMap<string, string>): string;
26
- /**
27
- * 判断是否启用 PII 检查
28
- *
29
- * 采用渐进式启用策略,默认禁用 PII 检查,需显式启用。
30
- * 配置优先级(从高到低):
31
- * 1. LSP 配置注入(globalThis.lspConfig.enforcePiiChecks)
32
- * 2. 环境变量(ENFORCE_PII 或 ASTER_ENFORCE_PII,大小写不敏感)
33
- * 3. 默认值 false(opt-in 策略)
34
- *
35
- * 设计理由:
36
- * 1. 兼容性:避免破坏现有项目,给团队时间逐步迁移
37
- * 2. 渐进式:允许团队按自己的节奏采纳 PII 检查
38
- * 3. 明确性:需要显式声明启用,避免意外启用
39
- * 4. 统一性:与 Java 编译器的 shouldEnforcePii() 保持一致(大小写无关匹配)
40
- * 5. 解耦性:通过 globalThis 注入避免 LSP 与 typecheck 模块循环依赖
41
- *
42
- * @returns true 表示启用 PII 检查,false 表示禁用
43
- */
44
- export declare function shouldEnforcePii(): boolean;
45
- export declare function isUnknown(type: Core.Type | undefined | null): boolean;
46
- export declare function unknownType(): Core.Type;
47
- export declare function normalizeType(type: Core.Type | undefined | null): Core.Type;
48
- export declare function formatType(type: Core.Type | undefined | null): string;
49
- export declare function isWorkflowType(type: Core.Type): type is Core.TypeApp;
50
- export declare function unwrapWorkflowResult(type: Core.Type): Core.Type;
51
- export declare function typesEqual(a: Core.Type | undefined | null, b: Core.Type | undefined | null, strict?: boolean): boolean;
52
- /**
53
- * 判断实际类型是否可赋值给期望类型
54
- *
55
- * 比 typesEqual 更宽松,支持 CNL 自然语言编程中的隐式类型提升:
56
- * - Int → Float/Double(整数提升为浮点)
57
- * - Long → Double(长整型提升为双精度)
58
- * - Float ↔ Double(浮点类型互通)
59
- *
60
- * 设计理由:
61
- * 1. 字段类型推断可能推断为 Float,但字面量是 Int
62
- * 2. 用户写 `rate = 350` 比 `rate = 350.0` 更自然
63
- * 3. 不影响严格类型比较(分支/匹配/泛型等场景仍用 typesEqual)
64
- *
65
- * @param expected 期望的类型(字段声明类型)
66
- * @param actual 实际的类型(赋值表达式类型)
67
- * @param strict 是否启用严格模式(禁用隐式提升)
68
- * @returns true 表示可赋值
69
- */
70
- export declare function isAssignable(expected: Core.Type | undefined | null, actual: Core.Type | undefined | null, strict?: boolean): boolean;
71
- export declare function originToSpan(origin: Origin | undefined): Span | undefined;
6
+ export { resolveAlias } from './alias.js';
72
7
  /**
73
8
  * Get default module search paths.
74
9
  * Uses dynamic import to avoid Node.js dependency at module load time.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/typecheck/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAKtD,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,IAA2B,CAAC;AAC5D,eAAO,MAAM,SAAS,EAAE,IAAI,CAAC,IAAyC,CAAC;AACvE,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,IAAuC,CAAC;AAC1E,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,IAAwC,CAAC;AAC5E,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,IAAyC,CAAC;AAsC9E;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAGvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAGxD;AAKD,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAAiB,CAAC;AAC3D,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAAkB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAKvF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAc1C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAGrE;AAED,wBAAgB,WAAW,IAAI,IAAI,CAAC,IAAI,CAEvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAE3E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAErE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAK/D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,UAAQ,GAAG,OAAO,CAYpH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,EACtC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,EACpC,MAAM,UAAQ,GACb,OAAO,CAqCT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAGzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CASnD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAmBvF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/typecheck/utils.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AA0BnB,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAGvD;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAGxD;AAID,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CASnD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAmBvF"}
@@ -1,32 +1,22 @@
1
- import { TypeSystem } from './type_system.js';
2
- // 类型检查工具模块:收敛常量、类型辅助与路径规范化逻辑,供多个子模块复用。
3
- export const UNKNOWN_TYPE = TypeSystem.unknown();
4
- export const UNIT_TYPE = { kind: 'TypeName', name: 'Unit' };
5
- export const IO_EFFECT_TYPE = { kind: 'TypeName', name: 'IO' };
6
- export const CPU_EFFECT_TYPE = { kind: 'TypeName', name: 'CPU' };
7
- export const PURE_EFFECT_TYPE = { kind: 'TypeName', name: 'PURE' };
8
- // Default IO prefixes (matches DEFAULT_CONFIG in effect_config.ts)
9
- const DEFAULT_IO_PREFIXES = [
10
- 'IO.',
11
- 'Http.',
12
- 'AuthRepo.',
13
- 'ProfileSvc.',
14
- 'FeedSvc.',
15
- 'Db.',
16
- 'UUID.randomUUID',
17
- ];
18
- // Default CPU prefixes (matches DEFAULT_CONFIG in effect_config.ts)
19
- const DEFAULT_CPU_PREFIXES = [];
20
- // Effect prefixes - try loading from config, fallback to defaults for browser compatibility
1
+ // 类型检查工具模块: 收敛常量、类型辅助与路径规范化逻辑,供多个子模块复用.
2
+ //
3
+ // R15 (codex round 14/15 review): 纯类型助手已迁移到 `./pure.ts` (browser-safe
4
+ // leaf module), 这里 re-export 维持源码层向后兼容. 本文件仍含 Node-only
5
+ // 路径 (loadPrefixes / require / process.cwd), 仅供 server-side 模块 import.
6
+ // 任何 browser/edge 可达的代码应改 import from './pure.js' './alias.js'.
7
+ export { UNKNOWN_TYPE, UNIT_TYPE, IO_EFFECT_TYPE, CPU_EFFECT_TYPE, PURE_EFFECT_TYPE, IO_PREFIXES, CPU_PREFIXES, isUnknown, unknownType, buildFieldTypeMap, normalizeType, formatType, isWorkflowType, unwrapWorkflowResult, typesEqual, isAssignable, originToSpan, shouldEnforcePii, checkEntryRuleUniqueness, } from './pure.js';
8
+ import { IO_PREFIXES as DEFAULT_IO_PREFIXES, CPU_PREFIXES as DEFAULT_CPU_PREFIXES } from './pure.js';
9
+ // Effect prefixes — Node-only path: try loading from config, fallback to
10
+ // pure.ts defaults. Browser path goes through pure.ts IO_PREFIXES/CPU_PREFIXES
11
+ // directly (re-exported above), bypassing this loader entirely.
21
12
  let _ioPrefixes = null;
22
13
  let _cpuPrefixes = null;
23
14
  let _prefixesLoaded = false;
24
15
  function loadPrefixes() {
25
16
  if (_prefixesLoaded)
26
- return; // Already loaded
17
+ return;
27
18
  _prefixesLoaded = true;
28
19
  try {
29
- // Use dynamic import with createRequire for proper ESM compatibility
30
20
  const { createRequire } = require('node:module');
31
21
  const require2 = createRequire(import.meta.url);
32
22
  const config = require2('../config/effect_config.js');
@@ -34,166 +24,23 @@ function loadPrefixes() {
34
24
  _cpuPrefixes = config.getCPUPrefixes();
35
25
  }
36
26
  catch {
37
- // Fallback to defaults in browser environment
38
27
  _ioPrefixes = DEFAULT_IO_PREFIXES;
39
28
  _cpuPrefixes = DEFAULT_CPU_PREFIXES;
40
29
  }
41
30
  }
42
- /**
43
- * Get IO prefixes for effect inference.
44
- * Loads from config in Node.js, uses defaults in browser.
45
- */
31
+ /** Get IO prefixes for effect inference (Node-only path, reads from config). */
46
32
  export function getIOPrefixesCompat() {
47
33
  loadPrefixes();
48
34
  return _ioPrefixes;
49
35
  }
50
- /**
51
- * Get CPU prefixes for effect inference.
52
- * Loads from config in Node.js, uses defaults in browser.
53
- */
36
+ /** Get CPU prefixes for effect inference (Node-only path, reads from config). */
54
37
  export function getCPUPrefixesCompat() {
55
38
  loadPrefixes();
56
39
  return _cpuPrefixes;
57
40
  }
58
- // Exported constants for backward compatibility - use getter functions for lazy loading
59
- // Initialize immediately since many modules expect these as constants
60
- loadPrefixes();
61
- export const IO_PREFIXES = _ioPrefixes;
62
- export const CPU_PREFIXES = _cpuPrefixes;
63
- /**
64
- * 解析导入别名到真实模块前缀
65
- * @param name 原始名称(如 "H.get")
66
- * @param imports 别名映射(如 {H: "Http"})
67
- * @returns 解析后的名称(如 "Http.get")
68
- */
69
- export function resolveAlias(name, imports) {
70
- if (!name.includes('.'))
71
- return name;
72
- const [prefix, ...rest] = name.split('.');
73
- const resolved = imports.get(prefix);
74
- return resolved ? `${resolved}.${rest.join('.')}` : name;
75
- }
76
- /**
77
- * 判断是否启用 PII 检查
78
- *
79
- * 采用渐进式启用策略,默认禁用 PII 检查,需显式启用。
80
- * 配置优先级(从高到低):
81
- * 1. LSP 配置注入(globalThis.lspConfig.enforcePiiChecks)
82
- * 2. 环境变量(ENFORCE_PII 或 ASTER_ENFORCE_PII,大小写不敏感)
83
- * 3. 默认值 false(opt-in 策略)
84
- *
85
- * 设计理由:
86
- * 1. 兼容性:避免破坏现有项目,给团队时间逐步迁移
87
- * 2. 渐进式:允许团队按自己的节奏采纳 PII 检查
88
- * 3. 明确性:需要显式声明启用,避免意外启用
89
- * 4. 统一性:与 Java 编译器的 shouldEnforcePii() 保持一致(大小写无关匹配)
90
- * 5. 解耦性:通过 globalThis 注入避免 LSP 与 typecheck 模块循环依赖
91
- *
92
- * @returns true 表示启用 PII 检查,false 表示禁用
93
- */
94
- export function shouldEnforcePii() {
95
- // 优先级 1: LSP 配置注入(IDE 会话通过 --enforce-pii 参数启用)
96
- if (globalThis.lspConfig?.enforcePiiChecks !== undefined) {
97
- return globalThis.lspConfig.enforcePiiChecks;
98
- }
99
- // 优先级 2: 环境变量(向后兼容 CLI 工具和测试,大小写无关匹配)
100
- const envValue = process.env.ENFORCE_PII || process.env.ASTER_ENFORCE_PII;
101
- if (envValue?.toLowerCase() === 'true') {
102
- return true;
103
- }
104
- // 优先级 3: 默认禁用 PII 检查(渐进式启用策略)
105
- return false;
106
- }
107
- export function isUnknown(type) {
108
- if (!type)
109
- return true;
110
- return type.kind === 'TypeName' && type.name === 'Unknown';
111
- }
112
- export function unknownType() {
113
- return UNKNOWN_TYPE;
114
- }
115
- export function normalizeType(type) {
116
- return type ?? UNKNOWN_TYPE;
117
- }
118
- export function formatType(type) {
119
- return TypeSystem.format(normalizeType(type));
120
- }
121
- export function isWorkflowType(type) {
122
- return type.kind === 'TypeApp' && type.base === 'Workflow' && type.args.length >= 1;
123
- }
124
- export function unwrapWorkflowResult(type) {
125
- if (isWorkflowType(type)) {
126
- return normalizeType(type.args[0]);
127
- }
128
- return type;
129
- }
130
- export function typesEqual(a, b, strict = false) {
131
- const left = normalizeType(a);
132
- const right = normalizeType(b);
133
- if (isWorkflowType(left) && !isWorkflowType(right)) {
134
- return typesEqual(unwrapWorkflowResult(left), right, strict);
135
- }
136
- if (!isWorkflowType(left) && isWorkflowType(right)) {
137
- return typesEqual(left, unwrapWorkflowResult(right), strict);
138
- }
139
- return TypeSystem.equals(left, right, strict);
140
- }
141
- /**
142
- * 判断实际类型是否可赋值给期望类型
143
- *
144
- * 比 typesEqual 更宽松,支持 CNL 自然语言编程中的隐式类型提升:
145
- * - Int → Float/Double(整数提升为浮点)
146
- * - Long → Double(长整型提升为双精度)
147
- * - Float ↔ Double(浮点类型互通)
148
- *
149
- * 设计理由:
150
- * 1. 字段类型推断可能推断为 Float,但字面量是 Int
151
- * 2. 用户写 `rate = 350` 比 `rate = 350.0` 更自然
152
- * 3. 不影响严格类型比较(分支/匹配/泛型等场景仍用 typesEqual)
153
- *
154
- * @param expected 期望的类型(字段声明类型)
155
- * @param actual 实际的类型(赋值表达式类型)
156
- * @param strict 是否启用严格模式(禁用隐式提升)
157
- * @returns true 表示可赋值
158
- */
159
- export function isAssignable(expected, actual, strict = false) {
160
- // 首先检查严格相等
161
- if (typesEqual(expected, actual, strict)) {
162
- return true;
163
- }
164
- // 严格模式下不做隐式提升
165
- if (strict) {
166
- return false;
167
- }
168
- const expectedType = normalizeType(expected);
169
- const actualType = normalizeType(actual);
170
- // 仅处理基础类型名的隐式提升
171
- if (expectedType.kind !== 'TypeName' || actualType.kind !== 'TypeName') {
172
- return false;
173
- }
174
- const expectedName = expectedType.name;
175
- const actualName = actualType.name;
176
- // 数值类型提升规则(仅允许安全的向上提升)
177
- // 规则设计:
178
- // - Float 和 Double 视为等价(CNL 不区分精度)
179
- // - Int 可提升为任意浮点类型
180
- // - Long 可提升为 Double
181
- switch (expectedName) {
182
- case 'Float':
183
- // Int → Float, Double → Float(Float/Double 等价)
184
- return actualName === 'Int' || actualName === 'Double';
185
- case 'Double':
186
- // Int/Long/Float → Double
187
- return actualName === 'Int' || actualName === 'Long' || actualName === 'Float';
188
- default:
189
- return false;
190
- }
191
- }
192
- export function originToSpan(origin) {
193
- if (!origin)
194
- return undefined;
195
- return { start: origin.start, end: origin.end };
196
- }
41
+ // resolveAlias 仍由 './alias.js' 提供 (P0-R15: leaf, Node 依赖).
42
+ // utils.ts re-export 保持源码层向后兼容; 新代码应直接 import from './alias.js'.
43
+ export { resolveAlias } from './alias.js';
197
44
  /**
198
45
  * Get default module search paths.
199
46
  * Uses dynamic import to avoid Node.js dependency at module load time.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/typecheck/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/typecheck/utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { CapabilityKind } from '../config/semantic.js';
2
2
  import { TypeSystem } from './type_system.js';
3
- import { CPU_EFFECT_TYPE, IO_EFFECT_TYPE, PURE_EFFECT_TYPE, UNIT_TYPE, formatType, isUnknown, normalizeType, originToSpan, unknownType, } from './utils.js';
3
+ import { CPU_EFFECT_TYPE, IO_EFFECT_TYPE, PURE_EFFECT_TYPE, UNIT_TYPE, formatType, isUnknown, normalizeType, originToSpan, unknownType, } from './pure.js';
4
4
  import { collectEffects } from './effects.js';
5
5
  import { typecheckBlock } from './statement.js';
6
6
  const RETRY_RECOMMENDED_MAX_ATTEMPTS = 10;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/typecheck/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/typecheck/workflow.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typecheck-pii.d.ts","sourceRoot":"","sources":["../../src/typecheck-pii.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmC,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAiD7F,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,EAC3B,WAAW,EAAE,mBAAmB,EAAE,EAClC,OAAO,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAC/C,IAAI,CAgBN"}
1
+ {"version":3,"file":"typecheck-pii.d.ts","sourceRoot":"","sources":["../../src/typecheck-pii.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmC,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA2D7F,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,EAC3B,WAAW,EAAE,mBAAmB,EAAE,EAClC,OAAO,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAC/C,IAAI,CAgBN"}