@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.
- package/README.md +1032 -0
- package/dist/cli/commands/analysis.d.ts +3 -0
- package/dist/cli/commands/analysis.d.ts.map +1 -0
- package/dist/cli/commands/analysis.js +504 -0
- package/dist/cli/commands/analysis.js.map +1 -0
- package/dist/cli/commands/arguments.d.ts +3 -0
- package/dist/cli/commands/arguments.d.ts.map +1 -0
- package/dist/cli/commands/arguments.js +187 -0
- package/dist/cli/commands/arguments.js.map +1 -0
- package/dist/cli/commands/claims.d.ts +3 -0
- package/dist/cli/commands/claims.d.ts.map +1 -0
- package/dist/cli/commands/claims.js +120 -0
- package/dist/cli/commands/claims.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +3 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +61 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/expressions.d.ts +3 -0
- package/dist/cli/commands/expressions.d.ts.map +1 -0
- package/dist/cli/commands/expressions.js +344 -0
- package/dist/cli/commands/expressions.js.map +1 -0
- package/dist/cli/commands/graph.d.ts +13 -0
- package/dist/cli/commands/graph.d.ts.map +1 -0
- package/dist/cli/commands/graph.js +382 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/meta.d.ts +3 -0
- package/dist/cli/commands/meta.d.ts.map +1 -0
- package/dist/cli/commands/meta.js +14 -0
- package/dist/cli/commands/meta.js.map +1 -0
- package/dist/cli/commands/parse.d.ts +3 -0
- package/dist/cli/commands/parse.d.ts.map +1 -0
- package/dist/cli/commands/parse.js +171 -0
- package/dist/cli/commands/parse.js.map +1 -0
- package/dist/cli/commands/premises.d.ts +3 -0
- package/dist/cli/commands/premises.d.ts.map +1 -0
- package/dist/cli/commands/premises.js +261 -0
- package/dist/cli/commands/premises.js.map +1 -0
- package/dist/cli/commands/render.d.ts +3 -0
- package/dist/cli/commands/render.d.ts.map +1 -0
- package/dist/cli/commands/render.js +109 -0
- package/dist/cli/commands/render.js.map +1 -0
- package/dist/cli/commands/repair.d.ts +3 -0
- package/dist/cli/commands/repair.d.ts.map +1 -0
- package/dist/cli/commands/repair.js +53 -0
- package/dist/cli/commands/repair.js.map +1 -0
- package/dist/cli/commands/roles.d.ts +3 -0
- package/dist/cli/commands/roles.d.ts.map +1 -0
- package/dist/cli/commands/roles.js +64 -0
- package/dist/cli/commands/roles.js.map +1 -0
- package/dist/cli/commands/sources.d.ts +3 -0
- package/dist/cli/commands/sources.d.ts.map +1 -0
- package/dist/cli/commands/sources.js +103 -0
- package/dist/cli/commands/sources.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +3 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +27 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/variables.d.ts +3 -0
- package/dist/cli/commands/variables.d.ts.map +1 -0
- package/dist/cli/commands/variables.js +206 -0
- package/dist/cli/commands/variables.js.map +1 -0
- package/dist/cli/commands/version-show.d.ts +3 -0
- package/dist/cli/commands/version-show.d.ts.map +1 -0
- package/dist/cli/commands/version-show.js +31 -0
- package/dist/cli/commands/version-show.js.map +1 -0
- package/dist/cli/config.d.ts +8 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +24 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/engine.d.ts +19 -0
- package/dist/cli/engine.d.ts.map +1 -0
- package/dist/cli/engine.js +173 -0
- package/dist/cli/engine.js.map +1 -0
- package/dist/cli/import.d.ts +22 -0
- package/dist/cli/import.d.ts.map +1 -0
- package/dist/cli/import.js +242 -0
- package/dist/cli/import.js.map +1 -0
- package/dist/cli/llm/index.d.ts +6 -0
- package/dist/cli/llm/index.d.ts.map +1 -0
- package/dist/cli/llm/index.js +26 -0
- package/dist/cli/llm/index.js.map +1 -0
- package/dist/cli/llm/openai.d.ts +4 -0
- package/dist/cli/llm/openai.d.ts.map +1 -0
- package/dist/cli/llm/openai.js +44 -0
- package/dist/cli/llm/openai.js.map +1 -0
- package/dist/cli/llm/types.d.ts +14 -0
- package/dist/cli/llm/types.d.ts.map +1 -0
- package/dist/cli/llm/types.js +2 -0
- package/dist/cli/llm/types.js.map +1 -0
- package/dist/cli/logging.d.ts +8 -0
- package/dist/cli/logging.d.ts.map +1 -0
- package/dist/cli/logging.js +23 -0
- package/dist/cli/logging.js.map +1 -0
- package/dist/cli/output/diff-renderer.d.ts +4 -0
- package/dist/cli/output/diff-renderer.d.ts.map +1 -0
- package/dist/cli/output/diff-renderer.js +89 -0
- package/dist/cli/output/diff-renderer.js.map +1 -0
- package/dist/cli/output.d.ts +6 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +41 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/router.d.ts +14 -0
- package/dist/cli/router.d.ts.map +1 -0
- package/dist/cli/router.js +59 -0
- package/dist/cli/router.js.map +1 -0
- package/dist/cli/schemata.d.ts +74 -0
- package/dist/cli/schemata.d.ts.map +1 -0
- package/dist/cli/schemata.js +89 -0
- package/dist/cli/schemata.js.map +1 -0
- package/dist/cli/storage/analysis.d.ts +9 -0
- package/dist/cli/storage/analysis.d.ts.map +1 -0
- package/dist/cli/storage/analysis.js +108 -0
- package/dist/cli/storage/analysis.js.map +1 -0
- package/dist/cli/storage/arguments.d.ts +12 -0
- package/dist/cli/storage/arguments.d.ts.map +1 -0
- package/dist/cli/storage/arguments.js +80 -0
- package/dist/cli/storage/arguments.js.map +1 -0
- package/dist/cli/storage/libraries.d.ts +14 -0
- package/dist/cli/storage/libraries.d.ts.map +1 -0
- package/dist/cli/storage/libraries.js +80 -0
- package/dist/cli/storage/libraries.js.map +1 -0
- package/dist/cli/storage/premises.d.ts +9 -0
- package/dist/cli/storage/premises.d.ts.map +1 -0
- package/dist/cli/storage/premises.js +67 -0
- package/dist/cli/storage/premises.js.map +1 -0
- package/dist/cli/storage/roles.d.ts +4 -0
- package/dist/cli/storage/roles.d.ts.map +1 -0
- package/dist/cli/storage/roles.js +26 -0
- package/dist/cli/storage/roles.js.map +1 -0
- package/dist/cli/storage/variables.d.ts +4 -0
- package/dist/cli/storage/variables.d.ts.map +1 -0
- package/dist/cli/storage/variables.js +36 -0
- package/dist/cli/storage/variables.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +65 -0
- package/dist/cli.js.map +1 -0
- package/dist/extensions/basics/argument-parser.d.ts +12 -0
- package/dist/extensions/basics/argument-parser.d.ts.map +1 -0
- package/dist/extensions/basics/argument-parser.js +27 -0
- package/dist/extensions/basics/argument-parser.js.map +1 -0
- package/dist/extensions/basics/index.d.ts +4 -0
- package/dist/extensions/basics/index.d.ts.map +1 -0
- package/dist/extensions/basics/index.js +3 -0
- package/dist/extensions/basics/index.js.map +1 -0
- package/dist/extensions/basics/schemata.d.ts +35 -0
- package/dist/extensions/basics/schemata.d.ts.map +1 -0
- package/dist/extensions/basics/schemata.js +55 -0
- package/dist/extensions/basics/schemata.js.map +1 -0
- package/dist/extensions/ieee/formatting.d.ts +18 -0
- package/dist/extensions/ieee/formatting.d.ts.map +1 -0
- package/dist/extensions/ieee/formatting.js +57 -0
- package/dist/extensions/ieee/formatting.js.map +1 -0
- package/dist/extensions/ieee/index.d.ts +6 -0
- package/dist/extensions/ieee/index.d.ts.map +1 -0
- package/dist/extensions/ieee/index.js +6 -0
- package/dist/extensions/ieee/index.js.map +1 -0
- package/dist/extensions/ieee/references.d.ts +1379 -0
- package/dist/extensions/ieee/references.d.ts.map +1 -0
- package/dist/extensions/ieee/references.js +929 -0
- package/dist/extensions/ieee/references.js.map +1 -0
- package/dist/extensions/ieee/relaxed.d.ts +1371 -0
- package/dist/extensions/ieee/relaxed.d.ts.map +1 -0
- package/dist/extensions/ieee/relaxed.js +160 -0
- package/dist/extensions/ieee/relaxed.js.map +1 -0
- package/dist/extensions/ieee/segment-builder.d.ts +9 -0
- package/dist/extensions/ieee/segment-builder.d.ts.map +1 -0
- package/dist/extensions/ieee/segment-builder.js +98 -0
- package/dist/extensions/ieee/segment-builder.js.map +1 -0
- package/dist/extensions/ieee/segment-templates.d.ts +58 -0
- package/dist/extensions/ieee/segment-templates.d.ts.map +1 -0
- package/dist/extensions/ieee/segment-templates.js +1618 -0
- package/dist/extensions/ieee/segment-templates.js.map +1 -0
- package/dist/extensions/ieee/source.d.ts +434 -0
- package/dist/extensions/ieee/source.d.ts.map +1 -0
- package/dist/extensions/ieee/source.js +12 -0
- package/dist/extensions/ieee/source.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/consts.d.ts +21 -0
- package/dist/lib/consts.d.ts.map +1 -0
- package/dist/lib/consts.js +117 -0
- package/dist/lib/consts.js.map +1 -0
- package/dist/lib/core/argument-engine.d.ts +181 -0
- package/dist/lib/core/argument-engine.d.ts.map +1 -0
- package/dist/lib/core/argument-engine.js +1294 -0
- package/dist/lib/core/argument-engine.js.map +1 -0
- package/dist/lib/core/argument-library.d.ts +84 -0
- package/dist/lib/core/argument-library.d.ts.map +1 -0
- package/dist/lib/core/argument-library.js +122 -0
- package/dist/lib/core/argument-library.js.map +1 -0
- package/dist/lib/core/argument-validation.d.ts +74 -0
- package/dist/lib/core/argument-validation.d.ts.map +1 -0
- package/dist/lib/core/argument-validation.js +315 -0
- package/dist/lib/core/argument-validation.js.map +1 -0
- package/dist/lib/core/change-collector.d.ts +24 -0
- package/dist/lib/core/change-collector.d.ts.map +1 -0
- package/dist/lib/core/change-collector.js +63 -0
- package/dist/lib/core/change-collector.js.map +1 -0
- package/dist/lib/core/checksum.d.ts +15 -0
- package/dist/lib/core/checksum.d.ts.map +1 -0
- package/dist/lib/core/checksum.js +43 -0
- package/dist/lib/core/checksum.js.map +1 -0
- package/dist/lib/core/claim-library.d.ts +23 -0
- package/dist/lib/core/claim-library.d.ts.map +1 -0
- package/dist/lib/core/claim-library.js +21 -0
- package/dist/lib/core/claim-library.js.map +1 -0
- package/dist/lib/core/claim-source-library.d.ts +32 -0
- package/dist/lib/core/claim-source-library.d.ts.map +1 -0
- package/dist/lib/core/claim-source-library.js +193 -0
- package/dist/lib/core/claim-source-library.js.map +1 -0
- package/dist/lib/core/diff.d.ts +20 -0
- package/dist/lib/core/diff.d.ts.map +1 -0
- package/dist/lib/core/diff.js +260 -0
- package/dist/lib/core/diff.js.map +1 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts +53 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -0
- package/dist/lib/core/evaluation/argument-evaluation.js +535 -0
- package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -0
- package/dist/lib/core/evaluation/grading.d.ts +28 -0
- package/dist/lib/core/evaluation/grading.d.ts.map +1 -0
- package/dist/lib/core/evaluation/grading.js +44 -0
- package/dist/lib/core/evaluation/grading.js.map +1 -0
- package/dist/lib/core/evaluation/kleene.d.ts +12 -0
- package/dist/lib/core/evaluation/kleene.d.ts.map +1 -0
- package/dist/lib/core/evaluation/kleene.js +29 -0
- package/dist/lib/core/evaluation/kleene.js.map +1 -0
- package/dist/lib/core/evaluation/validation.d.ts +10 -0
- package/dist/lib/core/evaluation/validation.d.ts.map +1 -0
- package/dist/lib/core/evaluation/validation.js +28 -0
- package/dist/lib/core/evaluation/validation.js.map +1 -0
- package/dist/lib/core/expression-manager.d.ts +278 -0
- package/dist/lib/core/expression-manager.d.ts.map +1 -0
- package/dist/lib/core/expression-manager.js +1622 -0
- package/dist/lib/core/expression-manager.js.map +1 -0
- package/dist/lib/core/fork-library.d.ts +26 -0
- package/dist/lib/core/fork-library.d.ts.map +1 -0
- package/dist/lib/core/fork-library.js +71 -0
- package/dist/lib/core/fork-library.js.map +1 -0
- package/dist/lib/core/fork-namespace.d.ts +32 -0
- package/dist/lib/core/fork-namespace.d.ts.map +1 -0
- package/dist/lib/core/fork-namespace.js +99 -0
- package/dist/lib/core/fork-namespace.js.map +1 -0
- package/dist/lib/core/fork.d.ts +30 -0
- package/dist/lib/core/fork.d.ts.map +1 -0
- package/dist/lib/core/fork.js +125 -0
- package/dist/lib/core/fork.js.map +1 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +366 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.js +2 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/index.d.ts +5 -0
- package/dist/lib/core/interfaces/index.d.ts.map +1 -0
- package/dist/lib/core/interfaces/index.js +2 -0
- package/dist/lib/core/interfaces/index.js.map +1 -0
- package/dist/lib/core/interfaces/library.interfaces.d.ts +347 -0
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/library.interfaces.js +2 -0
- package/dist/lib/core/interfaces/library.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +401 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.js +2 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/shared.interfaces.d.ts +28 -0
- package/dist/lib/core/interfaces/shared.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/shared.interfaces.js +2 -0
- package/dist/lib/core/interfaces/shared.interfaces.js.map +1 -0
- package/dist/lib/core/invariant-violation-error.d.ts +10 -0
- package/dist/lib/core/invariant-violation-error.d.ts.map +1 -0
- package/dist/lib/core/invariant-violation-error.js +16 -0
- package/dist/lib/core/invariant-violation-error.js.map +1 -0
- package/dist/lib/core/parser/formula-gen.js +923 -0
- package/dist/lib/core/parser/formula.d.ts +24 -0
- package/dist/lib/core/parser/formula.d.ts.map +1 -0
- package/dist/lib/core/parser/formula.js +8 -0
- package/dist/lib/core/parser/formula.js.map +1 -0
- package/dist/lib/core/premise-engine.d.ts +122 -0
- package/dist/lib/core/premise-engine.d.ts.map +1 -0
- package/dist/lib/core/premise-engine.js +1362 -0
- package/dist/lib/core/premise-engine.js.map +1 -0
- package/dist/lib/core/proposit-core.d.ts +111 -0
- package/dist/lib/core/proposit-core.d.ts.map +1 -0
- package/dist/lib/core/proposit-core.js +365 -0
- package/dist/lib/core/proposit-core.js.map +1 -0
- package/dist/lib/core/relationships.d.ts +15 -0
- package/dist/lib/core/relationships.d.ts.map +1 -0
- package/dist/lib/core/relationships.js +319 -0
- package/dist/lib/core/relationships.js.map +1 -0
- package/dist/lib/core/source-library.d.ts +23 -0
- package/dist/lib/core/source-library.d.ts.map +1 -0
- package/dist/lib/core/source-library.js +21 -0
- package/dist/lib/core/source-library.js.map +1 -0
- package/dist/lib/core/variable-manager.d.ts +68 -0
- package/dist/lib/core/variable-manager.d.ts.map +1 -0
- package/dist/lib/core/variable-manager.js +200 -0
- package/dist/lib/core/variable-manager.js.map +1 -0
- package/dist/lib/core/versioned-library.d.ts +52 -0
- package/dist/lib/core/versioned-library.d.ts.map +1 -0
- package/dist/lib/core/versioned-library.js +192 -0
- package/dist/lib/core/versioned-library.js.map +1 -0
- package/dist/lib/index.d.ts +54 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +39 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/parsing/argument-parser.d.ts +49 -0
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -0
- package/dist/lib/parsing/argument-parser.js +403 -0
- package/dist/lib/parsing/argument-parser.js.map +1 -0
- package/dist/lib/parsing/clamp-max-lengths.d.ts +11 -0
- package/dist/lib/parsing/clamp-max-lengths.d.ts.map +1 -0
- package/dist/lib/parsing/clamp-max-lengths.js +56 -0
- package/dist/lib/parsing/clamp-max-lengths.js.map +1 -0
- package/dist/lib/parsing/index.d.ts +7 -0
- package/dist/lib/parsing/index.d.ts.map +1 -0
- package/dist/lib/parsing/index.js +4 -0
- package/dist/lib/parsing/index.js.map +1 -0
- package/dist/lib/parsing/prompt-builder.d.ts +11 -0
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -0
- package/dist/lib/parsing/prompt-builder.js +229 -0
- package/dist/lib/parsing/prompt-builder.js.map +1 -0
- package/dist/lib/parsing/schemata.d.ts +79 -0
- package/dist/lib/parsing/schemata.d.ts.map +1 -0
- package/dist/lib/parsing/schemata.js +92 -0
- package/dist/lib/parsing/schemata.js.map +1 -0
- package/dist/lib/parsing/types.d.ts +24 -0
- package/dist/lib/parsing/types.d.ts.map +1 -0
- package/dist/lib/parsing/types.js +2 -0
- package/dist/lib/parsing/types.js.map +1 -0
- package/dist/lib/schemata/analysis.d.ts +9 -0
- package/dist/lib/schemata/analysis.d.ts.map +1 -0
- package/dist/lib/schemata/analysis.js +13 -0
- package/dist/lib/schemata/analysis.js.map +1 -0
- package/dist/lib/schemata/argument.d.ts +14 -0
- package/dist/lib/schemata/argument.d.ts.map +1 -0
- package/dist/lib/schemata/argument.js +24 -0
- package/dist/lib/schemata/argument.js.map +1 -0
- package/dist/lib/schemata/claim.d.ts +9 -0
- package/dist/lib/schemata/claim.d.ts.map +1 -0
- package/dist/lib/schemata/claim.js +18 -0
- package/dist/lib/schemata/claim.js.map +1 -0
- package/dist/lib/schemata/fork.d.ts +76 -0
- package/dist/lib/schemata/fork.d.ts.map +1 -0
- package/dist/lib/schemata/fork.js +55 -0
- package/dist/lib/schemata/fork.js.map +1 -0
- package/dist/lib/schemata/import.d.ts +33 -0
- package/dist/lib/schemata/import.d.ts.map +1 -0
- package/dist/lib/schemata/import.js +18 -0
- package/dist/lib/schemata/import.js.map +1 -0
- package/dist/lib/schemata/index.d.ts +8 -0
- package/dist/lib/schemata/index.d.ts.map +1 -0
- package/dist/lib/schemata/index.js +8 -0
- package/dist/lib/schemata/index.js.map +1 -0
- package/dist/lib/schemata/propositional.d.ts +142 -0
- package/dist/lib/schemata/propositional.d.ts.map +1 -0
- package/dist/lib/schemata/propositional.js +120 -0
- package/dist/lib/schemata/propositional.js.map +1 -0
- package/dist/lib/schemata/shared.d.ts +41 -0
- package/dist/lib/schemata/shared.d.ts.map +1 -0
- package/dist/lib/schemata/shared.js +66 -0
- package/dist/lib/schemata/shared.js.map +1 -0
- package/dist/lib/schemata/source.d.ts +18 -0
- package/dist/lib/schemata/source.d.ts.map +1 -0
- package/dist/lib/schemata/source.js +35 -0
- package/dist/lib/schemata/source.js.map +1 -0
- package/dist/lib/types/checksum.d.ts +20 -0
- package/dist/lib/types/checksum.d.ts.map +1 -0
- package/dist/lib/types/checksum.js +2 -0
- package/dist/lib/types/checksum.js.map +1 -0
- package/dist/lib/types/diff.d.ts +60 -0
- package/dist/lib/types/diff.d.ts.map +1 -0
- package/dist/lib/types/diff.js +2 -0
- package/dist/lib/types/diff.js.map +1 -0
- package/dist/lib/types/evaluation.d.ts +164 -0
- package/dist/lib/types/evaluation.d.ts.map +1 -0
- package/dist/lib/types/evaluation.js +2 -0
- package/dist/lib/types/evaluation.js.map +1 -0
- package/dist/lib/types/fork.d.ts +25 -0
- package/dist/lib/types/fork.d.ts.map +1 -0
- package/dist/lib/types/fork.js +2 -0
- package/dist/lib/types/fork.js.map +1 -0
- package/dist/lib/types/grammar.d.ts +38 -0
- package/dist/lib/types/grammar.d.ts.map +1 -0
- package/dist/lib/types/grammar.js +11 -0
- package/dist/lib/types/grammar.js.map +1 -0
- package/dist/lib/types/mutation.d.ts +31 -0
- package/dist/lib/types/mutation.d.ts.map +1 -0
- package/dist/lib/types/mutation.js +2 -0
- package/dist/lib/types/mutation.js.map +1 -0
- package/dist/lib/types/reactive.d.ts +14 -0
- package/dist/lib/types/reactive.d.ts.map +1 -0
- package/dist/lib/types/reactive.js +2 -0
- package/dist/lib/types/reactive.js.map +1 -0
- package/dist/lib/types/relationships.d.ts +36 -0
- package/dist/lib/types/relationships.d.ts.map +1 -0
- package/dist/lib/types/relationships.js +2 -0
- package/dist/lib/types/relationships.js.map +1 -0
- package/dist/lib/types/validation.d.ts +47 -0
- package/dist/lib/types/validation.d.ts.map +1 -0
- package/dist/lib/types/validation.js +43 -0
- package/dist/lib/types/validation.js.map +1 -0
- package/dist/lib/utils/changeset.d.ts +124 -0
- package/dist/lib/utils/changeset.d.ts.map +1 -0
- package/dist/lib/utils/changeset.js +221 -0
- package/dist/lib/utils/changeset.js.map +1 -0
- package/dist/lib/utils/collections.d.ts +12 -0
- package/dist/lib/utils/collections.d.ts.map +1 -0
- package/dist/lib/utils/collections.js +24 -0
- package/dist/lib/utils/collections.js.map +1 -0
- package/dist/lib/utils/default-map.d.ts +17 -0
- package/dist/lib/utils/default-map.d.ts.map +1 -0
- package/dist/lib/utils/default-map.js +33 -0
- package/dist/lib/utils/default-map.js.map +1 -0
- package/dist/lib/utils/lookup.d.ts +47 -0
- package/dist/lib/utils/lookup.d.ts.map +1 -0
- package/dist/lib/utils/lookup.js +62 -0
- package/dist/lib/utils/lookup.js.map +1 -0
- package/dist/lib/utils/position.d.ts +12 -0
- package/dist/lib/utils/position.d.ts.map +1 -0
- package/dist/lib/utils/position.js +13 -0
- package/dist/lib/utils/position.js.map +1 -0
- package/package.json +82 -0
- package/skills/proposit-core/SKILL.md +35 -0
- package/skills/proposit-core/docs/api-usage.md +442 -0
- package/skills/proposit-core/docs/architecture.md +256 -0
- package/skills/proposit-core/docs/cli.md +304 -0
- package/skills/proposit-core/docs/testing.md +281 -0
- 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
|