@proposit/proposit-core 3.3.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -2
- package/dist/cli/commands/expressions.d.ts.map +1 -1
- package/dist/cli/commands/expressions.js +44 -0
- package/dist/cli/commands/expressions.js.map +1 -1
- package/dist/cli/commands/origins.d.ts +3 -0
- package/dist/cli/commands/origins.d.ts.map +1 -0
- package/dist/cli/commands/origins.js +264 -0
- package/dist/cli/commands/origins.js.map +1 -0
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +18 -2
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +5 -2
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +1 -0
- package/dist/cli/router.js.map +1 -1
- package/dist/cli/schemata.d.ts +2 -0
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +14 -1
- package/dist/cli/schemata.js.map +1 -1
- package/dist/cli/storage/libraries.d.ts +4 -0
- package/dist/cli/storage/libraries.d.ts.map +1 -1
- package/dist/cli/storage/libraries.js +19 -0
- package/dist/cli/storage/libraries.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +2 -0
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/extensions/citations/ieee/index.d.ts +1 -0
- package/dist/extensions/citations/ieee/index.d.ts.map +1 -1
- package/dist/extensions/citations/ieee/index.js +1 -0
- package/dist/extensions/citations/ieee/index.js.map +1 -1
- package/dist/extensions/citations/ieee/origin-document.d.ts +452 -0
- package/dist/extensions/citations/ieee/origin-document.d.ts.map +1 -0
- package/dist/extensions/citations/ieee/origin-document.js +25 -0
- package/dist/extensions/citations/ieee/origin-document.js.map +1 -0
- package/dist/extensions/pipelines/base/finalize-response-v2.d.ts +24 -0
- package/dist/extensions/pipelines/base/finalize-response-v2.d.ts.map +1 -1
- package/dist/extensions/pipelines/base/finalize-response-v2.js +249 -8
- package/dist/extensions/pipelines/base/finalize-response-v2.js.map +1 -1
- package/dist/extensions/pipelines/base/index.d.ts +3 -1
- package/dist/extensions/pipelines/base/index.d.ts.map +1 -1
- package/dist/extensions/pipelines/base/index.js +2 -1
- package/dist/extensions/pipelines/base/index.js.map +1 -1
- package/dist/extensions/pipelines/base/source-anchors.d.ts +58 -0
- package/dist/extensions/pipelines/base/source-anchors.d.ts.map +1 -0
- package/dist/extensions/pipelines/base/source-anchors.js +209 -0
- package/dist/extensions/pipelines/base/source-anchors.js.map +1 -0
- package/dist/extensions/pipelines/ingestion/canonical-stages.d.ts.map +1 -1
- package/dist/extensions/pipelines/ingestion/canonical-stages.js +1 -0
- package/dist/extensions/pipelines/ingestion/canonical-stages.js.map +1 -1
- package/dist/extensions/pipelines/ingestion/scholar/scholar.d.ts.map +1 -1
- package/dist/extensions/pipelines/ingestion/scholar/scholar.js +11 -1
- package/dist/extensions/pipelines/ingestion/scholar/scholar.js.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/extract-stage.d.ts +27 -11
- package/dist/extensions/pipelines/ingestion/scribe/extract-stage.d.ts.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/extract-stage.js +56 -22
- package/dist/extensions/pipelines/ingestion/scribe/extract-stage.js.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/schemas.d.ts +25 -1
- package/dist/extensions/pipelines/ingestion/scribe/schemas.d.ts.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/schemas.js +25 -3
- package/dist/extensions/pipelines/ingestion/scribe/schemas.js.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/scribe.d.ts.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/scribe.js +25 -4
- package/dist/extensions/pipelines/ingestion/scribe/scribe.js.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/structure-stage.d.ts +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/structure-stage.d.ts.map +1 -1
- package/dist/extensions/pipelines/ingestion/scribe/structure-stage.js +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +27 -0
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +5 -3
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +7 -4
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +2 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/index.d.ts +1 -1
- package/dist/lib/core/interfaces/index.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +72 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/origin-library.d.ts +127 -0
- package/dist/lib/core/origin-library.d.ts.map +1 -0
- package/dist/lib/core/origin-library.js +520 -0
- package/dist/lib/core/origin-library.js.map +1 -0
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +20 -3
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +15 -8
- package/dist/lib/core/proposit-core.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.js +28 -3
- package/dist/lib/core/proposit-core.js.map +1 -1
- package/dist/lib/grammar/types.d.ts +2 -2
- package/dist/lib/grammar/types.d.ts.map +1 -1
- package/dist/lib/grammar/types.js +2 -1
- package/dist/lib/grammar/types.js.map +1 -1
- package/dist/lib/grammar/validators/presentable.d.ts +19 -0
- package/dist/lib/grammar/validators/presentable.d.ts.map +1 -1
- package/dist/lib/grammar/validators/presentable.js +57 -0
- package/dist/lib/grammar/validators/presentable.js.map +1 -1
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +3 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +4 -3
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +1 -0
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +1 -0
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/schemata/origin.d.ts +48 -0
- package/dist/lib/schemata/origin.d.ts.map +1 -0
- package/dist/lib/schemata/origin.js +102 -0
- package/dist/lib/schemata/origin.js.map +1 -0
- package/dist/lib/schemata/propositional.d.ts +6 -0
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +13 -0
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +3 -0
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +19 -1
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +19 -0
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/collections.d.ts +15 -0
- package/dist/lib/utils/collections.d.ts.map +1 -1
- package/dist/lib/utils/collections.js +17 -0
- package/dist/lib/utils/collections.js.map +1 -1
- package/dist/lib/utils/origin-text.d.ts +62 -0
- package/dist/lib/utils/origin-text.d.ts.map +1 -0
- package/dist/lib/utils/origin-text.js +204 -0
- package/dist/lib/utils/origin-text.js.map +1 -0
- package/dist/lib/utils/sha256.d.ts +6 -0
- package/dist/lib/utils/sha256.d.ts.map +1 -0
- package/dist/lib/utils/sha256.js +98 -0
- package/dist/lib/utils/sha256.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -163,7 +163,7 @@ flowchart TD
|
|
|
163
163
|
|
|
164
164
|
### PropositCore
|
|
165
165
|
|
|
166
|
-
`PropositCore` is the recommended top-level entry point. It creates and wires together
|
|
166
|
+
`PropositCore` is the recommended top-level entry point. It creates and wires together every library and provides unified cross-library operations:
|
|
167
167
|
|
|
168
168
|
```typescript
|
|
169
169
|
import { PropositCore } from "@proposit/proposit-core"
|
|
@@ -212,12 +212,25 @@ const snapshot = core.snapshot()
|
|
|
212
212
|
const restored = PropositCore.fromSnapshot(snapshot)
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
`PropositCore` is designed for subclassing. All library fields (`claims`, `citations`, `axioms`, `forks`, `arguments`) are public and readable. Pass pre-constructed library instances via `TPropositCoreOptions` to inject custom implementations.
|
|
215
|
+
`PropositCore` is designed for subclassing. All library fields (`claims`, `citations`, `axioms`, `origins`, `forks`, `arguments`) are public and readable. Pass pre-constructed library instances via `TPropositCoreOptions` to inject custom implementations.
|
|
216
|
+
|
|
217
|
+
A snapshot written before origin data existed carries no `origins` slot.
|
|
218
|
+
`PropositCore.fromSnapshot` restores such a payload with an empty origin
|
|
219
|
+
library rather than refusing it.
|
|
216
220
|
|
|
217
221
|
### No application metadata
|
|
218
222
|
|
|
219
223
|
The core library does not deal in user IDs, timestamps, or display text. These are application-level concerns. The CLI adds some metadata (e.g., `createdAt`, `publishedAt`) for its own purposes, but the core schemas are intentionally minimal. Applications extend core entity types via generic parameters.
|
|
220
224
|
|
|
225
|
+
An origin document's `text` is the one string the core schemas carry that a
|
|
226
|
+
reader might mistake for display text. It is not: core stores it, digests it,
|
|
227
|
+
measures it, and slices it by index, and never parses, renders, formats, or
|
|
228
|
+
interprets it. What core owns is the structure around it — entity identity, the
|
|
229
|
+
anchor relation, checksum participation, and snapshot round-tripping — exactly
|
|
230
|
+
as it owns a citation claim's identity while the IEEE extension owns its
|
|
231
|
+
reference data. Who pasted the text, when, whether they may share it, how it
|
|
232
|
+
renders, and how long it may be all remain application concerns.
|
|
233
|
+
|
|
221
234
|
### Claims, citations, and axioms
|
|
222
235
|
|
|
223
236
|
Every claim in the unified `ClaimLibrary` carries an immutable `type: 'normal' | 'citation' | 'axiomatic'` discriminator set at creation:
|
|
@@ -808,6 +821,8 @@ In v1.0 the engine no longer throws on non-`not` operators placed as direct chil
|
|
|
808
821
|
| `formula` wrapping no operator (leaf or single `not`) | `P-3` | Presentable |
|
|
809
822
|
| Single-child `and` / `or` | `P-4` | Presentable |
|
|
810
823
|
| Same-operator parent/grandchild separated only by `formula` | `P-5` | Presentable |
|
|
824
|
+
| Premise-bound variable expression marked as an enthymeme | `P-6` | Presentable |
|
|
825
|
+
| Operator or formula expression marked as an enthymeme | `P-6` | Presentable |
|
|
811
826
|
|
|
812
827
|
### Variables — prevented at construction time
|
|
813
828
|
|
|
@@ -953,6 +968,11 @@ $PROPOSIT_HOME/
|
|
|
953
968
|
meta.json # id, title?
|
|
954
969
|
data.json # type, rootExpressionId?, variables[], expressions[]
|
|
955
970
|
<analysis>.json # named analysis files (default: analysis.json)
|
|
971
|
+
claims.json # global claim library
|
|
972
|
+
citations.json # citation connections
|
|
973
|
+
axioms.json # axiom connections
|
|
974
|
+
origins.json # source texts, their argument links, and anchors
|
|
975
|
+
forks.json # fork provenance records
|
|
956
976
|
```
|
|
957
977
|
|
|
958
978
|
### Versioning
|
|
@@ -990,6 +1010,14 @@ proposit-core axioms list [--json] List all axiom connections
|
|
|
990
1010
|
proposit-core axioms show <connection_id> [--json] Show a single axiom connection
|
|
991
1011
|
proposit-core axioms add --claim-id <id> --axiom-id <id> Add an axiom connection (supporting claim must be type=axiomatic; dependent must be type=normal)
|
|
992
1012
|
proposit-core axioms remove <connection_id> Remove an axiom connection
|
|
1013
|
+
proposit-core origins attach <file> --argument <id> --version <n> [--stance <s>] Store a source text and link it to an argument version
|
|
1014
|
+
proposit-core origins list [--json] List stored source texts and their links
|
|
1015
|
+
proposit-core origins show <document_id> [--json] [--text] Show a source text, its links, and its anchors
|
|
1016
|
+
proposit-core origins link <document_id> --argument <id> --version <n> [--stance <s>] Link an existing source text to another argument version
|
|
1017
|
+
proposit-core origins unlink <link_id> Remove a link between an argument version and a source text
|
|
1018
|
+
proposit-core origins remove <document_id> Remove a source text (refuses while referenced)
|
|
1019
|
+
proposit-core origins anchor add --document <id> --argument <id> --version <n> --target <type> --target-id <id> --start <n> --end <n> Record the span an argument part derives from
|
|
1020
|
+
proposit-core origins anchor remove <anchor_id> Remove an anchor
|
|
993
1021
|
```
|
|
994
1022
|
|
|
995
1023
|
> **Breaking change in v0.12.0.** The `citations` command group switched from positional arguments + `unlink` to flag arguments + `remove`, matching the new `axioms` group and the renamed schema fields. Scripts that used `citations add <citing_claim_id> <source_claim_id>` or `citations unlink <id>` need to update to `citations add --claim-id <id> --supporting-claim-id <id>` and `citations remove <id>`.
|
|
@@ -1019,6 +1047,75 @@ proposit-core axioms add --claim-id <normal-claim-id> --axiom-id <axiomatic-clai
|
|
|
1019
1047
|
|
|
1020
1048
|
Axiomatic claim-bound variables are forced to `true` at evaluation time. Passing an explicit assignment for one to `analysis evaluate` raises `AXIOM_VARIABLE_ASSIGNMENT_FORBIDDEN` before the evaluator runs. To express "this derivation should not be supported by this axiom," wrap the axiom's variable expression in the antecedent with `not`.
|
|
1021
1049
|
|
|
1050
|
+
### Origin data
|
|
1051
|
+
|
|
1052
|
+
An argument can record the source text it was built from, which of its parts
|
|
1053
|
+
derive from which span of that text, and which parts the original left unspoken.
|
|
1054
|
+
|
|
1055
|
+
```bash
|
|
1056
|
+
# Store a source text and link it to an argument version.
|
|
1057
|
+
DOC=$(proposit-core origins attach ./speech.txt --argument "$ARG" --version 0 --stance seed)
|
|
1058
|
+
|
|
1059
|
+
# Record that a premise derives from code points [0, 12) of that text.
|
|
1060
|
+
proposit-core origins anchor add --document "$DOC" --argument "$ARG" \
|
|
1061
|
+
--version 0 --target premise --target-id "$PREMISE" --start 0 --end 12
|
|
1062
|
+
|
|
1063
|
+
proposit-core origins show "$DOC"
|
|
1064
|
+
```
|
|
1065
|
+
|
|
1066
|
+
**Stance.** `seed` (the default) says the argument merely started from the
|
|
1067
|
+
source. `representation` asserts the argument faithfully renders it — which is
|
|
1068
|
+
what makes the _absence_ of provenance meaningful, so it is a claim about
|
|
1069
|
+
someone else's text and never a default.
|
|
1070
|
+
|
|
1071
|
+
**Positions count Unicode code points, not UTF-16 code units**, following the
|
|
1072
|
+
Web Annotation Data Model. The fields are named `startCodePoint` /
|
|
1073
|
+
`endCodePoint` for that reason, and `sliceByCodePoints` is the exported helper
|
|
1074
|
+
that reads them; a plain `String.prototype.slice` on these offsets is wrong for
|
|
1075
|
+
any text containing an astral-plane character and right for every ASCII test.
|
|
1076
|
+
An anchor whose span does not slice out its own recorded quote is rejected, so a
|
|
1077
|
+
mis-measured anchor fails loudly instead of highlighting the wrong passage.
|
|
1078
|
+
|
|
1079
|
+
**The stored text is normalized on the way in** by the exported
|
|
1080
|
+
`normalizeOriginText`: every line-break form folds to LF, the byte-order mark,
|
|
1081
|
+
control characters other than LF and tab, bidirectional controls, zero-width
|
|
1082
|
+
characters, and stray variation selectors are stripped, and the result is
|
|
1083
|
+
composed to Unicode NFC and trimmed. Emoji ZWJ, keycap, CJK, Mongolian, and
|
|
1084
|
+
emoji-tag sequences survive intact. It never touches content: internal
|
|
1085
|
+
whitespace, paragraph breaks, smart quotes, dashes, case, and punctuation are
|
|
1086
|
+
left exactly as written. The function is idempotent, so an application may
|
|
1087
|
+
safely apply it at its own import boundary as well.
|
|
1088
|
+
|
|
1089
|
+
Because every stored anchor is an offset into text this function produced,
|
|
1090
|
+
**changing its behavior later is a data migration, not a bug fix.**
|
|
1091
|
+
|
|
1092
|
+
Each document also carries a SHA-256 `digest` of its normalized text, so two
|
|
1093
|
+
pastes of the same source are detectable. Two texts differing only in line-ending
|
|
1094
|
+
style, a byte-order mark, or accent composition produce the same digest.
|
|
1095
|
+
|
|
1096
|
+
Anchoring requires a link first: an anchor's argument version must already be
|
|
1097
|
+
linked to the document, because the link carries the stance that gives the
|
|
1098
|
+
anchor its meaning. Persist in that order — document, link, anchors.
|
|
1099
|
+
|
|
1100
|
+
**Unspoken content.** An author can mark a premise or a claim-bound variable
|
|
1101
|
+
expression as an _enthymeme_ — content the natural-language original left for
|
|
1102
|
+
the audience to supply:
|
|
1103
|
+
|
|
1104
|
+
```bash
|
|
1105
|
+
proposit-core "$ARG" latest premises update "$PREMISE" --enthymeme
|
|
1106
|
+
proposit-core "$ARG" latest expressions mark "$PREMISE" "$EXPR" --enthymeme
|
|
1107
|
+
```
|
|
1108
|
+
|
|
1109
|
+
The mark is always declared, never derived; nothing infers it. Passing
|
|
1110
|
+
`--no-enthymeme` removes the field entirely rather than storing `false`, which
|
|
1111
|
+
restores the entity's original checksum. Marking a _premise-bound_ variable is
|
|
1112
|
+
reported as `P-6` by `validate('presentable')` — its truth is derived from
|
|
1113
|
+
another premise rather than asserted, so there is nothing for a speaker to have
|
|
1114
|
+
suppressed.
|
|
1115
|
+
|
|
1116
|
+
Origin data lives on `PropositCore` as `core.origins` and is stored by the CLI
|
|
1117
|
+
in `$PROPOSIT_HOME/origins.json`.
|
|
1118
|
+
|
|
1022
1119
|
### Version-scoped commands
|
|
1023
1120
|
|
|
1024
1121
|
All commands below are scoped to a specific argument version:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmCnC,MAAM,MAAM,wBAAwB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAoGjB;AAED,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmCnC,MAAM,MAAM,wBAAwB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAoGjB;AAED,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAqYN"}
|
|
@@ -308,8 +308,52 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
308
308
|
if (expr.type === "operator") {
|
|
309
309
|
printLine(`operator: ${expr.operator}`);
|
|
310
310
|
}
|
|
311
|
+
if (expr.type === "variable" && expr.enthymeme === true) {
|
|
312
|
+
printLine(`enthymeme: true`);
|
|
313
|
+
}
|
|
311
314
|
}
|
|
312
315
|
});
|
|
316
|
+
exprs
|
|
317
|
+
.command("mark <premise_id> <expression_id>")
|
|
318
|
+
.description("Mark or unmark a claim-bound variable expression as left unspoken in the natural-language original")
|
|
319
|
+
.option("--enthymeme", "Mark the expression as left unspoken (the default)")
|
|
320
|
+
.option("--no-enthymeme", "Remove the unspoken mark")
|
|
321
|
+
.action(async (premiseId, expressionId, opts) => {
|
|
322
|
+
await assertNotPublished(argumentId, version);
|
|
323
|
+
if (!(await premiseExists(argumentId, version, premiseId))) {
|
|
324
|
+
errorExit(`Premise "${premiseId}" not found.`);
|
|
325
|
+
}
|
|
326
|
+
const engine = await hydrateEngine(argumentId, version);
|
|
327
|
+
const pm = engine.getPremise(premiseId);
|
|
328
|
+
if (!pm)
|
|
329
|
+
errorExit(`Premise "${premiseId}" not found in engine.`);
|
|
330
|
+
const expr = pm.getExpression(expressionId);
|
|
331
|
+
if (!expr) {
|
|
332
|
+
errorExit(`Expression "${expressionId}" not found.`);
|
|
333
|
+
}
|
|
334
|
+
if (expr.type !== "variable") {
|
|
335
|
+
errorExit(`Expression "${expressionId}" is a ${expr.type} expression; only variable expressions can be marked.`);
|
|
336
|
+
}
|
|
337
|
+
try {
|
|
338
|
+
// Unmarking sets the field to undefined rather than false:
|
|
339
|
+
// an entity carrying the key at all hashes differently
|
|
340
|
+
// from one that omits it, and `undefined` is dropped by
|
|
341
|
+
// both the checksum and the JSON encoding.
|
|
342
|
+
engine.patchExpressionAppFields(expressionId, {
|
|
343
|
+
enthymeme: opts.enthymeme === false ? undefined : true,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
catch (e) {
|
|
347
|
+
errorExit(e instanceof Error ? e.message : "Failed to mark.");
|
|
348
|
+
}
|
|
349
|
+
engine.flushChecksums();
|
|
350
|
+
await writePremiseData(argumentId, version, premiseId, {
|
|
351
|
+
rootExpressionId: pm.getRootExpressionId(),
|
|
352
|
+
variables: [...pm.getReferencedVariableIds()].sort(),
|
|
353
|
+
expressions: pm.getExpressions(),
|
|
354
|
+
});
|
|
355
|
+
printLine("success");
|
|
356
|
+
});
|
|
313
357
|
exprs
|
|
314
358
|
.command("toggle-negation <premise_id> <expression_id>")
|
|
315
359
|
.description("Toggle negation on an expression (wrap in NOT or unwrap)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"origins.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/origins.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0CnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8T7D"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import { Command } from "commander";
|
|
4
|
+
import { hydratePropositCore, persistCore } from "../engine.js";
|
|
5
|
+
import { errorExit, printJson, printLine } from "../output.js";
|
|
6
|
+
import { codePointLength, sliceByCodePoints, } from "../../lib/utils/origin-text.js";
|
|
7
|
+
import { listVersionNumbers } from "../storage/arguments.js";
|
|
8
|
+
const STANCES = ["representation", "seed"];
|
|
9
|
+
const TARGET_TYPES = ["expression", "premise", "argument"];
|
|
10
|
+
function parseIntegerOption(value, label) {
|
|
11
|
+
const parsed = Number(value);
|
|
12
|
+
if (!Number.isInteger(parsed) || parsed < 0) {
|
|
13
|
+
errorExit(`${label} must be a non-negative integer (got "${value}").`);
|
|
14
|
+
}
|
|
15
|
+
return parsed;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Fails unless the argument version exists on disk. Origin links and anchors
|
|
19
|
+
* reference an argument that the library deliberately cannot see — it is
|
|
20
|
+
* constructed after the origin library — so a typo would otherwise persist a
|
|
21
|
+
* link nothing ever resolves and nothing ever reports.
|
|
22
|
+
*/
|
|
23
|
+
async function assertArgumentVersionExists(argumentId, version) {
|
|
24
|
+
const versions = await listVersionNumbers(argumentId);
|
|
25
|
+
if (versions.length === 0) {
|
|
26
|
+
errorExit(`Argument "${argumentId}" not found.`);
|
|
27
|
+
}
|
|
28
|
+
if (!versions.includes(version)) {
|
|
29
|
+
errorExit(`Argument "${argumentId}" has no version ${version} (has: ${versions.join(", ")}).`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function registerOriginCommands(program) {
|
|
33
|
+
const origins = program
|
|
34
|
+
.command("origins")
|
|
35
|
+
.description("Manage source texts and the spans arguments derive from");
|
|
36
|
+
origins
|
|
37
|
+
.command("attach <file>")
|
|
38
|
+
.description("Store a source text from a file and link it to an argument version")
|
|
39
|
+
.requiredOption("--argument <id>", "Argument ID to link the text to")
|
|
40
|
+
.requiredOption("--version <n>", "Argument version to link the text to")
|
|
41
|
+
.option("--stance <stance>", `What the argument claims about the source: ${STANCES.join(" | ")}`, "seed")
|
|
42
|
+
.action(async (file, opts) => {
|
|
43
|
+
if (!STANCES.includes(opts.stance)) {
|
|
44
|
+
errorExit(`Unknown stance "${opts.stance}". Expected one of: ${STANCES.join(", ")}.`);
|
|
45
|
+
}
|
|
46
|
+
let text;
|
|
47
|
+
try {
|
|
48
|
+
text = await fs.readFile(file, "utf-8");
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
errorExit(`Cannot read source text file "${file}".`);
|
|
52
|
+
}
|
|
53
|
+
const version = parseIntegerOption(opts.version, "--version");
|
|
54
|
+
await assertArgumentVersionExists(opts.argument, version);
|
|
55
|
+
const core = await hydratePropositCore();
|
|
56
|
+
let documentId;
|
|
57
|
+
try {
|
|
58
|
+
const document = core.origins.addDocument({
|
|
59
|
+
id: randomUUID(),
|
|
60
|
+
text,
|
|
61
|
+
});
|
|
62
|
+
documentId = document.id;
|
|
63
|
+
core.origins.addLink({
|
|
64
|
+
id: randomUUID(),
|
|
65
|
+
argumentId: opts.argument,
|
|
66
|
+
argumentVersion: version,
|
|
67
|
+
documentId: document.id,
|
|
68
|
+
stance: opts.stance,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
errorExit(error instanceof Error ? error.message : String(error));
|
|
73
|
+
}
|
|
74
|
+
await persistCore(core);
|
|
75
|
+
printLine(documentId);
|
|
76
|
+
});
|
|
77
|
+
origins
|
|
78
|
+
.command("list")
|
|
79
|
+
.description("List stored source texts and their links")
|
|
80
|
+
.option("--json", "Output as JSON")
|
|
81
|
+
.action(async (opts) => {
|
|
82
|
+
const core = await hydratePropositCore();
|
|
83
|
+
if (opts.json) {
|
|
84
|
+
printJson(core.origins.snapshot());
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
for (const document of core.origins.getAllDocuments()) {
|
|
88
|
+
const links = core.origins
|
|
89
|
+
.getAllLinks()
|
|
90
|
+
.filter((l) => l.documentId === document.id);
|
|
91
|
+
const anchorCount = core.origins
|
|
92
|
+
.getAllAnchors()
|
|
93
|
+
.filter((a) => a.documentId === document.id).length;
|
|
94
|
+
printLine(`${document.id} | ${codePointLength(document.text)} code points | ${links.length} link(s) | ${anchorCount} anchor(s)`);
|
|
95
|
+
for (const link of links) {
|
|
96
|
+
printLine(` ${link.argumentId}@${link.argumentVersion} (${link.stance})`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
origins
|
|
101
|
+
.command("show <document_id>")
|
|
102
|
+
.description("Show a source text, its links, and its anchors")
|
|
103
|
+
.option("--json", "Output as JSON")
|
|
104
|
+
.option("--text", "Print only the stored text")
|
|
105
|
+
.action(async (documentId, opts) => {
|
|
106
|
+
const core = await hydratePropositCore();
|
|
107
|
+
const document = core.origins.getDocument(documentId);
|
|
108
|
+
if (!document) {
|
|
109
|
+
errorExit(`Origin document "${documentId}" not found.`);
|
|
110
|
+
}
|
|
111
|
+
if (opts.text) {
|
|
112
|
+
printLine(document.text);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const links = core.origins
|
|
116
|
+
.getAllLinks()
|
|
117
|
+
.filter((l) => l.documentId === documentId);
|
|
118
|
+
const anchors = core.origins
|
|
119
|
+
.getAllAnchors()
|
|
120
|
+
.filter((a) => a.documentId === documentId);
|
|
121
|
+
if (opts.json) {
|
|
122
|
+
printJson({ document, links, anchors });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
printLine(`id: ${document.id}`);
|
|
126
|
+
printLine(`digest: ${document.digest}`);
|
|
127
|
+
printLine(`codePoints: ${codePointLength(document.text)}`);
|
|
128
|
+
for (const link of links) {
|
|
129
|
+
printLine(`link: ${link.id} -> ${link.argumentId}@${link.argumentVersion} (${link.stance})`);
|
|
130
|
+
}
|
|
131
|
+
for (const anchor of anchors) {
|
|
132
|
+
printLine(`anchor: ${anchor.id} -> ${anchor.targetType} ${anchor.targetId} [${anchor.startCodePoint}, ${anchor.endCodePoint}) "${anchor.exact}"`);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
origins
|
|
136
|
+
.command("link <document_id>")
|
|
137
|
+
.description("Link an existing source text to another argument version, reusing the stored text")
|
|
138
|
+
.requiredOption("--argument <id>", "Argument ID to link the text to")
|
|
139
|
+
.requiredOption("--version <n>", "Argument version to link the text to")
|
|
140
|
+
.option("--stance <stance>", `What the argument claims about the source: ${STANCES.join(" | ")}`, "seed")
|
|
141
|
+
.action(async (documentId, opts) => {
|
|
142
|
+
if (!STANCES.includes(opts.stance)) {
|
|
143
|
+
errorExit(`Unknown stance "${opts.stance}". Expected one of: ${STANCES.join(", ")}.`);
|
|
144
|
+
}
|
|
145
|
+
const version = parseIntegerOption(opts.version, "--version");
|
|
146
|
+
await assertArgumentVersionExists(opts.argument, version);
|
|
147
|
+
const core = await hydratePropositCore();
|
|
148
|
+
if (!core.origins.getDocument(documentId)) {
|
|
149
|
+
errorExit(`Origin document "${documentId}" not found.`);
|
|
150
|
+
}
|
|
151
|
+
let linkId;
|
|
152
|
+
try {
|
|
153
|
+
linkId = core.origins.addLink({
|
|
154
|
+
id: randomUUID(),
|
|
155
|
+
argumentId: opts.argument,
|
|
156
|
+
argumentVersion: version,
|
|
157
|
+
documentId,
|
|
158
|
+
stance: opts.stance,
|
|
159
|
+
}).id;
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
errorExit(error instanceof Error ? error.message : String(error));
|
|
163
|
+
}
|
|
164
|
+
await persistCore(core);
|
|
165
|
+
printLine(linkId);
|
|
166
|
+
});
|
|
167
|
+
origins
|
|
168
|
+
.command("unlink <link_id>")
|
|
169
|
+
.description("Remove a link between an argument version and a source text")
|
|
170
|
+
.action(async (linkId) => {
|
|
171
|
+
const core = await hydratePropositCore();
|
|
172
|
+
if (!core.origins.getLink(linkId)) {
|
|
173
|
+
errorExit(`Origin link "${linkId}" not found.`);
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
core.origins.removeLink(linkId);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
errorExit(error instanceof Error ? error.message : String(error));
|
|
180
|
+
}
|
|
181
|
+
await persistCore(core);
|
|
182
|
+
printLine("success");
|
|
183
|
+
});
|
|
184
|
+
origins
|
|
185
|
+
.command("remove <document_id>")
|
|
186
|
+
.description("Remove a source text. Refuses while any link or anchor still references it.")
|
|
187
|
+
.action(async (documentId) => {
|
|
188
|
+
const core = await hydratePropositCore();
|
|
189
|
+
if (!core.origins.getDocument(documentId)) {
|
|
190
|
+
errorExit(`Origin document "${documentId}" not found.`);
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
core.origins.removeDocument(documentId);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
errorExit(error instanceof Error ? error.message : String(error));
|
|
197
|
+
}
|
|
198
|
+
await persistCore(core);
|
|
199
|
+
printLine("success");
|
|
200
|
+
});
|
|
201
|
+
const anchor = origins
|
|
202
|
+
.command("anchor")
|
|
203
|
+
.description("Manage the spans argument parts derive from");
|
|
204
|
+
anchor
|
|
205
|
+
.command("add")
|
|
206
|
+
.description("Record the span of a source text that one argument part derives from")
|
|
207
|
+
.requiredOption("--document <id>", "Origin document ID")
|
|
208
|
+
.requiredOption("--argument <id>", "Argument ID")
|
|
209
|
+
.requiredOption("--version <n>", "Argument version")
|
|
210
|
+
.requiredOption("--target <type>", `What the anchor points at: ${TARGET_TYPES.join(" | ")}`)
|
|
211
|
+
.requiredOption("--target-id <id>", "ID of the anchored part")
|
|
212
|
+
.requiredOption("--start <n>", "Inclusive start of the span, in Unicode code points")
|
|
213
|
+
.requiredOption("--end <n>", "Exclusive end of the span, in Unicode code points")
|
|
214
|
+
.action(async (opts) => {
|
|
215
|
+
if (!TARGET_TYPES.includes(opts.target)) {
|
|
216
|
+
errorExit(`Unknown target "${opts.target}". Expected one of: ${TARGET_TYPES.join(", ")}.`);
|
|
217
|
+
}
|
|
218
|
+
const core = await hydratePropositCore();
|
|
219
|
+
const document = core.origins.getDocument(opts.document);
|
|
220
|
+
if (!document) {
|
|
221
|
+
errorExit(`Origin document "${opts.document}" not found.`);
|
|
222
|
+
}
|
|
223
|
+
const version = parseIntegerOption(opts.version, "--version");
|
|
224
|
+
await assertArgumentVersionExists(opts.argument, version);
|
|
225
|
+
const start = parseIntegerOption(opts.start, "--start");
|
|
226
|
+
const end = parseIntegerOption(opts.end, "--end");
|
|
227
|
+
// The quote is derived by slicing rather than supplied: a
|
|
228
|
+
// reader picked a range, so the positions are authoritative
|
|
229
|
+
// here and a hand-typed quote could only disagree with them.
|
|
230
|
+
const exact = sliceByCodePoints(document.text, start, end);
|
|
231
|
+
let anchorId;
|
|
232
|
+
try {
|
|
233
|
+
anchorId = core.origins.addAnchor({
|
|
234
|
+
id: randomUUID(),
|
|
235
|
+
argumentId: opts.argument,
|
|
236
|
+
argumentVersion: version,
|
|
237
|
+
documentId: document.id,
|
|
238
|
+
targetType: opts.target,
|
|
239
|
+
targetId: opts.targetId,
|
|
240
|
+
exact,
|
|
241
|
+
startCodePoint: start,
|
|
242
|
+
endCodePoint: end,
|
|
243
|
+
}).id;
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
errorExit(error instanceof Error ? error.message : String(error));
|
|
247
|
+
}
|
|
248
|
+
await persistCore(core);
|
|
249
|
+
printLine(anchorId);
|
|
250
|
+
});
|
|
251
|
+
anchor
|
|
252
|
+
.command("remove <anchor_id>")
|
|
253
|
+
.description("Remove an anchor")
|
|
254
|
+
.action(async (anchorId) => {
|
|
255
|
+
const core = await hydratePropositCore();
|
|
256
|
+
if (!core.origins.getAnchor(anchorId)) {
|
|
257
|
+
errorExit(`Origin anchor "${anchorId}" not found.`);
|
|
258
|
+
}
|
|
259
|
+
core.origins.removeAnchor(anchorId);
|
|
260
|
+
await persistCore(core);
|
|
261
|
+
printLine("success");
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=origins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"origins.js","sourceRoot":"","sources":["../../../src/cli/commands/origins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premises.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/premises.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6CnC,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"premises.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/premises.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6CnC,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CA8bN"}
|
|
@@ -175,6 +175,8 @@ export function registerPremiseCommands(versionedCmd, argumentId, version) {
|
|
|
175
175
|
.description("Update premise metadata")
|
|
176
176
|
.option("--title <new_title>", "New title")
|
|
177
177
|
.option("--clear-title", "Remove the title")
|
|
178
|
+
.option("--enthymeme", "Mark this premise as left unspoken in the natural-language original")
|
|
179
|
+
.option("--no-enthymeme", "Remove the unspoken mark")
|
|
178
180
|
.action(async (premiseId, opts) => {
|
|
179
181
|
await assertNotPublished(argumentId, version);
|
|
180
182
|
if (opts.title !== undefined && opts.clearTitle) {
|
|
@@ -186,16 +188,30 @@ export function registerPremiseCommands(versionedCmd, argumentId, version) {
|
|
|
186
188
|
errorExit(`Premise "${premiseId}" not found.`);
|
|
187
189
|
}
|
|
188
190
|
try {
|
|
191
|
+
let updated = false;
|
|
189
192
|
if (opts.clearTitle) {
|
|
190
193
|
const extras = pm.getExtras();
|
|
191
194
|
delete extras.title;
|
|
192
195
|
pm.setExtras(extras);
|
|
196
|
+
updated = true;
|
|
193
197
|
}
|
|
194
198
|
else if (opts.title !== undefined) {
|
|
195
199
|
pm.updateExtras({ title: opts.title });
|
|
200
|
+
updated = true;
|
|
196
201
|
}
|
|
197
|
-
|
|
198
|
-
|
|
202
|
+
if (opts.enthymeme === true) {
|
|
203
|
+
pm.updateExtras({ enthymeme: true });
|
|
204
|
+
updated = true;
|
|
205
|
+
}
|
|
206
|
+
else if (opts.enthymeme === false) {
|
|
207
|
+
// `undefined` deletes the key. An entity that carries
|
|
208
|
+
// the key at all hashes differently from one that omits
|
|
209
|
+
// it, so unmarking must restore the original absence.
|
|
210
|
+
pm.updateExtras({ enthymeme: undefined });
|
|
211
|
+
updated = true;
|
|
212
|
+
}
|
|
213
|
+
if (!updated) {
|
|
214
|
+
errorExit("No updates specified. Use --title, --clear-title, --enthymeme, or --no-enthymeme.");
|
|
199
215
|
}
|
|
200
216
|
}
|
|
201
217
|
catch (err) {
|