@proposit/proposit-core 0.8.9

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 (429) hide show
  1. package/README.md +1032 -0
  2. package/dist/cli/commands/analysis.d.ts +3 -0
  3. package/dist/cli/commands/analysis.d.ts.map +1 -0
  4. package/dist/cli/commands/analysis.js +504 -0
  5. package/dist/cli/commands/analysis.js.map +1 -0
  6. package/dist/cli/commands/arguments.d.ts +3 -0
  7. package/dist/cli/commands/arguments.d.ts.map +1 -0
  8. package/dist/cli/commands/arguments.js +187 -0
  9. package/dist/cli/commands/arguments.js.map +1 -0
  10. package/dist/cli/commands/claims.d.ts +3 -0
  11. package/dist/cli/commands/claims.d.ts.map +1 -0
  12. package/dist/cli/commands/claims.js +120 -0
  13. package/dist/cli/commands/claims.js.map +1 -0
  14. package/dist/cli/commands/diff.d.ts +3 -0
  15. package/dist/cli/commands/diff.d.ts.map +1 -0
  16. package/dist/cli/commands/diff.js +61 -0
  17. package/dist/cli/commands/diff.js.map +1 -0
  18. package/dist/cli/commands/expressions.d.ts +3 -0
  19. package/dist/cli/commands/expressions.d.ts.map +1 -0
  20. package/dist/cli/commands/expressions.js +344 -0
  21. package/dist/cli/commands/expressions.js.map +1 -0
  22. package/dist/cli/commands/graph.d.ts +13 -0
  23. package/dist/cli/commands/graph.d.ts.map +1 -0
  24. package/dist/cli/commands/graph.js +382 -0
  25. package/dist/cli/commands/graph.js.map +1 -0
  26. package/dist/cli/commands/meta.d.ts +3 -0
  27. package/dist/cli/commands/meta.d.ts.map +1 -0
  28. package/dist/cli/commands/meta.js +14 -0
  29. package/dist/cli/commands/meta.js.map +1 -0
  30. package/dist/cli/commands/parse.d.ts +3 -0
  31. package/dist/cli/commands/parse.d.ts.map +1 -0
  32. package/dist/cli/commands/parse.js +171 -0
  33. package/dist/cli/commands/parse.js.map +1 -0
  34. package/dist/cli/commands/premises.d.ts +3 -0
  35. package/dist/cli/commands/premises.d.ts.map +1 -0
  36. package/dist/cli/commands/premises.js +261 -0
  37. package/dist/cli/commands/premises.js.map +1 -0
  38. package/dist/cli/commands/render.d.ts +3 -0
  39. package/dist/cli/commands/render.d.ts.map +1 -0
  40. package/dist/cli/commands/render.js +109 -0
  41. package/dist/cli/commands/render.js.map +1 -0
  42. package/dist/cli/commands/repair.d.ts +3 -0
  43. package/dist/cli/commands/repair.d.ts.map +1 -0
  44. package/dist/cli/commands/repair.js +53 -0
  45. package/dist/cli/commands/repair.js.map +1 -0
  46. package/dist/cli/commands/roles.d.ts +3 -0
  47. package/dist/cli/commands/roles.d.ts.map +1 -0
  48. package/dist/cli/commands/roles.js +64 -0
  49. package/dist/cli/commands/roles.js.map +1 -0
  50. package/dist/cli/commands/sources.d.ts +3 -0
  51. package/dist/cli/commands/sources.d.ts.map +1 -0
  52. package/dist/cli/commands/sources.js +103 -0
  53. package/dist/cli/commands/sources.js.map +1 -0
  54. package/dist/cli/commands/validate.d.ts +3 -0
  55. package/dist/cli/commands/validate.d.ts.map +1 -0
  56. package/dist/cli/commands/validate.js +27 -0
  57. package/dist/cli/commands/validate.js.map +1 -0
  58. package/dist/cli/commands/variables.d.ts +3 -0
  59. package/dist/cli/commands/variables.d.ts.map +1 -0
  60. package/dist/cli/commands/variables.js +206 -0
  61. package/dist/cli/commands/variables.js.map +1 -0
  62. package/dist/cli/commands/version-show.d.ts +3 -0
  63. package/dist/cli/commands/version-show.d.ts.map +1 -0
  64. package/dist/cli/commands/version-show.js +31 -0
  65. package/dist/cli/commands/version-show.js.map +1 -0
  66. package/dist/cli/config.d.ts +8 -0
  67. package/dist/cli/config.d.ts.map +1 -0
  68. package/dist/cli/config.js +24 -0
  69. package/dist/cli/config.js.map +1 -0
  70. package/dist/cli/engine.d.ts +19 -0
  71. package/dist/cli/engine.d.ts.map +1 -0
  72. package/dist/cli/engine.js +173 -0
  73. package/dist/cli/engine.js.map +1 -0
  74. package/dist/cli/import.d.ts +22 -0
  75. package/dist/cli/import.d.ts.map +1 -0
  76. package/dist/cli/import.js +242 -0
  77. package/dist/cli/import.js.map +1 -0
  78. package/dist/cli/llm/index.d.ts +6 -0
  79. package/dist/cli/llm/index.d.ts.map +1 -0
  80. package/dist/cli/llm/index.js +26 -0
  81. package/dist/cli/llm/index.js.map +1 -0
  82. package/dist/cli/llm/openai.d.ts +4 -0
  83. package/dist/cli/llm/openai.d.ts.map +1 -0
  84. package/dist/cli/llm/openai.js +44 -0
  85. package/dist/cli/llm/openai.js.map +1 -0
  86. package/dist/cli/llm/types.d.ts +14 -0
  87. package/dist/cli/llm/types.d.ts.map +1 -0
  88. package/dist/cli/llm/types.js +2 -0
  89. package/dist/cli/llm/types.js.map +1 -0
  90. package/dist/cli/logging.d.ts +8 -0
  91. package/dist/cli/logging.d.ts.map +1 -0
  92. package/dist/cli/logging.js +23 -0
  93. package/dist/cli/logging.js.map +1 -0
  94. package/dist/cli/output/diff-renderer.d.ts +4 -0
  95. package/dist/cli/output/diff-renderer.d.ts.map +1 -0
  96. package/dist/cli/output/diff-renderer.js +89 -0
  97. package/dist/cli/output/diff-renderer.js.map +1 -0
  98. package/dist/cli/output.d.ts +6 -0
  99. package/dist/cli/output.d.ts.map +1 -0
  100. package/dist/cli/output.js +41 -0
  101. package/dist/cli/output.js.map +1 -0
  102. package/dist/cli/router.d.ts +14 -0
  103. package/dist/cli/router.d.ts.map +1 -0
  104. package/dist/cli/router.js +59 -0
  105. package/dist/cli/router.js.map +1 -0
  106. package/dist/cli/schemata.d.ts +74 -0
  107. package/dist/cli/schemata.d.ts.map +1 -0
  108. package/dist/cli/schemata.js +89 -0
  109. package/dist/cli/schemata.js.map +1 -0
  110. package/dist/cli/storage/analysis.d.ts +9 -0
  111. package/dist/cli/storage/analysis.d.ts.map +1 -0
  112. package/dist/cli/storage/analysis.js +108 -0
  113. package/dist/cli/storage/analysis.js.map +1 -0
  114. package/dist/cli/storage/arguments.d.ts +12 -0
  115. package/dist/cli/storage/arguments.d.ts.map +1 -0
  116. package/dist/cli/storage/arguments.js +80 -0
  117. package/dist/cli/storage/arguments.js.map +1 -0
  118. package/dist/cli/storage/libraries.d.ts +14 -0
  119. package/dist/cli/storage/libraries.d.ts.map +1 -0
  120. package/dist/cli/storage/libraries.js +80 -0
  121. package/dist/cli/storage/libraries.js.map +1 -0
  122. package/dist/cli/storage/premises.d.ts +9 -0
  123. package/dist/cli/storage/premises.d.ts.map +1 -0
  124. package/dist/cli/storage/premises.js +67 -0
  125. package/dist/cli/storage/premises.js.map +1 -0
  126. package/dist/cli/storage/roles.d.ts +4 -0
  127. package/dist/cli/storage/roles.d.ts.map +1 -0
  128. package/dist/cli/storage/roles.js +26 -0
  129. package/dist/cli/storage/roles.js.map +1 -0
  130. package/dist/cli/storage/variables.d.ts +4 -0
  131. package/dist/cli/storage/variables.d.ts.map +1 -0
  132. package/dist/cli/storage/variables.js +36 -0
  133. package/dist/cli/storage/variables.js.map +1 -0
  134. package/dist/cli.d.ts +3 -0
  135. package/dist/cli.d.ts.map +1 -0
  136. package/dist/cli.js +65 -0
  137. package/dist/cli.js.map +1 -0
  138. package/dist/extensions/basics/argument-parser.d.ts +12 -0
  139. package/dist/extensions/basics/argument-parser.d.ts.map +1 -0
  140. package/dist/extensions/basics/argument-parser.js +27 -0
  141. package/dist/extensions/basics/argument-parser.js.map +1 -0
  142. package/dist/extensions/basics/index.d.ts +4 -0
  143. package/dist/extensions/basics/index.d.ts.map +1 -0
  144. package/dist/extensions/basics/index.js +3 -0
  145. package/dist/extensions/basics/index.js.map +1 -0
  146. package/dist/extensions/basics/schemata.d.ts +35 -0
  147. package/dist/extensions/basics/schemata.d.ts.map +1 -0
  148. package/dist/extensions/basics/schemata.js +55 -0
  149. package/dist/extensions/basics/schemata.js.map +1 -0
  150. package/dist/extensions/ieee/formatting.d.ts +18 -0
  151. package/dist/extensions/ieee/formatting.d.ts.map +1 -0
  152. package/dist/extensions/ieee/formatting.js +57 -0
  153. package/dist/extensions/ieee/formatting.js.map +1 -0
  154. package/dist/extensions/ieee/index.d.ts +6 -0
  155. package/dist/extensions/ieee/index.d.ts.map +1 -0
  156. package/dist/extensions/ieee/index.js +6 -0
  157. package/dist/extensions/ieee/index.js.map +1 -0
  158. package/dist/extensions/ieee/references.d.ts +1379 -0
  159. package/dist/extensions/ieee/references.d.ts.map +1 -0
  160. package/dist/extensions/ieee/references.js +929 -0
  161. package/dist/extensions/ieee/references.js.map +1 -0
  162. package/dist/extensions/ieee/relaxed.d.ts +1371 -0
  163. package/dist/extensions/ieee/relaxed.d.ts.map +1 -0
  164. package/dist/extensions/ieee/relaxed.js +160 -0
  165. package/dist/extensions/ieee/relaxed.js.map +1 -0
  166. package/dist/extensions/ieee/segment-builder.d.ts +9 -0
  167. package/dist/extensions/ieee/segment-builder.d.ts.map +1 -0
  168. package/dist/extensions/ieee/segment-builder.js +98 -0
  169. package/dist/extensions/ieee/segment-builder.js.map +1 -0
  170. package/dist/extensions/ieee/segment-templates.d.ts +58 -0
  171. package/dist/extensions/ieee/segment-templates.d.ts.map +1 -0
  172. package/dist/extensions/ieee/segment-templates.js +1618 -0
  173. package/dist/extensions/ieee/segment-templates.js.map +1 -0
  174. package/dist/extensions/ieee/source.d.ts +434 -0
  175. package/dist/extensions/ieee/source.d.ts.map +1 -0
  176. package/dist/extensions/ieee/source.js +12 -0
  177. package/dist/extensions/ieee/source.js.map +1 -0
  178. package/dist/index.d.ts +10 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +10 -0
  181. package/dist/index.js.map +1 -0
  182. package/dist/lib/consts.d.ts +21 -0
  183. package/dist/lib/consts.d.ts.map +1 -0
  184. package/dist/lib/consts.js +117 -0
  185. package/dist/lib/consts.js.map +1 -0
  186. package/dist/lib/core/argument-engine.d.ts +181 -0
  187. package/dist/lib/core/argument-engine.d.ts.map +1 -0
  188. package/dist/lib/core/argument-engine.js +1294 -0
  189. package/dist/lib/core/argument-engine.js.map +1 -0
  190. package/dist/lib/core/argument-library.d.ts +84 -0
  191. package/dist/lib/core/argument-library.d.ts.map +1 -0
  192. package/dist/lib/core/argument-library.js +122 -0
  193. package/dist/lib/core/argument-library.js.map +1 -0
  194. package/dist/lib/core/argument-validation.d.ts +74 -0
  195. package/dist/lib/core/argument-validation.d.ts.map +1 -0
  196. package/dist/lib/core/argument-validation.js +315 -0
  197. package/dist/lib/core/argument-validation.js.map +1 -0
  198. package/dist/lib/core/change-collector.d.ts +24 -0
  199. package/dist/lib/core/change-collector.d.ts.map +1 -0
  200. package/dist/lib/core/change-collector.js +63 -0
  201. package/dist/lib/core/change-collector.js.map +1 -0
  202. package/dist/lib/core/checksum.d.ts +15 -0
  203. package/dist/lib/core/checksum.d.ts.map +1 -0
  204. package/dist/lib/core/checksum.js +43 -0
  205. package/dist/lib/core/checksum.js.map +1 -0
  206. package/dist/lib/core/claim-library.d.ts +23 -0
  207. package/dist/lib/core/claim-library.d.ts.map +1 -0
  208. package/dist/lib/core/claim-library.js +21 -0
  209. package/dist/lib/core/claim-library.js.map +1 -0
  210. package/dist/lib/core/claim-source-library.d.ts +32 -0
  211. package/dist/lib/core/claim-source-library.d.ts.map +1 -0
  212. package/dist/lib/core/claim-source-library.js +193 -0
  213. package/dist/lib/core/claim-source-library.js.map +1 -0
  214. package/dist/lib/core/diff.d.ts +20 -0
  215. package/dist/lib/core/diff.d.ts.map +1 -0
  216. package/dist/lib/core/diff.js +260 -0
  217. package/dist/lib/core/diff.js.map +1 -0
  218. package/dist/lib/core/evaluation/argument-evaluation.d.ts +53 -0
  219. package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -0
  220. package/dist/lib/core/evaluation/argument-evaluation.js +535 -0
  221. package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -0
  222. package/dist/lib/core/evaluation/grading.d.ts +28 -0
  223. package/dist/lib/core/evaluation/grading.d.ts.map +1 -0
  224. package/dist/lib/core/evaluation/grading.js +44 -0
  225. package/dist/lib/core/evaluation/grading.js.map +1 -0
  226. package/dist/lib/core/evaluation/kleene.d.ts +12 -0
  227. package/dist/lib/core/evaluation/kleene.d.ts.map +1 -0
  228. package/dist/lib/core/evaluation/kleene.js +29 -0
  229. package/dist/lib/core/evaluation/kleene.js.map +1 -0
  230. package/dist/lib/core/evaluation/validation.d.ts +10 -0
  231. package/dist/lib/core/evaluation/validation.d.ts.map +1 -0
  232. package/dist/lib/core/evaluation/validation.js +28 -0
  233. package/dist/lib/core/evaluation/validation.js.map +1 -0
  234. package/dist/lib/core/expression-manager.d.ts +278 -0
  235. package/dist/lib/core/expression-manager.d.ts.map +1 -0
  236. package/dist/lib/core/expression-manager.js +1622 -0
  237. package/dist/lib/core/expression-manager.js.map +1 -0
  238. package/dist/lib/core/fork-library.d.ts +26 -0
  239. package/dist/lib/core/fork-library.d.ts.map +1 -0
  240. package/dist/lib/core/fork-library.js +71 -0
  241. package/dist/lib/core/fork-library.js.map +1 -0
  242. package/dist/lib/core/fork-namespace.d.ts +32 -0
  243. package/dist/lib/core/fork-namespace.d.ts.map +1 -0
  244. package/dist/lib/core/fork-namespace.js +99 -0
  245. package/dist/lib/core/fork-namespace.js.map +1 -0
  246. package/dist/lib/core/fork.d.ts +30 -0
  247. package/dist/lib/core/fork.d.ts.map +1 -0
  248. package/dist/lib/core/fork.js +125 -0
  249. package/dist/lib/core/fork.js.map +1 -0
  250. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +366 -0
  251. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -0
  252. package/dist/lib/core/interfaces/argument-engine.interfaces.js +2 -0
  253. package/dist/lib/core/interfaces/argument-engine.interfaces.js.map +1 -0
  254. package/dist/lib/core/interfaces/index.d.ts +5 -0
  255. package/dist/lib/core/interfaces/index.d.ts.map +1 -0
  256. package/dist/lib/core/interfaces/index.js +2 -0
  257. package/dist/lib/core/interfaces/index.js.map +1 -0
  258. package/dist/lib/core/interfaces/library.interfaces.d.ts +347 -0
  259. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -0
  260. package/dist/lib/core/interfaces/library.interfaces.js +2 -0
  261. package/dist/lib/core/interfaces/library.interfaces.js.map +1 -0
  262. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +401 -0
  263. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -0
  264. package/dist/lib/core/interfaces/premise-engine.interfaces.js +2 -0
  265. package/dist/lib/core/interfaces/premise-engine.interfaces.js.map +1 -0
  266. package/dist/lib/core/interfaces/shared.interfaces.d.ts +28 -0
  267. package/dist/lib/core/interfaces/shared.interfaces.d.ts.map +1 -0
  268. package/dist/lib/core/interfaces/shared.interfaces.js +2 -0
  269. package/dist/lib/core/interfaces/shared.interfaces.js.map +1 -0
  270. package/dist/lib/core/invariant-violation-error.d.ts +10 -0
  271. package/dist/lib/core/invariant-violation-error.d.ts.map +1 -0
  272. package/dist/lib/core/invariant-violation-error.js +16 -0
  273. package/dist/lib/core/invariant-violation-error.js.map +1 -0
  274. package/dist/lib/core/parser/formula-gen.js +923 -0
  275. package/dist/lib/core/parser/formula.d.ts +24 -0
  276. package/dist/lib/core/parser/formula.d.ts.map +1 -0
  277. package/dist/lib/core/parser/formula.js +8 -0
  278. package/dist/lib/core/parser/formula.js.map +1 -0
  279. package/dist/lib/core/premise-engine.d.ts +122 -0
  280. package/dist/lib/core/premise-engine.d.ts.map +1 -0
  281. package/dist/lib/core/premise-engine.js +1362 -0
  282. package/dist/lib/core/premise-engine.js.map +1 -0
  283. package/dist/lib/core/proposit-core.d.ts +111 -0
  284. package/dist/lib/core/proposit-core.d.ts.map +1 -0
  285. package/dist/lib/core/proposit-core.js +365 -0
  286. package/dist/lib/core/proposit-core.js.map +1 -0
  287. package/dist/lib/core/relationships.d.ts +15 -0
  288. package/dist/lib/core/relationships.d.ts.map +1 -0
  289. package/dist/lib/core/relationships.js +319 -0
  290. package/dist/lib/core/relationships.js.map +1 -0
  291. package/dist/lib/core/source-library.d.ts +23 -0
  292. package/dist/lib/core/source-library.d.ts.map +1 -0
  293. package/dist/lib/core/source-library.js +21 -0
  294. package/dist/lib/core/source-library.js.map +1 -0
  295. package/dist/lib/core/variable-manager.d.ts +68 -0
  296. package/dist/lib/core/variable-manager.d.ts.map +1 -0
  297. package/dist/lib/core/variable-manager.js +200 -0
  298. package/dist/lib/core/variable-manager.js.map +1 -0
  299. package/dist/lib/core/versioned-library.d.ts +52 -0
  300. package/dist/lib/core/versioned-library.d.ts.map +1 -0
  301. package/dist/lib/core/versioned-library.js +192 -0
  302. package/dist/lib/core/versioned-library.js.map +1 -0
  303. package/dist/lib/index.d.ts +54 -0
  304. package/dist/lib/index.d.ts.map +1 -0
  305. package/dist/lib/index.js +39 -0
  306. package/dist/lib/index.js.map +1 -0
  307. package/dist/lib/parsing/argument-parser.d.ts +49 -0
  308. package/dist/lib/parsing/argument-parser.d.ts.map +1 -0
  309. package/dist/lib/parsing/argument-parser.js +403 -0
  310. package/dist/lib/parsing/argument-parser.js.map +1 -0
  311. package/dist/lib/parsing/clamp-max-lengths.d.ts +11 -0
  312. package/dist/lib/parsing/clamp-max-lengths.d.ts.map +1 -0
  313. package/dist/lib/parsing/clamp-max-lengths.js +56 -0
  314. package/dist/lib/parsing/clamp-max-lengths.js.map +1 -0
  315. package/dist/lib/parsing/index.d.ts +7 -0
  316. package/dist/lib/parsing/index.d.ts.map +1 -0
  317. package/dist/lib/parsing/index.js +4 -0
  318. package/dist/lib/parsing/index.js.map +1 -0
  319. package/dist/lib/parsing/prompt-builder.d.ts +11 -0
  320. package/dist/lib/parsing/prompt-builder.d.ts.map +1 -0
  321. package/dist/lib/parsing/prompt-builder.js +229 -0
  322. package/dist/lib/parsing/prompt-builder.js.map +1 -0
  323. package/dist/lib/parsing/schemata.d.ts +79 -0
  324. package/dist/lib/parsing/schemata.d.ts.map +1 -0
  325. package/dist/lib/parsing/schemata.js +92 -0
  326. package/dist/lib/parsing/schemata.js.map +1 -0
  327. package/dist/lib/parsing/types.d.ts +24 -0
  328. package/dist/lib/parsing/types.d.ts.map +1 -0
  329. package/dist/lib/parsing/types.js +2 -0
  330. package/dist/lib/parsing/types.js.map +1 -0
  331. package/dist/lib/schemata/analysis.d.ts +9 -0
  332. package/dist/lib/schemata/analysis.d.ts.map +1 -0
  333. package/dist/lib/schemata/analysis.js +13 -0
  334. package/dist/lib/schemata/analysis.js.map +1 -0
  335. package/dist/lib/schemata/argument.d.ts +14 -0
  336. package/dist/lib/schemata/argument.d.ts.map +1 -0
  337. package/dist/lib/schemata/argument.js +24 -0
  338. package/dist/lib/schemata/argument.js.map +1 -0
  339. package/dist/lib/schemata/claim.d.ts +9 -0
  340. package/dist/lib/schemata/claim.d.ts.map +1 -0
  341. package/dist/lib/schemata/claim.js +18 -0
  342. package/dist/lib/schemata/claim.js.map +1 -0
  343. package/dist/lib/schemata/fork.d.ts +76 -0
  344. package/dist/lib/schemata/fork.d.ts.map +1 -0
  345. package/dist/lib/schemata/fork.js +55 -0
  346. package/dist/lib/schemata/fork.js.map +1 -0
  347. package/dist/lib/schemata/import.d.ts +33 -0
  348. package/dist/lib/schemata/import.d.ts.map +1 -0
  349. package/dist/lib/schemata/import.js +18 -0
  350. package/dist/lib/schemata/import.js.map +1 -0
  351. package/dist/lib/schemata/index.d.ts +8 -0
  352. package/dist/lib/schemata/index.d.ts.map +1 -0
  353. package/dist/lib/schemata/index.js +8 -0
  354. package/dist/lib/schemata/index.js.map +1 -0
  355. package/dist/lib/schemata/propositional.d.ts +142 -0
  356. package/dist/lib/schemata/propositional.d.ts.map +1 -0
  357. package/dist/lib/schemata/propositional.js +120 -0
  358. package/dist/lib/schemata/propositional.js.map +1 -0
  359. package/dist/lib/schemata/shared.d.ts +41 -0
  360. package/dist/lib/schemata/shared.d.ts.map +1 -0
  361. package/dist/lib/schemata/shared.js +66 -0
  362. package/dist/lib/schemata/shared.js.map +1 -0
  363. package/dist/lib/schemata/source.d.ts +18 -0
  364. package/dist/lib/schemata/source.d.ts.map +1 -0
  365. package/dist/lib/schemata/source.js +35 -0
  366. package/dist/lib/schemata/source.js.map +1 -0
  367. package/dist/lib/types/checksum.d.ts +20 -0
  368. package/dist/lib/types/checksum.d.ts.map +1 -0
  369. package/dist/lib/types/checksum.js +2 -0
  370. package/dist/lib/types/checksum.js.map +1 -0
  371. package/dist/lib/types/diff.d.ts +60 -0
  372. package/dist/lib/types/diff.d.ts.map +1 -0
  373. package/dist/lib/types/diff.js +2 -0
  374. package/dist/lib/types/diff.js.map +1 -0
  375. package/dist/lib/types/evaluation.d.ts +164 -0
  376. package/dist/lib/types/evaluation.d.ts.map +1 -0
  377. package/dist/lib/types/evaluation.js +2 -0
  378. package/dist/lib/types/evaluation.js.map +1 -0
  379. package/dist/lib/types/fork.d.ts +25 -0
  380. package/dist/lib/types/fork.d.ts.map +1 -0
  381. package/dist/lib/types/fork.js +2 -0
  382. package/dist/lib/types/fork.js.map +1 -0
  383. package/dist/lib/types/grammar.d.ts +38 -0
  384. package/dist/lib/types/grammar.d.ts.map +1 -0
  385. package/dist/lib/types/grammar.js +11 -0
  386. package/dist/lib/types/grammar.js.map +1 -0
  387. package/dist/lib/types/mutation.d.ts +31 -0
  388. package/dist/lib/types/mutation.d.ts.map +1 -0
  389. package/dist/lib/types/mutation.js +2 -0
  390. package/dist/lib/types/mutation.js.map +1 -0
  391. package/dist/lib/types/reactive.d.ts +14 -0
  392. package/dist/lib/types/reactive.d.ts.map +1 -0
  393. package/dist/lib/types/reactive.js +2 -0
  394. package/dist/lib/types/reactive.js.map +1 -0
  395. package/dist/lib/types/relationships.d.ts +36 -0
  396. package/dist/lib/types/relationships.d.ts.map +1 -0
  397. package/dist/lib/types/relationships.js +2 -0
  398. package/dist/lib/types/relationships.js.map +1 -0
  399. package/dist/lib/types/validation.d.ts +47 -0
  400. package/dist/lib/types/validation.d.ts.map +1 -0
  401. package/dist/lib/types/validation.js +43 -0
  402. package/dist/lib/types/validation.js.map +1 -0
  403. package/dist/lib/utils/changeset.d.ts +124 -0
  404. package/dist/lib/utils/changeset.d.ts.map +1 -0
  405. package/dist/lib/utils/changeset.js +221 -0
  406. package/dist/lib/utils/changeset.js.map +1 -0
  407. package/dist/lib/utils/collections.d.ts +12 -0
  408. package/dist/lib/utils/collections.d.ts.map +1 -0
  409. package/dist/lib/utils/collections.js +24 -0
  410. package/dist/lib/utils/collections.js.map +1 -0
  411. package/dist/lib/utils/default-map.d.ts +17 -0
  412. package/dist/lib/utils/default-map.d.ts.map +1 -0
  413. package/dist/lib/utils/default-map.js +33 -0
  414. package/dist/lib/utils/default-map.js.map +1 -0
  415. package/dist/lib/utils/lookup.d.ts +47 -0
  416. package/dist/lib/utils/lookup.d.ts.map +1 -0
  417. package/dist/lib/utils/lookup.js +62 -0
  418. package/dist/lib/utils/lookup.js.map +1 -0
  419. package/dist/lib/utils/position.d.ts +12 -0
  420. package/dist/lib/utils/position.d.ts.map +1 -0
  421. package/dist/lib/utils/position.js +13 -0
  422. package/dist/lib/utils/position.js.map +1 -0
  423. package/package.json +82 -0
  424. package/skills/proposit-core/SKILL.md +35 -0
  425. package/skills/proposit-core/docs/api-usage.md +442 -0
  426. package/skills/proposit-core/docs/architecture.md +256 -0
  427. package/skills/proposit-core/docs/cli.md +304 -0
  428. package/skills/proposit-core/docs/testing.md +281 -0
  429. package/skills/proposit-core/docs/types-schemas.md +648 -0
@@ -0,0 +1,319 @@
1
+ // ── Variable profiling ──────────────────────────────────────────────────
2
+ function collectVariableAppearances(premise, expressionId, side) {
3
+ const appearances = [];
4
+ const stack = [
5
+ { id: expressionId, negationDepth: 0 },
6
+ ];
7
+ while (stack.length > 0) {
8
+ const { id, negationDepth } = stack.pop();
9
+ const expr = premise.getExpression(id);
10
+ if (!expr)
11
+ continue;
12
+ if (expr.type === "variable") {
13
+ appearances.push({
14
+ variableId: expr.variableId,
15
+ side,
16
+ polarity: negationDepth % 2 === 0 ? "positive" : "negative",
17
+ });
18
+ }
19
+ else {
20
+ const nextDepth = expr.type === "operator" && expr.operator === "not"
21
+ ? negationDepth + 1
22
+ : negationDepth;
23
+ for (const child of premise.getChildExpressions(id)) {
24
+ stack.push({ id: child.id, negationDepth: nextDepth });
25
+ }
26
+ }
27
+ }
28
+ return appearances;
29
+ }
30
+ /**
31
+ * Builds a profile of a premise's variable appearances, recording each
32
+ * variable's side (antecedent/consequent) and polarity (positive/negative).
33
+ */
34
+ export function buildPremiseProfile(premise) {
35
+ const premiseId = premise.getId();
36
+ if (!premise.isInference()) {
37
+ return { premiseId, isInference: false, appearances: [] };
38
+ }
39
+ const root = premise.getRootExpression();
40
+ const children = premise.getChildExpressions(root.id);
41
+ const leftChild = children[0];
42
+ const rightChild = children[1];
43
+ const appearances = [];
44
+ if (leftChild) {
45
+ appearances.push(...collectVariableAppearances(premise, leftChild.id, "antecedent"));
46
+ }
47
+ if (rightChild) {
48
+ appearances.push(...collectVariableAppearances(premise, rightChild.id, "consequent"));
49
+ }
50
+ return { premiseId, isInference: true, appearances };
51
+ }
52
+ // ── Graph construction ──────────────────────────────────────────────────
53
+ function buildVariableFlowGraph(profiles) {
54
+ const graph = new Map();
55
+ for (const [sourceId, sourceProfile] of profiles) {
56
+ if (!sourceProfile.isInference)
57
+ continue;
58
+ const edges = [];
59
+ const conseqVars = sourceProfile.appearances.filter((a) => a.side === "consequent");
60
+ for (const [targetId, targetProfile] of profiles) {
61
+ if (targetId === sourceId || !targetProfile.isInference)
62
+ continue;
63
+ const anteVars = targetProfile.appearances.filter((a) => a.side === "antecedent");
64
+ const variables = [];
65
+ for (const cv of conseqVars) {
66
+ for (const av of anteVars) {
67
+ if (cv.variableId === av.variableId) {
68
+ variables.push({
69
+ variableId: cv.variableId,
70
+ polarityMatch: cv.polarity === av.polarity,
71
+ });
72
+ }
73
+ }
74
+ }
75
+ if (variables.length > 0) {
76
+ edges.push({ targetPremiseId: targetId, variables });
77
+ }
78
+ }
79
+ graph.set(sourceId, edges);
80
+ }
81
+ return graph;
82
+ }
83
+ function bfsToTarget(graph, sourceId, targetId) {
84
+ const visited = new Set();
85
+ visited.add(sourceId);
86
+ const queue = [];
87
+ // Seed with direct edges from source
88
+ const sourceEdges = graph.get(sourceId) ?? [];
89
+ for (const edge of sourceEdges) {
90
+ const allMatch = edge.variables.every((v) => v.polarityMatch);
91
+ if (edge.targetPremiseId === targetId) {
92
+ return {
93
+ reachable: true,
94
+ polarityMatch: allMatch,
95
+ variableDetails: edge.variables.map((v) => ({
96
+ variableId: v.variableId,
97
+ relationship: v.polarityMatch
98
+ ? "supporting"
99
+ : "contradicting",
100
+ })),
101
+ transitive: false,
102
+ };
103
+ }
104
+ if (!visited.has(edge.targetPremiseId)) {
105
+ visited.add(edge.targetPremiseId);
106
+ queue.push({
107
+ premiseId: edge.targetPremiseId,
108
+ polarityMatch: allMatch,
109
+ entryVariables: edge.variables,
110
+ });
111
+ }
112
+ }
113
+ while (queue.length > 0) {
114
+ const { premiseId, polarityMatch, entryVariables } = queue.shift();
115
+ const edges = graph.get(premiseId) ?? [];
116
+ for (const edge of edges) {
117
+ if (edge.targetPremiseId === targetId) {
118
+ const stepMatch = edge.variables.every((v) => v.polarityMatch);
119
+ // XOR logic: both match or both mismatch = overall match
120
+ const finalMatch = (polarityMatch && stepMatch) ||
121
+ (!polarityMatch && !stepMatch);
122
+ return {
123
+ reachable: true,
124
+ polarityMatch: finalMatch,
125
+ variableDetails: entryVariables.map((v) => ({
126
+ variableId: v.variableId,
127
+ relationship: finalMatch
128
+ ? "supporting"
129
+ : "contradicting",
130
+ })),
131
+ transitive: true,
132
+ };
133
+ }
134
+ if (!visited.has(edge.targetPremiseId)) {
135
+ visited.add(edge.targetPremiseId);
136
+ const stepMatch = edge.variables.every((v) => v.polarityMatch);
137
+ const nextMatch = (polarityMatch && stepMatch) ||
138
+ (!polarityMatch && !stepMatch);
139
+ queue.push({
140
+ premiseId: edge.targetPremiseId,
141
+ polarityMatch: nextMatch,
142
+ entryVariables,
143
+ });
144
+ }
145
+ }
146
+ }
147
+ return {
148
+ reachable: false,
149
+ polarityMatch: true,
150
+ variableDetails: [],
151
+ transitive: false,
152
+ };
153
+ }
154
+ // ── Restricting check ───────────────────────────────────────────────────
155
+ function hasVariableOnBothSides(profile, focusedProfile) {
156
+ const antecedentVarIds = new Set(profile.appearances
157
+ .filter((a) => a.side === "antecedent")
158
+ .map((a) => a.variableId));
159
+ const consequentVarIds = new Set(profile.appearances
160
+ .filter((a) => a.side === "consequent")
161
+ .map((a) => a.variableId));
162
+ const bothSideVarIds = new Set([...antecedentVarIds].filter((id) => consequentVarIds.has(id)));
163
+ const focusedVarIds = new Set(focusedProfile.appearances.map((a) => a.variableId));
164
+ const restricting = [];
165
+ for (const varId of bothSideVarIds) {
166
+ if (focusedVarIds.has(varId)) {
167
+ restricting.push({
168
+ variableId: varId,
169
+ relationship: "restricting",
170
+ });
171
+ }
172
+ }
173
+ return restricting;
174
+ }
175
+ // ── Constraint premise classification ───────────────────────────────────
176
+ function classifyConstraintPremise(premise, focusedProfile, connectedVarIds) {
177
+ const premiseVarIds = premise.getReferencedVariableIds();
178
+ const focusedVarIds = new Set(focusedProfile.appearances.map((a) => a.variableId));
179
+ const directOverlap = [...premiseVarIds].some((id) => focusedVarIds.has(id));
180
+ const transitiveOverlap = [...premiseVarIds].some((id) => connectedVarIds.has(id));
181
+ if (directOverlap || transitiveOverlap) {
182
+ return {
183
+ premiseId: premise.getId(),
184
+ relationship: "restricting",
185
+ variableDetails: [],
186
+ transitive: !directOverlap && transitiveOverlap,
187
+ };
188
+ }
189
+ return {
190
+ premiseId: premise.getId(),
191
+ relationship: "unrelated",
192
+ variableDetails: [],
193
+ transitive: false,
194
+ };
195
+ }
196
+ // ── Precedence ──────────────────────────────────────────────────────────
197
+ const PRECEDENCE = {
198
+ contradicting: 3,
199
+ restricting: 2,
200
+ supporting: 1,
201
+ };
202
+ function applyPrecedence(details) {
203
+ let highest = "supporting";
204
+ for (const d of details) {
205
+ if (PRECEDENCE[d.relationship] > PRECEDENCE[highest]) {
206
+ highest = d.relationship;
207
+ }
208
+ }
209
+ return highest;
210
+ }
211
+ // ── Main function ───────────────────────────────────────────────────────
212
+ /**
213
+ * Analyzes how every other premise in the argument relates to the focused
214
+ * premise, classifying each as supporting, contradicting, restricting,
215
+ * downstream, or unrelated.
216
+ */
217
+ export function analyzePremiseRelationships(engine, focusedPremiseId) {
218
+ const focusedPremise = engine.getPremise(focusedPremiseId);
219
+ if (!focusedPremise) {
220
+ throw new Error(`Premise "${focusedPremiseId}" does not exist in the argument.`);
221
+ }
222
+ const allPremises = engine.listPremises();
223
+ const otherPremises = allPremises.filter((pm) => pm.getId() !== focusedPremiseId);
224
+ if (otherPremises.length === 0) {
225
+ return { focusedPremiseId, premises: [] };
226
+ }
227
+ // Build profiles for all premises
228
+ const profiles = new Map();
229
+ for (const pm of allPremises) {
230
+ profiles.set(pm.getId(), buildPremiseProfile(pm));
231
+ }
232
+ const focusedProfile = profiles.get(focusedPremiseId);
233
+ // Build variable flow graph (inference premises only)
234
+ const graph = buildVariableFlowGraph(profiles);
235
+ // Collect all variable IDs connected to the focused premise
236
+ // (for constraint classification)
237
+ const connectedVarIds = new Set();
238
+ for (const pm of allPremises) {
239
+ const pmId = pm.getId();
240
+ if (pmId === focusedPremiseId)
241
+ continue;
242
+ const profile = profiles.get(pmId);
243
+ if (!profile.isInference)
244
+ continue;
245
+ const toFocused = bfsToTarget(graph, pmId, focusedPremiseId);
246
+ const fromFocused = bfsToTarget(graph, focusedPremiseId, pmId);
247
+ if (toFocused.reachable || fromFocused.reachable) {
248
+ for (const varId of pm.getReferencedVariableIds()) {
249
+ connectedVarIds.add(varId);
250
+ }
251
+ }
252
+ }
253
+ for (const a of focusedProfile.appearances) {
254
+ connectedVarIds.add(a.variableId);
255
+ }
256
+ // Classify each premise
257
+ const results = [];
258
+ for (const pm of otherPremises) {
259
+ const pmId = pm.getId();
260
+ const profile = profiles.get(pmId);
261
+ // Constraint premises get special handling
262
+ if (!profile.isInference) {
263
+ results.push(classifyConstraintPremise(pm, focusedProfile, connectedVarIds));
264
+ continue;
265
+ }
266
+ // If focused premise is a constraint, all sharing premises are
267
+ // restricting
268
+ if (!focusedProfile.isInference) {
269
+ const focusedVarIds = focusedPremise.getReferencedVariableIds();
270
+ const pmVarIds = pm.getReferencedVariableIds();
271
+ const shares = [...pmVarIds].some((id) => focusedVarIds.has(id));
272
+ results.push({
273
+ premiseId: pmId,
274
+ relationship: shares ? "restricting" : "unrelated",
275
+ variableDetails: [],
276
+ transitive: false,
277
+ });
278
+ continue;
279
+ }
280
+ // Check restricting (variable on both sides of source, appearing
281
+ // in focused)
282
+ const restrictingDetails = hasVariableOnBothSides(profile, focusedProfile);
283
+ // Check forward path (source → focused)
284
+ const toFocused = bfsToTarget(graph, pmId, focusedPremiseId);
285
+ // Check reverse path (focused → source) for downstream
286
+ const fromFocused = bfsToTarget(graph, focusedPremiseId, pmId);
287
+ if (restrictingDetails.length > 0 || toFocused.reachable) {
288
+ const allDetails = [
289
+ ...restrictingDetails,
290
+ ...toFocused.variableDetails,
291
+ ];
292
+ const relationship = applyPrecedence(allDetails);
293
+ results.push({
294
+ premiseId: pmId,
295
+ relationship,
296
+ variableDetails: allDetails,
297
+ transitive: toFocused.transitive,
298
+ });
299
+ }
300
+ else if (fromFocused.reachable) {
301
+ results.push({
302
+ premiseId: pmId,
303
+ relationship: "downstream",
304
+ variableDetails: [],
305
+ transitive: fromFocused.transitive,
306
+ });
307
+ }
308
+ else {
309
+ results.push({
310
+ premiseId: pmId,
311
+ relationship: "unrelated",
312
+ variableDetails: [],
313
+ transitive: false,
314
+ });
315
+ }
316
+ }
317
+ return { focusedPremiseId, premises: results };
318
+ }
319
+ //# sourceMappingURL=relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../../src/lib/core/relationships.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { TCoreSource } from "../schemata/source.js";
2
+ import type { TCoreChecksumConfig } from "../types/checksum.js";
3
+ import type { TSourceLibraryManagement, TSourceLibrarySnapshot } from "./interfaces/library.interfaces.js";
4
+ import { VersionedLibrary } from "./versioned-library.js";
5
+ export declare class SourceLibrary<TSource extends TCoreSource = TCoreSource> extends VersionedLibrary<TSource> implements TSourceLibraryManagement<TSource> {
6
+ protected readonly entityLabel = "Source";
7
+ protected readonly entityType: "source";
8
+ protected readonly schema: import("typebox").TObject<{
9
+ id: import("typebox").TString;
10
+ version: import("typebox").TNumber;
11
+ frozen: import("typebox").TBoolean;
12
+ checksum: import("typebox").TString;
13
+ }>;
14
+ protected readonly checksumFieldsKey: "sourceFields";
15
+ protected readonly schemaInvalidCode = "SOURCE_SCHEMA_INVALID";
16
+ protected readonly frozenSuccessorCode = "SOURCE_FROZEN_NO_SUCCESSOR";
17
+ snapshot(): TSourceLibrarySnapshot<TSource>;
18
+ /** Restores a source library from a previously captured snapshot. */
19
+ static fromSnapshot<TSource extends TCoreSource = TCoreSource>(snapshot: TSourceLibrarySnapshot<TSource>, options?: {
20
+ checksumConfig?: TCoreChecksumConfig;
21
+ }): SourceLibrary<TSource>;
22
+ }
23
+ //# sourceMappingURL=source-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/source-library.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EACR,wBAAwB,EACxB,sBAAsB,EACzB,MAAM,oCAAoC,CAAA;AAK3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,qBAAa,aAAa,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,CAChE,SAAQ,gBAAgB,CAAC,OAAO,CAChC,YAAW,wBAAwB,CAAC,OAAO,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,WAAW,YAAW;IACzC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,QAAQ,CAAS;IACjD,SAAS,CAAC,QAAQ,CAAC,MAAM;;;;;OAAmB;IAC5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAG,cAAc,CAAS;IAC9D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,2BAAwB;IAC5D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,gCAA6B;IAE5D,QAAQ,IAAI,sBAAsB,CAAC,OAAO,CAAC;IAIlD,qEAAqE;WACvD,YAAY,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,EAChE,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACzC,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE,GACnD,aAAa,CAAC,OAAO,CAAC;CAK5B"}
@@ -0,0 +1,21 @@
1
+ import { CoreSourceSchema } from "../schemata/source.js";
2
+ import { SOURCE_SCHEMA_INVALID, SOURCE_FROZEN_NO_SUCCESSOR, } from "../types/validation.js";
3
+ import { VersionedLibrary } from "./versioned-library.js";
4
+ export class SourceLibrary extends VersionedLibrary {
5
+ entityLabel = "Source";
6
+ entityType = "source";
7
+ schema = CoreSourceSchema;
8
+ checksumFieldsKey = "sourceFields";
9
+ schemaInvalidCode = SOURCE_SCHEMA_INVALID;
10
+ frozenSuccessorCode = SOURCE_FROZEN_NO_SUCCESSOR;
11
+ snapshot() {
12
+ return { sources: this.getAll() };
13
+ }
14
+ /** Restores a source library from a previously captured snapshot. */
15
+ static fromSnapshot(snapshot, options) {
16
+ const lib = new SourceLibrary(options);
17
+ lib.restoreFromEntities(snapshot.sources);
18
+ return lib;
19
+ }
20
+ }
21
+ //# sourceMappingURL=source-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-library.js","sourceRoot":"","sources":["../../../src/lib/core/source-library.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAMxD,OAAO,EACH,qBAAqB,EACrB,0BAA0B,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,MAAM,OAAO,aACT,SAAQ,gBAAyB;IAGd,WAAW,GAAG,QAAQ,CAAA;IACtB,UAAU,GAAG,QAAiB,CAAA;IAC9B,MAAM,GAAG,gBAAgB,CAAA;IACzB,iBAAiB,GAAG,cAAuB,CAAA;IAC3C,iBAAiB,GAAG,qBAAqB,CAAA;IACzC,mBAAmB,GAAG,0BAA0B,CAAA;IAE5D,QAAQ;QACX,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;IACrC,CAAC;IAED,qEAAqE;IAC9D,MAAM,CAAC,YAAY,CACtB,QAAyC,EACzC,OAAkD;QAElD,MAAM,GAAG,GAAG,IAAI,aAAa,CAAU,OAAO,CAAC,CAAA;QAC/C,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,GAAG,CAAA;IACd,CAAC;CACJ"}
@@ -0,0 +1,68 @@
1
+ import type { TCorePropositionalVariable } from "../schemata/index.js";
2
+ import type { TLogicEngineOptions } from "./argument-engine.js";
3
+ import type { TInvariantValidationResult } from "../types/validation.js";
4
+ export type TVariableManagerSnapshot<TVar extends TCorePropositionalVariable = TCorePropositionalVariable> = {
5
+ variables: TVar[];
6
+ config?: TLogicEngineOptions;
7
+ };
8
+ /**
9
+ * Registry for propositional variables within an argument, shared across
10
+ * all premises.
11
+ *
12
+ * Enforces uniqueness of both variable IDs and symbols. This class is an
13
+ * internal building block owned by {@link ArgumentEngine} and passed by
14
+ * reference to each {@link PremiseEngine}. It is not part of the public API.
15
+ */
16
+ export declare class VariableManager<TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
17
+ private variables;
18
+ private variablesBySymbol;
19
+ private config?;
20
+ constructor(config?: TLogicEngineOptions);
21
+ /** Returns all registered variables sorted by ID for deterministic output. */
22
+ toArray(): TVar[];
23
+ /**
24
+ * Registers a variable.
25
+ *
26
+ * @throws If the symbol is already in use.
27
+ * @throws If the ID already exists.
28
+ */
29
+ addVariable(variable: TVar): void;
30
+ /**
31
+ * Removes a variable by ID.
32
+ * @returns The removed variable, or `undefined` if not found.
33
+ */
34
+ removeVariable(variableId: string): TVar | undefined;
35
+ /** Returns `true` if a variable with the given ID is registered. */
36
+ hasVariable(variableId: string): boolean;
37
+ /** Returns the variable with the given ID, or `undefined` if not found. */
38
+ getVariable(variableId: string): TVar | undefined;
39
+ /** Returns the variable with the given symbol, or `undefined` if not found. */
40
+ getVariableBySymbol(symbol: string): TVar | undefined;
41
+ /**
42
+ * Changes the symbol of an existing variable.
43
+ *
44
+ * @throws If the variable does not exist.
45
+ * @throws If the new symbol is already in use by a different variable.
46
+ */
47
+ renameVariable(variableId: string, newSymbol: string): void;
48
+ /**
49
+ * Updates fields on an existing variable.
50
+ * Handles `symbol` updates via the symbol index; all other provided
51
+ * fields are spread onto the stored variable.
52
+ *
53
+ * @throws If the new symbol is already in use by a different variable.
54
+ * @returns The updated variable, or `undefined` if not found.
55
+ */
56
+ updateVariable(variableId: string, updates: Partial<TVar>): TVar | undefined;
57
+ /**
58
+ * Validates all managed variables, collecting every invariant violation.
59
+ * Checks: schema conformance, duplicate IDs, duplicate symbols, and
60
+ * checksum integrity.
61
+ */
62
+ validate(): TInvariantValidationResult;
63
+ /** Returns a serializable snapshot of the current state. */
64
+ snapshot(): TVariableManagerSnapshot<TVar>;
65
+ /** Creates a new VariableManager from a previously captured snapshot. */
66
+ static fromSnapshot<TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TVariableManagerSnapshot<TVar>): VariableManager<TVar>;
67
+ }
68
+ //# sourceMappingURL=variable-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/variable-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAGtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,KAAK,EAER,0BAA0B,EAC7B,MAAM,wBAAwB,CAAA;AAQ/B,MAAM,MAAM,wBAAwB,CAChC,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,IACpE;IACA,SAAS,EAAE,IAAI,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC/B,CAAA;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe,CACxB,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAExB,MAAM,CAAC,EAAE,mBAAmB;IAMxC,8EAA8E;IACvE,OAAO,IAAI,IAAI,EAAE;IAMxB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI;IAcjC;;;OAGG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAW3D,oEAAoE;IAC7D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/C,2EAA2E;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIxD,+EAA+E;IACxE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM5D;;;;;OAKG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAmBlE;;;;;;;OAOG;IACI,cAAc,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACvB,IAAI,GAAG,SAAS;IAqBnB;;;;OAIG;IACI,QAAQ,IAAI,0BAA0B;IAwE7C,4DAA4D;IACrD,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC;IAcjD,yEAAyE;WAC3D,YAAY,CACtB,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACtE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;CAOrE"}
@@ -0,0 +1,200 @@
1
+ import { CorePropositionalVariableSchema } from "../schemata/index.js";
2
+ import { DEFAULT_CHECKSUM_CONFIG, serializeChecksumConfig } from "../consts.js";
3
+ import { entityChecksum } from "./checksum.js";
4
+ import { Value } from "typebox/value";
5
+ import { VAR_SCHEMA_INVALID, VAR_DUPLICATE_ID, VAR_DUPLICATE_SYMBOL, VAR_CHECKSUM_MISMATCH, } from "../types/validation.js";
6
+ /**
7
+ * Registry for propositional variables within an argument, shared across
8
+ * all premises.
9
+ *
10
+ * Enforces uniqueness of both variable IDs and symbols. This class is an
11
+ * internal building block owned by {@link ArgumentEngine} and passed by
12
+ * reference to each {@link PremiseEngine}. It is not part of the public API.
13
+ */
14
+ export class VariableManager {
15
+ variables;
16
+ variablesBySymbol;
17
+ config;
18
+ constructor(config) {
19
+ this.variables = new Map();
20
+ this.variablesBySymbol = new Map();
21
+ this.config = config;
22
+ }
23
+ /** Returns all registered variables sorted by ID for deterministic output. */
24
+ toArray() {
25
+ return Array.from(this.variables.values()).sort((a, b) => a.id.localeCompare(b.id));
26
+ }
27
+ /**
28
+ * Registers a variable.
29
+ *
30
+ * @throws If the symbol is already in use.
31
+ * @throws If the ID already exists.
32
+ */
33
+ addVariable(variable) {
34
+ if (this.variablesBySymbol.has(variable.symbol)) {
35
+ throw new Error(`Variable symbol "${variable.symbol}" already exists.`);
36
+ }
37
+ if (this.variables.has(variable.id)) {
38
+ throw new Error(`Variable with ID "${variable.id}" already exists.`);
39
+ }
40
+ this.variables.set(variable.id, variable);
41
+ this.variablesBySymbol.set(variable.symbol, variable.id);
42
+ }
43
+ /**
44
+ * Removes a variable by ID.
45
+ * @returns The removed variable, or `undefined` if not found.
46
+ */
47
+ removeVariable(variableId) {
48
+ const variable = this.variables.get(variableId);
49
+ if (!variable) {
50
+ return undefined;
51
+ }
52
+ this.variables.delete(variableId);
53
+ this.variablesBySymbol.delete(variable.symbol);
54
+ return variable;
55
+ }
56
+ /** Returns `true` if a variable with the given ID is registered. */
57
+ hasVariable(variableId) {
58
+ return this.variables.has(variableId);
59
+ }
60
+ /** Returns the variable with the given ID, or `undefined` if not found. */
61
+ getVariable(variableId) {
62
+ return this.variables.get(variableId);
63
+ }
64
+ /** Returns the variable with the given symbol, or `undefined` if not found. */
65
+ getVariableBySymbol(symbol) {
66
+ const id = this.variablesBySymbol.get(symbol);
67
+ if (id === undefined)
68
+ return undefined;
69
+ return this.variables.get(id);
70
+ }
71
+ /**
72
+ * Changes the symbol of an existing variable.
73
+ *
74
+ * @throws If the variable does not exist.
75
+ * @throws If the new symbol is already in use by a different variable.
76
+ */
77
+ renameVariable(variableId, newSymbol) {
78
+ const variable = this.variables.get(variableId);
79
+ if (!variable) {
80
+ throw new Error(`Variable "${variableId}" does not exist.`);
81
+ }
82
+ if (this.variablesBySymbol.has(newSymbol) &&
83
+ variable.symbol !== newSymbol) {
84
+ throw new Error(`Variable symbol "${newSymbol}" is already in use.`);
85
+ }
86
+ this.variablesBySymbol.delete(variable.symbol);
87
+ this.variablesBySymbol.set(newSymbol, variableId);
88
+ this.variables.set(variableId, {
89
+ ...variable,
90
+ symbol: newSymbol,
91
+ });
92
+ }
93
+ /**
94
+ * Updates fields on an existing variable.
95
+ * Handles `symbol` updates via the symbol index; all other provided
96
+ * fields are spread onto the stored variable.
97
+ *
98
+ * @throws If the new symbol is already in use by a different variable.
99
+ * @returns The updated variable, or `undefined` if not found.
100
+ */
101
+ updateVariable(variableId, updates) {
102
+ const variable = this.variables.get(variableId);
103
+ if (!variable)
104
+ return undefined;
105
+ if (updates.symbol !== undefined) {
106
+ this.renameVariable(variableId, updates.symbol);
107
+ }
108
+ // Apply remaining fields (symbol already handled by renameVariable)
109
+ const { symbol: _symbol, ...rest } = updates;
110
+ if (Object.keys(rest).length > 0) {
111
+ const current = this.variables.get(variableId);
112
+ this.variables.set(variableId, {
113
+ ...current,
114
+ ...rest,
115
+ });
116
+ }
117
+ return this.variables.get(variableId);
118
+ }
119
+ /**
120
+ * Validates all managed variables, collecting every invariant violation.
121
+ * Checks: schema conformance, duplicate IDs, duplicate symbols, and
122
+ * checksum integrity.
123
+ */
124
+ validate() {
125
+ const violations = [];
126
+ const seenIds = new Set();
127
+ const seenSymbols = new Set();
128
+ const fields = this.config?.checksumConfig?.variableFields ??
129
+ DEFAULT_CHECKSUM_CONFIG.variableFields;
130
+ for (const variable of this.toArray()) {
131
+ const id = variable.id;
132
+ // 1. Schema check
133
+ if (!Value.Check(CorePropositionalVariableSchema, variable)) {
134
+ violations.push({
135
+ code: VAR_SCHEMA_INVALID,
136
+ message: `Variable "${id}" does not conform to CorePropositionalVariableSchema.`,
137
+ entityType: "variable",
138
+ entityId: id,
139
+ });
140
+ }
141
+ // 2. Duplicate ID
142
+ if (seenIds.has(id)) {
143
+ violations.push({
144
+ code: VAR_DUPLICATE_ID,
145
+ message: `Duplicate variable ID "${id}".`,
146
+ entityType: "variable",
147
+ entityId: id,
148
+ });
149
+ }
150
+ seenIds.add(id);
151
+ // 3. Duplicate symbol
152
+ if (seenSymbols.has(variable.symbol)) {
153
+ violations.push({
154
+ code: VAR_DUPLICATE_SYMBOL,
155
+ message: `Duplicate variable symbol "${variable.symbol}".`,
156
+ entityType: "variable",
157
+ entityId: id,
158
+ });
159
+ }
160
+ seenSymbols.add(variable.symbol);
161
+ // 4. Checksum integrity (skip empty string — before first computation)
162
+ if (variable.checksum !== "") {
163
+ const computed = entityChecksum(variable, fields);
164
+ if (variable.checksum !== computed) {
165
+ violations.push({
166
+ code: VAR_CHECKSUM_MISMATCH,
167
+ message: `Variable "${id}" checksum mismatch: stored="${variable.checksum}", computed="${computed}".`,
168
+ entityType: "variable",
169
+ entityId: id,
170
+ });
171
+ }
172
+ }
173
+ }
174
+ return {
175
+ ok: violations.length === 0,
176
+ violations,
177
+ };
178
+ }
179
+ /** Returns a serializable snapshot of the current state. */
180
+ snapshot() {
181
+ return {
182
+ variables: this.toArray(),
183
+ config: this.config
184
+ ? {
185
+ ...this.config,
186
+ checksumConfig: serializeChecksumConfig(this.config.checksumConfig),
187
+ }
188
+ : this.config,
189
+ };
190
+ }
191
+ /** Creates a new VariableManager from a previously captured snapshot. */
192
+ static fromSnapshot(snapshot) {
193
+ const vm = new VariableManager(snapshot.config);
194
+ for (const v of snapshot.variables) {
195
+ vm.addVariable(v);
196
+ }
197
+ return vm;
198
+ }
199
+ }
200
+ //# sourceMappingURL=variable-manager.js.map