@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,315 @@
1
+ import { Value } from "typebox/value";
2
+ import { CoreArgumentSchema, isClaimBound, isPremiseBound, } from "../schemata/index.js";
3
+ import { ARG_SCHEMA_INVALID, ARG_OWNERSHIP_MISMATCH, ARG_CLAIM_REF_NOT_FOUND, ARG_PREMISE_REF_NOT_FOUND, ARG_CIRCULARITY_DETECTED, ARG_CONCLUSION_NOT_FOUND, ARG_CHECKSUM_MISMATCH, } from "../types/validation.js";
4
+ import { getOrCreate, sortedUnique } from "../utils/collections.js";
5
+ import { makeErrorIssue, makeValidationResult, } from "./evaluation/validation.js";
6
+ /**
7
+ * Indexes variables referenced across all premises by ID and by symbol.
8
+ */
9
+ export function collectArgumentReferencedVariables(ctx) {
10
+ const byIdTmp = new Map();
11
+ const bySymbolTmp = new Map();
12
+ for (const premise of ctx.listPremises()) {
13
+ const premiseId = premise.getId();
14
+ const varsById = new Map(premise.getVariables().map((v) => [v.id, v]));
15
+ for (const expr of premise.getExpressions()) {
16
+ if (expr.type !== "variable")
17
+ continue;
18
+ const variable = varsById.get(expr.variableId);
19
+ if (!variable)
20
+ continue;
21
+ const byIdEntry = getOrCreate(byIdTmp, variable.id, () => ({
22
+ symbols: new Set(),
23
+ premiseIds: new Set(),
24
+ }));
25
+ byIdEntry.symbols.add(variable.symbol);
26
+ byIdEntry.premiseIds.add(premiseId);
27
+ const bySymbolEntry = getOrCreate(bySymbolTmp, variable.symbol, () => ({
28
+ variableIds: new Set(),
29
+ premiseIds: new Set(),
30
+ }));
31
+ bySymbolEntry.variableIds.add(variable.id);
32
+ bySymbolEntry.premiseIds.add(premiseId);
33
+ }
34
+ }
35
+ const byId = {};
36
+ for (const [variableId, entry] of Array.from(byIdTmp.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
37
+ byId[variableId] = {
38
+ symbol: sortedUnique(entry.symbols)[0] ?? "",
39
+ premiseIds: sortedUnique(entry.premiseIds),
40
+ };
41
+ }
42
+ const bySymbol = {};
43
+ for (const [symbol, entry] of Array.from(bySymbolTmp.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
44
+ bySymbol[symbol] = {
45
+ variableIds: sortedUnique(entry.variableIds),
46
+ premiseIds: sortedUnique(entry.premiseIds),
47
+ };
48
+ }
49
+ return {
50
+ variableIds: sortedUnique(byIdTmp.keys()),
51
+ byId,
52
+ bySymbol,
53
+ };
54
+ }
55
+ /**
56
+ * Lightweight validation triggered after a PremiseEngine mutation.
57
+ * Skips per-premise deep validation (which is O(n) over all premises)
58
+ * and argument-level checksum stability checks (checksums are known to
59
+ * be dirty). Only checks argument-level cross-references that a
60
+ * PremiseEngine mutation could affect.
61
+ */
62
+ export function validateArgumentAfterPremiseMutation(ctx) {
63
+ const violations = [];
64
+ // Variable references: ensure all variable expressions in the
65
+ // mutated premise still reference known variables (this is the main
66
+ // cross-cutting invariant a premise mutation can break).
67
+ for (const v of ctx.getVariables()) {
68
+ const base = v;
69
+ if (isPremiseBound(base)) {
70
+ const pb = base;
71
+ if (pb.boundArgumentId === ctx.argumentId) {
72
+ if (!ctx.hasPremise(pb.boundPremiseId)) {
73
+ violations.push({
74
+ code: ARG_PREMISE_REF_NOT_FOUND,
75
+ message: `Premise-bound variable "${pb.id}" references non-existent premise "${pb.boundPremiseId}".`,
76
+ entityType: "variable",
77
+ entityId: pb.id,
78
+ });
79
+ }
80
+ }
81
+ }
82
+ }
83
+ // Conclusion premise reference
84
+ if (ctx.conclusionPremiseId !== undefined &&
85
+ !ctx.hasPremise(ctx.conclusionPremiseId)) {
86
+ violations.push({
87
+ code: ARG_CONCLUSION_NOT_FOUND,
88
+ message: `Conclusion premise "${ctx.conclusionPremiseId}" does not exist in this argument.`,
89
+ entityType: "argument",
90
+ entityId: ctx.argumentId,
91
+ });
92
+ }
93
+ return {
94
+ ok: violations.length === 0,
95
+ violations,
96
+ };
97
+ }
98
+ /**
99
+ * Comprehensive invariant validation for an argument. Performs 9 checks:
100
+ * schema conformance, variable manager validation, per-premise validation,
101
+ * variable ownership, claim-bound references, premise-bound references,
102
+ * circularity detection, conclusion reference, and checksum stability.
103
+ */
104
+ export function validateArgument(ctx) {
105
+ const violations = [];
106
+ // 1. Schema check — flush checksums first so fields are populated
107
+ const deltas = ctx.flushAndGetChecksumDeltas();
108
+ const arg = ctx.getArgument();
109
+ if (!Value.Check(CoreArgumentSchema, arg)) {
110
+ violations.push({
111
+ code: ARG_SCHEMA_INVALID,
112
+ message: `Argument "${arg.id}" does not conform to CoreArgumentSchema.`,
113
+ entityType: "argument",
114
+ entityId: arg.id,
115
+ });
116
+ }
117
+ // 2. Delegate to VariableManager.validate()
118
+ const varResult = ctx.validateVariables();
119
+ violations.push(...varResult.violations);
120
+ // 3. Delegate to each PremiseEngine.validate()
121
+ for (const pe of ctx.listPremises()) {
122
+ const premiseResult = pe.validate();
123
+ violations.push(...premiseResult.violations);
124
+ }
125
+ // 4. Variable ownership: all variables must belong to this argument
126
+ for (const v of ctx.getVariables()) {
127
+ const base = v;
128
+ if (base.argumentId !== ctx.argumentId ||
129
+ base.argumentVersion !== ctx.argumentVersion) {
130
+ violations.push({
131
+ code: ARG_OWNERSHIP_MISMATCH,
132
+ message: `Variable "${base.id}" has argumentId/version "${base.argumentId}/${base.argumentVersion}" but engine is "${ctx.argumentId}/${ctx.argumentVersion}".`,
133
+ entityType: "variable",
134
+ entityId: base.id,
135
+ });
136
+ }
137
+ }
138
+ // 5. Claim-bound variable references
139
+ for (const v of ctx.getVariables()) {
140
+ const base = v;
141
+ if (isClaimBound(base)) {
142
+ const cb = base;
143
+ if (!ctx.lookupClaim(cb.claimId, cb.claimVersion)) {
144
+ violations.push({
145
+ code: ARG_CLAIM_REF_NOT_FOUND,
146
+ message: `Variable "${cb.id}" references claim "${cb.claimId}" version ${cb.claimVersion} which does not exist in the claim library.`,
147
+ entityType: "variable",
148
+ entityId: cb.id,
149
+ });
150
+ }
151
+ }
152
+ }
153
+ // 6. Premise-bound internal variable references
154
+ for (const v of ctx.getVariables()) {
155
+ const base = v;
156
+ if (isPremiseBound(base)) {
157
+ const pb = base;
158
+ if (pb.boundArgumentId === ctx.argumentId) {
159
+ if (!ctx.hasPremise(pb.boundPremiseId)) {
160
+ violations.push({
161
+ code: ARG_PREMISE_REF_NOT_FOUND,
162
+ message: `Premise-bound variable "${pb.id}" references non-existent premise "${pb.boundPremiseId}".`,
163
+ entityType: "variable",
164
+ entityId: pb.id,
165
+ });
166
+ }
167
+ }
168
+ }
169
+ }
170
+ // 7. Circularity detection for internal premise-bound variables.
171
+ // A cycle exists when a premise-bound variable's bound premise
172
+ // transitively references back to itself through other
173
+ // premise-bound variables.
174
+ for (const v of ctx.getVariables()) {
175
+ const base = v;
176
+ if (isPremiseBound(base)) {
177
+ const pb = base;
178
+ if (pb.boundArgumentId === ctx.argumentId) {
179
+ // Trace from the bound premise through expressions'
180
+ // variable references to see if we reach back to the
181
+ // same premise.
182
+ if (ctx.hasPremise(pb.boundPremiseId)) {
183
+ const boundPremise = ctx
184
+ .listPremises()
185
+ .find((p) => p.getId() === pb.boundPremiseId);
186
+ if (boundPremise) {
187
+ let hasCycle = false;
188
+ for (const expr of boundPremise.getExpressions()) {
189
+ if (expr.type === "variable") {
190
+ try {
191
+ if (ctx.wouldCreateCycle(expr.variableId, pb.boundPremiseId, new Set())) {
192
+ hasCycle = true;
193
+ break;
194
+ }
195
+ }
196
+ catch {
197
+ hasCycle = true;
198
+ break;
199
+ }
200
+ }
201
+ }
202
+ if (hasCycle) {
203
+ violations.push({
204
+ code: ARG_CIRCULARITY_DETECTED,
205
+ message: `Premise-bound variable "${pb.id}" creates a circular dependency through premise "${pb.boundPremiseId}".`,
206
+ entityType: "variable",
207
+ entityId: pb.id,
208
+ });
209
+ }
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
215
+ // 8. Conclusion premise reference
216
+ if (ctx.conclusionPremiseId !== undefined &&
217
+ !ctx.hasPremise(ctx.conclusionPremiseId)) {
218
+ violations.push({
219
+ code: ARG_CONCLUSION_NOT_FOUND,
220
+ message: `Conclusion premise "${ctx.conclusionPremiseId}" does not exist in this argument.`,
221
+ entityType: "argument",
222
+ entityId: ctx.argumentId,
223
+ });
224
+ }
225
+ // 9. Argument-level checksum verification
226
+ if (deltas.savedMeta !== undefined &&
227
+ deltas.savedMeta !== deltas.currentMeta) {
228
+ violations.push({
229
+ code: ARG_CHECKSUM_MISMATCH,
230
+ message: `Argument "${ctx.argumentId}" meta checksum changed after flush: "${deltas.savedMeta}" → "${deltas.currentMeta}".`,
231
+ entityType: "argument",
232
+ entityId: ctx.argumentId,
233
+ });
234
+ }
235
+ if (deltas.savedDescendant !== undefined &&
236
+ deltas.savedDescendant !== deltas.currentDescendant) {
237
+ violations.push({
238
+ code: ARG_CHECKSUM_MISMATCH,
239
+ message: `Argument "${ctx.argumentId}" descendant checksum changed after flush: "${String(deltas.savedDescendant)}" → "${String(deltas.currentDescendant)}".`,
240
+ entityType: "argument",
241
+ entityId: ctx.argumentId,
242
+ });
243
+ }
244
+ if (deltas.savedCombined !== undefined &&
245
+ deltas.savedCombined !== deltas.currentCombined) {
246
+ violations.push({
247
+ code: ARG_CHECKSUM_MISMATCH,
248
+ message: `Argument "${ctx.argumentId}" combined checksum changed after flush: "${deltas.savedCombined}" → "${deltas.currentCombined}".`,
249
+ entityType: "argument",
250
+ entityId: ctx.argumentId,
251
+ });
252
+ }
253
+ return {
254
+ ok: violations.length === 0,
255
+ violations,
256
+ };
257
+ }
258
+ /**
259
+ * Pre-evaluation structural validation. Checks conclusion presence,
260
+ * variable-to-symbol consistency, symbol-to-variable uniqueness,
261
+ * and delegates to per-premise evaluability checks.
262
+ */
263
+ export function validateArgumentEvaluability(ctx) {
264
+ const issues = [];
265
+ if (ctx.conclusionPremiseId === undefined) {
266
+ issues.push(makeErrorIssue({
267
+ code: "ARGUMENT_NO_CONCLUSION",
268
+ message: "Argument has no designated conclusion premise.",
269
+ }));
270
+ }
271
+ else if (!ctx.hasPremise(ctx.conclusionPremiseId)) {
272
+ issues.push(makeErrorIssue({
273
+ code: "ARGUMENT_CONCLUSION_NOT_FOUND",
274
+ message: `Conclusion premise "${ctx.conclusionPremiseId}" does not exist.`,
275
+ premiseId: ctx.conclusionPremiseId,
276
+ }));
277
+ }
278
+ const idToSymbols = new Map();
279
+ const symbolToIds = new Map();
280
+ for (const premise of ctx.listPremises()) {
281
+ const varById = new Map(premise.getVariables().map((v) => [v.id, v]));
282
+ for (const expr of premise.getExpressions()) {
283
+ if (expr.type !== "variable")
284
+ continue;
285
+ const variable = varById.get(expr.variableId);
286
+ if (!variable)
287
+ continue;
288
+ getOrCreate(idToSymbols, variable.id, () => new Set()).add(variable.symbol);
289
+ getOrCreate(symbolToIds, variable.symbol, () => new Set()).add(variable.id);
290
+ }
291
+ }
292
+ for (const [variableId, symbols] of idToSymbols) {
293
+ if (symbols.size > 1) {
294
+ issues.push(makeErrorIssue({
295
+ code: "ARGUMENT_VARIABLE_ID_SYMBOL_MISMATCH",
296
+ message: `Variable ID "${variableId}" is used with multiple symbols: ${sortedUnique(symbols).join(", ")}.`,
297
+ variableId,
298
+ }));
299
+ }
300
+ }
301
+ for (const [symbol, ids] of symbolToIds) {
302
+ if (ids.size > 1) {
303
+ issues.push(makeErrorIssue({
304
+ code: "ARGUMENT_VARIABLE_SYMBOL_AMBIGUOUS",
305
+ message: `Variable symbol "${symbol}" is used with multiple IDs: ${sortedUnique(ids).join(", ")}.`,
306
+ }));
307
+ }
308
+ }
309
+ for (const premise of ctx.listPremises()) {
310
+ const premiseValidation = premise.validateEvaluability();
311
+ issues.push(...premiseValidation.issues);
312
+ }
313
+ return makeValidationResult(issues);
314
+ }
315
+ //# sourceMappingURL=argument-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argument-validation.js","sourceRoot":"","sources":["../../../src/lib/core/argument-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { TCorePremise } from "../schemata/index.js";
2
+ import type { TCoreArgument, TCoreArgumentRoleState } from "../schemata/argument.js";
3
+ import type { TCorePropositionalExpression, TCorePropositionalVariable } from "../schemata/propositional.js";
4
+ import type { TCoreChangeset } from "../types/mutation.js";
5
+ export declare class ChangeCollector<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument> {
6
+ private expressions;
7
+ private variables;
8
+ private premises;
9
+ private roles;
10
+ private argument;
11
+ addedExpression(expr: TExpr): void;
12
+ modifiedExpression(expr: TExpr): void;
13
+ removedExpression(expr: TExpr): void;
14
+ isExpressionAdded(id: string): boolean;
15
+ addedVariable(variable: TVar): void;
16
+ modifiedVariable(variable: TVar): void;
17
+ removedVariable(variable: TVar): void;
18
+ addedPremise(premise: TPremise): void;
19
+ removedPremise(premise: TPremise): void;
20
+ setRoles(roles: TCoreArgumentRoleState): void;
21
+ setArgument(argument: TArg): void;
22
+ toChangeset(): TCoreChangeset<TExpr, TVar, TPremise, TArg>;
23
+ }
24
+ //# sourceMappingURL=change-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-collector.d.ts","sourceRoot":"","sources":["../../../src/lib/core/change-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EACR,aAAa,EACb,sBAAsB,EACzB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACR,4BAA4B,EAC5B,0BAA0B,EAC7B,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAc9E,qBAAa,eAAe,CACxB,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACpE,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,IAAI,SAAS,aAAa,GAAG,aAAa;IAE1C,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,SAAS,CAAiD;IAClE,OAAO,CAAC,QAAQ,CAAqD;IACrE,OAAO,CAAC,KAAK,CAAgD;IAC7D,OAAO,CAAC,QAAQ,CAA8B;IAE9C,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAGlC,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAGrC,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAIpC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAItC,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAGnC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAGtC,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAIrC,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAGrC,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAIvC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAI7C,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAIjC,WAAW,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;CAU7D"}
@@ -0,0 +1,63 @@
1
+ function emptyEntityChanges() {
2
+ return { added: [], modified: [], removed: [] };
3
+ }
4
+ function isEntityChangesEmpty(ec) {
5
+ return (ec.added.length === 0 &&
6
+ ec.modified.length === 0 &&
7
+ ec.removed.length === 0);
8
+ }
9
+ export class ChangeCollector {
10
+ expressions = emptyEntityChanges();
11
+ variables = emptyEntityChanges();
12
+ premises = emptyEntityChanges();
13
+ roles = undefined;
14
+ argument = undefined;
15
+ addedExpression(expr) {
16
+ this.expressions.added.push(expr);
17
+ }
18
+ modifiedExpression(expr) {
19
+ this.expressions.modified.push(expr);
20
+ }
21
+ removedExpression(expr) {
22
+ this.expressions.removed.push(expr);
23
+ }
24
+ isExpressionAdded(id) {
25
+ return this.expressions.added.some((e) => e.id === id);
26
+ }
27
+ addedVariable(variable) {
28
+ this.variables.added.push(variable);
29
+ }
30
+ modifiedVariable(variable) {
31
+ this.variables.modified.push(variable);
32
+ }
33
+ removedVariable(variable) {
34
+ this.variables.removed.push(variable);
35
+ }
36
+ addedPremise(premise) {
37
+ this.premises.added.push(premise);
38
+ }
39
+ removedPremise(premise) {
40
+ this.premises.removed.push(premise);
41
+ }
42
+ setRoles(roles) {
43
+ this.roles = roles;
44
+ }
45
+ setArgument(argument) {
46
+ this.argument = argument;
47
+ }
48
+ toChangeset() {
49
+ const cs = {};
50
+ if (!isEntityChangesEmpty(this.expressions))
51
+ cs.expressions = this.expressions;
52
+ if (!isEntityChangesEmpty(this.variables))
53
+ cs.variables = this.variables;
54
+ if (!isEntityChangesEmpty(this.premises))
55
+ cs.premises = this.premises;
56
+ if (this.roles !== undefined)
57
+ cs.roles = this.roles;
58
+ if (this.argument !== undefined)
59
+ cs.argument = this.argument;
60
+ return cs;
61
+ }
62
+ }
63
+ //# sourceMappingURL=change-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-collector.js","sourceRoot":"","sources":["../../../src/lib/core/change-collector.ts"],"names":[],"mappings":"AAWA,SAAS,kBAAkB;IACvB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;AACnD,CAAC;AAED,SAAS,oBAAoB,CAAI,EAAyB;IACtD,OAAO,CACH,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACrB,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACxB,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAC1B,CAAA;AACL,CAAC;AAED,MAAM,OAAO,eAAe;IAMhB,WAAW,GAA8B,kBAAkB,EAAE,CAAA;IAC7D,SAAS,GAA6B,kBAAkB,EAAE,CAAA;IAC1D,QAAQ,GAAiC,kBAAkB,EAAE,CAAA;IAC7D,KAAK,GAAuC,SAAS,CAAA;IACrD,QAAQ,GAAqB,SAAS,CAAA;IAE9C,eAAe,CAAC,IAAW;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IACD,kBAAkB,CAAC,IAAW;QAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IACD,iBAAiB,CAAC,IAAW;QACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,iBAAiB,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,aAAa,CAAC,QAAc;QACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IACD,gBAAgB,CAAC,QAAc;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IACD,eAAe,CAAC,QAAc;QAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,YAAY,CAAC,OAAiB;QAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,OAAiB;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,QAAQ,CAAC,KAA6B;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,WAAW,CAAC,QAAc;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED,WAAW;QACP,MAAM,EAAE,GAAgD,EAAE,CAAA;QAC1D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;YACvC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QACxE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QACrE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5D,OAAO,EAAE,CAAA;IACb,CAAC;CACJ"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * FNV-1a 32-bit hash. Fast, non-cryptographic, browser-compatible.
3
+ */
4
+ export declare function computeHash(input: string): string;
5
+ /**
6
+ * Deterministic JSON serialization with sorted keys at all levels.
7
+ */
8
+ export declare function canonicalSerialize(value: unknown): string;
9
+ /**
10
+ * Compute checksum for an entity using only the specified fields.
11
+ * Fields are sorted before hashing to ensure determinism regardless
12
+ * of the order they are passed.
13
+ */
14
+ export declare function entityChecksum(entity: Record<string, unknown>, fields: Iterable<string>): string;
15
+ //# sourceMappingURL=checksum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../../src/lib/core/checksum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAazD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GACzB,MAAM,CAQR"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * FNV-1a 32-bit hash. Fast, non-cryptographic, browser-compatible.
3
+ */
4
+ export function computeHash(input) {
5
+ let hash = 0x811c9dc5;
6
+ for (let i = 0; i < input.length; i++) {
7
+ hash ^= input.charCodeAt(i);
8
+ hash = Math.imul(hash, 0x01000193);
9
+ }
10
+ return (hash >>> 0).toString(16).padStart(8, "0");
11
+ }
12
+ /**
13
+ * Deterministic JSON serialization with sorted keys at all levels.
14
+ */
15
+ export function canonicalSerialize(value) {
16
+ return JSON.stringify(value, (_, v) => {
17
+ if (v && typeof v === "object" && !Array.isArray(v)) {
18
+ const obj = v;
19
+ return Object.keys(obj)
20
+ .sort()
21
+ .reduce((sorted, key) => {
22
+ sorted[key] = obj[key];
23
+ return sorted;
24
+ }, {});
25
+ }
26
+ return v;
27
+ });
28
+ }
29
+ /**
30
+ * Compute checksum for an entity using only the specified fields.
31
+ * Fields are sorted before hashing to ensure determinism regardless
32
+ * of the order they are passed.
33
+ */
34
+ export function entityChecksum(entity, fields) {
35
+ const picked = {};
36
+ for (const field of [...fields].sort()) {
37
+ if (field in entity) {
38
+ picked[field] = entity[field];
39
+ }
40
+ }
41
+ return computeHash(canonicalSerialize(picked));
42
+ }
43
+ //# sourceMappingURL=checksum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../../src/lib/core/checksum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,IAAI,IAAI,GAAG,UAAU,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAU,EAAE,EAAE;QAC3C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,CAA4B,CAAA;YACxC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBAClB,IAAI,EAAE;iBACN,MAAM,CAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBACtB,OAAO,MAAM,CAAA;YACjB,CAAC,EAAE,EAAE,CAAC,CAAA;QACd,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC1B,MAA+B,EAC/B,MAAwB;IAExB,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { TCoreClaim } from "../schemata/claim.js";
2
+ import type { TCoreChecksumConfig } from "../types/checksum.js";
3
+ import type { TClaimLibraryManagement, TClaimLibrarySnapshot } from "./interfaces/library.interfaces.js";
4
+ import { VersionedLibrary } from "./versioned-library.js";
5
+ export declare class ClaimLibrary<TClaim extends TCoreClaim = TCoreClaim> extends VersionedLibrary<TClaim> implements TClaimLibraryManagement<TClaim> {
6
+ protected readonly entityLabel = "Claim";
7
+ protected readonly entityType: "claim";
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: "claimFields";
15
+ protected readonly schemaInvalidCode = "CLAIM_SCHEMA_INVALID";
16
+ protected readonly frozenSuccessorCode = "CLAIM_FROZEN_NO_SUCCESSOR";
17
+ snapshot(): TClaimLibrarySnapshot<TClaim>;
18
+ /** Restores a claim library from a previously captured snapshot. */
19
+ static fromSnapshot<TClaim extends TCoreClaim = TCoreClaim>(snapshot: TClaimLibrarySnapshot<TClaim>, options?: {
20
+ checksumConfig?: TCoreChecksumConfig;
21
+ }): ClaimLibrary<TClaim>;
22
+ }
23
+ //# sourceMappingURL=claim-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/claim-library.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EACR,uBAAuB,EACvB,qBAAqB,EACxB,MAAM,oCAAoC,CAAA;AAK3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,qBAAa,YAAY,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU,CAC5D,SAAQ,gBAAgB,CAAC,MAAM,CAC/B,YAAW,uBAAuB,CAAC,MAAM,CAAC;IAE1C,SAAS,CAAC,QAAQ,CAAC,WAAW,WAAU;IACxC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,OAAO,CAAS;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM;;;;;OAAkB;IAC3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAG,aAAa,CAAS;IAC7D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,0BAAuB;IAC3D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,+BAA4B;IAE3D,QAAQ,IAAI,qBAAqB,CAAC,MAAM,CAAC;IAIhD,oEAAoE;WACtD,YAAY,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU,EAC7D,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACvC,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE,GACnD,YAAY,CAAC,MAAM,CAAC;CAK1B"}
@@ -0,0 +1,21 @@
1
+ import { CoreClaimSchema } from "../schemata/claim.js";
2
+ import { CLAIM_SCHEMA_INVALID, CLAIM_FROZEN_NO_SUCCESSOR, } from "../types/validation.js";
3
+ import { VersionedLibrary } from "./versioned-library.js";
4
+ export class ClaimLibrary extends VersionedLibrary {
5
+ entityLabel = "Claim";
6
+ entityType = "claim";
7
+ schema = CoreClaimSchema;
8
+ checksumFieldsKey = "claimFields";
9
+ schemaInvalidCode = CLAIM_SCHEMA_INVALID;
10
+ frozenSuccessorCode = CLAIM_FROZEN_NO_SUCCESSOR;
11
+ snapshot() {
12
+ return { claims: this.getAll() };
13
+ }
14
+ /** Restores a claim library from a previously captured snapshot. */
15
+ static fromSnapshot(snapshot, options) {
16
+ const lib = new ClaimLibrary(options);
17
+ lib.restoreFromEntities(snapshot.claims);
18
+ return lib;
19
+ }
20
+ }
21
+ //# sourceMappingURL=claim-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-library.js","sourceRoot":"","sources":["../../../src/lib/core/claim-library.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAMtD,OAAO,EACH,oBAAoB,EACpB,yBAAyB,GAC5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,MAAM,OAAO,YACT,SAAQ,gBAAwB;IAGb,WAAW,GAAG,OAAO,CAAA;IACrB,UAAU,GAAG,OAAgB,CAAA;IAC7B,MAAM,GAAG,eAAe,CAAA;IACxB,iBAAiB,GAAG,aAAsB,CAAA;IAC1C,iBAAiB,GAAG,oBAAoB,CAAA;IACxC,mBAAmB,GAAG,yBAAyB,CAAA;IAE3D,QAAQ;QACX,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;IACpC,CAAC;IAED,oEAAoE;IAC7D,MAAM,CAAC,YAAY,CACtB,QAAuC,EACvC,OAAkD;QAElD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAS,OAAO,CAAC,CAAA;QAC7C,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAA;IACd,CAAC;CACJ"}
@@ -0,0 +1,32 @@
1
+ import type { TCoreClaimSourceAssociation } from "../schemata/source.js";
2
+ import type { TCoreChecksumConfig } from "../types/checksum.js";
3
+ import type { TClaimLookup, TSourceLookup, TClaimSourceLibraryManagement, TClaimSourceLibrarySnapshot } from "./interfaces/library.interfaces.js";
4
+ import type { TInvariantValidationResult } from "../types/validation.js";
5
+ export declare class ClaimSourceLibrary<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation> implements TClaimSourceLibraryManagement<TAssoc> {
6
+ private associations;
7
+ private claimToAssociations;
8
+ private sourceToAssociations;
9
+ private claimLookup;
10
+ private sourceLookup;
11
+ private checksumConfig?;
12
+ constructor(claimLookup: TClaimLookup, sourceLookup: TSourceLookup, options?: {
13
+ checksumConfig?: TCoreChecksumConfig;
14
+ });
15
+ private restoreFromSnapshot;
16
+ private withValidation;
17
+ add(assoc: Omit<TAssoc, "checksum">): TAssoc;
18
+ remove(id: string): TAssoc;
19
+ getForClaim(claimId: string): TAssoc[];
20
+ getForSource(sourceId: string): TAssoc[];
21
+ get(id: string): TAssoc | undefined;
22
+ getAll(): TAssoc[];
23
+ filter(predicate: (a: TAssoc) => boolean): TAssoc[];
24
+ snapshot(): TClaimSourceLibrarySnapshot<TAssoc>;
25
+ /** Restores a claim-source library from a snapshot, re-indexing all associations. */
26
+ static fromSnapshot<TAssoc extends TCoreClaimSourceAssociation = TCoreClaimSourceAssociation>(snapshot: TClaimSourceLibrarySnapshot<TAssoc>, claimLookup: TClaimLookup, sourceLookup: TSourceLookup, options?: {
27
+ checksumConfig?: TCoreChecksumConfig;
28
+ }): ClaimSourceLibrary<TAssoc>;
29
+ validate(): TInvariantValidationResult;
30
+ private computeChecksum;
31
+ }
32
+ //# sourceMappingURL=claim-source-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-source-library.d.ts","sourceRoot":"","sources":["../../../src/lib/core/claim-source-library.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,KAAK,EACR,YAAY,EACZ,aAAa,EACb,6BAA6B,EAC7B,2BAA2B,EAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,EACR,0BAA0B,EAE7B,MAAM,wBAAwB,CAAA;AAQ/B,qBAAa,kBAAkB,CAC3B,MAAM,SAAS,2BAA2B,GAAG,2BAA2B,CAC1E,YAAW,6BAA6B,CAAC,MAAM,CAAC;IAC9C,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAC,CAAqB;gBAGxC,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,aAAa,EAC3B,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE;IAUtD,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,cAAc;IAkBf,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM;IAmD5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAuB1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAQtC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAQxC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInC,MAAM,IAAI,MAAM,EAAE;IAIlB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,EAAE;IAInD,QAAQ,IAAI,2BAA2B,CAAC,MAAM,CAAC;IAItD,qFAAqF;WACvE,YAAY,CACtB,MAAM,SAAS,2BAA2B,GACtC,2BAA2B,EAE/B,QAAQ,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAC7C,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,aAAa,EAC3B,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,mBAAmB,CAAA;KAAE,GACnD,kBAAkB,CAAC,MAAM,CAAC;IA0BtB,QAAQ,IAAI,0BAA0B;IA+B7C,OAAO,CAAC,eAAe;CAS1B"}