@stevenvo780/st-lang 3.2.3 → 4.0.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 (445) hide show
  1. package/README.md +47 -7
  2. package/dist/api.d.ts +2 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +5 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/argumentation/dot.d.ts +3 -0
  7. package/dist/argumentation/dot.d.ts.map +1 -0
  8. package/dist/argumentation/dot.js +25 -0
  9. package/dist/argumentation/dot.js.map +1 -0
  10. package/dist/argumentation/extensions.d.ts +11 -0
  11. package/dist/argumentation/extensions.d.ts.map +1 -0
  12. package/dist/argumentation/extensions.js +173 -0
  13. package/dist/argumentation/extensions.js.map +1 -0
  14. package/dist/argumentation/framework.d.ts +13 -0
  15. package/dist/argumentation/framework.d.ts.map +1 -0
  16. package/dist/argumentation/framework.js +117 -0
  17. package/dist/argumentation/framework.js.map +1 -0
  18. package/dist/argumentation/index.d.ts +6 -0
  19. package/dist/argumentation/index.d.ts.map +1 -0
  20. package/dist/argumentation/index.js +33 -0
  21. package/dist/argumentation/index.js.map +1 -0
  22. package/dist/argumentation/types.d.ts +11 -0
  23. package/dist/argumentation/types.d.ts.map +1 -0
  24. package/dist/argumentation/types.js +8 -0
  25. package/dist/argumentation/types.js.map +1 -0
  26. package/dist/ast/visitor.d.ts +95 -0
  27. package/dist/ast/visitor.d.ts.map +1 -0
  28. package/dist/ast/visitor.js +223 -0
  29. package/dist/ast/visitor.js.map +1 -0
  30. package/dist/citation-reasoning/derive.d.ts +31 -0
  31. package/dist/citation-reasoning/derive.d.ts.map +1 -0
  32. package/dist/citation-reasoning/derive.js +157 -0
  33. package/dist/citation-reasoning/derive.js.map +1 -0
  34. package/dist/citation-reasoning/index.d.ts +4 -0
  35. package/dist/citation-reasoning/index.d.ts.map +1 -0
  36. package/dist/citation-reasoning/index.js +10 -0
  37. package/dist/citation-reasoning/index.js.map +1 -0
  38. package/dist/citation-reasoning/types.d.ts +36 -0
  39. package/dist/citation-reasoning/types.d.ts.map +1 -0
  40. package/dist/citation-reasoning/types.js +6 -0
  41. package/dist/citation-reasoning/types.js.map +1 -0
  42. package/dist/educational/checker.d.ts +3 -0
  43. package/dist/educational/checker.d.ts.map +1 -0
  44. package/dist/educational/checker.js +244 -0
  45. package/dist/educational/checker.js.map +1 -0
  46. package/dist/educational/generator.d.ts +4 -0
  47. package/dist/educational/generator.d.ts.map +1 -0
  48. package/dist/educational/generator.js +158 -0
  49. package/dist/educational/generator.js.map +1 -0
  50. package/dist/educational/index.d.ts +6 -0
  51. package/dist/educational/index.d.ts.map +1 -0
  52. package/dist/educational/index.js +21 -0
  53. package/dist/educational/index.js.map +1 -0
  54. package/dist/educational/normalize.d.ts +6 -0
  55. package/dist/educational/normalize.d.ts.map +1 -0
  56. package/dist/educational/normalize.js +124 -0
  57. package/dist/educational/normalize.js.map +1 -0
  58. package/dist/educational/rng.d.ts +10 -0
  59. package/dist/educational/rng.d.ts.map +1 -0
  60. package/dist/educational/rng.js +47 -0
  61. package/dist/educational/rng.js.map +1 -0
  62. package/dist/educational/templates.d.ts +30 -0
  63. package/dist/educational/templates.d.ts.map +1 -0
  64. package/dist/educational/templates.js +567 -0
  65. package/dist/educational/templates.js.map +1 -0
  66. package/dist/educational/types.d.ts +44 -0
  67. package/dist/educational/types.d.ts.map +1 -0
  68. package/dist/educational/types.js +20 -0
  69. package/dist/educational/types.js.map +1 -0
  70. package/dist/exporters/coq/index.d.ts +35 -0
  71. package/dist/exporters/coq/index.d.ts.map +1 -0
  72. package/dist/exporters/coq/index.js +299 -0
  73. package/dist/exporters/coq/index.js.map +1 -0
  74. package/dist/fol-prover/cnf.d.ts +10 -0
  75. package/dist/fol-prover/cnf.d.ts.map +1 -0
  76. package/dist/fol-prover/cnf.js +357 -0
  77. package/dist/fol-prover/cnf.js.map +1 -0
  78. package/dist/fol-prover/index.d.ts +7 -0
  79. package/dist/fol-prover/index.d.ts.map +1 -0
  80. package/dist/fol-prover/index.js +27 -0
  81. package/dist/fol-prover/index.js.map +1 -0
  82. package/dist/fol-prover/prove.d.ts +4 -0
  83. package/dist/fol-prover/prove.d.ts.map +1 -0
  84. package/dist/fol-prover/prove.js +34 -0
  85. package/dist/fol-prover/prove.js.map +1 -0
  86. package/dist/fol-prover/resolve.d.ts +27 -0
  87. package/dist/fol-prover/resolve.d.ts.map +1 -0
  88. package/dist/fol-prover/resolve.js +234 -0
  89. package/dist/fol-prover/resolve.js.map +1 -0
  90. package/dist/fol-prover/types.d.ts +34 -0
  91. package/dist/fol-prover/types.d.ts.map +1 -0
  92. package/dist/fol-prover/types.js +38 -0
  93. package/dist/fol-prover/types.js.map +1 -0
  94. package/dist/fol-prover/unify.d.ts +9 -0
  95. package/dist/fol-prover/unify.d.ts.map +1 -0
  96. package/dist/fol-prover/unify.js +110 -0
  97. package/dist/fol-prover/unify.js.map +1 -0
  98. package/dist/hyperreal/index.d.ts +45 -0
  99. package/dist/hyperreal/index.d.ts.map +1 -0
  100. package/dist/hyperreal/index.js +183 -0
  101. package/dist/hyperreal/index.js.map +1 -0
  102. package/dist/index.d.ts +26 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +72 -1
  105. package/dist/index.js.map +1 -1
  106. package/dist/lsp/index.d.ts +6 -0
  107. package/dist/lsp/index.d.ts.map +1 -0
  108. package/dist/lsp/index.js +29 -0
  109. package/dist/lsp/index.js.map +1 -0
  110. package/dist/lsp/protocol.d.ts +20 -0
  111. package/dist/lsp/protocol.d.ts.map +1 -0
  112. package/dist/lsp/protocol.js +64 -0
  113. package/dist/lsp/protocol.js.map +1 -0
  114. package/dist/lsp/server.d.ts +47 -0
  115. package/dist/lsp/server.d.ts.map +1 -0
  116. package/dist/lsp/server.js +529 -0
  117. package/dist/lsp/server.js.map +1 -0
  118. package/dist/lsp/types.d.ts +152 -0
  119. package/dist/lsp/types.d.ts.map +1 -0
  120. package/dist/lsp/types.js +70 -0
  121. package/dist/lsp/types.js.map +1 -0
  122. package/dist/parser/formulas.d.ts +7 -0
  123. package/dist/parser/formulas.d.ts.map +1 -0
  124. package/dist/parser/formulas.js +511 -0
  125. package/dist/parser/formulas.js.map +1 -0
  126. package/dist/parser/parser.d.ts +11 -41
  127. package/dist/parser/parser.d.ts.map +1 -1
  128. package/dist/parser/parser.js +410 -1037
  129. package/dist/parser/parser.js.map +1 -1
  130. package/dist/parser/state.d.ts +34 -0
  131. package/dist/parser/state.d.ts.map +1 -0
  132. package/dist/parser/state.js +163 -0
  133. package/dist/parser/state.js.map +1 -0
  134. package/dist/plugin-system/demo-min-logic.d.ts +3 -0
  135. package/dist/plugin-system/demo-min-logic.d.ts.map +1 -0
  136. package/dist/plugin-system/demo-min-logic.js +116 -0
  137. package/dist/plugin-system/demo-min-logic.js.map +1 -0
  138. package/dist/plugin-system/errors.d.ts +9 -0
  139. package/dist/plugin-system/errors.d.ts.map +1 -0
  140. package/dist/plugin-system/errors.js +24 -0
  141. package/dist/plugin-system/errors.js.map +1 -0
  142. package/dist/plugin-system/index.d.ts +6 -0
  143. package/dist/plugin-system/index.d.ts.map +1 -0
  144. package/dist/plugin-system/index.js +14 -0
  145. package/dist/plugin-system/index.js.map +1 -0
  146. package/dist/plugin-system/registry.d.ts +12 -0
  147. package/dist/plugin-system/registry.d.ts.map +1 -0
  148. package/dist/plugin-system/registry.js +46 -0
  149. package/dist/plugin-system/registry.js.map +1 -0
  150. package/dist/plugin-system/types.d.ts +23 -0
  151. package/dist/plugin-system/types.d.ts.map +1 -0
  152. package/dist/plugin-system/types.js +3 -0
  153. package/dist/plugin-system/types.js.map +1 -0
  154. package/dist/plugin-system/validate.d.ts +4 -0
  155. package/dist/plugin-system/validate.d.ts.map +1 -0
  156. package/dist/plugin-system/validate.js +60 -0
  157. package/dist/plugin-system/validate.js.map +1 -0
  158. package/dist/profiles/classical/parallel-sat.js +3 -3
  159. package/dist/profiles/classical/parallel-sat.js.map +1 -1
  160. package/dist/proof-exchange/index.d.ts +24 -0
  161. package/dist/proof-exchange/index.d.ts.map +1 -0
  162. package/dist/proof-exchange/index.js +98 -0
  163. package/dist/proof-exchange/index.js.map +1 -0
  164. package/dist/runtime/memo/cache.d.ts +32 -0
  165. package/dist/runtime/memo/cache.d.ts.map +1 -0
  166. package/dist/runtime/memo/cache.js +129 -0
  167. package/dist/runtime/memo/cache.js.map +1 -0
  168. package/dist/runtime/memo/hash.d.ts +9 -0
  169. package/dist/runtime/memo/hash.d.ts.map +1 -0
  170. package/dist/runtime/memo/hash.js +87 -0
  171. package/dist/runtime/memo/hash.js.map +1 -0
  172. package/dist/runtime/memo/index.d.ts +4 -0
  173. package/dist/runtime/memo/index.d.ts.map +1 -0
  174. package/dist/runtime/memo/index.js +8 -0
  175. package/dist/runtime/memo/index.js.map +1 -0
  176. package/dist/runtime/parallel/index.d.ts +34 -0
  177. package/dist/runtime/parallel/index.d.ts.map +1 -0
  178. package/dist/runtime/parallel/index.js +220 -0
  179. package/dist/runtime/parallel/index.js.map +1 -0
  180. package/dist/runtime/parallel/worker.d.ts +22 -0
  181. package/dist/runtime/parallel/worker.d.ts.map +1 -0
  182. package/dist/runtime/parallel/worker.js +43 -0
  183. package/dist/runtime/parallel/worker.js.map +1 -0
  184. package/dist/runtime/smt/index.d.ts +6 -0
  185. package/dist/runtime/smt/index.d.ts.map +1 -0
  186. package/dist/runtime/smt/index.js +18 -0
  187. package/dist/runtime/smt/index.js.map +1 -0
  188. package/dist/runtime/smt/mock-backend.d.ts +30 -0
  189. package/dist/runtime/smt/mock-backend.d.ts.map +1 -0
  190. package/dist/runtime/smt/mock-backend.js +460 -0
  191. package/dist/runtime/smt/mock-backend.js.map +1 -0
  192. package/dist/runtime/smt/serializer.d.ts +21 -0
  193. package/dist/runtime/smt/serializer.d.ts.map +1 -0
  194. package/dist/runtime/smt/serializer.js +314 -0
  195. package/dist/runtime/smt/serializer.js.map +1 -0
  196. package/dist/runtime/smt/subprocess-backend.d.ts +62 -0
  197. package/dist/runtime/smt/subprocess-backend.d.ts.map +1 -0
  198. package/dist/runtime/smt/subprocess-backend.js +261 -0
  199. package/dist/runtime/smt/subprocess-backend.js.map +1 -0
  200. package/dist/runtime/smt/types.d.ts +57 -0
  201. package/dist/runtime/smt/types.d.ts.map +1 -0
  202. package/dist/runtime/smt/types.js +6 -0
  203. package/dist/runtime/smt/types.js.map +1 -0
  204. package/dist/runtime/streaming/index.d.ts +4 -0
  205. package/dist/runtime/streaming/index.d.ts.map +1 -0
  206. package/dist/runtime/streaming/index.js +9 -0
  207. package/dist/runtime/streaming/index.js.map +1 -0
  208. package/dist/runtime/streaming/stream-eval.d.ts +31 -0
  209. package/dist/runtime/streaming/stream-eval.d.ts.map +1 -0
  210. package/dist/runtime/streaming/stream-eval.js +155 -0
  211. package/dist/runtime/streaming/stream-eval.js.map +1 -0
  212. package/dist/runtime/streaming/types.d.ts +33 -0
  213. package/dist/runtime/streaming/types.d.ts.map +1 -0
  214. package/dist/runtime/streaming/types.js +6 -0
  215. package/dist/runtime/streaming/types.js.map +1 -0
  216. package/dist/runtime/typecheck/checker.d.ts +72 -0
  217. package/dist/runtime/typecheck/checker.d.ts.map +1 -0
  218. package/dist/runtime/typecheck/checker.js +462 -0
  219. package/dist/runtime/typecheck/checker.js.map +1 -0
  220. package/dist/runtime/typecheck/index.d.ts +4 -0
  221. package/dist/runtime/typecheck/index.d.ts.map +1 -0
  222. package/dist/runtime/typecheck/index.js +13 -0
  223. package/dist/runtime/typecheck/index.js.map +1 -0
  224. package/dist/runtime/typecheck/levenshtein.d.ts +11 -0
  225. package/dist/runtime/typecheck/levenshtein.d.ts.map +1 -0
  226. package/dist/runtime/typecheck/levenshtein.js +49 -0
  227. package/dist/runtime/typecheck/levenshtein.js.map +1 -0
  228. package/dist/runtime/typecheck/types.d.ts +14 -0
  229. package/dist/runtime/typecheck/types.d.ts.map +1 -0
  230. package/dist/runtime/typecheck/types.js +26 -0
  231. package/dist/runtime/typecheck/types.js.map +1 -0
  232. package/dist/solver/cdcl-v2/clause-learning.d.ts +33 -0
  233. package/dist/solver/cdcl-v2/clause-learning.d.ts.map +1 -0
  234. package/dist/solver/cdcl-v2/clause-learning.js +110 -0
  235. package/dist/solver/cdcl-v2/clause-learning.js.map +1 -0
  236. package/dist/solver/cdcl-v2/index.d.ts +9 -0
  237. package/dist/solver/cdcl-v2/index.d.ts.map +1 -0
  238. package/dist/solver/cdcl-v2/index.js +39 -0
  239. package/dist/solver/cdcl-v2/index.js.map +1 -0
  240. package/dist/solver/cdcl-v2/lbd.d.ts +34 -0
  241. package/dist/solver/cdcl-v2/lbd.d.ts.map +1 -0
  242. package/dist/solver/cdcl-v2/lbd.js +72 -0
  243. package/dist/solver/cdcl-v2/lbd.js.map +1 -0
  244. package/dist/solver/cdcl-v2/luby.d.ts +28 -0
  245. package/dist/solver/cdcl-v2/luby.d.ts.map +1 -0
  246. package/dist/solver/cdcl-v2/luby.js +70 -0
  247. package/dist/solver/cdcl-v2/luby.js.map +1 -0
  248. package/dist/solver/cdcl-v2/phase-saving.d.ts +14 -0
  249. package/dist/solver/cdcl-v2/phase-saving.d.ts.map +1 -0
  250. package/dist/solver/cdcl-v2/phase-saving.js +44 -0
  251. package/dist/solver/cdcl-v2/phase-saving.js.map +1 -0
  252. package/dist/solver/cdcl-v2/solver.d.ts +10 -0
  253. package/dist/solver/cdcl-v2/solver.d.ts.map +1 -0
  254. package/dist/solver/cdcl-v2/solver.js +442 -0
  255. package/dist/solver/cdcl-v2/solver.js.map +1 -0
  256. package/dist/solver/cdcl-v2/state.d.ts +54 -0
  257. package/dist/solver/cdcl-v2/state.d.ts.map +1 -0
  258. package/dist/solver/cdcl-v2/state.js +22 -0
  259. package/dist/solver/cdcl-v2/state.js.map +1 -0
  260. package/dist/solver/cdcl-v2/vsids.d.ts +19 -0
  261. package/dist/solver/cdcl-v2/vsids.d.ts.map +1 -0
  262. package/dist/solver/cdcl-v2/vsids.js +77 -0
  263. package/dist/solver/cdcl-v2/vsids.js.map +1 -0
  264. package/dist/tests/agora-integration-fixtures.test.js.map +1 -1
  265. package/dist/tests/argumentation/dung.test.d.ts +2 -0
  266. package/dist/tests/argumentation/dung.test.d.ts.map +1 -0
  267. package/dist/tests/argumentation/dung.test.js +219 -0
  268. package/dist/tests/argumentation/dung.test.js.map +1 -0
  269. package/dist/tests/citation-reasoning/citation-reasoning.test.d.ts +2 -0
  270. package/dist/tests/citation-reasoning/citation-reasoning.test.d.ts.map +1 -0
  271. package/dist/tests/citation-reasoning/citation-reasoning.test.js +240 -0
  272. package/dist/tests/citation-reasoning/citation-reasoning.test.js.map +1 -0
  273. package/dist/tests/coverage-fill-api.test.d.ts +7 -0
  274. package/dist/tests/coverage-fill-api.test.d.ts.map +1 -0
  275. package/dist/tests/coverage-fill-api.test.js +310 -0
  276. package/dist/tests/coverage-fill-api.test.js.map +1 -0
  277. package/dist/tests/coverage-fill-aristotelian.test.d.ts +7 -0
  278. package/dist/tests/coverage-fill-aristotelian.test.d.ts.map +1 -0
  279. package/dist/tests/coverage-fill-aristotelian.test.js +377 -0
  280. package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -0
  281. package/dist/tests/coverage-fill-belnap.test.d.ts +6 -0
  282. package/dist/tests/coverage-fill-belnap.test.d.ts.map +1 -0
  283. package/dist/tests/coverage-fill-belnap.test.js +277 -0
  284. package/dist/tests/coverage-fill-belnap.test.js.map +1 -0
  285. package/dist/tests/coverage-fill-cross-system.test.d.ts +6 -0
  286. package/dist/tests/coverage-fill-cross-system.test.d.ts.map +1 -0
  287. package/dist/tests/coverage-fill-cross-system.test.js +75 -0
  288. package/dist/tests/coverage-fill-cross-system.test.js.map +1 -0
  289. package/dist/tests/coverage-fill-fallacies.test.d.ts +6 -0
  290. package/dist/tests/coverage-fill-fallacies.test.d.ts.map +1 -0
  291. package/dist/tests/coverage-fill-fallacies.test.js +287 -0
  292. package/dist/tests/coverage-fill-fallacies.test.js.map +1 -0
  293. package/dist/tests/coverage-fill-format.test.d.ts +7 -0
  294. package/dist/tests/coverage-fill-format.test.d.ts.map +1 -0
  295. package/dist/tests/coverage-fill-format.test.js +455 -0
  296. package/dist/tests/coverage-fill-format.test.js.map +1 -0
  297. package/dist/tests/coverage-fill-intuitionistic.test.d.ts +6 -0
  298. package/dist/tests/coverage-fill-intuitionistic.test.d.ts.map +1 -0
  299. package/dist/tests/coverage-fill-intuitionistic.test.js +293 -0
  300. package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -0
  301. package/dist/tests/coverage-fill-probabilistic.test.d.ts +7 -0
  302. package/dist/tests/coverage-fill-probabilistic.test.d.ts.map +1 -0
  303. package/dist/tests/coverage-fill-probabilistic.test.js +314 -0
  304. package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -0
  305. package/dist/tests/educational/checker.test.d.ts +2 -0
  306. package/dist/tests/educational/checker.test.d.ts.map +1 -0
  307. package/dist/tests/educational/checker.test.js +212 -0
  308. package/dist/tests/educational/checker.test.js.map +1 -0
  309. package/dist/tests/educational/generator.test.d.ts +2 -0
  310. package/dist/tests/educational/generator.test.d.ts.map +1 -0
  311. package/dist/tests/educational/generator.test.js +137 -0
  312. package/dist/tests/educational/generator.test.js.map +1 -0
  313. package/dist/tests/exporters/coq/coq-exporter.test.d.ts +2 -0
  314. package/dist/tests/exporters/coq/coq-exporter.test.d.ts.map +1 -0
  315. package/dist/tests/exporters/coq/coq-exporter.test.js +353 -0
  316. package/dist/tests/exporters/coq/coq-exporter.test.js.map +1 -0
  317. package/dist/tests/fol-prover/cnf.test.d.ts +2 -0
  318. package/dist/tests/fol-prover/cnf.test.d.ts.map +1 -0
  319. package/dist/tests/fol-prover/cnf.test.js +74 -0
  320. package/dist/tests/fol-prover/cnf.test.js.map +1 -0
  321. package/dist/tests/fol-prover/prove.test.d.ts +2 -0
  322. package/dist/tests/fol-prover/prove.test.d.ts.map +1 -0
  323. package/dist/tests/fol-prover/prove.test.js +106 -0
  324. package/dist/tests/fol-prover/prove.test.js.map +1 -0
  325. package/dist/tests/fol-prover/unify.test.d.ts +2 -0
  326. package/dist/tests/fol-prover/unify.test.d.ts.map +1 -0
  327. package/dist/tests/fol-prover/unify.test.js +66 -0
  328. package/dist/tests/fol-prover/unify.test.js.map +1 -0
  329. package/dist/tests/hyperreal/hyperreal.test.d.ts +2 -0
  330. package/dist/tests/hyperreal/hyperreal.test.d.ts.map +1 -0
  331. package/dist/tests/hyperreal/hyperreal.test.js +219 -0
  332. package/dist/tests/hyperreal/hyperreal.test.js.map +1 -0
  333. package/dist/tests/lsp/server.test.d.ts +2 -0
  334. package/dist/tests/lsp/server.test.d.ts.map +1 -0
  335. package/dist/tests/lsp/server.test.js +406 -0
  336. package/dist/tests/lsp/server.test.js.map +1 -0
  337. package/dist/tests/memo/cache.test.d.ts +2 -0
  338. package/dist/tests/memo/cache.test.d.ts.map +1 -0
  339. package/dist/tests/memo/cache.test.js +252 -0
  340. package/dist/tests/memo/cache.test.js.map +1 -0
  341. package/dist/tests/parallel/parallel-pool.test.d.ts +11 -0
  342. package/dist/tests/parallel/parallel-pool.test.d.ts.map +1 -0
  343. package/dist/tests/parallel/parallel-pool.test.js +192 -0
  344. package/dist/tests/parallel/parallel-pool.test.js.map +1 -0
  345. package/dist/tests/plugin-system/demo-min-logic.test.d.ts +2 -0
  346. package/dist/tests/plugin-system/demo-min-logic.test.d.ts.map +1 -0
  347. package/dist/tests/plugin-system/demo-min-logic.test.js +85 -0
  348. package/dist/tests/plugin-system/demo-min-logic.test.js.map +1 -0
  349. package/dist/tests/plugin-system/registry.test.d.ts +2 -0
  350. package/dist/tests/plugin-system/registry.test.d.ts.map +1 -0
  351. package/dist/tests/plugin-system/registry.test.js +88 -0
  352. package/dist/tests/plugin-system/registry.test.js.map +1 -0
  353. package/dist/tests/plugin-system/validate.test.d.ts +2 -0
  354. package/dist/tests/plugin-system/validate.test.d.ts.map +1 -0
  355. package/dist/tests/plugin-system/validate.test.js +101 -0
  356. package/dist/tests/plugin-system/validate.test.js.map +1 -0
  357. package/dist/tests/proof-exchange/proof-exchange.test.d.ts +2 -0
  358. package/dist/tests/proof-exchange/proof-exchange.test.d.ts.map +1 -0
  359. package/dist/tests/proof-exchange/proof-exchange.test.js +161 -0
  360. package/dist/tests/proof-exchange/proof-exchange.test.js.map +1 -0
  361. package/dist/tests/sat-v2/clause-learning.test.d.ts +2 -0
  362. package/dist/tests/sat-v2/clause-learning.test.d.ts.map +1 -0
  363. package/dist/tests/sat-v2/clause-learning.test.js +73 -0
  364. package/dist/tests/sat-v2/clause-learning.test.js.map +1 -0
  365. package/dist/tests/sat-v2/lbd.test.d.ts +2 -0
  366. package/dist/tests/sat-v2/lbd.test.d.ts.map +1 -0
  367. package/dist/tests/sat-v2/lbd.test.js +82 -0
  368. package/dist/tests/sat-v2/lbd.test.js.map +1 -0
  369. package/dist/tests/sat-v2/luby.test.d.ts +2 -0
  370. package/dist/tests/sat-v2/luby.test.d.ts.map +1 -0
  371. package/dist/tests/sat-v2/luby.test.js +58 -0
  372. package/dist/tests/sat-v2/luby.test.js.map +1 -0
  373. package/dist/tests/sat-v2/phase-saving.test.d.ts +2 -0
  374. package/dist/tests/sat-v2/phase-saving.test.d.ts.map +1 -0
  375. package/dist/tests/sat-v2/phase-saving.test.js +38 -0
  376. package/dist/tests/sat-v2/phase-saving.test.js.map +1 -0
  377. package/dist/tests/sat-v2/solver-end-to-end.test.d.ts +2 -0
  378. package/dist/tests/sat-v2/solver-end-to-end.test.d.ts.map +1 -0
  379. package/dist/tests/sat-v2/solver-end-to-end.test.js +199 -0
  380. package/dist/tests/sat-v2/solver-end-to-end.test.js.map +1 -0
  381. package/dist/tests/sat-v2/vsids.test.d.ts +2 -0
  382. package/dist/tests/sat-v2/vsids.test.d.ts.map +1 -0
  383. package/dist/tests/sat-v2/vsids.test.js +69 -0
  384. package/dist/tests/sat-v2/vsids.test.js.map +1 -0
  385. package/dist/tests/smt/mock-backend.test.d.ts +2 -0
  386. package/dist/tests/smt/mock-backend.test.d.ts.map +1 -0
  387. package/dist/tests/smt/mock-backend.test.js +129 -0
  388. package/dist/tests/smt/mock-backend.test.js.map +1 -0
  389. package/dist/tests/smt/serializer.test.d.ts +2 -0
  390. package/dist/tests/smt/serializer.test.d.ts.map +1 -0
  391. package/dist/tests/smt/serializer.test.js +94 -0
  392. package/dist/tests/smt/serializer.test.js.map +1 -0
  393. package/dist/tests/smt/subprocess-backend.test.d.ts +2 -0
  394. package/dist/tests/smt/subprocess-backend.test.d.ts.map +1 -0
  395. package/dist/tests/smt/subprocess-backend.test.js +89 -0
  396. package/dist/tests/smt/subprocess-backend.test.js.map +1 -0
  397. package/dist/tests/streaming/stream-eval.test.d.ts +2 -0
  398. package/dist/tests/streaming/stream-eval.test.d.ts.map +1 -0
  399. package/dist/tests/streaming/stream-eval.test.js +170 -0
  400. package/dist/tests/streaming/stream-eval.test.js.map +1 -0
  401. package/dist/tests/text-layer-v2/claim-graph.test.d.ts +2 -0
  402. package/dist/tests/text-layer-v2/claim-graph.test.d.ts.map +1 -0
  403. package/dist/tests/text-layer-v2/claim-graph.test.js +255 -0
  404. package/dist/tests/text-layer-v2/claim-graph.test.js.map +1 -0
  405. package/dist/tests/time-travel/snapshot.test.d.ts +2 -0
  406. package/dist/tests/time-travel/snapshot.test.d.ts.map +1 -0
  407. package/dist/tests/time-travel/snapshot.test.js +75 -0
  408. package/dist/tests/time-travel/snapshot.test.js.map +1 -0
  409. package/dist/tests/time-travel/store.test.d.ts +2 -0
  410. package/dist/tests/time-travel/store.test.d.ts.map +1 -0
  411. package/dist/tests/time-travel/store.test.js +242 -0
  412. package/dist/tests/time-travel/store.test.js.map +1 -0
  413. package/dist/tests/typecheck-core.test.d.ts +2 -0
  414. package/dist/tests/typecheck-core.test.d.ts.map +1 -0
  415. package/dist/tests/typecheck-core.test.js +339 -0
  416. package/dist/tests/typecheck-core.test.js.map +1 -0
  417. package/dist/text-layer/v2/claim-graph.d.ts +45 -0
  418. package/dist/text-layer/v2/claim-graph.d.ts.map +1 -0
  419. package/dist/text-layer/v2/claim-graph.js +270 -0
  420. package/dist/text-layer/v2/claim-graph.js.map +1 -0
  421. package/dist/text-layer/v2/index.d.ts +6 -0
  422. package/dist/text-layer/v2/index.d.ts.map +1 -0
  423. package/dist/text-layer/v2/index.js +10 -0
  424. package/dist/text-layer/v2/index.js.map +1 -0
  425. package/dist/text-layer/v2/types.d.ts +32 -0
  426. package/dist/text-layer/v2/types.d.ts.map +1 -0
  427. package/dist/text-layer/v2/types.js +11 -0
  428. package/dist/text-layer/v2/types.js.map +1 -0
  429. package/dist/time-travel/index.d.ts +4 -0
  430. package/dist/time-travel/index.d.ts.map +1 -0
  431. package/dist/time-travel/index.js +8 -0
  432. package/dist/time-travel/index.js.map +1 -0
  433. package/dist/time-travel/snapshot.d.ts +9 -0
  434. package/dist/time-travel/snapshot.d.ts.map +1 -0
  435. package/dist/time-travel/snapshot.js +24 -0
  436. package/dist/time-travel/snapshot.js.map +1 -0
  437. package/dist/time-travel/store.d.ts +14 -0
  438. package/dist/time-travel/store.d.ts.map +1 -0
  439. package/dist/time-travel/store.js +119 -0
  440. package/dist/time-travel/store.js.map +1 -0
  441. package/dist/time-travel/types.d.ts +50 -0
  442. package/dist/time-travel/types.d.ts.map +1 -0
  443. package/dist/time-travel/types.js +3 -0
  444. package/dist/time-travel/types.js.map +1 -0
  445. package/package.json +5 -1
@@ -0,0 +1,529 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST LSP — Server v1
4
+ // ============================================================
5
+ //
6
+ // Soporta JSON-RPC sobre stdin/stdout con framing Content-Length.
7
+ // Implementa textDocument/didOpen,didChange,didSave,didClose,
8
+ // hover, definition, completion y publishDiagnostics.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.STLanguageServer = void 0;
11
+ const api_1 = require("../api");
12
+ const typecheck_1 = require("../runtime/typecheck");
13
+ const protocol_1 = require("./protocol");
14
+ const types_1 = require("./types");
15
+ const SERVER_NAME = 'st-lsp';
16
+ const SERVER_VERSION = '1.0.0';
17
+ const DIAGNOSTICS_SOURCE = 'st';
18
+ /**
19
+ * Implementa el Language Server Protocol mínimo para archivos `.st`.
20
+ *
21
+ * Diseñado para que la lógica de dispatch sea testeable sin streams: usa
22
+ * `dispatch()` directamente o llama `listen(stdin, stdout)` para correrlo
23
+ * conectado a procesos.
24
+ */
25
+ class STLanguageServer {
26
+ documents = new Map();
27
+ initialized = false;
28
+ shutdownRequested = false;
29
+ emit;
30
+ constructor(emit) {
31
+ this.emit = emit ?? (() => undefined);
32
+ }
33
+ /** Conecta el server a streams (típicamente process.stdin / process.stdout). */
34
+ listen(stdin, stdout) {
35
+ const sendToStream = (message) => {
36
+ stdout.write((0, protocol_1.encodeMessage)(message));
37
+ };
38
+ // Re-cableamos el sink: tanto las respuestas directas como las
39
+ // notificaciones que el server emite (p.ej. publishDiagnostics) deben
40
+ // salir por el mismo stdout.
41
+ this.emit = sendToStream;
42
+ let buffer = Buffer.alloc(0);
43
+ stdin.on('data', (chunk) => {
44
+ buffer = Buffer.concat([buffer, chunk]);
45
+ const { messages, remainder } = (0, protocol_1.parseFrames)(buffer);
46
+ buffer = remainder;
47
+ for (const message of messages) {
48
+ const response = this.dispatch(message);
49
+ if (response)
50
+ sendToStream(response);
51
+ }
52
+ });
53
+ }
54
+ /**
55
+ * Procesa un mensaje entrante. Devuelve la respuesta (para requests) o
56
+ * `null` (para notificaciones o cuando el método no produce respuesta).
57
+ * Las notificaciones emitidas como efecto (publishDiagnostics) salen
58
+ * por el callback `emit` configurado en el constructor o por `listen()`.
59
+ */
60
+ dispatch(message) {
61
+ if ((0, protocol_1.isRequest)(message)) {
62
+ return this.handleRequest(message);
63
+ }
64
+ if ((0, protocol_1.isNotification)(message)) {
65
+ this.handleNotification(message);
66
+ return null;
67
+ }
68
+ return null;
69
+ }
70
+ // ── Request handlers ─────────────────────────────────────
71
+ handleRequest(request) {
72
+ try {
73
+ switch (request.method) {
74
+ case 'initialize':
75
+ return this.respond(request.id, this.handleInitialize());
76
+ case 'initialized':
77
+ // Es una notificación en spec, pero algunos clientes la mandan como
78
+ // request; aceptamos ambos.
79
+ return this.respond(request.id, null);
80
+ case 'shutdown':
81
+ this.shutdownRequested = true;
82
+ return this.respond(request.id, null);
83
+ case 'exit':
84
+ return this.respond(request.id, null);
85
+ case 'textDocument/hover':
86
+ return this.respond(request.id, this.handleHover(request.params));
87
+ case 'textDocument/definition':
88
+ return this.respond(request.id, this.handleDefinition(request.params));
89
+ case 'textDocument/completion':
90
+ return this.respond(request.id, this.handleCompletion(request.params));
91
+ case 'textDocument/documentSymbol':
92
+ return this.respond(request.id, this.handleDocumentSymbol(request.params));
93
+ default:
94
+ return this.error(request.id, types_1.JSON_RPC_ERROR_CODES.MethodNotFound, `Método no soportado: ${request.method}`);
95
+ }
96
+ }
97
+ catch (err) {
98
+ const message = err instanceof Error ? err.message : String(err);
99
+ return this.error(request.id, types_1.JSON_RPC_ERROR_CODES.InternalError, message);
100
+ }
101
+ }
102
+ handleInitialize() {
103
+ this.initialized = true;
104
+ const capabilities = {
105
+ textDocumentSync: types_1.TextDocumentSyncKind.Full,
106
+ hoverProvider: true,
107
+ definitionProvider: true,
108
+ completionProvider: {
109
+ triggerCharacters: [' ', '.', '(', '{', ':'],
110
+ resolveProvider: false,
111
+ },
112
+ documentSymbolProvider: true,
113
+ };
114
+ return { capabilities, serverInfo: { name: SERVER_NAME, version: SERVER_VERSION } };
115
+ }
116
+ handleHover(params) {
117
+ const tp = parseTextDocumentPosition(params);
118
+ if (!tp)
119
+ return null;
120
+ const doc = this.documents.get(tp.uri);
121
+ if (!doc)
122
+ return null;
123
+ // Convertimos LSP (0-based) → ST (1-based).
124
+ const info = (0, api_1.hover)(doc.text, tp.position.line + 1, tp.position.character + 1, tp.uri);
125
+ if (!info)
126
+ return null;
127
+ const range = info.range
128
+ ? toLspRange({
129
+ line: info.range.line,
130
+ column: info.range.column,
131
+ endLine: info.range.endLine,
132
+ endColumn: info.range.endColumn,
133
+ })
134
+ : undefined;
135
+ return {
136
+ contents: { kind: 'markdown', value: info.content },
137
+ range,
138
+ };
139
+ }
140
+ handleDefinition(params) {
141
+ const tp = parseTextDocumentPosition(params);
142
+ if (!tp)
143
+ return null;
144
+ const doc = this.documents.get(tp.uri);
145
+ if (!doc)
146
+ return null;
147
+ const word = getWordAtPosition(doc.text, tp.position);
148
+ if (!word)
149
+ return null;
150
+ const loc = (0, api_1.gotoDefinition)(doc.text, word, tp.uri);
151
+ if (!loc)
152
+ return null;
153
+ const range = toLspRange({
154
+ line: loc.line,
155
+ column: loc.column,
156
+ endLine: loc.endLine,
157
+ endColumn: loc.endColumn,
158
+ });
159
+ return { uri: tp.uri, range };
160
+ }
161
+ handleCompletion(params) {
162
+ // Por ahora no usamos la posición para filtrar — devolvemos todas las
163
+ // keywords/snippets de ST y dejamos que el cliente filtre por prefijo.
164
+ void params;
165
+ const items = (0, api_1.completion)().map(toLspCompletionItem);
166
+ // Añadimos los operadores Unicode comunes que el agente puede querer
167
+ // insertar y que no vienen en la lista del handler (handleCompletion del
168
+ // ProtocolHandler ya cubre keywords y snippets; sumamos operadores).
169
+ for (const op of UNICODE_OPERATORS) {
170
+ items.push({
171
+ label: op.label,
172
+ kind: types_1.CompletionItemKind.Operator,
173
+ detail: op.detail,
174
+ insertText: op.label,
175
+ insertTextFormat: types_1.InsertTextFormat.PlainText,
176
+ });
177
+ }
178
+ return { items, isIncomplete: false };
179
+ }
180
+ handleDocumentSymbol(params) {
181
+ if (!isObject(params))
182
+ return [];
183
+ const td = params.textDocument;
184
+ if (!isObject(td) || typeof td.uri !== 'string')
185
+ return [];
186
+ const uri = td.uri;
187
+ const doc = this.documents.get(uri);
188
+ if (!doc)
189
+ return [];
190
+ return (0, api_1.symbols)(doc.text, uri).map((s) => ({
191
+ name: s.name,
192
+ kind: mapSymbolKind(s.kind),
193
+ detail: s.detail,
194
+ location: {
195
+ uri,
196
+ range: toLspRange({
197
+ line: s.location.line,
198
+ column: s.location.column,
199
+ endLine: s.location.endLine,
200
+ endColumn: s.location.endColumn,
201
+ }),
202
+ },
203
+ }));
204
+ }
205
+ // ── Notification handlers ────────────────────────────────
206
+ handleNotification(notification) {
207
+ switch (notification.method) {
208
+ case 'initialized':
209
+ // No-op: confirmación del cliente tras initialize.
210
+ break;
211
+ case 'textDocument/didOpen':
212
+ this.onDidOpen(notification.params);
213
+ break;
214
+ case 'textDocument/didChange':
215
+ this.onDidChange(notification.params);
216
+ break;
217
+ case 'textDocument/didSave':
218
+ this.onDidSave(notification.params);
219
+ break;
220
+ case 'textDocument/didClose':
221
+ this.onDidClose(notification.params);
222
+ break;
223
+ case 'exit':
224
+ // Liberamos estado: en proceso real esto cierra el daemon.
225
+ this.documents.clear();
226
+ break;
227
+ default:
228
+ // Ignoramos otras notificaciones (workspace/didChangeConfiguration, etc).
229
+ break;
230
+ }
231
+ }
232
+ onDidOpen(params) {
233
+ if (!isObject(params))
234
+ return;
235
+ const td = params.textDocument;
236
+ if (!isTextDocumentItem(td))
237
+ return;
238
+ this.documents.set(td.uri, { uri: td.uri, version: td.version, text: td.text });
239
+ this.publishDiagnostics(td.uri, td.version, td.text);
240
+ }
241
+ onDidChange(params) {
242
+ if (!isObject(params))
243
+ return;
244
+ const td = params.textDocument;
245
+ const changes = params.contentChanges;
246
+ if (!isVersionedTextDocumentIdentifier(td))
247
+ return;
248
+ if (!Array.isArray(changes) || changes.length === 0)
249
+ return;
250
+ const existing = this.documents.get(td.uri);
251
+ if (!existing)
252
+ return;
253
+ // v1: solo Full sync. Tomamos el último cambio con `text` completo.
254
+ const last = changes[changes.length - 1];
255
+ if (typeof last.text !== 'string')
256
+ return;
257
+ existing.text = last.text;
258
+ existing.version = td.version;
259
+ this.publishDiagnostics(td.uri, td.version, last.text);
260
+ }
261
+ onDidSave(params) {
262
+ if (!isObject(params))
263
+ return;
264
+ const td = params.textDocument;
265
+ if (!isObject(td) || typeof td.uri !== 'string')
266
+ return;
267
+ const uri = td.uri;
268
+ const doc = this.documents.get(uri);
269
+ if (!doc)
270
+ return;
271
+ this.publishDiagnostics(uri, doc.version, doc.text);
272
+ }
273
+ onDidClose(params) {
274
+ if (!isObject(params))
275
+ return;
276
+ const td = params.textDocument;
277
+ if (!isObject(td) || typeof td.uri !== 'string')
278
+ return;
279
+ const uri = td.uri;
280
+ this.documents.delete(uri);
281
+ // Limpiamos diagnostics del cliente.
282
+ this.publish({
283
+ jsonrpc: '2.0',
284
+ method: 'textDocument/publishDiagnostics',
285
+ params: { uri, diagnostics: [] },
286
+ });
287
+ }
288
+ // ── Helpers ──────────────────────────────────────────────
289
+ publishDiagnostics(uri, version, text) {
290
+ const diagnostics = [];
291
+ // 1) Parse diagnostics (errores de sintaxis + warnings/info del parser).
292
+ const parsed = (0, api_1.parse)(text, uri);
293
+ for (const d of parsed.diagnostics) {
294
+ if (d.severity === 'error' || d.severity === 'warning') {
295
+ diagnostics.push(toLspDiagnostic(d));
296
+ }
297
+ }
298
+ // 2) Type-check diagnostics si el parse fue exitoso. Usamos el perfil
299
+ // declarado en el script (statement `logic X.Y`) o cadena vacía.
300
+ if (parsed.ok && parsed.program) {
301
+ const profile = inferProfile(parsed.program);
302
+ try {
303
+ const typeErrors = (0, typecheck_1.typeCheck)(parsed.program, profile, uri);
304
+ for (const te of typeErrors) {
305
+ diagnostics.push(typeErrorToLspDiagnostic(te));
306
+ }
307
+ }
308
+ catch {
309
+ // Si el typeCheck falla en algún statement exótico, no bloqueamos
310
+ // el flujo de diagnostics — sólo perdemos esa ronda.
311
+ }
312
+ }
313
+ this.publish({
314
+ jsonrpc: '2.0',
315
+ method: 'textDocument/publishDiagnostics',
316
+ params: { uri, version, diagnostics },
317
+ });
318
+ }
319
+ publish(notification) {
320
+ this.emit(notification);
321
+ }
322
+ respond(id, result) {
323
+ return { jsonrpc: '2.0', id, result };
324
+ }
325
+ error(id, code, message) {
326
+ return { jsonrpc: '2.0', id, error: { code, message } };
327
+ }
328
+ /** True si el cliente ya envió `initialize`. Útil para tests. */
329
+ isInitialized() {
330
+ return this.initialized;
331
+ }
332
+ /** True si el cliente pidió shutdown. */
333
+ isShutdownRequested() {
334
+ return this.shutdownRequested;
335
+ }
336
+ }
337
+ exports.STLanguageServer = STLanguageServer;
338
+ // ── Validadores de params ───────────────────────────────────
339
+ function isObject(value) {
340
+ return typeof value === 'object' && value !== null;
341
+ }
342
+ function isTextDocumentItem(value) {
343
+ if (!isObject(value))
344
+ return false;
345
+ return (typeof value.uri === 'string' &&
346
+ typeof value.languageId === 'string' &&
347
+ typeof value.version === 'number' &&
348
+ typeof value.text === 'string');
349
+ }
350
+ function isVersionedTextDocumentIdentifier(value) {
351
+ if (!isObject(value))
352
+ return false;
353
+ return typeof value.uri === 'string' && typeof value.version === 'number';
354
+ }
355
+ function parseTextDocumentPosition(params) {
356
+ if (!isObject(params))
357
+ return null;
358
+ const td = params.textDocument;
359
+ const pos = params.position;
360
+ if (!isObject(td) || typeof td.uri !== 'string')
361
+ return null;
362
+ if (!isObject(pos))
363
+ return null;
364
+ const line = pos.line;
365
+ const character = pos.character;
366
+ if (typeof line !== 'number' || typeof character !== 'number')
367
+ return null;
368
+ return { uri: td.uri, position: { line, character } };
369
+ }
370
+ function toLspRange(loc) {
371
+ const startLine = Math.max(0, loc.line - 1);
372
+ const startCol = Math.max(0, loc.column - 1);
373
+ const endLine = loc.endLine !== undefined ? Math.max(0, loc.endLine - 1) : startLine;
374
+ const endCol = loc.endColumn !== undefined ? Math.max(0, loc.endColumn - 1) : startCol + 1;
375
+ return {
376
+ start: { line: startLine, character: startCol },
377
+ end: { line: endLine, character: endCol },
378
+ };
379
+ }
380
+ function toLspDiagnostic(d) {
381
+ const start = {
382
+ line: Math.max(0, (d.line ?? 1) - 1),
383
+ character: Math.max(0, (d.column ?? 1) - 1),
384
+ };
385
+ const end = {
386
+ line: Math.max(0, (d.endLine ?? d.line ?? 1) - 1),
387
+ character: Math.max(start.character + 1, (d.endColumn ?? (d.column ?? 1) + 1) - 1),
388
+ };
389
+ const messageWithSuggestion = d.suggestion
390
+ ? `${d.message}\n\nSugerencia: ${d.suggestion}`
391
+ : d.message;
392
+ return {
393
+ range: { start, end },
394
+ severity: mapDiagnosticSeverity(d.severity),
395
+ code: d.code,
396
+ source: DIAGNOSTICS_SOURCE,
397
+ message: messageWithSuggestion,
398
+ };
399
+ }
400
+ function mapDiagnosticSeverity(s) {
401
+ switch (s) {
402
+ case 'error':
403
+ return types_1.DiagnosticSeverity.Error;
404
+ case 'warning':
405
+ return types_1.DiagnosticSeverity.Warning;
406
+ case 'info':
407
+ return types_1.DiagnosticSeverity.Information;
408
+ case 'hint':
409
+ return types_1.DiagnosticSeverity.Hint;
410
+ default:
411
+ return types_1.DiagnosticSeverity.Information;
412
+ }
413
+ }
414
+ function toLspCompletionItem(item) {
415
+ const isSnippet = /\$\{[^}]+\}/.test(item.insertText);
416
+ return {
417
+ label: item.label,
418
+ kind: mapCompletionKind(item.kind),
419
+ detail: item.detail,
420
+ documentation: item.documentation ? { kind: 'markdown', value: item.documentation } : undefined,
421
+ insertText: item.insertText,
422
+ insertTextFormat: isSnippet ? types_1.InsertTextFormat.Snippet : types_1.InsertTextFormat.PlainText,
423
+ };
424
+ }
425
+ function mapCompletionKind(kind) {
426
+ switch (kind) {
427
+ case 'keyword':
428
+ return types_1.CompletionItemKind.Keyword;
429
+ case 'snippet':
430
+ return types_1.CompletionItemKind.Snippet;
431
+ case 'value':
432
+ return types_1.CompletionItemKind.Value;
433
+ case 'function':
434
+ return types_1.CompletionItemKind.Function;
435
+ case 'variable':
436
+ return types_1.CompletionItemKind.Variable;
437
+ case 'operator':
438
+ return types_1.CompletionItemKind.Operator;
439
+ default:
440
+ return types_1.CompletionItemKind.Text;
441
+ }
442
+ }
443
+ function mapSymbolKind(kind) {
444
+ // SymbolKind LSP: 1=File, 5=Class, 6=Method, 7=Property, 11=Interface,
445
+ // 12=Function, 13=Variable, 14=Constant, ...
446
+ switch (kind) {
447
+ case 'axiom':
448
+ return 14; // Constant
449
+ case 'theorem':
450
+ return 11; // Interface
451
+ case 'claim':
452
+ return 13; // Variable
453
+ case 'definition':
454
+ return 6; // Method
455
+ case 'function':
456
+ return 12; // Function
457
+ case 'passage':
458
+ return 7; // Property
459
+ case 'source':
460
+ return 1; // File
461
+ case 'interpretation':
462
+ return 13; // Variable
463
+ case 'formula':
464
+ return 13;
465
+ case 'variable':
466
+ return 13;
467
+ default:
468
+ return 13;
469
+ }
470
+ }
471
+ // ── Helpers de palabras ─────────────────────────────────────
472
+ const WORD_CHAR = /[a-zA-Z0-9_.]/;
473
+ function getWordAtPosition(text, position) {
474
+ const lines = text.split('\n');
475
+ if (position.line < 0 || position.line >= lines.length)
476
+ return null;
477
+ const line = lines[position.line];
478
+ const col = position.character;
479
+ if (col < 0 || col > line.length)
480
+ return null;
481
+ let start = col;
482
+ while (start > 0 && WORD_CHAR.test(line[start - 1]))
483
+ start--;
484
+ let end = col;
485
+ while (end < line.length && WORD_CHAR.test(line[end]))
486
+ end++;
487
+ const word = line.substring(start, end).replace(/^\.+|\.+$/g, '');
488
+ return word.length > 0 ? word : null;
489
+ }
490
+ // ── Inferencia de perfil y conversión de TypeError ────────
491
+ function inferProfile(program) {
492
+ for (const stmt of program.statements) {
493
+ if (stmt.kind === 'logic_decl') {
494
+ return stmt.profile;
495
+ }
496
+ }
497
+ return '';
498
+ }
499
+ function typeErrorToLspDiagnostic(te) {
500
+ const start = {
501
+ line: Math.max(0, te.location.line - 1),
502
+ character: Math.max(0, te.location.column - 1),
503
+ };
504
+ const endLine = te.location.endLine !== undefined ? Math.max(0, te.location.endLine - 1) : start.line;
505
+ const endCol = te.location.endColumn !== undefined
506
+ ? Math.max(0, te.location.endColumn - 1)
507
+ : start.character + 1;
508
+ const msg = te.suggestion ? `${te.message}\n\nSugerencia: ${te.suggestion}` : te.message;
509
+ return {
510
+ range: { start, end: { line: endLine, character: endCol } },
511
+ severity: te.severity === 'error' ? types_1.DiagnosticSeverity.Error : types_1.DiagnosticSeverity.Warning,
512
+ code: te.code,
513
+ source: DIAGNOSTICS_SOURCE,
514
+ message: msg,
515
+ };
516
+ }
517
+ // ── Operadores Unicode adicionales para completion ─────────
518
+ const UNICODE_OPERATORS = [
519
+ { label: '∧', detail: 'Conjunción (and)' },
520
+ { label: '∨', detail: 'Disyunción (or)' },
521
+ { label: '→', detail: 'Implicación' },
522
+ { label: '¬', detail: 'Negación' },
523
+ { label: '↔', detail: 'Bicondicional' },
524
+ { label: '∀', detail: 'Cuantificador universal' },
525
+ { label: '∃', detail: 'Cuantificador existencial' },
526
+ { label: '□', detail: 'Necesidad modal' },
527
+ { label: '◇', detail: 'Posibilidad modal' },
528
+ ];
529
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/lsp/server.ts"],"names":[],"mappings":"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"}