@stevenvo780/st-lang 3.2.2 → 4.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 (461) 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 -40
  127. package/dist/parser/parser.d.ts.map +1 -1
  128. package/dist/parser/parser.js +410 -1017
  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/first-order.d.ts.map +1 -1
  159. package/dist/profiles/classical/first-order.js +7 -1
  160. package/dist/profiles/classical/first-order.js.map +1 -1
  161. package/dist/profiles/classical/parallel-sat.js +3 -3
  162. package/dist/profiles/classical/parallel-sat.js.map +1 -1
  163. package/dist/profiles/classical/propositional.d.ts.map +1 -1
  164. package/dist/profiles/classical/propositional.js +40 -4
  165. package/dist/profiles/classical/propositional.js.map +1 -1
  166. package/dist/proof-exchange/index.d.ts +26 -0
  167. package/dist/proof-exchange/index.d.ts.map +1 -0
  168. package/dist/proof-exchange/index.js +94 -0
  169. package/dist/proof-exchange/index.js.map +1 -0
  170. package/dist/runtime/interpreter.d.ts.map +1 -1
  171. package/dist/runtime/interpreter.js +6 -4
  172. package/dist/runtime/interpreter.js.map +1 -1
  173. package/dist/runtime/memo/cache.d.ts +32 -0
  174. package/dist/runtime/memo/cache.d.ts.map +1 -0
  175. package/dist/runtime/memo/cache.js +129 -0
  176. package/dist/runtime/memo/cache.js.map +1 -0
  177. package/dist/runtime/memo/hash.d.ts +9 -0
  178. package/dist/runtime/memo/hash.d.ts.map +1 -0
  179. package/dist/runtime/memo/hash.js +87 -0
  180. package/dist/runtime/memo/hash.js.map +1 -0
  181. package/dist/runtime/memo/index.d.ts +4 -0
  182. package/dist/runtime/memo/index.d.ts.map +1 -0
  183. package/dist/runtime/memo/index.js +8 -0
  184. package/dist/runtime/memo/index.js.map +1 -0
  185. package/dist/runtime/parallel/index.d.ts +34 -0
  186. package/dist/runtime/parallel/index.d.ts.map +1 -0
  187. package/dist/runtime/parallel/index.js +220 -0
  188. package/dist/runtime/parallel/index.js.map +1 -0
  189. package/dist/runtime/parallel/worker.d.ts +22 -0
  190. package/dist/runtime/parallel/worker.d.ts.map +1 -0
  191. package/dist/runtime/parallel/worker.js +43 -0
  192. package/dist/runtime/parallel/worker.js.map +1 -0
  193. package/dist/runtime/smt/index.d.ts +6 -0
  194. package/dist/runtime/smt/index.d.ts.map +1 -0
  195. package/dist/runtime/smt/index.js +18 -0
  196. package/dist/runtime/smt/index.js.map +1 -0
  197. package/dist/runtime/smt/mock-backend.d.ts +30 -0
  198. package/dist/runtime/smt/mock-backend.d.ts.map +1 -0
  199. package/dist/runtime/smt/mock-backend.js +460 -0
  200. package/dist/runtime/smt/mock-backend.js.map +1 -0
  201. package/dist/runtime/smt/serializer.d.ts +21 -0
  202. package/dist/runtime/smt/serializer.d.ts.map +1 -0
  203. package/dist/runtime/smt/serializer.js +314 -0
  204. package/dist/runtime/smt/serializer.js.map +1 -0
  205. package/dist/runtime/smt/subprocess-backend.d.ts +62 -0
  206. package/dist/runtime/smt/subprocess-backend.d.ts.map +1 -0
  207. package/dist/runtime/smt/subprocess-backend.js +261 -0
  208. package/dist/runtime/smt/subprocess-backend.js.map +1 -0
  209. package/dist/runtime/smt/types.d.ts +57 -0
  210. package/dist/runtime/smt/types.d.ts.map +1 -0
  211. package/dist/runtime/smt/types.js +6 -0
  212. package/dist/runtime/smt/types.js.map +1 -0
  213. package/dist/runtime/streaming/index.d.ts +4 -0
  214. package/dist/runtime/streaming/index.d.ts.map +1 -0
  215. package/dist/runtime/streaming/index.js +9 -0
  216. package/dist/runtime/streaming/index.js.map +1 -0
  217. package/dist/runtime/streaming/stream-eval.d.ts +31 -0
  218. package/dist/runtime/streaming/stream-eval.d.ts.map +1 -0
  219. package/dist/runtime/streaming/stream-eval.js +155 -0
  220. package/dist/runtime/streaming/stream-eval.js.map +1 -0
  221. package/dist/runtime/streaming/types.d.ts +33 -0
  222. package/dist/runtime/streaming/types.d.ts.map +1 -0
  223. package/dist/runtime/streaming/types.js +6 -0
  224. package/dist/runtime/streaming/types.js.map +1 -0
  225. package/dist/runtime/typecheck/checker.d.ts +72 -0
  226. package/dist/runtime/typecheck/checker.d.ts.map +1 -0
  227. package/dist/runtime/typecheck/checker.js +462 -0
  228. package/dist/runtime/typecheck/checker.js.map +1 -0
  229. package/dist/runtime/typecheck/index.d.ts +4 -0
  230. package/dist/runtime/typecheck/index.d.ts.map +1 -0
  231. package/dist/runtime/typecheck/index.js +13 -0
  232. package/dist/runtime/typecheck/index.js.map +1 -0
  233. package/dist/runtime/typecheck/levenshtein.d.ts +11 -0
  234. package/dist/runtime/typecheck/levenshtein.d.ts.map +1 -0
  235. package/dist/runtime/typecheck/levenshtein.js +49 -0
  236. package/dist/runtime/typecheck/levenshtein.js.map +1 -0
  237. package/dist/runtime/typecheck/types.d.ts +14 -0
  238. package/dist/runtime/typecheck/types.d.ts.map +1 -0
  239. package/dist/runtime/typecheck/types.js +26 -0
  240. package/dist/runtime/typecheck/types.js.map +1 -0
  241. package/dist/solver/cdcl-v2/clause-learning.d.ts +33 -0
  242. package/dist/solver/cdcl-v2/clause-learning.d.ts.map +1 -0
  243. package/dist/solver/cdcl-v2/clause-learning.js +110 -0
  244. package/dist/solver/cdcl-v2/clause-learning.js.map +1 -0
  245. package/dist/solver/cdcl-v2/index.d.ts +9 -0
  246. package/dist/solver/cdcl-v2/index.d.ts.map +1 -0
  247. package/dist/solver/cdcl-v2/index.js +39 -0
  248. package/dist/solver/cdcl-v2/index.js.map +1 -0
  249. package/dist/solver/cdcl-v2/lbd.d.ts +34 -0
  250. package/dist/solver/cdcl-v2/lbd.d.ts.map +1 -0
  251. package/dist/solver/cdcl-v2/lbd.js +72 -0
  252. package/dist/solver/cdcl-v2/lbd.js.map +1 -0
  253. package/dist/solver/cdcl-v2/luby.d.ts +28 -0
  254. package/dist/solver/cdcl-v2/luby.d.ts.map +1 -0
  255. package/dist/solver/cdcl-v2/luby.js +70 -0
  256. package/dist/solver/cdcl-v2/luby.js.map +1 -0
  257. package/dist/solver/cdcl-v2/phase-saving.d.ts +14 -0
  258. package/dist/solver/cdcl-v2/phase-saving.d.ts.map +1 -0
  259. package/dist/solver/cdcl-v2/phase-saving.js +44 -0
  260. package/dist/solver/cdcl-v2/phase-saving.js.map +1 -0
  261. package/dist/solver/cdcl-v2/solver.d.ts +10 -0
  262. package/dist/solver/cdcl-v2/solver.d.ts.map +1 -0
  263. package/dist/solver/cdcl-v2/solver.js +442 -0
  264. package/dist/solver/cdcl-v2/solver.js.map +1 -0
  265. package/dist/solver/cdcl-v2/state.d.ts +54 -0
  266. package/dist/solver/cdcl-v2/state.d.ts.map +1 -0
  267. package/dist/solver/cdcl-v2/state.js +22 -0
  268. package/dist/solver/cdcl-v2/state.js.map +1 -0
  269. package/dist/solver/cdcl-v2/vsids.d.ts +19 -0
  270. package/dist/solver/cdcl-v2/vsids.d.ts.map +1 -0
  271. package/dist/solver/cdcl-v2/vsids.js +77 -0
  272. package/dist/solver/cdcl-v2/vsids.js.map +1 -0
  273. package/dist/tests/agora-integration-fixtures.test.d.ts +2 -0
  274. package/dist/tests/agora-integration-fixtures.test.d.ts.map +1 -0
  275. package/dist/tests/agora-integration-fixtures.test.js +33 -0
  276. package/dist/tests/agora-integration-fixtures.test.js.map +1 -0
  277. package/dist/tests/argumentation/dung.test.d.ts +2 -0
  278. package/dist/tests/argumentation/dung.test.d.ts.map +1 -0
  279. package/dist/tests/argumentation/dung.test.js +219 -0
  280. package/dist/tests/argumentation/dung.test.js.map +1 -0
  281. package/dist/tests/citation-reasoning/citation-reasoning.test.d.ts +2 -0
  282. package/dist/tests/citation-reasoning/citation-reasoning.test.d.ts.map +1 -0
  283. package/dist/tests/citation-reasoning/citation-reasoning.test.js +240 -0
  284. package/dist/tests/citation-reasoning/citation-reasoning.test.js.map +1 -0
  285. package/dist/tests/core.test.js +51 -0
  286. package/dist/tests/core.test.js.map +1 -1
  287. package/dist/tests/coverage-fill-api.test.d.ts +7 -0
  288. package/dist/tests/coverage-fill-api.test.d.ts.map +1 -0
  289. package/dist/tests/coverage-fill-api.test.js +310 -0
  290. package/dist/tests/coverage-fill-api.test.js.map +1 -0
  291. package/dist/tests/coverage-fill-aristotelian.test.d.ts +7 -0
  292. package/dist/tests/coverage-fill-aristotelian.test.d.ts.map +1 -0
  293. package/dist/tests/coverage-fill-aristotelian.test.js +377 -0
  294. package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -0
  295. package/dist/tests/coverage-fill-belnap.test.d.ts +6 -0
  296. package/dist/tests/coverage-fill-belnap.test.d.ts.map +1 -0
  297. package/dist/tests/coverage-fill-belnap.test.js +277 -0
  298. package/dist/tests/coverage-fill-belnap.test.js.map +1 -0
  299. package/dist/tests/coverage-fill-cross-system.test.d.ts +6 -0
  300. package/dist/tests/coverage-fill-cross-system.test.d.ts.map +1 -0
  301. package/dist/tests/coverage-fill-cross-system.test.js +75 -0
  302. package/dist/tests/coverage-fill-cross-system.test.js.map +1 -0
  303. package/dist/tests/coverage-fill-fallacies.test.d.ts +6 -0
  304. package/dist/tests/coverage-fill-fallacies.test.d.ts.map +1 -0
  305. package/dist/tests/coverage-fill-fallacies.test.js +287 -0
  306. package/dist/tests/coverage-fill-fallacies.test.js.map +1 -0
  307. package/dist/tests/coverage-fill-format.test.d.ts +7 -0
  308. package/dist/tests/coverage-fill-format.test.d.ts.map +1 -0
  309. package/dist/tests/coverage-fill-format.test.js +455 -0
  310. package/dist/tests/coverage-fill-format.test.js.map +1 -0
  311. package/dist/tests/coverage-fill-intuitionistic.test.d.ts +6 -0
  312. package/dist/tests/coverage-fill-intuitionistic.test.d.ts.map +1 -0
  313. package/dist/tests/coverage-fill-intuitionistic.test.js +293 -0
  314. package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -0
  315. package/dist/tests/coverage-fill-probabilistic.test.d.ts +7 -0
  316. package/dist/tests/coverage-fill-probabilistic.test.d.ts.map +1 -0
  317. package/dist/tests/coverage-fill-probabilistic.test.js +314 -0
  318. package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -0
  319. package/dist/tests/educational/checker.test.d.ts +2 -0
  320. package/dist/tests/educational/checker.test.d.ts.map +1 -0
  321. package/dist/tests/educational/checker.test.js +212 -0
  322. package/dist/tests/educational/checker.test.js.map +1 -0
  323. package/dist/tests/educational/generator.test.d.ts +2 -0
  324. package/dist/tests/educational/generator.test.d.ts.map +1 -0
  325. package/dist/tests/educational/generator.test.js +137 -0
  326. package/dist/tests/educational/generator.test.js.map +1 -0
  327. package/dist/tests/exporters/coq/coq-exporter.test.d.ts +2 -0
  328. package/dist/tests/exporters/coq/coq-exporter.test.d.ts.map +1 -0
  329. package/dist/tests/exporters/coq/coq-exporter.test.js +353 -0
  330. package/dist/tests/exporters/coq/coq-exporter.test.js.map +1 -0
  331. package/dist/tests/fol-prover/cnf.test.d.ts +2 -0
  332. package/dist/tests/fol-prover/cnf.test.d.ts.map +1 -0
  333. package/dist/tests/fol-prover/cnf.test.js +74 -0
  334. package/dist/tests/fol-prover/cnf.test.js.map +1 -0
  335. package/dist/tests/fol-prover/prove.test.d.ts +2 -0
  336. package/dist/tests/fol-prover/prove.test.d.ts.map +1 -0
  337. package/dist/tests/fol-prover/prove.test.js +106 -0
  338. package/dist/tests/fol-prover/prove.test.js.map +1 -0
  339. package/dist/tests/fol-prover/unify.test.d.ts +2 -0
  340. package/dist/tests/fol-prover/unify.test.d.ts.map +1 -0
  341. package/dist/tests/fol-prover/unify.test.js +66 -0
  342. package/dist/tests/fol-prover/unify.test.js.map +1 -0
  343. package/dist/tests/hyperreal/hyperreal.test.d.ts +2 -0
  344. package/dist/tests/hyperreal/hyperreal.test.d.ts.map +1 -0
  345. package/dist/tests/hyperreal/hyperreal.test.js +219 -0
  346. package/dist/tests/hyperreal/hyperreal.test.js.map +1 -0
  347. package/dist/tests/lsp/server.test.d.ts +2 -0
  348. package/dist/tests/lsp/server.test.d.ts.map +1 -0
  349. package/dist/tests/lsp/server.test.js +406 -0
  350. package/dist/tests/lsp/server.test.js.map +1 -0
  351. package/dist/tests/memo/cache.test.d.ts +2 -0
  352. package/dist/tests/memo/cache.test.d.ts.map +1 -0
  353. package/dist/tests/memo/cache.test.js +252 -0
  354. package/dist/tests/memo/cache.test.js.map +1 -0
  355. package/dist/tests/parallel/parallel-pool.test.d.ts +11 -0
  356. package/dist/tests/parallel/parallel-pool.test.d.ts.map +1 -0
  357. package/dist/tests/parallel/parallel-pool.test.js +192 -0
  358. package/dist/tests/parallel/parallel-pool.test.js.map +1 -0
  359. package/dist/tests/plugin-system/demo-min-logic.test.d.ts +2 -0
  360. package/dist/tests/plugin-system/demo-min-logic.test.d.ts.map +1 -0
  361. package/dist/tests/plugin-system/demo-min-logic.test.js +85 -0
  362. package/dist/tests/plugin-system/demo-min-logic.test.js.map +1 -0
  363. package/dist/tests/plugin-system/registry.test.d.ts +2 -0
  364. package/dist/tests/plugin-system/registry.test.d.ts.map +1 -0
  365. package/dist/tests/plugin-system/registry.test.js +88 -0
  366. package/dist/tests/plugin-system/registry.test.js.map +1 -0
  367. package/dist/tests/plugin-system/validate.test.d.ts +2 -0
  368. package/dist/tests/plugin-system/validate.test.d.ts.map +1 -0
  369. package/dist/tests/plugin-system/validate.test.js +101 -0
  370. package/dist/tests/plugin-system/validate.test.js.map +1 -0
  371. package/dist/tests/proof-exchange/proof-exchange.test.d.ts +2 -0
  372. package/dist/tests/proof-exchange/proof-exchange.test.d.ts.map +1 -0
  373. package/dist/tests/proof-exchange/proof-exchange.test.js +161 -0
  374. package/dist/tests/proof-exchange/proof-exchange.test.js.map +1 -0
  375. package/dist/tests/result-bindings.test.js +44 -0
  376. package/dist/tests/result-bindings.test.js.map +1 -1
  377. package/dist/tests/sat-v2/clause-learning.test.d.ts +2 -0
  378. package/dist/tests/sat-v2/clause-learning.test.d.ts.map +1 -0
  379. package/dist/tests/sat-v2/clause-learning.test.js +73 -0
  380. package/dist/tests/sat-v2/clause-learning.test.js.map +1 -0
  381. package/dist/tests/sat-v2/lbd.test.d.ts +2 -0
  382. package/dist/tests/sat-v2/lbd.test.d.ts.map +1 -0
  383. package/dist/tests/sat-v2/lbd.test.js +82 -0
  384. package/dist/tests/sat-v2/lbd.test.js.map +1 -0
  385. package/dist/tests/sat-v2/luby.test.d.ts +2 -0
  386. package/dist/tests/sat-v2/luby.test.d.ts.map +1 -0
  387. package/dist/tests/sat-v2/luby.test.js +58 -0
  388. package/dist/tests/sat-v2/luby.test.js.map +1 -0
  389. package/dist/tests/sat-v2/phase-saving.test.d.ts +2 -0
  390. package/dist/tests/sat-v2/phase-saving.test.d.ts.map +1 -0
  391. package/dist/tests/sat-v2/phase-saving.test.js +38 -0
  392. package/dist/tests/sat-v2/phase-saving.test.js.map +1 -0
  393. package/dist/tests/sat-v2/solver-end-to-end.test.d.ts +2 -0
  394. package/dist/tests/sat-v2/solver-end-to-end.test.d.ts.map +1 -0
  395. package/dist/tests/sat-v2/solver-end-to-end.test.js +199 -0
  396. package/dist/tests/sat-v2/solver-end-to-end.test.js.map +1 -0
  397. package/dist/tests/sat-v2/vsids.test.d.ts +2 -0
  398. package/dist/tests/sat-v2/vsids.test.d.ts.map +1 -0
  399. package/dist/tests/sat-v2/vsids.test.js +69 -0
  400. package/dist/tests/sat-v2/vsids.test.js.map +1 -0
  401. package/dist/tests/smt/mock-backend.test.d.ts +2 -0
  402. package/dist/tests/smt/mock-backend.test.d.ts.map +1 -0
  403. package/dist/tests/smt/mock-backend.test.js +129 -0
  404. package/dist/tests/smt/mock-backend.test.js.map +1 -0
  405. package/dist/tests/smt/serializer.test.d.ts +2 -0
  406. package/dist/tests/smt/serializer.test.d.ts.map +1 -0
  407. package/dist/tests/smt/serializer.test.js +94 -0
  408. package/dist/tests/smt/serializer.test.js.map +1 -0
  409. package/dist/tests/smt/subprocess-backend.test.d.ts +2 -0
  410. package/dist/tests/smt/subprocess-backend.test.d.ts.map +1 -0
  411. package/dist/tests/smt/subprocess-backend.test.js +89 -0
  412. package/dist/tests/smt/subprocess-backend.test.js.map +1 -0
  413. package/dist/tests/streaming/stream-eval.test.d.ts +2 -0
  414. package/dist/tests/streaming/stream-eval.test.d.ts.map +1 -0
  415. package/dist/tests/streaming/stream-eval.test.js +170 -0
  416. package/dist/tests/streaming/stream-eval.test.js.map +1 -0
  417. package/dist/tests/text-layer-v2/claim-graph.test.d.ts +2 -0
  418. package/dist/tests/text-layer-v2/claim-graph.test.d.ts.map +1 -0
  419. package/dist/tests/text-layer-v2/claim-graph.test.js +255 -0
  420. package/dist/tests/text-layer-v2/claim-graph.test.js.map +1 -0
  421. package/dist/tests/time-travel/snapshot.test.d.ts +2 -0
  422. package/dist/tests/time-travel/snapshot.test.d.ts.map +1 -0
  423. package/dist/tests/time-travel/snapshot.test.js +75 -0
  424. package/dist/tests/time-travel/snapshot.test.js.map +1 -0
  425. package/dist/tests/time-travel/store.test.d.ts +2 -0
  426. package/dist/tests/time-travel/store.test.d.ts.map +1 -0
  427. package/dist/tests/time-travel/store.test.js +242 -0
  428. package/dist/tests/time-travel/store.test.js.map +1 -0
  429. package/dist/tests/typecheck-core.test.d.ts +2 -0
  430. package/dist/tests/typecheck-core.test.d.ts.map +1 -0
  431. package/dist/tests/typecheck-core.test.js +339 -0
  432. package/dist/tests/typecheck-core.test.js.map +1 -0
  433. package/dist/text-layer/v2/claim-graph.d.ts +45 -0
  434. package/dist/text-layer/v2/claim-graph.d.ts.map +1 -0
  435. package/dist/text-layer/v2/claim-graph.js +270 -0
  436. package/dist/text-layer/v2/claim-graph.js.map +1 -0
  437. package/dist/text-layer/v2/index.d.ts +6 -0
  438. package/dist/text-layer/v2/index.d.ts.map +1 -0
  439. package/dist/text-layer/v2/index.js +10 -0
  440. package/dist/text-layer/v2/index.js.map +1 -0
  441. package/dist/text-layer/v2/types.d.ts +32 -0
  442. package/dist/text-layer/v2/types.d.ts.map +1 -0
  443. package/dist/text-layer/v2/types.js +11 -0
  444. package/dist/text-layer/v2/types.js.map +1 -0
  445. package/dist/time-travel/index.d.ts +4 -0
  446. package/dist/time-travel/index.d.ts.map +1 -0
  447. package/dist/time-travel/index.js +8 -0
  448. package/dist/time-travel/index.js.map +1 -0
  449. package/dist/time-travel/snapshot.d.ts +9 -0
  450. package/dist/time-travel/snapshot.d.ts.map +1 -0
  451. package/dist/time-travel/snapshot.js +24 -0
  452. package/dist/time-travel/snapshot.js.map +1 -0
  453. package/dist/time-travel/store.d.ts +14 -0
  454. package/dist/time-travel/store.d.ts.map +1 -0
  455. package/dist/time-travel/store.js +119 -0
  456. package/dist/time-travel/store.js.map +1 -0
  457. package/dist/time-travel/types.d.ts +50 -0
  458. package/dist/time-travel/types.d.ts.map +1 -0
  459. package/dist/time-travel/types.js +3 -0
  460. package/dist/time-travel/types.js.map +1 -0
  461. package/package.json +6 -1
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ /**
3
+ * ClaimGraph — DAG de claims con detección de ciclos, orden topológico,
4
+ * validación e invalidación propagada.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ClaimGraph = exports.CycleError = void 0;
8
+ class CycleError extends Error {
9
+ cycles;
10
+ constructor(cycles) {
11
+ super(`Ciclo detectado en el grafo de claims: ${cycles.map((c) => c.join(' -> ')).join(' | ')}`);
12
+ this.name = 'CycleError';
13
+ this.cycles = cycles;
14
+ }
15
+ }
16
+ exports.CycleError = CycleError;
17
+ class ClaimGraph {
18
+ claims = new Map();
19
+ add(claim) {
20
+ if (!claim.id) {
21
+ throw new Error('Claim invalido: id requerido');
22
+ }
23
+ if (!Array.isArray(claim.dependencies)) {
24
+ throw new Error(`Claim '${claim.id}' invalida: dependencies debe ser un array`);
25
+ }
26
+ // Copia defensiva para que el caller no pueda mutar el grafo por referencia.
27
+ this.claims.set(claim.id, {
28
+ ...claim,
29
+ dependencies: [...claim.dependencies],
30
+ });
31
+ }
32
+ remove(claimId) {
33
+ return this.claims.delete(claimId);
34
+ }
35
+ get(claimId) {
36
+ const claim = this.claims.get(claimId);
37
+ if (!claim)
38
+ return undefined;
39
+ return { ...claim, dependencies: [...claim.dependencies] };
40
+ }
41
+ all() {
42
+ return Array.from(this.claims.values()).map((c) => ({
43
+ ...c,
44
+ dependencies: [...c.dependencies],
45
+ }));
46
+ }
47
+ /**
48
+ * Tarjan SCC. Devuelve sólo las componentes con ciclo (size > 1, o size 1
49
+ * con auto-loop). Un grafo acíclico devuelve [].
50
+ */
51
+ detectCycles() {
52
+ const ids = Array.from(this.claims.keys());
53
+ const indexOf = new Map();
54
+ const lowlink = new Map();
55
+ const onStack = new Set();
56
+ const stack = [];
57
+ const sccs = [];
58
+ let index = 0;
59
+ const strongconnect = (v) => {
60
+ indexOf.set(v, index);
61
+ lowlink.set(v, index);
62
+ index++;
63
+ stack.push(v);
64
+ onStack.add(v);
65
+ const claim = this.claims.get(v);
66
+ const deps = claim ? claim.dependencies : [];
67
+ for (const w of deps) {
68
+ if (!this.claims.has(w))
69
+ continue; // dep faltante: no afecta SCC
70
+ const lowV = lowlink.get(v) ?? index;
71
+ if (!indexOf.has(w)) {
72
+ strongconnect(w);
73
+ const lowW = lowlink.get(w) ?? index;
74
+ lowlink.set(v, Math.min(lowV, lowW));
75
+ }
76
+ else if (onStack.has(w)) {
77
+ const idxW = indexOf.get(w) ?? index;
78
+ lowlink.set(v, Math.min(lowV, idxW));
79
+ }
80
+ }
81
+ if (lowlink.get(v) === indexOf.get(v)) {
82
+ const component = [];
83
+ let popped;
84
+ do {
85
+ popped = stack.pop();
86
+ if (popped === undefined)
87
+ break;
88
+ onStack.delete(popped);
89
+ component.push(popped);
90
+ } while (popped !== v);
91
+ const head = component[0];
92
+ const hasSelfLoop = component.length === 1 &&
93
+ head !== undefined &&
94
+ (this.claims.get(head)?.dependencies ?? []).includes(head);
95
+ if (component.length > 1 || hasSelfLoop) {
96
+ // Orden estable: invertir para que el orden refleje el descubrimiento.
97
+ sccs.push(component.reverse());
98
+ }
99
+ }
100
+ };
101
+ for (const v of ids) {
102
+ if (!indexOf.has(v))
103
+ strongconnect(v);
104
+ }
105
+ return sccs;
106
+ }
107
+ /**
108
+ * Orden topológico (Kahn) — claims sin dependencias primero, luego sus
109
+ * consumidores. Tira CycleError si hay ciclo.
110
+ *
111
+ * Las dependencias faltantes (referidas pero no en el grafo) se ignoran
112
+ * para el conteo de in-degree — son responsabilidad del evaluator.
113
+ */
114
+ topologicalOrder() {
115
+ const cycles = this.detectCycles();
116
+ if (cycles.length > 0)
117
+ throw new CycleError(cycles);
118
+ const inDegree = new Map();
119
+ const dependents = new Map(); // id -> claims que lo necesitan
120
+ for (const id of this.claims.keys()) {
121
+ inDegree.set(id, 0);
122
+ dependents.set(id, []);
123
+ }
124
+ for (const claim of this.claims.values()) {
125
+ for (const dep of claim.dependencies) {
126
+ if (!this.claims.has(dep))
127
+ continue;
128
+ inDegree.set(claim.id, (inDegree.get(claim.id) ?? 0) + 1);
129
+ const depList = dependents.get(dep);
130
+ if (depList)
131
+ depList.push(claim.id);
132
+ }
133
+ }
134
+ // Determinismo: ordenar la cola alfabéticamente para que el resultado
135
+ // sea estable entre runs.
136
+ const queue = [];
137
+ for (const [id, deg] of inDegree) {
138
+ if (deg === 0)
139
+ queue.push(id);
140
+ }
141
+ queue.sort();
142
+ const order = [];
143
+ while (queue.length > 0) {
144
+ const v = queue.shift();
145
+ if (v === undefined)
146
+ break;
147
+ order.push(v);
148
+ const consumers = [...(dependents.get(v) ?? [])].sort();
149
+ for (const c of consumers) {
150
+ const deg = (inDegree.get(c) ?? 0) - 1;
151
+ inDegree.set(c, deg);
152
+ if (deg === 0)
153
+ queue.push(c);
154
+ }
155
+ }
156
+ // Defensa en profundidad: si detectCycles no detectó nada pero quedaron
157
+ // nodos sin emitir, eso indica ciclo no cubierto (no debería ocurrir).
158
+ if (order.length !== this.claims.size) {
159
+ throw new CycleError([Array.from(this.claims.keys()).filter((id) => !order.includes(id))]);
160
+ }
161
+ return order;
162
+ }
163
+ /**
164
+ * Valida todas las claims en orden topológico. Si una claim depende de
165
+ * otra ya marcada inválida, se marca inválida con invalidatedBy = lista
166
+ * de root claims inválidas en su árbol de dependencias.
167
+ *
168
+ * El evaluator sólo se invoca para claims cuyas dependencias son todas
169
+ * válidas (short-circuit por propagación).
170
+ */
171
+ async validateAll(evaluator) {
172
+ const order = this.topologicalOrder();
173
+ const results = new Map();
174
+ // invalidationRoots[claimId] = set de claims raíz inválidas que lo afectan.
175
+ const invalidationRoots = new Map();
176
+ for (const id of order) {
177
+ const claim = this.claims.get(id);
178
+ if (!claim)
179
+ continue;
180
+ const roots = new Set();
181
+ for (const dep of claim.dependencies) {
182
+ if (!this.claims.has(dep))
183
+ continue;
184
+ const depRoots = invalidationRoots.get(dep);
185
+ if (depRoots && depRoots.size > 0) {
186
+ for (const r of depRoots)
187
+ roots.add(r);
188
+ }
189
+ }
190
+ if (roots.size > 0) {
191
+ const invalidatedBy = Array.from(roots).sort();
192
+ const validation = {
193
+ claimId: id,
194
+ valid: false,
195
+ invalidatedBy,
196
+ errors: [`invalidada por dependencias: ${invalidatedBy.join(', ')}`],
197
+ };
198
+ results.set(id, validation);
199
+ invalidationRoots.set(id, roots);
200
+ continue;
201
+ }
202
+ let evalResult;
203
+ try {
204
+ evalResult = await evaluator(claim);
205
+ }
206
+ catch (err) {
207
+ const message = err instanceof Error ? err.message : String(err);
208
+ evalResult = { valid: false, errors: [`evaluator threw: ${message}`] };
209
+ }
210
+ const validation = {
211
+ claimId: id,
212
+ valid: evalResult.valid,
213
+ };
214
+ if (evalResult.result !== undefined)
215
+ validation.result = evalResult.result;
216
+ if (evalResult.errors && evalResult.errors.length > 0)
217
+ validation.errors = evalResult.errors;
218
+ results.set(id, validation);
219
+ if (!evalResult.valid) {
220
+ invalidationRoots.set(id, new Set([id]));
221
+ }
222
+ else {
223
+ invalidationRoots.set(id, new Set());
224
+ }
225
+ }
226
+ return order.map((id) => results.get(id)).filter((r) => r !== undefined);
227
+ }
228
+ /**
229
+ * Todas las claims que dependen transitivamente de rootClaimId (sus
230
+ * descendientes en el DAG de dependencias). El propio root NO se
231
+ * incluye. Orden determinístico (BFS, alfabético dentro de cada nivel).
232
+ */
233
+ invalidationPath(rootClaimId) {
234
+ if (!this.claims.has(rootClaimId))
235
+ return [];
236
+ const reverseAdj = new Map();
237
+ for (const id of this.claims.keys())
238
+ reverseAdj.set(id, []);
239
+ for (const claim of this.claims.values()) {
240
+ for (const dep of claim.dependencies) {
241
+ if (!this.claims.has(dep))
242
+ continue;
243
+ const list = reverseAdj.get(dep);
244
+ if (list)
245
+ list.push(claim.id);
246
+ }
247
+ }
248
+ const visited = new Set();
249
+ const result = [];
250
+ const queue = [...(reverseAdj.get(rootClaimId) ?? [])].sort();
251
+ for (const id of queue)
252
+ visited.add(id);
253
+ while (queue.length > 0) {
254
+ const v = queue.shift();
255
+ if (v === undefined)
256
+ break;
257
+ result.push(v);
258
+ const next = [...(reverseAdj.get(v) ?? [])].sort();
259
+ for (const w of next) {
260
+ if (!visited.has(w)) {
261
+ visited.add(w);
262
+ queue.push(w);
263
+ }
264
+ }
265
+ }
266
+ return result;
267
+ }
268
+ }
269
+ exports.ClaimGraph = ClaimGraph;
270
+ //# sourceMappingURL=claim-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-graph.js","sourceRoot":"","sources":["../../../src/text-layer/v2/claim-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ST Text Layer 2.0 — entry point.
3
+ */
4
+ export type { Claim, ClaimValidation, ClaimSource, ClaimEvaluator } from './types';
5
+ export { ClaimGraph, CycleError } from './claim-graph';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/text-layer/v2/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * ST Text Layer 2.0 — entry point.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CycleError = exports.ClaimGraph = void 0;
7
+ var claim_graph_1 = require("./claim-graph");
8
+ Object.defineProperty(exports, "ClaimGraph", { enumerable: true, get: function () { return claim_graph_1.ClaimGraph; } });
9
+ Object.defineProperty(exports, "CycleError", { enumerable: true, get: function () { return claim_graph_1.CycleError; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/text-layer/v2/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,6CAAuD;AAA9C,yGAAA,UAAU,OAAA;AAAE,yGAAA,UAAU,OAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ST Text Layer 2.0 — tipos del grafo de claims con dependencias.
3
+ *
4
+ * Una Claim es una afirmación formal con dependencias explícitas hacia
5
+ * otras claims. El grafo permite validación topológica e invalidación
6
+ * propagada: si una claim base falla, todas las claims que dependen
7
+ * transitivamente de ella se marcan inválidas.
8
+ */
9
+ export interface ClaimSource {
10
+ docId: string;
11
+ offset: number;
12
+ }
13
+ export interface Claim {
14
+ id: string;
15
+ formula: string;
16
+ profile: string;
17
+ dependencies: string[];
18
+ source?: ClaimSource;
19
+ }
20
+ export interface ClaimValidation {
21
+ claimId: string;
22
+ valid: boolean;
23
+ result?: string;
24
+ errors?: string[];
25
+ invalidatedBy?: string[];
26
+ }
27
+ export type ClaimEvaluator = (claim: Claim) => Promise<{
28
+ valid: boolean;
29
+ result?: string;
30
+ errors?: string[];
31
+ }>;
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/text-layer/v2/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * ST Text Layer 2.0 — tipos del grafo de claims con dependencias.
4
+ *
5
+ * Una Claim es una afirmación formal con dependencias explícitas hacia
6
+ * otras claims. El grafo permite validación topológica e invalidación
7
+ * propagada: si una claim base falla, todas las claims que dependen
8
+ * transitivamente de ella se marcan inválidas.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/text-layer/v2/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
@@ -0,0 +1,4 @@
1
+ export { captureSnapshot } from './snapshot';
2
+ export { SnapshotStore } from './store';
3
+ export type { STSnapshot, STSnapshotState, Declaration, EvaluatedFormula, Countermodel, SnapshotSummary, SnapshotDiff, } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/time-travel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnapshotStore = exports.captureSnapshot = void 0;
4
+ var snapshot_1 = require("./snapshot");
5
+ Object.defineProperty(exports, "captureSnapshot", { enumerable: true, get: function () { return snapshot_1.captureSnapshot; } });
6
+ var store_1 = require("./store");
7
+ Object.defineProperty(exports, "SnapshotStore", { enumerable: true, get: function () { return store_1.SnapshotStore; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/time-travel/index.ts"],"names":[],"mappings":";;;AAAA,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,iCAAwC;AAA/B,sGAAA,aAAa,OAAA"}
@@ -0,0 +1,9 @@
1
+ import { STSnapshot, STSnapshotState } from './types';
2
+ interface CaptureOptions {
3
+ parentId?: string;
4
+ tags?: string[];
5
+ message?: string;
6
+ }
7
+ export declare function captureSnapshot(state: STSnapshotState, opts?: CaptureOptions): STSnapshot;
8
+ export {};
9
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/time-travel/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEtD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,UAAU,CAkBzF"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.captureSnapshot = captureSnapshot;
4
+ const crypto_1 = require("crypto");
5
+ function captureSnapshot(state, opts) {
6
+ return {
7
+ id: (0, crypto_1.randomUUID)(),
8
+ version: '1.0',
9
+ createdAt: new Date().toISOString(),
10
+ parentId: opts?.parentId,
11
+ state: {
12
+ declarations: state.declarations.map((d) => ({ ...d })),
13
+ activeProfile: state.activeProfile,
14
+ evaluatedFormulas: state.evaluatedFormulas.map((e) => ({ ...e })),
15
+ countermodels: state.countermodels?.map((c) => ({
16
+ formula: c.formula,
17
+ assignments: { ...c.assignments },
18
+ })),
19
+ },
20
+ tags: opts?.tags,
21
+ message: opts?.message,
22
+ };
23
+ }
24
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/time-travel/snapshot.ts"],"names":[],"mappings":";;AASA,0CAkBC;AA3BD,mCAAoC;AASpC,SAAgB,eAAe,CAAC,KAAsB,EAAE,IAAqB;IAC3E,OAAO;QACL,EAAE,EAAE,IAAA,mBAAU,GAAE;QAChB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACxB,KAAK,EAAE;YACL,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACvD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE;aAClC,CAAC,CAAC;SACJ;QACD,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { STSnapshot, SnapshotSummary, SnapshotDiff } from './types';
2
+ export declare class SnapshotStore {
3
+ private readonly rootDir;
4
+ constructor(opts?: {
5
+ rootDir?: string;
6
+ });
7
+ private filePath;
8
+ save(snapshot: STSnapshot): Promise<void>;
9
+ load(id: string): Promise<STSnapshot | undefined>;
10
+ list(): Promise<SnapshotSummary[]>;
11
+ delete(id: string): Promise<void>;
12
+ diff(idA: string, idB: string): Promise<SnapshotDiff>;
13
+ }
14
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/time-travel/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAMjF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAIvC,OAAO,CAAC,QAAQ;IAIV,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IASjD,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkClC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAiD5D"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SnapshotStore = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ function defaultRootDir() {
11
+ return path_1.default.join(os_1.default.homedir(), '.st-snapshots');
12
+ }
13
+ class SnapshotStore {
14
+ rootDir;
15
+ constructor(opts) {
16
+ this.rootDir = opts?.rootDir ?? defaultRootDir();
17
+ }
18
+ filePath(id) {
19
+ return path_1.default.join(this.rootDir, `${id}.json`);
20
+ }
21
+ async save(snapshot) {
22
+ await fs_1.promises.mkdir(this.rootDir, { recursive: true });
23
+ await fs_1.promises.writeFile(this.filePath(snapshot.id), JSON.stringify(snapshot, null, 2), 'utf8');
24
+ }
25
+ async load(id) {
26
+ try {
27
+ const raw = await fs_1.promises.readFile(this.filePath(id), 'utf8');
28
+ return JSON.parse(raw);
29
+ }
30
+ catch {
31
+ return undefined;
32
+ }
33
+ }
34
+ async list() {
35
+ let entries;
36
+ try {
37
+ entries = await fs_1.promises.readdir(this.rootDir);
38
+ }
39
+ catch {
40
+ return [];
41
+ }
42
+ const summaries = [];
43
+ for (const entry of entries) {
44
+ if (!entry.endsWith('.json'))
45
+ continue;
46
+ try {
47
+ const raw = await fs_1.promises.readFile(path_1.default.join(this.rootDir, entry), 'utf8');
48
+ const snap = JSON.parse(raw);
49
+ summaries.push({
50
+ id: snap.id,
51
+ createdAt: snap.createdAt,
52
+ message: snap.message,
53
+ tags: snap.tags,
54
+ });
55
+ }
56
+ catch {
57
+ // skip malformed files
58
+ }
59
+ }
60
+ summaries.sort((a, b) => {
61
+ const ta = new Date(a.createdAt).getTime();
62
+ const tb = new Date(b.createdAt).getTime();
63
+ return tb - ta;
64
+ });
65
+ return summaries;
66
+ }
67
+ async delete(id) {
68
+ try {
69
+ await fs_1.promises.unlink(this.filePath(id));
70
+ }
71
+ catch {
72
+ // no-op if file doesn't exist
73
+ }
74
+ }
75
+ async diff(idA, idB) {
76
+ const [snapA, snapB] = await Promise.all([this.load(idA), this.load(idB)]);
77
+ if (snapA === undefined)
78
+ throw new Error(`Snapshot not found: ${idA}`);
79
+ if (snapB === undefined)
80
+ throw new Error(`Snapshot not found: ${idB}`);
81
+ const declsA = snapA.state.declarations;
82
+ const declsB = snapB.state.declarations;
83
+ const keyOf = (d) => `${d.kind}::${d.name}`;
84
+ const mapA = new Map(declsA.map((d) => [keyOf(d), d]));
85
+ const mapB = new Map(declsB.map((d) => [keyOf(d), d]));
86
+ const addedDeclarations = [];
87
+ const removedDeclarations = [];
88
+ for (const [k, d] of mapB) {
89
+ if (!mapA.has(k))
90
+ addedDeclarations.push(d);
91
+ }
92
+ for (const [k, d] of mapA) {
93
+ if (!mapB.has(k))
94
+ removedDeclarations.push(d);
95
+ }
96
+ const formsByProfile = (snap) => {
97
+ const m = new Map();
98
+ for (const ef of snap.state.evaluatedFormulas) {
99
+ m.set(ef.formula, ef.profile);
100
+ }
101
+ return m;
102
+ };
103
+ const formsA = formsByProfile(snapA);
104
+ const formsB = formsByProfile(snapB);
105
+ const modifiedFormulas = [];
106
+ for (const [formula, profileB] of formsB) {
107
+ const profileA = formsA.get(formula);
108
+ if (profileA !== undefined && profileA !== profileB) {
109
+ modifiedFormulas.push({ formula, before: profileA, after: profileB });
110
+ }
111
+ }
112
+ const profileChanged = snapA.state.activeProfile !== snapB.state.activeProfile
113
+ ? { from: snapA.state.activeProfile, to: snapB.state.activeProfile }
114
+ : undefined;
115
+ return { addedDeclarations, removedDeclarations, modifiedFormulas, profileChanged };
116
+ }
117
+ }
118
+ exports.SnapshotStore = SnapshotStore;
119
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/time-travel/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export interface Declaration {
2
+ kind: 'axiom' | 'theorem' | 'define';
3
+ name: string;
4
+ formula: string;
5
+ }
6
+ export interface EvaluatedFormula {
7
+ formula: string;
8
+ profile: string;
9
+ result: unknown;
10
+ ts: string;
11
+ }
12
+ export interface Countermodel {
13
+ formula: string;
14
+ assignments: Record<string, boolean | string>;
15
+ }
16
+ export interface STSnapshotState {
17
+ declarations: Declaration[];
18
+ activeProfile: string;
19
+ evaluatedFormulas: EvaluatedFormula[];
20
+ countermodels?: Countermodel[];
21
+ }
22
+ export interface STSnapshot {
23
+ id: string;
24
+ version: '1.0';
25
+ createdAt: string;
26
+ parentId?: string;
27
+ state: STSnapshotState;
28
+ tags?: string[];
29
+ message?: string;
30
+ }
31
+ export interface SnapshotSummary {
32
+ id: string;
33
+ createdAt: string;
34
+ message?: string;
35
+ tags?: string[];
36
+ }
37
+ export interface SnapshotDiff {
38
+ addedDeclarations: Declaration[];
39
+ removedDeclarations: Declaration[];
40
+ modifiedFormulas: Array<{
41
+ formula: string;
42
+ before: string;
43
+ after: string;
44
+ }>;
45
+ profileChanged?: {
46
+ from: string;
47
+ to: string;
48
+ };
49
+ }
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/time-travel/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACnC,gBAAgB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/time-travel/types.ts"],"names":[],"mappings":""}